埋め込みメール画像のトラブルシューティング: コンテンツ ID によるアプローチ
電子メール本文に画像を直接埋め込むと、読みやすさとユーザー エンゲージメントが向上します。 これは、画像を一意のコンテンツ ID にリンクすることで実現されます。ただし、問題が発生し、画像が正しくレンダリングされず、壊れた赤い「X」として表示される場合があります。
解決策: コンテンツ ID を含む画像を正しく埋め込む
次のコードは、コンテンツ ID を使用して画像を埋め込むための堅牢なソリューションを提供します。
<code class="language-csharp">MailMessage mailWithImg = GetMailWithImg(); MySMTPClient.Send(mailWithImg); // Ensure MySMTPClient is properly configured beforehand private MailMessage GetMailWithImg() { MailMessage mail = new MailMessage(); mail.IsBodyHtml = true; mail.AlternateViews.Add(GetEmbeddedImage("c:/image.png")); mail.From = new MailAddress("yourAddress@yourDomain"); mail.To.Add("recipient@hisDomain"); mail.Subject = "yourSubject"; return mail; } private AlternateView GetEmbeddedImage(string filePath) { LinkedResource res = new LinkedResource(filePath); res.ContentId = Guid.NewGuid().ToString(); string htmlBody = $"<img src=\"cid:{res.ContentId}\">"; //Simplified HTML AlternateView alternateView = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html); alternateView.LinkedResources.Add(res); return alternateView; }</code>
説明:
この改良されたコード スニペットにより、適切な画像埋め込みが保証されます:
GetMailWithImg()
は電子メール メッセージを設定し、HTML 形式を有効にし、埋め込み画像を追加します。GetEmbeddedImage()
は画像の読み込みを処理し、Guid.NewGuid()
を介して一意のコンテンツ ID を割り当て、HTML <img>
タグを正しくフォーマットします。 簡略化および修正された HTML に注目してください。AlternateView
は正しく構築され、MailMessage
に追加されています。この方法の利点:
このアプローチでは、画像が電子メールに直接埋め込まれ、視覚的な魅力が向上し、個別の添付ファイルの必要性が回避されます。 これにより、よりクリーンでプロフェッショナルな電子メールのプレゼンテーションが実現します。
以上が埋め込まれたメール画像がレンダリングの代わりに赤いXとして表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。