Назад | Перейти на главную страницу

exim: перенаправить все, кроме нескольких локальных частей

На своем сервере я реализую перенаправления с помощью этого роутера

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

Кажется, что это задокументированное поведение (а не просто удачная деталь реализации):

Если поиск завершился неудачно, развернутая строка в этом примере будет пустой. Когда расширение данных приводит к пустой строке, маршрутизатор отказывается. Ошибка принудительного расширения также приводит к отказу маршрутизатора; другие сбои раскрытия вызывают задержку доставки. Источник