Exim – 我如何只允许使用一个Catchall路由器的白名单收件人?

我用一个catchall路由器将exim4转发到一个java进程。 java进程用户是有效的收件人。 我试图通过在exim中列入白名单来减less路由到java进程的垃圾邮件数量。

我已经在我的configuration文件中试过这个:

acl_check_rcpt: deny message = invalid recipient domains = thedomain.com recipients = !/etc/exim4/recipients_whitelist 

还有大约十亿个其他的东西。 我已经validation,如果我将条件重写为denydeny recipients = [email protected]则邮件被拒绝,但无法使用白名单方式工作。 我也尝试了反转逻辑来接受白名单用户,但这也不起作用。

这是我的路由器:

 outer_catchall: driver = accept transport = dev_null_transport 

这适用于我:

 acl_check_rcpt: discard !recipients = /etc/exim4/recipients_whitelist 

允许的收件人的邮件地址在/ etc / exim4 / recipients_whitelist中每行列出一个。 这个文件是白名单。

收件人请注意感叹号。

如果一些收件人被列入白名单而其他人被拒绝,那么这并不是一件容易的事情。 使用如下所示的路由器,让标准的ACL接收者validation完成这项工作。

 outer_java: driver = accept domains = thedomain.com local_parts = /etc/exim4/java_local_parts transport = java_pipe