编程语言
首页 > 编程语言> > c# – 如何在MailMessage中正确添加CSS

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

作者:互联网

我正在向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代码放在其他地方?

解决方法:

请记住,我只需要在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,css,net,email,mailmessage
来源: https://codeday.me/bug/20190629/1324393.html