首页 > 后端开发 > C++ > 为什么我的内线电子邮件映像显示为红色' X”,而不是图片?

为什么我的内线电子邮件映像显示为红色' X”,而不是图片?

Patricia Arquette
发布: 2025-01-25 01:36:10
原创
1002 人浏览过

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

解决邮件正文内联图片显示为红色'X'的问题

将图片嵌入邮件正文而非作为附件,能显着提升邮件的视觉效果和用户参与度。然而,内联图片显示为红色'X'而不是预期内容的情况,着实令人沮丧。

问题描述

提供的代码尝试使用LinkedResource插入内联图片,但结果却显示图片为附件,内联部分缺失或显示为红色叉号。

解决方案

一种有效的嵌入邮件正文图片的方法是使用AlternateViewLinkedResource类,如下所示的更新代码:

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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板