我已经在 Ubuntu 12.04 64 位机器上配置了 sendmail。当我通过 perl 脚本发送电子邮件时,出现以下错误:
dsn=5.0.0, stat=Service unavailable
并且邮件未发送。我检查了另一台机器,它正在发送电子邮件并按设计运行 dsn=2.0.0, stat=sent
。
我怎样才能让它工作或更改设置以获得正确的功能?
日志是:
Sep 2 17:38:12 mail sendmail[5522]: r82C8CpE005522: from=root, size=148, class=0, nrcpts=1, msgid=<[email protected]>, relay=root@localhost
Sep 2 17:38:13 mail sm-mta[5523]: r82C8CtA005523: from=<[email protected]>, size=373, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Sep 2 17:38:13 mail sendmail[5522]: r82C8CpE005522: [email protected], ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=30148, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (r82C8CtA005523 Message accepted for delivery)
Sep 2 17:38:16 mail sm-mta[5525]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=DES-CBC3-SHA, bits=168/168
Sep 2 17:38:19 mail sm-mta[5525]: r82C8CtA005523: to=<[email protected]>, ctladdr=<[email protected]> (0/0), delay=00:00:06, xdelay=00:00:06, mailer=esmtp, pri=120373, relay=gmail-smtp-in.l.google.com. [173.194.79.27], dsn=5.0.0, stat=Service unavailable
Sep 2 17:38:19 mail sm-mta[5525]: r82C8CtA005523: r82C8JtA005525: DSN: Service unavailable
Sep 2 17:38:19 mail sm-mta[5525]: r82C8JtA005525: to=<[email protected]>, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30000, dsn=2.0.0, stat=Sent
等/邮件/访问是
Connect:localhost RELAY
GreetPause:localhost 0
ClientRate:localhost 0
ClientConn:localhost 0
Connect:127 RELAY
GreetPause:127 0
ClientRate:127 0
ClientConn:127 0
Connect:IPv6:::1 RELAY
GreetPause:IPv6:::1 0
ClientRate:IPv6:::1 0
ClientConn:IPv6:::1 0
# Defaults
GreetPause: 5000
ClientRate: 10
ClientConn: 10
Spam:postmaster@ FRIEND
Spam:abuse@ FRIEND
Spam:spam@ FRIEND
#Connect:0 REJECT whilst invalid, this also blocks sendmail -bs -Am
Connect:169.254 REJECT
Connect:192.0.2 REJECT
Connect:224 REJECT
Connect:255 REJECT
答案1
DSN 5 的“服务不可用”通常是由于扩展的 DSN 通知造成的。以下面为例:
220 banner-something-something
EHLO mailer.example.com
250-banner response
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-STARTTLS
MAIL FROM: [email protected]
250 2.1.0 Sender ok
RCPT TO: [email protected]
250 2.1.5 Recipient ok
DATA
550-5.7.1 [10.10.10.10] Mail from this IP has been blacklisted due to user
550-5.7.1 complaints. Please visit our website to get de-listed
554 5.0.0 Service unavailable
此时,发送客户端有责任对 DSN 执行某些操作。任何支持扩展 DSN 的内容都将创建包含所有 550 行的反弹。任何不支持它的东西(以及某些服务器上的大量日志记录)都只会显示 554 行。
此行显示正在生成的反弹 (r82C8JtA005525):
Sep 2 17:38:19 mail sm-mta[5525]: r82C8CtA005523: r82C8JtA005525: DSN: Service unavailable
我会立即检查的一件事是查看 sm-mta 上的 HELO 是否与基本 sendmail 相同。此时,sendmail 实例将认为存在邮件循环并拒绝该消息。
除此之外,请检查反弹或获取数据包捕获并通过wireshark运行它以准确查看来回传递的内容。
答案2
我曾经遇到过类似的情况。这里的问题出在这一行
Sep 2 17:38:19 mail sm-mta[5525]: r82C8CtA005523: to=<[email protected]>, ctladdr=<[email protected]> (0/0), delay=00:00:06, xdelay=00:00:06, mailer=esmtp, pri=120373, relay=gmail-smtp-in.l.google.com. [173.194.79.27], dsn=5.0.0, stat=Service unavailable
检查您是否能够使用终端发送电子邮件并记下错误日志中的差异。
这可能是 DNS 问题。确保邮件服务器指向 中的正确 DNS 服务器/etc/resolv.conf
,并且 DNS 服务器为其所服务的域返回正确的 MX 地址。
答案3
我知道这已经过时了,但对于可能遇到这个线程有同样问题的人来说,就像我刚刚遇到的那样,对我来说问题是谷歌阻止了“异常活动”。检查你的谷歌帐户这里并验证任何可疑登录(如果有)。
答案4
我正在使用 AWS SES 发送电子邮件。我收到此错误是因为发送电子邮件标头中的发件人电子邮件地址域未经 AWS 验证。请注意[电子邮件受保护]mail.log 中的“发件人”可能与电子邮件标头中的“发件人”不同。