![Sendmail - 如何中继/发送电子邮件?(503 错误:未授权,使用 AUTH)](https://linux22.com/image/653098/Sendmail%20-%20%E5%A6%82%E4%BD%95%E4%B8%AD%E7%BB%A7%2F%E5%8F%91%E9%80%81%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%EF%BC%9F%EF%BC%88503%20%E9%94%99%E8%AF%AF%EF%BC%9A%E6%9C%AA%E6%8E%88%E6%9D%83%EF%BC%8C%E4%BD%BF%E7%94%A8%20AUTH%EF%BC%89.png)
我一直在遵循如何使用智能主机 ssrs.reachmail.net 设置 sendmail,但是我似乎无法成功地将电子邮件从我的服务器发送到我的 gmail 帐户。
我觉得我误解了一些事情,下一步该怎么办?我需要创建一个电子邮件服务器来使用电子邮件发件人电子邮件吗?[电子邮件保护]?我假设这就是 sendmail 所做的?
以下是测试电子邮件
root@example:/etc/mail/auth# sendmail -Am -v -t
to: [email protected]
From: [email protected]
Subject: Test
Test
[email protected]... Connecting to ssrs.reachmail.net. port 587 via relay...
220 ssrs.reachmail.net rmsmtp 3.1.0a c8a9c89b7f
>>> EHLO example.duckdns.org
250-EASYSMTP
250-8BITMIME
250-SIZE 102400000
250-AUTH PLAIN LOGIN
250 STARTTLS
>>> STARTTLS
220 go ahead
>>> EHLO example.duckdns.org
250-EASYSMTP
250-8BITMIME
250-SIZE 102400000
250-AUTH PLAIN LOGIN
250 STARTTLS
>>> MAIL From:<[email protected]> SIZE=70
503 error: not authorized, use AUTH
root... Connecting to local...
root... Sent
Closing connection to ssrs.reachmail.net.
>>> QUIT
221 bye
这是在 /var/log/mail.log 中
Mar 1 22:25:35 example sendmail[4733]: t226OaIL004733: from=root, size=70, class=0, nrcpts=1, msgid=<[email protected]>, relay=root@localhost
Mar 1 22:25:36 example sendmail[4733]: STARTTLS=client, relay=ssrs.reachmail.net., version=TLSv1/SSLv3, verify=FAIL, cipher=AES256-SHA, bits=256/256
Mar 1 22:25:36 example sendmail[4733]: t226OaIL004733: [email protected], ctladdr=pi (1000/1000), delay=00:01:00, xdelay=00:00:01, mailer=relay, pri=30070, relay=ssrs.reachmail.net. [66.251.253.157], dsn=5.0.0, stat=Service unavailable
Mar 1 22:25:36 example sendmail[4733]: t226OaIL004733: t226OaIM004733: DSN: Service unavailable
Mar 1 22:25:36 example sendmail[4733]: t226OaIM004733: to=root, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30000, dsn=2.0.0, stat=Sent
答案1
问题在于您SMART_HOST
不信任您的服务器可以将邮件从任意发件人发送到任意收件人,并且认为您是一个普通的中继器,因此拒绝您。
您可以控制ssrs.reachmail.net
,在这种情况下,您需要通过在(例如)中列出其 IP 地址/etc/mail/access
并重新制作 DB 文件来告诉它您的服务器有权发送邮件。或者您不控制它,在这种情况下,您需要告诉服务器的 sendmail 它应该按照错误消息所述进行操作并使用 进行SMTP AUTH
身份验证,ssrs.reachmail.net
然后再尝试从它转发邮件。