解决邮件正文内联图片显示为红色'X'的问题
将图片嵌入邮件正文而非作为附件,能显着提升邮件的视觉效果和用户参与度。然而,内联图片显示为红色'X'而不是预期内容的情况,着实令人沮丧。
问题描述
提供的代码尝试使用LinkedResource
插入内联图片,但结果却显示图片为附件,内联部分缺失或显示为红色叉号。
解决方案
一种有效的嵌入邮件正文图片的方法是使用AlternateView
和LinkedResource
类,如下所示的更新代码:
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; }
通过这种方法,邮件客户端将自动加载内联图片并将其显示在邮件正文中,从而解决红色'X'的问题。
以上是为什么我的内线电子邮件映像显示为红色' X”,而不是图片?的详细内容。更多信息请关注PHP中文网其他相关文章!