C# 使用System.Net.Mail时格式化电子邮件的最佳方法是什么

C# 使用System.Net.Mail时格式化电子邮件的最佳方法是什么,c#,asp.net,css,system.net.mail,C#,Asp.net,Css,System.net.mail,嗨,我正在使用System.Net.Mail发送一些HTML格式的电子邮件 在电子邮件中插入css的正确方法是什么 我知道我可以对每个项目应用格式,但我宁愿使用样式表 编辑 我应该提到,这是针对内部应用程序的,我预计99%的用户会使用Outlook或其他客户端,但不会使用hotmail或gmail等。我一直发现,严格使用与HTML 3.0兼容的标记和格式对所有电子邮件读写器和提供商最为有效 尽管如此,这里有一个答案可以回答您的问题,您将找到解决您的css问题的方法。电子邮件客户端不以统一的方式使

嗨,我正在使用
System.Net.Mail
发送一些HTML格式的电子邮件

在电子邮件中插入css的正确方法是什么

我知道我可以对每个项目应用格式,但我宁愿使用样式表

编辑
我应该提到,这是针对内部应用程序的,我预计99%的用户会使用Outlook或其他客户端,但不会使用hotmail或gmail等。

我一直发现,严格使用与HTML 3.0兼容的标记和格式对所有电子邮件读写器和提供商最为有效


尽管如此,这里有一个答案可以回答您的问题,您将找到解决您的css问题的方法。

电子邮件客户端不以统一的方式使用css,因此很难使用css。这篇文章很有帮助-

是我发现的最好的一篇文章,当涉及到电子邮件中的CSS时,它可以帮助我了解什么是有效的


不过,老实说,CSS支持是如此脆弱,以至于你最好按照前面的海报所说的那样,坚持使用基本的HTML(是的,这意味着使用过时的字体标签等)。尤其是当您提到Outlook时,它(至少是最新版本)是最糟糕的CSS支持。您可以将样式保存在普通CSS文件中,加载样式并将其插入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>

{STYLE}

此方法不适用于gmail,因为gmail根本不接受。