為了替各個系統建立測試 EMail 發信的環境,我使用 hMailServer 建立收發 EMail 伺服器,並用 openssl 建立自簽憑證供 SSL 使用。
使用 .NET 8 的 SmtpClient 測試發信,測 25 port 發信不啟用 SSL (明文通道發信)-理所當然地成功,但測發信到 465 port + 啟用 SSL/TLS 就是一直 Timeout,找遍了 EMail 伺服器設置、SSL 證書及 TLS 設定都找不到任何原因...又噴了一個下午。
接近下班時間,趕快往下測 587 port + StartTLS 發信並啟用SSL,結果一下就成功,證明下午的查各種設置、設定都搞錯方向了,問題就是「EMail 伺服器啟用 SSL/TLS」!
google「.net smtp client tls」果然在SMTP and Implicit TLS from a C# .NET application 找到了正解!
結論就是 .NET SmtpClient:
本文同步發表至我的Blog
受害者+1,納悶的是都2024年為啥還沒有技援TLS功能,而 StartTLS 選項 google 後似乎是會先確認通訊是否支援 TLS ,若無則仍以明文傳輸,結果還是一樣不對信件做加密。