exim:重定向除部分本地部分之外的所有部分

exim:重定向除部分本地部分之外的所有部分

在我的服务器上,我使用此路由器实现重定向

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]

这似乎是记录的行为(而不仅仅是一个幸运的实现细节):

如果查找失败,则本例中的扩展字符串为空。当数据扩展导致空字符串时,路由器会拒绝。强制扩展失败也会导致路由器拒绝;其他扩展失败会导致交付延迟。来源

相关内容