Email

如何配置 sendmail 使用埠 465 或 587 通過 GMail (smtp.gmail.com) 發送電子郵件?

  • December 2, 2009

我已將 sendmail 配置為通過我的 GMail (Google Mail) 帳戶發送電子郵件,即通過smtp.gmail.com編輯/etc/mail/sendmail.mc和重新生成 sendmail.cf:

-dnl define(`SMART_HOST',`smtp.your.provider')
+define(`SMART_HOST',`[smtp.gmail.com]')

-dnl define(`confAUTH_OPTIONS', `A p')dnl
+define(`confAUTH_OPTIONS', `A p')dnl

-dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
-dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
+FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl

-dnl MASQUERADE_AS(`mydomain.com')dnl
+MASQUERADE_AS(`gmail.com')dnl

以上是我對 sendmail.mc 所做更改的縮短差異。

我已/etc/mail/authinfo使用我的憑據(我的 GMail 帳戶的使用者名和密碼;已編輯)創建:

AuthInfo:smtp.gmail.com "U:user@gmail.com" "P:password" "M:PLAIN"
AuthInfo: "U:user@gmail.com" "P:password" "M:PLAIN"

但是這種設置使“sendmail”使用 smtp.gmail.com 通過標準 SMTP 埠 25 發送電子郵件……但最近我的 ISP 添加了防火牆規則,阻止所有流量到(不安全)埠 25。

如何配置 sendmail 通過埠 465 或 587(使用 STARTTLS)發送電子郵件?

將以下內容添加到您的 sendmail.mc:

define(`RELAY_MAILER_ARGS', `TCP $h 587')
define(`ESMTP_MAILER_ARGS’, `TCP $h 587′)

這應該讓您的出站郵件由 Sendmail 在埠 587 上發送。

您還需要將 sendmail 配置為執行 TLS。這有點超出您的問題範圍,但如果您不熟悉,您可以找到很多關於如何使用 Google 進行操作的體面指南。

引用自:https://serverfault.com/questions/90161