日志框架NLog:使用SMTP协议以电子邮件发送日志消息

时间:2021-02-19 08:52:56 来源: UP技术控公众号


背景

NLog可以将日志输出到不同的媒介上,邮件是其中一个,通过邮件可以让我们第一时间收到信息。使用SMTP协议通过电子邮件发送日志消息。与FallbackGroup Target很好地结合在一起,以创建具有多个SMTP主机的后备。

配置语法

name="String"

header="Layout"

footer="Layout"

layout="Layout"

html="Boolean"

addNewLines="Boolean"

replaceNewlineWithBrTagInHtml="Boolean"

encoding="Encoding"

subject="Layout"

to="Layout"

bcc="Layout"

cc="Layout"

from="Layout"

body="Layout"

smtpUserName="Layout"

enableSsl="Boolean"

secureSocketOption="None|Auto|SslOnConnect|StartTls|StartTlsWhenAvailable"*

smtpPassword="Layout"

smtpAuthentication="Enum"

smtpServer="Layout"

smtpPort="Integer"

useSystemNetMailSettings="Boolean"

deliveryMethod="Enum"

pickupDirectoryLocation="String"

timeout="Integer"

skipCertificateValidation="Boolean"

priority="Layout"

/>

参数

常规选项

名称-目标名称。

布局选项

标头-标头。布局

页脚-页脚。布局

布局-要渲染的文本。需要布局。默认值:${message}${newline}。与身体属性相同

html-指示是否以HTML而不是纯文本形式发送消息。布尔默认值:false

addNewLines-指示是否在日志条目之间添加新行。布尔型

replaceNewlineWithBrTagInHtml -指示是否在身体换行字符应改为

标签。布尔默认值:false

编码-用于发送电子邮件的编码。编码默认值:UTF-8讯息选项

主题-邮件主题。需要布局。默认值:来自$ {machinename}上NLog的消息

到-收件人的电子邮件地址,用分号分隔(例如[email protected];[email protected])。布局。从NLog 4.0开始,不再需要此字段,但应定义To,BCC或CC,否则将引发异常。

密件抄送-用分号分隔的密件抄送电子邮件地址(例如[email protected];[email protected])。布局

cc-用分号分隔的CC电子邮件地址(例如[email protected];[email protected])。布局

来自-发件人的电子邮件地址(例如[email protected])。需要布局。

体-同布局属性。邮件消息正文(对于一封邮件中发送的每条日志消息重复)。布局默认值:${message}${newline}

优先级-邮件优先级。

当使用不带NLog.MailKit软件包的NLog时,请使用System.Net.Mail.MailPriority。Low,Normal,High。

使用版本最高为v3.1的Nlog + NLog.MailKit版本时,有效值为MimeKit.MessagePriority。NonUrgent,Normal,Urgent

NLog.MailKit V3.2和上述接受NonUrgent / Low,Normal,Urgent / High为了向后兼容MTP选项

smtpUserName-用于连接到SMTP服务器的用户名(在SmtpAuthentication设置为“基本”时使用)。布局

enableSsl-指示在与SMTP服务器通信时是否应使用SSL(安全套接字层)。布尔值默认值:False。注意:端口465不适用于SSL。见问题1226

secureSocketOption-仅在NLog.Mailkit 2.1+中。提供一种指定SSL和/或TLS加密的方式。默认为StartTlsWhenAvailable。选项:无,自动,SslOnConnect,StartTls和StartTlsWhenAvailable。如果enableSsl设置为true,将使用SslOnConnect

smtpPassword-用于针对SMTP服务器进行身份验证的密码(在SmtpAuthentication设置为“基本”时使用)。布局

smtpAuthentication -SMTP身份验证模式。默认值:无

可能的值:

基本-基本-用户名和密码。

无-无身份验证。

Ntlm -NTLM身份验证。

smtpServer-用于发送的SMTP服务器。需要布局。

smtpPort -SMTP服务器正在侦听的端口号。整数缺省值:25。注意:端口465不支持SSL。见问题1226

useSystemNetMailSettings-从system.net/mailSettings强制使用smtp配置。布尔默认值:False

超时-表示SMTP客户端超时(以毫秒为单位)。整数默认值:10000(10秒)

PickupDirectoryLocation-获取或设置应用程序用来保存要由本地SMTP服务器处理的邮件的文件夹(在NLog 4.2中引入)。

deliveryMethod-指定将如何处理传出电子邮件(在NLog 4.2中引入)。默认值:网络可能的值:

网络-电子邮件通过网络发送到SMTP服务器。

PickupDirectoryFromIis-电子邮件被复制到本地Internet信息服务(IIS)使用的提取目录中以进行传递。

SpecifiedPickupDirectory-将电子邮件复制到PickupDirectoryLocation属性指定的目录中,以供外部应用程序传递。

skipCertificateValidation-仅适用于NLog.MailKit。在NLog.MailKit 1.1中引入-跳过SSL认证检查

实现方式

1、vs添加引用NLog.MailKit

2、配置nlog

...

3、config配置邮箱信息

4、配置日志参数

name="mail"

returnToFirstOnSuccess="true">

name="mailserver1"

subject="Layout"

to="Layout"

from="Layout"

smtpServer="mx1.example.com"

smtpPort="Integer"

layout="Layout"/>

name="mailserver2"

subject="Layout"

to="Layout"

from="Layout"

smtpServer="mx2.example.com"

smtpPort="Integer"

layout="Layout"/>

最后就可以收到日志邮件啦。


关于我们 加入我们 广告服务 网站地图

All Rights Reserved, Copyright 2004-2020 www.ctocio.com.cn

如有意见请与我们联系 邮箱:5 53 13 8 [email protected]

豫ICP备20005723号    IT专家网 版权所有 

营业执照