MimeKit:如何嵌入图像?
MimeKit: How to embed images?
我正在使用 MailKit/MimeKit 1.2.7(最新的 NuGet 版本)。
我尝试按照 API documentation(第 "Using a 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 提供了如此出色的工具集!!)。
英格玛
尝试更像这样的东西:
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 部分上的 Content-Location
header 解析 Image.png
引用(可能是因为它是相对 URL).
虽然 cid:
URL-type 应该可以工作,但是构造起来有点笨拙,因为您需要知道每个图像附件的 Content-Id
值。
仅供参考,现在可以在http://www.mimekit.net/docs/html/Creating-Messages.htm下找到。原答案中的 link 已损坏。
我正在使用 MailKit/MimeKit 1.2.7(最新的 NuGet 版本)。
我尝试按照 API documentation(第 "Using a 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 提供了如此出色的工具集!!)。
英格玛
尝试更像这样的东西:
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 部分上的 Content-Location
header 解析 Image.png
引用(可能是因为它是相对 URL).
虽然 cid:
URL-type 应该可以工作,但是构造起来有点笨拙,因为您需要知道每个图像附件的 Content-Id
值。
仅供参考,现在可以在http://www.mimekit.net/docs/html/Creating-Messages.htm下找到。原答案中的 link 已损坏。