ホームページ >バックエンド開発 >C++ >C# を使用して電子メールの本文に画像を直接埋め込むにはどうすればよいですか?

C# を使用して電子メールの本文に画像を直接埋め込むにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-25 01:27:11467ブラウズ

How Can I Embed Images Directly into the Body of an Email Using C#?

c

の電子メールボディに画像を埋め込む

C#を使用して電子メールの本文内に画像を直接埋め込むには、標準の電子メール添付ファイルがプレースホルダーとしてのみ表示されるため、特定のアプローチが必要です。 この洗練されたc#コードは、画像を正しく埋め込む方法を示しています:

<code class="language-csharp">MailMessage mailWithImg = GetMailWithImg();
MySMTPClient.Send(mailWithImg); // Ensure MySMTPClient is properly configured

private MailMessage GetMailWithImg() {
    MailMessage mail = new MailMessage();
    mail.IsBodyHtml = true;
    mail.AlternateViews.Add(GetEmbeddedImage("c:/image.png")); // Replace with your image path
    mail.From = new MailAddress("yourAddress@yourDomain"); // Replace with your email address
    mail.To.Add("recipient@hisDomain"); // Replace with recipient's email address
    mail.Subject = "yourSubject"; // Replace with your email subject
    return mail;
}

private AlternateView GetEmbeddedImage(String filePath) {
    LinkedResource res = new LinkedResource(filePath);
    res.ContentId = Guid.NewGuid().ToString();
    string htmlBody = $"<img src=\"cid:{res.ContentId}\" />"; // Note the escaped quotes
    AlternateView alternateView = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html);
    alternateView.LinkedResources.Add(res);
    return alternateView;
}</code>
このコードは、

およびAlternateViewクラスを活用します。 LinkedResource画像ファイルを一意のLinkedResourceに関連付けます。 HTML内のHTMLは、これを参照し、画像がインラインで表示されるようにします。 この方法は、添付の画像でよく見られる一般的な「赤X」プレースホルダーを防ぎます。 プレースホルダーの値を実際のデータに置き換えることを忘れないでください

以上がC# を使用して電子メールの本文に画像を直接埋め込むにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。