2 回答

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

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