首頁 >後端開發 >C++ >為什麼我的內線電子郵件映像顯示為紅色' X”,而不是圖片?

為什麼我的內線電子郵件映像顯示為紅色' X”,而不是圖片?

Patricia Arquette
Patricia Arquette原創
2025-01-25 01:36:10936瀏覽

Why is My Inline Email Image Showing as a Red 'X' Instead of the Picture?

解決郵件正文內嵌圖片顯示為紅色'X'的問題

將圖片嵌入郵件正文而非作為附件,能顯著提升郵件的視覺效果和使用者參與度。然而,內嵌圖片顯示為紅色'X'而不是預期內容的情況,實實令人沮喪。

問題描述

提供的程式碼嘗試使用LinkedResource插入內嵌圖片,但結果卻顯示圖片為附件,內聯部分缺失或顯示為紅色叉號。

一種有效的嵌入郵件正文圖片的方法是使用AlternateViewLinkedResource類,如下所示的更新代碼:

<code class="language-csharp">MailMessage mailWithImg = GetMailWithImg();
MySMTPClient.Send(mailWithImg); //* 请先设置好您的SMTPClient!

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

透過此方法,郵件用戶端將自動載入內嵌圖片並將其顯示在郵件正文中,從而解決紅色'X'的問題。

以上是為什麼我的內線電子郵件映像顯示為紅色' X”,而不是圖片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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