1.正确的DNS数据
QAA02454: ... we do not relay
QAA02454: ruleset=check_rcpt, arg1=,
relay=170-51-209.ipt.aol.com [152.170.51.209], reject=550
... we do not relay
QAA02454: from=, size=0, class=0, pri=0, nrcpts=0,
proto=SMTP, relay=170-51-209.ipt.aol.com [152.170.51.209]
a. 本地发送者到外部接收者(local sender to external recipient)
b. 外部发送者到本地接收者(external sender to local recipient)
==========
c. 何为本地发送者(local sender)?
当邮件服务器接收到一封从其它机器(如windows pc)发来的邮件时,它首先检查连接进来的主机的域名和 IP地址,注意: 决不是检查这封邮件的信封里的发送者地址(not based on the envelope MAIL FROM address!) (要了解一封邮件的全部信封头信息,参考(http://www.stopspam.org/email/headers/headers.html)) 如果你是拨号用户,IP地址当然是你拨到ISP所得到的动态IP地址,然后你的主机名/域名是由你的ISP对你的IP 地址作反向DNS解析出来的主机名/域名, 不过大多数ISP不作这个,因此,sendmail将仅仅记录你连接进来的IP地址,由此判断是否这个地址被允许relay mail.对sendmail 8.9.3来说,最通常的用来检查是否relay邮件的配置文件是/etc/mail/relay-domains,它能对IP地址或域名进行判断是否允许relay. 如果这一步不允许,再检查/etc/mail/access(它能被通过加FEATURE(access_db)到.mc文件再用m4生成/etc/sendmail.cf所激活 附:本文讨论的所有设置都是基于M4宏命令生成的/etc/sendmail.cf)
a. 如果Mail From:行有下面的参数,sendmail拒绝mail relay:
1.发送者的域名不能被解析。这个能用FEATURE(accept_unresolvable_domains)被禁止。
2.非全称的域名。能被用FEATURE(accept_unresolvable_domains)禁止。
3.与access map( /etc/mail/access)中的一项匹配。
域名:如spammer.domain reject
全称email地址:如spammer@domain reject
邮件地址的用户名部分:如spammer@ reject
或者不用'reject'用'error code error text'
spammer.domain "501 No e-mail from this domain."
spammer@domain "501 No e-mail from your address."
spammer@ "501 Get a real address."
甚至用DISCARD (接收并安静地删除掉,让发送者感觉象被接收)
b.检查接收者。
用FEATURE(blacklist_recipients)允许指定access map中不应该接收email的用户。
如:
badlocaluser 550 Mailbox disabled for this username
host.mydomain 550 That host does not accept mail
user@otherhost.mydomain 550 Mailbox disabled for this recipient