具有HTML嵌入图像的MailMessage未在Windows 8电子邮件客户端中显示

时间:2015-06-22 21:51:14

标签: c# html email

我有一个C#应用程序,它使用包含嵌入图像(jpeg)的HTML格式(AlternateView)生成电子邮件。

可以在Windows上的Android,iOS,Outlook(2010)上正确查看电子邮件,但不能在Windows 8 / 8.1手机和平板电脑上的本机电子邮件客户端上查看(虽然它可以在Win 8.1平板电脑上运行的Outlook中找到)

然而,Win 8手机/平板电脑上的违规电子邮件客户端可以正确查看电子邮件,其中包含从PC上运行的嵌入式图像。

我唯一能找到的就是确保在LinkedResource上设置了ContentType - 我在构造函数中这样做: LinkedResource pic1 = new LinkedResource(imgPath,MediaTypeNames.Image.Jpeg);

以下代码。

有什么建议吗?

string picId = "Pic1-" + Guid.NewGuid().ToString();
string htmlBody = "<html><body><h1>Test Message</h1><img src=\"cid:" + picId + "\"></body></html>";
AlternateView avHtml = AlternateView.CreateAlternateViewFromString
  (htmlBody, null, MediaTypeNames.Text.Html);

// Create a LinkedResource object for each embedded image
LinkedResource pic1 = new LinkedResource(imgPath, MediaTypeNames.Image.Jpeg);

pic1.ContentId = picId;
avHtml.LinkedResources.Add(pic1);


// Add the alternate views instead of using MailMessage.Body
MailMessage m = new MailMessage();
m.AlternateViews.Add(avHtml);

// Address and send the message
m.From = new MailAddress(fromAddress, fromName);
m.To.Add(new MailAddress(toAddress)); 
m.Subject = subject;
SmtpClient client = new SmtpClient(AsbSmtpServer);

client.Send(m);

0 个答案:

没有答案