На своем сервере я реализую перенаправления с помощью этого роутера
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
лайк
foo@example.com: bar@example.com
^.*@example2.com: bar@example.com
Это работает нормально и так, как задумано. Теперь мой клиент просит меня изменить вторую строку на «пересылать все, за исключением mail@example2.com и info@example2.com», поскольку они привлекают слишком много спама.
Есть ли хороший способ реализовать эту логику внутри /etc/vhosts/forwards
, или мне придется добавить еще один маршрутизатор в черный список?
Просто добавьте условие к роутеру:
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
перенаправление выполняться не будет.
Вы можете выборочно отклонять электронную почту в файле псевдонима / etc / vhosts / forwards или просто удалять ее. Видеть документация по специальным позициям в списках, также известные как файлы псевдонимов (пункты 4 и 5 по состоянию на 14 октября 2015 г.).
# efficiently and silently discard this email after accepting it
mail@example2.com: :blackhole:
# bounce this email. message is optional.
info@example2.com: :fail: User no longer available
# forward the rest
foo@example.com: bar@example.com
^.*@example2.com: bar@example.com
Кажется, что это возможно в пределах forwards
файл, не указав адресов для пересылки:
foo@example.com: bar@example.com
mail@example2.com:
info@example2.com:
^.*@example2.com: bar@example.com
Кажется, что это задокументированное поведение (а не просто удачная деталь реализации):
Если поиск завершился неудачно, развернутая строка в этом примере будет пустой. Когда расширение данных приводит к пустой строке, маршрутизатор отказывается. Ошибка принудительного расширения также приводит к отказу маршрутизатора; другие сбои раскрытия вызывают задержку доставки. Источник