Exim - 如何使用万能路由器仅允许白名单收件人?

Exim - 如何使用万能路由器仅允许白名单收件人?

我正在使用带有 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

相关内容