我正在使用带有 catchall 路由器的 exim4 将邮件转发到 java 进程。java 进程用户是有效收件人。我试图通过在 exim 中将用户列入白名单来减少路由到 java 进程的垃圾邮件数量。
我已经在我的配置文件中尝试过这个:
acl_check_rcpt:
deny message = invalid recipient
domains = thedomain.com
recipients = !/etc/exim4/recipients_whitelist
以及大约十亿个其他事情。我已经验证过,如果我将条件重写为 justdeny
或消息被拒绝,但我无法使白名单方法起作用。我也尝试过反转逻辑来接受白名单用户,但这也不起作用。deny recipients = [email protected]
这是我的路由器:
outer_catchall:
driver = accept
transport = dev_null_transport
答案1
这对我有用:
acl_check_rcpt:
discard
!recipients = /etc/exim4/recipients_whitelist
/etc/exim4/recipients_whitelist 中每行列出允许接收者的邮件地址。此文件为白名单。
请注意收件人前的感叹号。
答案2
如果某些收件人被列入白名单,而其他收件人被拒绝 - 那就无法解决所有问题。使用如下所示的路由器,让标准 ACL 收件人验证完成工作。
outer_java:
driver = accept
domains = thedomain.com
local_parts = /etc/exim4/java_local_parts
transport = java_pipe