如何configurationsendmail通过GMail(smtp.gmail.com)发送电子邮件,使用端口465或587?

我已经configurationsendmail通过我的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的更改的缩写。

我用我的凭据(我的GMail帐户的用户名和密码;编辑)创build了/etc/mail/authinfo

 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的防火墙规则。

如何configurationsendmail通过端口465或587发送电子邮件(使用STARTTLS) ?

将以下内容添加到sendmail.mc中:

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

这应该会让您的出站邮件由端口587上的Sendmail发送。

您还需要将sendmailconfiguration为执行TLS。 这有点超出了你的问题的范围,但是如果你不熟悉的话,你可以find很多体面的指南来介绍如何去做。