我的其中一台邮件服务器出现了一个奇怪的问题(在 Cent OS 7 上运行 Postfix 3.2.4,来自 ghettoforge repo)。Postfix 似乎无法查找主机名(注意,这是一个新设置)。DNS 解析在主机上有效。我三次检查了这台服务器的 PTR-、MX- 和 A-Records,它们是正确的。但每当我尝试向服务器发送邮件时,它都会被拒绝:
NOQUEUE: reject: RCPT from unknown[x.x.x.x]: 450 4.7.25 Client host rejected: cannot find your hostname, [x.x.x.x]; from=<foobar> to=<[email protected]> proto=ESMTP helo=<backupmx.mydomain.com>
在这种情况下,备份邮件服务器会尝试将其邮件发送到新设置的主邮件服务器。在 helo 字段中,主机名正确显示。Postfix 似乎无法解析它。
我也尝试通过我的一个公共邮件帐户向该服务器发送邮件,但错误是一样的。
知道这里可能是什么问题吗?(注意:是的,我可以删除像reject_unknown_client_hostname或reject_unknown_sender_domain这样的内容,但我想避免垃圾邮件。(但是,当我删除我提到的两个时,我可以再次收到邮件))
谢谢你的帮助。
更新:
我决定删除这两个指令,以便进行更深入的故障排除。但情况变得更糟了。现在可以接收邮件了,但发送邮件就不一样了。当我尝试向我的一个 gmail 帐户发送邮件时,postfix 会抛出以下错误:
NOQUEUE: reject: RCPT from unknown[x.x.x.x]: 450 4.4.4 <[email protected]>: Recipient address rejected: Unable to look up mail exchanger host gmail-smtp-in.l.google.com: Device or resource busy; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<somehost>
那么 postfix 肯定不能查找主机名吗?我对此有点困惑。
答案1
所以,我自己修复了它:
我从 Debian 迁移到 Cent OS,犯了一个大错误,只复制了部分配置。结果发现 Debian 默认在 chroot 中运行 postfix,但 Cent OS 却不是这样。
所以我在 master.cf 中进行了更改,DNS 可以正常工作,我可以发送和接收邮件。
希望这对某人有帮助。