Asp.net System.NET Mail html在Outlook中未正确格式化

Asp.net System.NET Mail html在Outlook中未正确格式化,asp.net,.net,outlook,system.net.mail,Asp.net,.net,Outlook,System.net.mail,我有使用system.net.mail发送html格式电子邮件的代码。它们在基于web的电子邮件服务(GMail、Hotmail等)中按需要显示,但在Outlook中html,特别是图像,显示不正确 当您双击电子邮件以将其放大时,图像不会与div的其余部分一起展开。html如下所示: strHtml = "<html><body><div style='background-color:#EDF4F8;color:#fff;width:740px;'>"; s

我有使用system.net.mail发送html格式电子邮件的代码。它们在基于web的电子邮件服务(GMail、Hotmail等)中按需要显示,但在Outlook中html,特别是图像,显示不正确

当您双击电子邮件以将其放大时,图像不会与div的其余部分一起展开。html如下所示:

strHtml = "<html><body><div style='background-color:#EDF4F8;color:#fff;width:740px;'>";
strHtml += "<div style='width:100%;'><img src='cid:banner' width='100%'/></div><div"    
strHtml += "style='padding:40px;'>";
strHtml += "<div style='font-size:9pt;font-family:'Verdana',sans-serif;padding-top:7;'>";
strHtml += "</div>";
strHtml += "</div></div></body></html>";

SmtpClient client = new SmtpClient("xxx");
client.Credentials = new NetworkCredential("x", "x", "xxx");
MailMessage message = new MailMessage();
message.From = new MailAddress("xx");
message.To.Add("xx");
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(strHtml, null, "text/html");
LinkedResource r = new LinkedResource("c:\\blah.png", "image/png");
htmlView.LinkedResources.Add(r);
message.AlternateViews.Add(htmlView);
message.IsBodyHtml = true;
mailServer.Send(message);
strHtml=”“;
strHtml+=“”;
strHtml+=“”;
strHtml+=“”;
strHtml+=“”;
SmtpClient=新的SmtpClient(“xxx”);
client.Credentials=新的网络凭据(“x”、“x”、“xxx”);
MailMessage=新的MailMessage();
message.From=新邮件地址(“xx”);
信息。至。添加(“xx”);
AlternateView htmlView=AlternateView.createAlternateView-FromString(strHtml,null,“text/html”);
LinkedResource r=新的LinkedResource(“c:\\blah.png”,“image/png”);
htmlView.LinkedResources.Add(r);
message.AlternateViews.Add(htmlView);
message.IsBodyHtml=true;
mailServer.Send(message);
同样,这在GMail、Hotmail等应用程序中也很好,链接的资源图像会显示出来,所有内容都会显示出来,但Outlook不会。具体而言:

  • 在Outlook中,我上面设置的40像素的填充没有显示
  • 如果双击电子邮件在其自己的窗口中打开,则上面html中的横幅图像不会随电子邮件的其余部分一起展开。它在创建时保持其大小(740像素)。在所有其他电子邮件客户端中,图像会扩展div的宽度
  • 我错过了什么?为什么这会出现在其他客户机上,而不会出现在Outlook上?Outlook是否在电子邮件中嵌入了一些额外的东西,从而导致HTML的丢失?我知道,至少有一些html是有效的,因为我设置的背景色显示出来了,我已经摆弄了文本颜色和字体大小,它们都显示在Outlook中


    谢谢

    您缺少的是基于web的浏览器使用您的web浏览器渲染图像。Outlook不使用web浏览器,而是使用更有限的自定义HTML呈现引擎。对于其他不使用内置HTML呈现的基于应用程序的客户端,您可能会发现类似的问题(每个客户端的处理方式都略有不同)

    您可能会发现以下链接很有用:

    有一项服务可以在主要客户机上显示预览,但它不是免费的

    谢谢。这使我走上了正确的道路。显然,div不能在所有客户机上正确呈现,而表布局是一种方法。不found@Kiquenet-你仍然可以通过wayback机器找到它。