【发布时间】:2013-12-02 08:17:49
【问题描述】:
我正在向 MailMessage.Body 写入一些 HTML,并希望包含一些 CSS 来格式化字体、表格等。我无法正确形成最终的 HTML。
例如:
public static void CreateMessageWithMultipleViews(string server, string recipients)
{
// Create a message and set up the recipients.
MailMessage message = new MailMessage("jane@contoso.com","joe@contoso.com");
// Construct body as HTML.
message.Body = @"<html>
<head>
<style>
p{
font-family:""Trebuchet MS"", Arial, Helvetica, sans-serif;
font-size:0.9em;
text-align:left;
}
</style>
</head>
<body>
Some body text
</body>
</html>");
// Set this property so that HTML renders
message.IsBodyHtml = true;
// Send the message.
SmtpClient client = new SmtpClient(server);
client.Credentials = CredentialCache.DefaultNetworkCredentials;
try
{
client.Send(message);
}
catch (Exception ex)
{
Console.WriteLine("Exception caught: {0}",
ex.ToString() );
}
我的电子邮件收件人都使用 Outlook 2010,这完全符合预期。但我很难喜欢它——在最终的电子邮件来源中有重复的<html> 和<header> 标签:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<html>
<head>
<style>
[..truncated..]
所以我的问题是,如何使用 MailMessage 正确设置电子邮件的 HTML 源代码,使其格式正确?我在 MailMessage 类中看到了一个 'Header' 属性,但那是用于邮件标题,而不是 HTML 标题。我是否需要将 CSS 代码放在其他地方?
【问题讨论】:
标签: c# css .net email mailmessage