错误集合:

System.Net.Mail.SmtpException: 命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !

System.Net.Mail.SmtpException: 发送邮件失败。 ---> System.IO.IOException: 无法从传输连接中读取数据: net_io_connectionclosed。

经过阅读SmtpAppender源代码和反复调试对比发现是缺少了 authentication 的配置,包括值(None、Basic(需要账号和密码)、Ntlm),现在邮件服务器都支持SSL,所以还需要注意端口号的配置

发送腾讯邮件为例

  <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="目标邮件@xxx.com" />
<from value="发送邮件@xxx.com" />
<username value="发送邮件@xxx.com"/>
<subject value="主体" />
<password value="密码"/>
<authentication value="Basic" />
<smtpHost value="smtp.exmail.qq.com" />
<bufferSize value="" />
<lossy value="true" />
<enableSsl value="true" />
<port value="587"/>
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
</layout>
</appender>

注意加红色字体的配置

05-23 00:55