C# 电子邮件嵌入图像在 IE 中不显示

标签 c# .net image internet-explorer email

我正在使用 C#.Net 发送包含嵌入图像的 HTML 电子邮件。这些电子邮件在 Firefox 和 chrome 中运行良好,但图像不会在 Internet Explorer (IE) 中显示。我知道 IE 设置不会导致问题,因为使用 Blat 发送的嵌入式图像工作正常。我是否缺少导致此问题的某些选项,例如字符集?我的代码如下

 MailMessage msg = new MailMessage();
 MailAddress from = new MailAddress("Myemail@MyDomain", "My Name");
 msg.To.Add("Myemail@MyDomain");
 msg.From = from;
 msg.Subject = "My subjecct line";

 AlternateView htmlView = AlternateView.CreateAlternateViewFromString("This is a sample JPG embedded image<br><img src=\"cid:image1.jpg\">", null, "text/html");

 LinkedResource EmbeddedObjects1 = new LinkedResource("PathToImage\\image1.jpg");
 EmbeddedObjects1.ContentId = "image1.jpg";
 htmlView.LinkedResources.Add(EmbeddedObjects1);

msg.AlternateViews.Add(htmlView);
SmtpClient smtpclient = new SmtpClient("mailhost.domain.com", PortNumber);
smtpclient.Send(msg);

最佳答案

如果您使用 ContentType 结合 Coding Gorilla 的 guid 作为 content-id 的想法创建 LinkedResource,可能会有所帮助:

Guid contentId = Guid.NewGuid().ToString();

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(
  "This is a sample JPG embedded image<br><img src=\"cid:" + contentId + "\">", 
  null, "text/html");

ContentType ct = new ContentType(MediaTypeNames.Image.Jpeg);

LinkedResource EmbeddedObjects1 = new LinkedResource("PathToImage\\image1.jpg", ct);
EmbeddedObjects1.ContentId = contentId;
htmlView.LinkedResources.Add(EmbeddedObjects1);

关于C# 电子邮件嵌入图像在 IE 中不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6795146/

相关文章:

c# - 使用 "using"关键字时会处理什么

c# - .NET 程序集 : understanding type visibility

.net - 使用.NET自动更新Word文档的目录部分?

jQuery 插件可以实现纽约时报风格的疯狂悬停缩放?

android - 在将照片上传到服务器之前减小 Android 中的照片大小

仅 css 在屏幕尺寸变化时调整图像大小的灵活布局

c# - 其他项目中的 Web Api Controller ,路由属性不起作用

c# - 可以登录本地组织

c# - 重新定义 C# 关键字?

c# - 普通代码的表达式树