如何在nlog中发送彩色邮件

时间:2017-01-23 06:35:35

标签: c# html-email nlog

下面的配置是我的nlog设置,此设置发送邮件是正常的。

<target name="mail" xsi:type="Mail"
            smtpServer="SMTP SERVER"
            smtpPort="25"
            smtpAuthentication="None"   
            enableSsl="false"   
            from="email address"  
            to="email address"
            html="true"
            encoding="UTF-8"
            addNewLines="true"
            replaceNewlineWithBrTagInHtml ="true"
            subject="SYSTEM MESSAGE:${machinename} 於 ${shortdate} ${time} create ${level} message "
            header="========================================================================="
            body="${newline} 
            time:${longdate} ${newline}${newline}
            Log level:${level:uppercase=true} ${newline}${newline}
            Logger:${logger} ${newline}${newline}
            Source:${callsite:className=true} ${newline}${newline}
            Exception:${exception:format=type} ${newline}${newline}
            Error message:${message} ${newline}${newline}"     
            footer="========================================================================="
    />

</targets>

 <rules>
    <logger name="*" minlevel="Fatal" writeTo="mail" />
 </rules>

但我想发送彩色邮件。如何设置configure?

1 个答案:

答案 0 :(得分:1)

对于像电子邮件中的颜色这样的标记,您需要HTML邮件和CSS样式。

例如这个html:

<body>
    <b style="color:red">Bold and red text</b>
</body>

您需要将邮件目标上的html选项设置为true,并且在nlog.config中需要对html进行XML编码,因此结果:

<target name="mail" xsi:type="Mail"
            html="true"
            ...

            body="&lt;body&gt;
&lt;b style=&quot;color:red&quot;&gt;Bold and red text&lt;/b&gt;
&lt;/body&gt;"
    />

请注意,并非所有电子邮件客户端都支持所有CSS。参见CSS Support Guide for Email Clients