错误集合:
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>
注意加红色字体的配置