2 回答

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

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