VB.Net中HTML邮件Border Bottom不显示问题求助
解决VB.Net生成HTML邮件底部边框不显示的问题
我之前做HTML邮件的时候也踩过类似的坑,邮件客户端对CSS的兼容性真的让人头疼,结合你给出的代码片段,大概率是这几个原因导致底部边框不显示:
- 样式属性未加引号:你的
style属性值没有用引号包裹,很多邮件客户端(比如Outlook桌面版)对未加引号的内联样式解析会出问题。在VB.Net里要给双引号转义,用两个连续的双引号""来表示一个双引号。 - HTML结构不完整:代码片段里的
<tbody>、<tr>、<td>标签都没有闭合,邮件客户端对不完整的HTML容错性很低,必须确保标签成对闭合。 - 邮件客户端的CSS兼容性限制:比如Outlook不支持
min-height属性,而且有时候需要配合表格的border-collapse属性才能让td的边框正常渲染。
修正后的代码示例
' 构建完整的HTML结构,给style属性加上转义的双引号 mm.Body = mm.Body & "<tbody><tr>" ' 替换min-height为height(兼容Outlook),给style值加引号 mm.Body = mm.Body & "<td style=""height:65px;background-color:#000000;border-bottom:1px solid #4d4b48;"">" ' 这里添加<td>内的内容 mm.Body = mm.Body & "</td></tr></tbody>"
额外优化建议
- 给包裹这个tbody的
<table>标签添加border-collapse: collapse;的内联样式,确保边框不会出现间隙:
<table style=""border-collapse: collapse;width:100%;"">
- 如果需要自适应高度,用
padding替代min-height,比如padding: 20px 0;来保证单元格有足够高度。 - 写完HTML后,可以用邮件兼容性测试工具预览不同客户端的渲染效果,提前排查问题。
内容的提问来源于stack exchange,提问作者Lucifer Rodstark
相关产品推荐
相关产品推荐

