System.Net.Mail.SmtpException: 命令順序不正確。 服務器響應爲:Error: need EHLO and AUTH first !git
System.Net.Mail.SmtpException: 發送郵件失敗。 ---> System.IO.IOException: 沒法從傳輸鏈接中讀取數據: net_io_connectionclosed。github
通過閱讀SmtpAppender源代碼和反覆調試對比發現是缺乏了 authentication 的配置,包括值(None、Basic(須要帳號和密碼)、Ntlm),如今郵件服務器都支持SSL,因此還須要注意端口號的配置apache
發送騰訊郵件爲例服務器
<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>
注意加紅色字體的配置app