24

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

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

我当前的代码如下所示:

 var builder = new BodyBuilder();

 builder.HtmlBody = @"<p>Hey!</p><img src=""Image.png"">";

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

我可以发送这封电子邮件,实际上图像附加到电子邮件中。但它不是嵌入式的。

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

我很感激任何想法(非常感谢 Jeffrey Stedfast 提供了如此出色的工具集!!)。

英格玛

4

2 回答 2

47

尝试更多类似这样的东西:

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 (@"<p>Hey!</p><img src=""cid:{0}"">", image.ContentId);

message.Body = builder.ToMessageBody ();

如果这对您有用,我将更新文档。

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

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

于 2015-07-14T20:01:34.247 回答
4

仅供参考,现在可以在http://www.mimekit.net/docs/html/Creating-Messages.htm下找到。原始答案中的链接已损坏。

于 2020-01-29T15:25:11.520 回答