后缀手册说,你可以指定一个unverified_recipient_tempfail_action的动作。 但是我不能指定permit :
fatal: bad configuration: unverified_recipient_tempfail_action = permit
所以我唯一的select是拒绝,推迟或defer_if_permit?
我使用收件人地址validation为我的备用MX服务器,不应推迟传入邮件(因为如果我希望传入邮件被延迟以防万一主要发生故障,我根本没有一个备份MX,以便消息在传入的SMTP服务器上推迟)。
但是现在,当validationcaching已经过期或者caching还没有针对有问题的用户的条目时,它将延迟请求,从而破坏了备份MX服务器的目的。
那么我该如何做到这一点,以便小学时候,它会接受所有的邮件?
更新:
我应该补充一点,这个邮件服务器还可以作为由Plesk(控制面板)pipe理的Web托pipe服务器的传入邮件服务器。 Plesk没有垃圾邮件过滤(除了额外费用),所以我设置了另一个虚拟机,为该主机进行传入邮件和垃圾邮件过滤。 我使用收件人地址validation,以避免邮件填充反弹邮件(并正确拒绝请求,当用户不存在,不接受和反弹后,避免反向散射邮件)。
但是我也希望使用该接收邮件服务器作为某些域的备份MX(使用relay传输来避免传递循环)。 我想这些域名,我不需要reject_unverified_recipient。 将permit_mx_backup插入smtpd_recipient_restrictions (在reject_unverified_recipient之前)是否足够?
另一方面,我仍然认为在主要主机不closures期间使用收件人地址validation是有意义的:这避免了反向散射邮件(由于垃圾邮件发送给不存在的用户而邮件被邮件退回(假的)发件人)。
在任何情况下,无论是使用传入邮件服务器,都不可能创build收件人地图。 原因之一是用户在Plesk机器上dynamic创build电子邮件地址,另一个原因是我们备份MX的域名不在我们的控制之下,所以我们不知道哪些用户。
将unverified_recipient_tempfail_action设置为'permit'在function上与首先不执行未validation的收件人检查相同,因此您只需要从smtpd_recipient_restrictions中删除reject_unverified_recipient。
一种select是停止使用您的备份MX的地址validation,而是填充您的“relay_domains”和“relay_recipient_maps”,以便您的备份MX具有主服务器上所有有效地址的完整列表。 本质上来说,validation是试图为你dynamic地做到这一点,而缺点是你描述的确切情况。 它不知道它不知道什么,所以它推迟邮件。 完整的relay_recipient_maps消除了这种需求,并将提供您正在寻找的function。
备份MX服务器是如此严重的滥用,并导致这样的麻烦,我已经select了一个解决scheme外部的后缀 – 特别是我写了轻量级的守护进程,坐在我的辅助MX和主动监视主MX服务器 – 如果它可以谈主MX然后确保端口25在主机防火墙上被阻塞(从而“closures”次要端口),并且只在检测到主端口不可用时才打开端口。 我也确保他们有relay_recipient_maps安装在他们身上,以便他们在需要真正开启时具有完整的function。