MimeKit:如何嵌入图像?

我正在使用MailKit / MimeKit 1.2.7(最新的NuGet版本)。

我尝试通过API文档中的示例(“使用BodyBuilder”部分)将图像嵌入到我的电子邮件的HTML正文中。

我当前的代码如下所示:

var builder = new BodyBuilder(); builder.HtmlBody = @"

Hey!

"; var pathImage = Path.Combine(Misc.GetPathOfExecutingAssembly(), "Image.png"); builder.LinkedResources.Add(pathLogoFile); message.Body = builder.ToMessageBody();

我可以发送此电子邮件,实际上图像附加到电子邮件中。 但它没有嵌入。

我错过了什么吗? 或者这是Apple Mail的错(这是我用来接收电子邮件的电子邮件客户端)?

我很感激任何想法(并非常感谢Jeffrey Stedfast提供这么棒的工具集!!)。

英格玛

尝试更像这样的东西:

 var builder = new BodyBuilder (); var pathImage = Path.Combine (Misc.GetPathOfExecutingAssembly (), "Image.png"); var image = builder.LinkedResources.Add (pathLogoFile); image.ContentId = MimeUtils.GenerateMessageId (); builder.HtmlBody = string.Format (@"

Hey!

", image.ContentId); message.Body = builder.ToMessageBody ();

如果这对你有用,我会更新文档。

问题可能是Apple的multipart/related实现没有使用image mime部分上的Content-Location头解析Image.png引用(可能是因为它是一个相对URL)。

但是, cid: URL类型应该可以工作,但由于您需要知道每个图像附件的Content-Id值,因此构造起来有点尴尬。