Я использую exim4 с маршрутизатором Catchall для пересылки почты в java-процесс. Допустимыми получателями являются пользователи процесса Java. Я пытаюсь уменьшить количество спама, направляемого в процесс java, добавляя пользователей в белый список в exim.
Я пробовал это в своем файле конфигурации:
acl_check_rcpt:
deny message = invalid recipient
domains = thedomain.com
recipients = !/etc/exim4/recipients_whitelist
Наряду с миллиардом других вещей. Я убедился, что если я перепишу условие как просто deny
или deny recipients = foobar@thedomain.com
сообщение отклонено, но я не могу заставить работать белый список. Я также попытался инвертировать логику, чтобы принимать пользователей из белого списка, но это тоже не работает.
Вот мой роутер:
outer_catchall:
driver = accept
transport = dev_null_transport
Это работает для меня:
acl_check_rcpt:
discard
!recipients = /etc/exim4/recipients_whitelist
Почтовые адреса разрешенных получателей перечислены по одному в строке в / etc / exim4 / recipients_whitelist. Этот файл находится в белом списке.
Обратите внимание на восклицательный знак перед получателями.
Если одни получатели занесены в белый список, а другие - нет - это еще не все. Используйте маршрутизатор, подобный приведенному ниже, и позвольте стандартной проверке получателя ACL выполнить свою работу.
outer_java:
driver = accept
domains = thedomain.com
local_parts = /etc/exim4/java_local_parts
transport = java_pipe