在我的服务器上,我使用此路由器实现重定向
virtual_aliases:
driver = redirect
allow_defer
allow_fail
data = ${lookup{$local_part@$domain}wildlsearch*@{/etc/vhosts/forwards}}
domains = /etc/vhosts/maildomains
qualify_preserve_domain
retry_use_local_part
/etc/vhosts/forwards
以及类似的条目
[email protected]: [email protected]
^.*@example2.com: [email protected]
这很正常,符合预期。现在我的客户要求我将第二行改为“转发所有,但以下情况除外[电子邮件保护]和[电子邮件保护]”,因为这些会吸引太多垃圾邮件。
有没有一种好的方法可以在内部实现这种逻辑/etc/vhosts/forwards
,或者我必须添加另一个黑名单路由器?
答案1
您可以在别名文件 /etc/vhosts/forwards 中选择性地退回电子邮件,或者让它消失。请参阅清单中特殊项目的记录,又名别名文件(截至 2015 年 10 月 14 日的第 4 和第 5 项)。
# efficiently and silently discard this email after accepting it
[email protected]: :blackhole:
# bounce this email. message is optional.
[email protected]: :fail: User no longer available
# forward the rest
[email protected]: [email protected]
^.*@example2.com: [email protected]
答案2
只需向路由器添加一个条件:
virtual_aliases:
driver = redirect
allow_defer
allow_fail
condition = ${lookup{$local_part@$domain}wildlsearch*@{/etc/vhosts/stoplist}{no}{yes}}
data = ${lookup{$local_part@$domain}wildlsearch*@{/etc/vhosts/forwards}}
domains = /etc/vhosts/maildomains
qualify_preserve_domain
retry_use_local_part
如果地址已列出,/etc/vhosts/stoplist
则不会执行重定向。
答案3
看来在forwards
文件中可以通过不指定要转发的地址来实现这一点:
[email protected]: [email protected]
[email protected]:
[email protected]:
^.*@example2.com: [email protected]
这似乎是记录的行为(而不仅仅是一个幸运的实现细节):
如果查找失败,则本例中的扩展字符串为空。当数据扩展导致空字符串时,路由器会拒绝。强制扩展失败也会导致路由器拒绝;其他扩展失败会导致交付延迟。来源