Postfix与relayhost – 中继访问被拒绝反弹

我build立了一个Postfix邮件服务器,发送邮件通过需要authentication的智能主机/中继主机发送。 这很好,内部客户可以通过这个中继主机发送给外国收件人。

但是,当一个本地的,不存在的用户的外部邮件到达服务器时,postfix尝试发送一个未送达通知给发件人。 这个邮件显然也通过relayhost发送,但是它失败了,错误554 5.7.1:中继访问被拒绝

这被logging到mail.log:

Nov 9 10:26:42 mail postfix/local[5051]: 6568CC1383: to=<[email protected]>, relay=local, delay=0.13, delays=0.02/0.02/0/0.09, dsn=5.1.1, status=bounced (unknown user: "test") Nov 9 10:26:42 mail postfix/cleanup[5045]: 85DF9BFECD: message-id=<[email protected]> Nov 9 10:26:42 mail postfix/qmgr[4912]: 85DF9BFECD: from=<>, size=3066, nrcpt=1 (queue active) Nov 9 10:26:42 mail postfix/bounce[5052]: 6568CC1383: sender non-delivery notification: 85DF9BFECD Nov 9 10:26:42 mail postfix/qmgr[4912]: 6568CC1383: removed Nov 9 10:26:43 mail postfix/smtp[5053]: 85DF9BFECD: to=<[email protected]>, relay=mail.provider.com[168.84.25.111]:587, delay=0.48, delays=0.02/0.01/0.26/0.18, dsn=5.7.1, status=bounced (host mail.provider.com[168.84.25.111] said: 554 5.7.1 <[email protected]>: Relay access denied (in reply to RCPT TO command)) Nov 9 10:26:43 mail postfix/qmgr[4912]: 85DF9BFECD: removed 

根据这个错误,我想在发送这些反弹时,postfix不会在relayhost上login。 为什么? 普通的外发邮件工作得很好。

这是我的main.cf如下所示: http ://pastebin.com/Uu1Dryxy当然/ etc / postfix / sasl_password包含relayhost的正确凭据。

提前致谢!

退回邮件故意没有发件人地址。 这是为了防止电子邮件循环。 发送没有地址的电子邮件已被用来发送垃圾邮件,有意或无意。 如果您的中继需要您在发送validation发件人之前提供凭证,则无法validation发件人的退回邮件。

您可以避免在接受消息之前popup消息而无法发送退回消息的问题。 收到邮件后popup消息是反向垃圾邮件的来源。 垃圾邮件通常具有伪造的源地址。 通过在反弹之前接受消息,您将发送伪造的地址而不是拒绝收到的消息。

避免反垃圾邮件的一种方法是使用BATV(退回地址标签validation)。 这会向返回path添加一个有符号的值。 只有合法的退回消息应该有这个签名,所以从互联网上的其他反弹可以忽略。

编辑:悄悄放下电子邮件到无效地址是不寻常的。 这可以防止接收系统在发送反向垃圾邮件时被归类为垃圾邮件源。 Postfix默认接受所有收件人,因此容易产生反向垃圾邮件。 如果可能,我会build议启用收件人verofication。 我更喜欢Exim,默认情况下会拒绝未知收件人的邮件。