我如何直接调整 sendmail.cf(无需通过 m4 或 .mc 文件)以使 gmail(使用 SMTP AUTH)成为我的智能中继?注意:
对于 Comcast,我只需在 sendmail.cf 中输入“DSsmtp.comcast.net”,因为它们通过 IP 进行身份验证,不需要“SMTP AUTH”
我现在使用 Qwest,想使用 gmail 的 SMTP AUTH 服务器。我知道我可以使用 smtp.q.com,但我更喜欢 gmail 的。
我已确认可以使用 Gmail 的服务器发送电子邮件:
> openssl s_client -connect smtp.gmail.com:465
CONNECTED(00000003)
[... lots of certificate stuff ...]
220 mx.google.com ESMTP y7sm198769pbg.43
ehlo
250-mx.google.com at your service, [xxx.xxx.xxx.xxx]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH
250 ENHANCEDSTATUSCODES
auth plain AGNhcnRlci5iYXJyeQxxxxxxxxxx
235 2.7.0 Accepted
mail from:
250 2.1.0 OK y7sm198769pbg.43
rcpt to:
250 2.1.5 OK y7sm198769pbg.43
data
354 Go ahead y7sm198769pbg.43
Subject: Hi there
End of message
QUIT
DONE
基于上述内容,我需要对 sendmail 进行以下更改:
连接端口 465,而不是端口 25(尽管使用 STARTTLS 的端口 25 也可以工作)
使用 SSL 连接
在 ehlo 之后和 rcpt 之前发送“auth plain AGNhcnRlci5iYXJyeQxxxxxxxxxx”。
我知道调整 mc 文件并运行 m4 是正确的方法,但是我的 .cf 文件是手工定制的并且非常脆弱,所以我希望避免这种情况。
我意识到我可以让 sendmail 传送到 localhost:26,并在那里运行一个 Perl 脚本,使用 openssl 中继到 smtp.gmail.com:465(并按原样传递数据,“AUTH PLAIN”行除外),但这看起来很丑陋。
感谢其他解决方案。例如,如果有人知道免费的开放中继...
答案1
是否必须使用 Google 的 smtp 作为中继?如果不是,也许本文可以帮助。