sendmail 无法发送到特定域,并显示“stat User unknown”

sendmail 无法发送到特定域,并显示“stat User unknown”

首先,我搜索了很多,找到的最接近的情况是sendmail 不会将电子邮件发送到特定域电子邮件地址,尝试使用提出的解决方案,但没有一个对我有用。

我在 Amazon EC2 实例上的 Ubuntu 14.04 上设置了 sendmail。我可以向 gmail、hotmail 等发送电子邮件。但是对于某些服务器,我无法发送电子邮件,并且会收到dsn=5.1.1, stat=User unknown,但收件人存在。

以上内容摘自/etc/log/mail.log

成功案例(发送至 gmail.com)

Oct 14 12:58:34 localhost sendmail[14297]: s9EFwYfI014297: [email protected], delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30402, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (s9EFwYZH014298 Message accepted for delivery)
Oct 14 12:58:34 localhost sm-mta[14300]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=ECDHE-RSA-AES128-GCM-SHA256,  bits=128/128
Oct 14 12:58:34 localhost sm-mta[14300]: s9EFwYZH014298: to=<[email protected]>, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=120677, relay=gmail-smtp-in.l.google.com. [74.125.22.26], dsn=2.0.0, stat=Sent (OK 1413302456 f80si4956341qge.106 - gsmtp)

失败案例

Oct 14 13:11:39 localhost sendmail[23047]: s9EGBdn7023047: [email protected], delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30399, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (s9EGBdYs023048 Message accepted for delivery)
Oct 14 13:11:39 localhost sm-mta[23050]: STARTTLS=client, relay=mail.broken-domain.com., version=TLSv1/SSLv3, verify=FAIL, cipher=DHE-RSA-AES256-GCM-SHA384, bits=256/256
Oct 14 13:11:39 localhost sm-mta[23050]: s9EGBdYs023048: to=<[email protected]>, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=120674, relay=broken-domain.com. [1.2.3.4], dsn=5.1.1, stat=User unknown

附加信息:

  • 尝试使用 telnet 连接服务器telnet 1.2.3.4 25并成功连接。
  • 我只有 CPanel 访问权限brokendomain.com,所以我很确定目标电子邮件地址存在。
  • 源(EC2 实例)是子域(dev.brokenserver.com)通过 CNAME 记录解析到公共 DNS

到现在为止,我还是无法弄清楚为什么会出现此错误。非常感谢您的帮助。

注意:为了保护隐私,我更改了非公开的电子邮件、域名和 IP :)

更新

我运行了 Eugene 的回答中的命令(命令 - 状态):

  • 远程登录-200
  • 直升机-250
  • 邮件来自 - 250
  • RCPT TO - 550

中继器确实告知该用户不存在。

调查目标服务器后我找到了解决方案:

子域名 dev.brokenserver.com 仍留在目标服务器中,将其视为本地地址,因此服务器阻止了访问。

通过 CPanel 删除子域名解决了该问题。

答案1

看起来您的目标中继告诉您该用户不存在。您可以轻松模拟并调查这是否属实:

telnet 1.2.3.4 25
[relay will say something like 220 broken-domain.com ESMTP Sendmail 8.14.9/8.14.5; Thu, 16 Oct 2014 17:14:14 +0600 (PST)]
HELO dev.brokenserver.com
[let's hope relay will answer with a 250]
MAIL FROM: [email protected]
[let's hope again this will be enough to get a 250 from remote relay]
RCPT TO: [email protected]
[and _here_ you will get the result about whether user exists or not]

如果我是对的,那么您将必须调查远程中继上的用户可见性问题。

相关内容