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

Ретранслятор SMTP на несколько хостов

Мы находимся в процессе переключения нашей электронной почты с локального сервера на приложения Google. У нас много пользователей, и я хотел бы иметь возможность переключать их по одному, чтобы меня не засыпали звонками в службу технической поддержки.

На отдельном сервере я установил postfix и добавил в main.cf такую ​​строку:

relayhost = [1.2.3.4]

(Где 1.2.3.4 - наш внутренний почтовый сервер).

Это нормально работает, вся почта, отправляемая через postfix, отправляется на внутренний почтовый сервер, как и должно.

Однако я также хочу, чтобы эта же почта отправлялась в приложения Google. Я добавил эту строку в main.cf:

relayhost = [aspmx.l.google.com]

Но вместо отправки на оба сервера Postfix отправляет только на последний из перечисленных.

Есть ли простое решение? Я не против использования другой программы SMTP или чего-то еще, но я не хочу создавать сопоставления для каждого пользователя, который у нас есть.

Откажитесь от постфикса и используйте exim. Создайте два маршрутизатора и такой транспорт

begin routers

OurServer:
driver = manualroute
route_data = 1.2.3.4
transport = OutboundSMTP
unseen = true

TheirServer:
driver = manualroute
route_data = aspmx.l.google.com
transport = OutboundSMTP

begin transports

OutboundSMTP:
driver = smtp

unseen = true вызывает продолжение обработки после первого маршрутизатора

совершенно быстрый, неизученный ответ по памяти, но я думаю, что procmail (он все еще существует?) может делать такие вещи.

это нормально. второй будет иметь приоритет над первым. конфигурация постфикса - var = value. второе определение переменной переопределит первое, а не обновит добавление нового значения. с постфиксом это сделать нелегко. Предлагаю два решения:

Решение 1: установите на ящик две службы postfix. один настраивает его на порт 2526 и настраивает с помощью relayhost = yourhost, другой - на порт 2527 с relayhost = google. используйте простую программу на основе событий для прослушивания порта 25 и перенаправления трафика на оба экземпляра постфикса (вы можете найти что-то уже написанное, возможно, вы можете использовать relayd, если вы используете BSD unix). есть также плагин TEE где-то в iptables devel для копирования пакетов, но я не знаком с ним. мне не очень нравится это решение

Решение 2: на вашем relayhost настройте store & forward. это сложнее (конфигурация), чем первый, но поскольку ваша процедура миграции основана на пользователях ...

  1. переписать user @ domain в user-store @ domain
  2. определить user-store @ domain как псевдоним для user @ domain, user @ local.domain
  3. определить транспорт: для user @ domain как google.
  4. Определите транспорт для user@local.domain как виртуальный:

Я однажды использовал этот механизм, и он, похоже, сработал. однако ... я не уверен, будет ли Google принимать электронные письма для домена, если вы не установили MX для серверов Google, поэтому это может быть бесполезно. Вы должны это проверить.