解決郵件正文內嵌圖片顯示為紅色'X'的問題
將圖片嵌入郵件正文而非作為附件,能顯著提升郵件的視覺效果和使用者參與度。然而,內嵌圖片顯示為紅色'X'而不是預期內容的情況,實實令人沮喪。
問題描述
提供的程式碼嘗試使用LinkedResource
插入內嵌圖片,但結果卻顯示圖片為附件,內聯部分缺失或顯示為紅色叉號。
解
一種有效的嵌入郵件正文圖片的方法是使用AlternateView
和LinkedResource
類,如下所示的更新代碼:
<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中文網其他相關文章!