通过调整 sendmail.cf(不是 .mc)使 gmail AUTH SMTP 智能中继

通过调整 sendmail.cf(不是 .mc)使 gmail AUTH SMTP 智能中继

我如何直接调整 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 作为中继?如果不是,也许本文可以帮助。

相关内容