log4net SmtpAppender 踩坑總結

錯誤集合:

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

相關文章
相關標籤/搜索