smtp.gmail.com
我已通过编辑/etc/mail/sendmail.mc
和重新生成 sendmail.cf将 sendmail 配置为通过我的 GMail (Google Mail) 帐户发送电子邮件,即通过:
-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:[email protected]" "P:password" "M:PLAIN"
AuthInfo: "U:[email protected]" "P:password" "M:PLAIN"
但是这种设置使得“sendmail”使用 smtp.gmail.com 通过标准 SMTP 端口 25 发送电子邮件...但最近我的 ISP 添加了防火墙规则,阻止了所有到(不安全的)端口 25 的流量。
如何配置 sendmail 通过以下方式发送电子邮件端口 465 或 587(使用 STARTTLS)?
答案1
将以下内容添加到您的 sendmail.mc:
define(`RELAY_MAILER_ARGS', `TCP $h 587')
define(`ESMTP_MAILER_ARGS’, `TCP $h 587′)
这样您的出站邮件就会通过 Sendmail 的 587 端口发送。
您还需要将 sendmail 配置为执行 TLS。这有点超出您的问题范围,但如果您不熟悉,您可以使用 Google 找到很多有关如何执行此操作的优秀指南。