log4net SmtpAppender 踩坑总结

错误集合:

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="512" />
    <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>

 注意加红色字体的配置

 

posted @ 2019-09-26 09:32  慧☆星  阅读(655)  评论(0编辑  收藏  举报