【发布时间】:2008-12-04 11:18:09
【问题描述】:
您好,我正在使用System.Net.Mail 发送一些 HTML 格式的电子邮件。
在电子邮件中插入 css 的正确方法是什么?
我知道我可以对每个项目应用格式,但我宁愿使用样式表..
编辑 我应该提到这是针对内部应用程序,我希望 99% 的用户使用 Outlook 或其他客户端,但从不使用 hotmail 或 gmail 等。
【问题讨论】:
标签: c# asp.net css system.net.mail
您好,我正在使用System.Net.Mail 发送一些 HTML 格式的电子邮件。
在电子邮件中插入 css 的正确方法是什么?
我知道我可以对每个项目应用格式,但我宁愿使用样式表..
编辑 我应该提到这是针对内部应用程序,我希望 99% 的用户使用 Outlook 或其他客户端,但从不使用 hotmail 或 gmail 等。
【问题讨论】:
标签: c# asp.net css system.net.mail
我一直发现严格使用 HTML 3.0 兼容标签和格式最适合所有电子邮件阅读器和提供商。
尽管如此,这里有一个CSS in Email article 可以回答您的问题,您会找到解决您的 css 问题的方法。
【讨论】:
电子邮件客户端没有以统一的方式使用 CSS,因此很难使用 CSS。这篇文章可以帮到你-http://www.alistapart.com/articles/cssemail/
【讨论】:
您可以将样式保存在普通的 CSS 文件中,使用 File.ReadAllText 加载它们并将它们插入到 HTML 字母模板中
string letter = File.ReadAllText(Request.PhysicalApplicationPath + "letter.html");
string style = File.ReadAllText(Request.PhysicalApplicationPath + "style.css");
MailMessage message = new MailMessage();
message.Body = letter.Replace("{STYLE}", style);
信函模板应在适当位置包含 {STYLE}
<head>
<title></title>
<style type="text/css">
{STYLE}
</style>
</head>
<body>
【讨论】:
This reference 是我发现的最好的一个,它可以看到在电子邮件中的 CSS 中什么是有效的。
老实说,CSS 支持是如此的脆弱,以至于你最好像上一张海报所说的那样坚持基本的 HTML(是的,这意味着使用过时的字体标签等)。尤其是当您提到 Outlook 时,它(至少是最新版本)是糟糕的 CSS 支持的最大罪魁祸首。
【讨论】: