gpt4 book ai didi

c# - 如何在 MailMessage 中正确添加 CSS

转载 作者:行者123 更新时间:2023-11-30 12:09:51 25 4
gpt4 key购买 nike

我正在将一些 HTML 写入 MailMessage.Body,并希望包含一些 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's 属性,但这是针对邮件 header 的,而不是 HTML header 。我是否需要将 CSS 代码放在其他地方?

最佳答案

请记住,我只需要在 Outlook 2010 中正确呈现,我将删除显式 <html><header>标记并允许 MailMessage 处理这些标记:

message.Body = @"
<style>
<!--
p{
[truncating the rest...]
}
--->
</style>";

当我在 Outlook 中收到电子邮件时,这是用于呈现的源格式,它和以前一样不合逻辑(为了便于阅读,我更正了缩进):

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head>
<style>
[css...]
</style>
<body>
[content...]
</body>
</html>

CSS 仍未包含在标记中,但此时我感到幸运的是 HTML 在 Outlook 客户端中正确呈现。

关于c# - 如何在 MailMessage 中正确添加 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com