2 回答

TA貢獻1744條經驗 獲得超4個贊
請查看此處的“配置選項”部分https://support.google.com/a/answer/176600?hl=en。它提到 Gmail 在端口 465 上對 SMTP 服務器使用 SSL,對端口 587 使用 TLS。要解決您的問題,您可以使用端口 587,因為該函數在內部進行調用,smtp.SendMail()
使用net.Dial()
純 TCP 來發送郵件流量,并調用在此過程中稍后啟動 STARTTLS。
如果您想使用端口 465,這里有一個很好的示例,適用于使用 SSL 發送電子郵件。
https://gist.github.com/chrisgillis/10888032
正如上面鏈接中提到的,這兩種方法之間的主要區別在于,在 SSL 中,TLS 連接從一開始就建立,而如果您使用端口 587,則連接通過純 TCP 啟動,無需加密。

TA貢獻1802條經驗 獲得超6個贊
我也遇到了這個問題,go-smtp SendMail 在客戶端問候中使用“localhost”。我相信 gmail 服務器可以拒絕“EHLO localhost”作為可能的 DOS 攻擊。在內部,您會看到 EHLO 的第一個錯誤響應是“稍后重試”,然后是 EHLO 重試時的 EOF。使用更獨特的名稱來表示客戶端問候,似乎不會被拒絕。但是,這意味著您不能依賴預設的“SendMail”功能來中繼 smtp.gmail.com
- 2 回答
- 0 關注
- 942 瀏覽
添加回答
舉報