我已将本地 sendmail 设置为智能主机,并尝试将所有传入的邮件转发到邮件服务器。
但是,每当我尝试向互联网邮件地址发送邮件时,都会出现以下错误:
ruleset=check_rcpt, arg1=<[email protected]>, relay=localhost [[UNIX: localhost]], reject=550 5.7.1 <[email protected]>... Relaying denied
我调试了 sendmail 配置文件并发现该规则失败,因为它将 client_addr 接收为 localhost 并且 client_resolve 解析为 NULL。并且 client_name 被设置为 client_name,它尝试将其解析为某个主机名。
我的主机名是 abc,它将其转换为 localhost.bc
check_rcpt的日志:
Relay_ok input: < email1 @ gmail . com >
rewrite: RHS $&{client_addr} => "localhost"
rewritten as: localhost
rewritten as: [ localhost ]
rewrite: RHS $&{client_resolve} => "(NULL)"
rewritten as: < >
rewrite: RHS $&{client_name} => "localhost"
rewritten as: < @ > localhost
rewritten as: < ? > localhost . b . c
rewritten as: < ? > localhost . b . c
Relay_ok returns: < ? > localhost . b . c
rewritten as: O $| < ? > localhost . b . c
rewritten as: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
Basic_check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
rewritten as: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
在 sendmail.cf 文件中,我已将 SMART_HOST 设置为我的邮件服务器,但它被设置为 localhost。
有人可以提供一些关于如何解决这个问题的指点吗?
答案1
看cf/README 中的“反垃圾邮件配置控制”Sendmail 分发版中的文件。
依我之见,它表明以下访问表条目应该可以解决您的问题。
/etc/mail/access 条目(文件需要使用 makemap 进行编译):
connect:[UNIX:localhost] RELAY
如果它不起作用(如您所报告的),那么尝试
connect:localhost RELAY