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

Узел ретрансляции на основе записи MX назначения

Я хочу настроить Postfix для использования внешнего реле в зависимости от имени хоста назначения, то есть:

Под именем хоста назначения я подразумеваю имя хоста, полученное из записи MX. Если в домене получателя есть запись MX microsoft-com.mail.protection.outlook.com, затем используйте другое реле

Я знаю, что можно указать реле в зависимости от адреса отправителя (используя sender_dependent_relayhost_maps), но в моей ситуации это непрактично.

Цель состоит в том, чтобы использовать другой ретранслятор для привередливых хостов назначения: возможно, Mandrill или другую установку Postfix.

Ответ арула идеально подходит для транспортировки на основе домена получателя. Однако, поскольку вы ссылаетесь на имя хоста записи MX вместо домена получателя, ответ неприменим.

Одно из решений - использовать check_recipient_mx_access. Фрагмент из официальные документы

check_recipient_mx_access тип: стол

Поиск в база данных указанного доступа (5) для хостов MX для домена RCPT TO, и выполните соответствующее действие. Примечание: результат «ОК» не допускается по соображениям безопасности. Вместо этого используйте DUNNO, чтобы исключить определенные хосты из черных списков. Эта функция доступна в Postfix 2.1 и новее.

Для вашего случая просто положите check_recipient_mx_access hash:/etc/postfix/finickydestination в подходящем месте smtpd_*_restriction. В этом файле укажите имя хоста

# /etc/postfix/finickydestination
.outlook.com FILTER smtp:[some_smtp.example.com]

Не забудьте постмапить файл и выполнить перезагрузку постфикса.

Ссылки):

Вы можете настроить транспортную карту, чтобы выборочно выбирать почту с @outlook.com в качестве адреса назначения и ретранслировать их через some_smtp.example.com как показано ниже.

Добавьте запись ниже в /etc/postfix/transport

outlook.com smtp:[some_smtp.example.com]

Добавьте запись ниже в /etc/postfix/main.cf

transport_maps = hash:/etc/postfix/transport

Перезапустите постфикс после следующей команды

sudo postmap /etc/postfix/transport

Как отметил @ user221326 (у меня недостаточно репутации, чтобы прокомментировать себя), @masegaloeh ответ будет НЕ работать check_recipient_mx_access ожидает таблица доступа с ACTION

Больше информации в страница руководства

Действие, которое вы хотите, это FILTER так что-то вроде

.outlook.com FILTER smtp:[some_smtp.example.com]

Обратите внимание, если у вас несколько FILTER только последний будет стрелять, поэтому убедитесь, что он идет после всего остального.

более того .outlook.com будет ловить только суб / супер домены (например, something.protection.outlook.com), если smtpd_access_maps является НЕ в parent_domain_matches_subdomains, иначе ты хочешь outlook.com (без начальной точки)

Наконец, имейте в виду, что это действие применяется к все сообщение как только один из получателей MX совпадает с доменом, что не должно вызывать проблем, если ваша определенная цель не является MDA.

Ура