首頁 >後端開發 >C++ >為什麼我的內線電子郵件圖像顯示為紅色XS,我該如何修復?

為什麼我的內線電子郵件圖像顯示為紅色XS,我該如何修復?

Barbara Streisand
Barbara Streisand原創
2025-01-25 01:32:09784瀏覽

Why Are My Inline Email Images Showing as Red Xs, and How Can I Fix It?

對電子郵件中的內嵌影像進行故障排除

將圖像直接嵌入到電子郵件正文中可以增強可讀性,但有時這些圖像會顯示為紅色 X。本指南提供了解決方案。

這是嵌入圖像的正確程式碼範例:

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

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}\"></img>"; // Note the escaped quotes
    AlternateView alternateView = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html);
    alternateView.LinkedResources.Add(res);
    return alternateView;
}</code>

此改進的程式碼使用 AlternateViews 將圖片嵌入 HTML 電子郵件中。 唯一的 ContentId 被指派給 LinkedResource,在 HTML 的 img 標記的 src 屬性中引用。 AlternateView 確保不同電子郵件用戶端之間的相容性。 這種方法可以可靠地嵌入影像,防止紅色 X 問題。 請記得將 "c:/image.png""yourAddress@yourDomain""recipient@hisDomain" 替換為您的實際文件路徑和電子郵件地址。

以上是為什麼我的內線電子郵件圖像顯示為紅色XS,我該如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn