Какова лучшая практика, когда нужно реализовать такой набор правил в Postfix?

  • Электронная почта, отправленная с локального domain1.com , domain2.com на example.com , example1.com должна быть передана smtp.external.com .
  • Электронная почта, отправленная всем остальным @example.com и example1.com должна передаваться локально.

Я знаю, что есть способ выполнить ретрансляцию с фильтрацией адреса получателя, используя transport_maps , но я не знаю, как фильтровать в зависимости от адреса отправителя.

1 ответ1

0

Есть способ (хотя и не совсем чистый, на мой взгляд), сопоставив его с параметром header_checks . Например:

header_checks = pcre:/etc/postfix/my_relays

Теперь в /etc/postfix/my_relays:

/^From:.*asender\@domain1\.com/  smtp1:[host1.example.com]
/^From:.*anothersender\@domain2\.com/  smtp2:[host2.example.com]

Действия smtp1 и smtp2 необходимы только в том случае, если вам необходимо пройти аутентификацию на host1.example.com или host2.example.com по паролю, в противном случае будет достаточно заменить их на ключевое слово smtp .

Если вам нужно пройти аутентификацию на этих серверах, вам нужно определить, что такое smtp1 и smtp2 в вашем файле master.cf :

smtp1    unix  -       -       -       -       10       smtp
    -o smtp_sasl_password_maps=hash:/etc/postfix/smtp1.relay
smtp2    unix  -       -       -       -       10       smtp
    -o smtp_sasl_password_maps=hash:/etc/postfix/smtp2.relay

В качестве последнего шага, ваши файлы smtp[12].relay должны включать параметры аутентификации для подключения к этим хостам (замечу, что это необходимо, только если вам нужна аутентификация).

[hostX.example.com]   userX:passwordX

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .