2013/01/31

[WorkLog] Testing Gmail SMTP utilize SmtpClientTest : 使用 SmtpClientTest 測試 Gmail SMTP

Combo2
今天早上協助客戶排除電子報系統無法寄送 Email 的問題,處理的差不多之後發覺這系統的 SMTP 設定還是得加個可輸入帳號密碼去做寄件驗證的功能(對!本來沒做 = = 但其他用相同系統的專案也是活得好好的...),不然的話正式上線時問題會更大。

相關程式加上後,在我的本機(Win7 Pro 64-bit)試著用 smtp.gmail.com 加上我個人的帳號密碼去測試寄件驗證,嗯~一切正常,該寄送就寄送,該失敗就失敗。就繼續更新到測試機上(Win2008 64-bit),結果,寄送失敗 Orz


接著,拿我常用的一支六年前寫好的 SmtpClientTest 分別在兩台機器上做測試對照一下,
還真的是 Win7 可以寄,Win2008 不能寄...錯誤訊息「SMTP 伺服器需要安全連接,或用戶端未經驗證。伺服器回應為: 5.7.0 Must issue a STARTTLS command first.」
Win7 上的執行畫面(此為事後補圖,當時還沒加"啟用SSL"的選項)
Win2008 上的執行畫面(此為事後補圖,當時還沒加"啟用SSL"的選項)
Windows 2003 情況同 Windows 2008
其實錯誤訊息寫的很清楚,但我卻很笨的一直往防火牆的方向測試。
測試失敗了好幾次之後,終於想到,SmtpClient 裡面有個我從來沒用到的屬性叫做 EnableSsl,改一改我的 SmtpClientTest 後再去 Win2008 上試一次,果真可以寄了 Qrz

為了這個,我最後又去電子報系統補上了可設定啟用 SSL 的程式碼(碼的)

事情解決後,搜尋閒晃一下才發現 demoshop - 如何使用Gmail幫我們發信 老早就寫了「Gmial 的 smtp 必需要使用 SSL」... /__\

心酸之餘還是想著「那為什麼 Win7 上不開 EnableSsl 也可以寄?」,算了,有閒再來慢慢找原因吧。

SmtpClientTest 我把它放上 GitHub,雖然這樣的小程式應該一堆人都寫過,但如果你看得順眼的話,歡迎一起使用,那將是我的榮幸 ^___^

程式碼 - https://github.com/lozenlin/SmtpClientTest
執行檔 - 下載

沒有留言:

張貼留言