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

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

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

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

1 ответ

Решение

Наконец-то я получил настройки для работы с несколькими экземплярами masegaloeh упомянутыми 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, но для отправки исходящего MTA требовалась отправка с постфиксом (работает на порту 587). Так что я прокомментировал это так в /etc/postfix/master.cf

#submission inet n       -       -       -       -       smtpd

и прокомментировал SMTP и SMTP, но добавил представление в /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

Другие вопросы по тегам