Фильтры и перезапись адресов
Фильтры и перезапись адресов
При перезаписи адресов в заголовке сообщения вам необходимо подумать о том, как применять фильтры. В частности, следует решить, когда вы будете просить Postfix перезаписывать адреса (например, посредством virtual_alias_maps) – до или после фильтрации.
Если вы примете решение перезаписывать адреса перед фильтрацией, то появится риск использования внутренних адресов для возвратов и предупреждений. Например, предупреждение, вызванное сообщением адресату moe_helden@example.com, может быть возвращено с адресом
mh123@mailbox.example.com.
Поэтому с нашей точки зрения следует перезаписывать адреса (используя virtual_alias_maps или canonical_maps) после возвращения сообщений обратно в очередь Postfix для финальной доставки. Это позволит внешнему приложению (например, антивирусной программе) видеть исходные адреса и формировать соответствующие предупреждения до того, как Postfix их заменит.
Существуют два способа отмены преобразования адресов (расширения виртуального псевдонима, канонического преобразования, трансляции адреса и т. д.) перед фильтрацией. Первый заключается в установке специального параметра в файле main.cf:
‘eceive_override_options = no_address_mappings
Вы также можете отключить перезапись адресов в файле master.cf только для принимающего сообщения из сети демона (обычно это smtpd):
smtp inet n - n - - smtpd
-o content_filter=foo:[127.0.0.1]:54321 -o receive_override_options=no_address_mappings
После того как фильтр обрабатывает сообщение, оно обычно вставляется обратно в очередь Postfix. Это как раз подходящий момент для манипуляций с адресами; вам потребуется дополнительный демон smtpd, принимающий отфильтрованную почту. Вместо того чтобы использовать настройку receive_override_options=no_address_mappings, этот дополнительный smtpd будет использовать receive_override_options=no_ unknown_recipient_checks. В последующих разделах мы рассмотрим работу фильтров content_filter и smtpd_proxy_filter более подробно.

