我正在尝试从我的程序发送一封包含MailDefinition类的电子邮件。当我嵌入一些简单的HTML时,它工作正常。我的代码如下:
MailDefinition md = new MailDefinition();
md.From = "me";
md.IsBodyHtml = true;
md.Subject = "Test of MailDefinition";
string body = System.IO.File.ReadAllText(@"C:\my.html");
MailMessage msg = md.CreateMailMessage("me@gmail.com", replacements, body, new System.Web.UI.Control());
NetworkCredential loginInfo = new NetworkCredential("me.mail", "password");
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
smtp.Credentials = loginInfo;
smtp.Send(msg);
就像我说的那样,似乎工作正常。但是当我尝试发送一个在浏览器中看起来很好的更复杂的html时,我看起来有点不同。我的HTML:
<body>
<table cellspacing="0" cellpadding="0" style="width: 640px;">
<tr>
<td colspan="3"><img src=srctop.png /></td>
</tr>
<tr>
<td colspan="3"><img src=srcbellowtop.png /></td>
</tr>
<tr>
<td><img src=srcleft.png /></td>
<td valign="top"><p>Lorem ipsum</p>
</td>
<td><img align="right" src=srcright.png style="height:675px;"/></td>
</tr>
<tr>
<td colspan=3><img src=srccontinuous.png /></td>
</tr>
<tr>
<td colspan=3><img src=srcfooter.png /></td>
</tr>
</table>
</body>
问题在于,在这封电子邮件中,我在顶部图片和bellowtop图片之间获得了一个空白区域。另外还有下方和左下方的白色空间。右图。 实际上所有图像之间都有空格:S
任何想法导致了什么以及如何解决它?
链接:在gmail中http://shrani.si/f/22/OJ/1kNF0emE/ingmail.png 在浏览器http://shrani.si/f/20/Eu/3PrPlUnw/inbrowser.png
中浏览器中的excpect元素:
table[Attributes Style] {
border-top-width: 0px;
border-right-width: 0px;
border-bottom-width: 0px;
border-left-width: 0px;
border-spacing: 0px;
}
user agent stylesheettable {
white-space: normal;
line-height: normal;
font-weight: normal;
font-size: medium;
font-variant: normal;
font-style: normal;
color: -webkit-text;
text-align: -webkit-auto;
}
user agent stylesheettable {
display: table;
border-collapse: separate;
border-spacing: 2px;
border-color: gray;
}
并在gmail中:
element.style {
width: 640px;
}
Matched CSS Rules
table[Attributes Style] {
border-top-width: 0px;
border-right-width: 0px;
border-bottom-width: 0px;
border-left-width: 0px;
border-spacing: 0px;
}
user agent stylesheettable {
display: table;
border-collapse: separate;
border-spacing: 2px;
border-color: gray;
}
答案 0 :(得分:2)
正如您已经澄清了Gmail中出现的问题,您可以做的最好的事情是使用您计划支持的各种浏览器的相关开发人员工具检查应用于电子邮件的HTML / CSS。
IE - How to use F12 Developer Tools to Debug your Webpages
Chrome - Chrome Developer Tools
Firefox - Firebug
这将允许您缩小问题范围并确定它是否是您自己的样式,或者是否由浏览器/客户端添加样式。
<强>更新强>
查看您的来源,问题似乎是您的图片被浏览器视为inline-block
,将其设置为display: block
应解决此问题。