我正在使用MailKit / MimeKit 1.2.7(最新的NuGet版本)。
我尝试按照API documentation中的示例(#34;使用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提供这么棒的工具!)。
英格玛
答案 0 :(得分:28)
尝试更多类似的东西:
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
实现没有使用图像mime部分上的Image.png
标头来解析Content-Location
引用(可能是因为它是相对URL)。
cid:
网址类型应该可以使用,但由于您需要知道每个图片附件的Content-Id
值,因此构建起来有点尴尬。
答案 1 :(得分:1)
仅供参考,现在可以在http://www.mimekit.net/docs/html/Creating-Messages.htm下找到它。原始答案中的链接已断开。