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

Postfix - ретранслировать локально сгенерированную почту, но принимать почту, входящую от GApps для того же домена

Я знаю, что способ отключить всю локальную доставку - это удалить домен из "mydestination", что приведет к тому, что вся почта будет ретранслироваться через любой настроенный мной ретранслятор. Но я хочу, чтобы postfix принимал всю почту из GApps для локальной доставки в dovecot, но ретранслировал всю локально сгенерированную почту обратно в GApps.

Пример: у меня на сервере запущена веб-почта, использующая локальный постфикс. user1@example.com отправляет письмо на адрес user2@example.com. Если user2 существует локально, postfix доставляет локально, а не существует - я мог бы добавить резервный ретранслятор, который отправил бы эту почту в GApps. Но я хочу, чтобы postfix всегда ретранслировал эту почту обратно в GApps (который будет отправлять эти письма вниз по потоку обратно в postfix для локальной доставки) независимо от локальной доступности. Чтобы у меня получилась модель водопада.

Я знаю, что есть много связанных с этим вопросов (ни один из ответов не является конкретно этим), но в основном я хочу иметь своего рода идентичные почтовые ящики для одних и тех же пользователей как в Gmail, так и в локальной голубятне. Я нашел временное исправление, напрямую используя SMTP Relay GApps вместо локального для веб-почты, но это ничего не решает для тех, кто подключается по IMAP (в конечном итоге придется предоставить каждому пользователю доступ к SMTP GApps).

Наконец-то я получил настройку для работы с несколькими экземплярами postfix Masegaloeh упомянул. Я пытался использовать exim4, но apt-get install exim4 автоматически удалил postfix, даже без приглашения! В любом случае, вот как я заставил его работать:

#Adds some lines to main.cf enabling multiple instance
postmulti -e init

#Creates a new instance at the directory /etc/postfix-outgoing
postmulti -I postfix-outgoing -G mta -e create

Для моего варианта использования я хотел порт 25 и порт 465 будет использоваться для получения входящей почты от Gmail, но нужен постфикс подчинение (работает на порту 587) для использования исходящего MTA. Я прокомментировал это так в /etc/postfix/master.cf

#submission inet n       -       -       -       -       smtpd

и прокомментировал smtp и smtps но добавил подчинение в /etc/postfix-outgoing/master.cf, чтобы получить что-то вроде этого

submission inet n       -       -       -       -       smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no

Я скопировал main.cf ISPConfig по умолчанию из /etc/postfix и внес много изменений в мой /etc/postfix-outgoing/main.cf, но основные из них:

  1. Изменил myhostname отличаться от основного экземпляра. (иначе postfix путает их)
  2. Удалены все специфические конфигурации dovecot.
  3. Сменить каталог данных.
  4. Убедитесь, что postfix не пытается использовать локальную доставку. (через mydestination, virtual_domains и т. д.).
  5. Введите свой relayhost.
  6. Добавьте второго слушателя в dovecot.conf service auth указывает на /var/spool/postfix-outgoing/private/auth поскольку прямая ссылка на исходный путь для меня не сработала. Или вы можете попробовать использовать - Аутентификация Dovecot через TCP.

Наконец, включите экземпляр:

postmulti -i postfix-outgoing -x postconf -e \
  "master_service_disable ="
postmulti -i postfix-outgoing -e enable
postmulti -i postfix-outgoing -p start

tail -f /var/log/mail.log и посмотреть, где что-то пошло не так.

Ссылка: http://www.postfix.org/MULTI_INSTANCE_README.html