在做一个邮件发送功能的时候遇到问题。邮件内容是一个html页面。单独显示这个页面样式是对的。把这个文件发送到邮箱里面就显示不正确。检查带发现。邮箱直接把外连接样式表和<style></style>这样的样式过滤掉了。固导致显示不正确。
解决办法如下:
https://github.com/milkshakesoftware/PreMailer.Net
点击上面这个地址下载 PreMailer.Net-master.zip 这个包。用Visual Studio打开。编译通过。然后把bin 目录下面的PreMailer.Net.dll 和 CsQuery.dll这两个文件拷贝到你的项目里面的bin目录下面。然后添加引用。
实现下面代码:
string html=File.ReadAllText(html文件的路径); //过没有文件,可以省略这一步。
var resultHtml=PreMailer.MoveCssInline(html); 这一步就是把样式表转化成行内样式。
string useHtml=resultHtml.Html(); 这一步就得到了可以在邮箱里面正常显示的hrml了。