MimeKit:如何嵌入图像?

Ing*_*mar 16 c# mimekit

我正在使用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();
Run Code Online (Sandbox Code Playgroud)

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

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

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

英格玛

jst*_*ast 31

尝试更像这样的东西:

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 ();
Run Code Online (Sandbox Code Playgroud)

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

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

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


Fra*_*r23 5

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