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();
このメールを送信できますが、実際には画像がメールに添付されています。しかし、それはnot埋め込まれています。
私は何かが足りないのですか?それともこれはAppleメールのせいです(これは私がメールの受信に使用しているメールクライアントです)?
私はどんなアイデアにも感謝しています(そして、このような素晴らしいツールセットを提供してくれた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部分のImage.png
ヘッダーを使用してContent-Location
参照を解決しないことである可能性があります(おそらく相対URLであるため)。
cid:
URLタイプは機能するはずですが、各画像添付ファイルのContent-Id
値を知る必要があるため、作成するのが少し厄介です。
参考までに、これは http://www.mimekit.net/docs/html/Creating-Messages.htm nowの下にあります。元の回答のリンクが壊れています。