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
, но основные из них:
- Изменил
myhostname
отличаться от основного экземпляра. (иначе postfix смущает их) - Удалены все конкретные конфиги dovecot.
- Изменить каталог данных.
- Убедитесь, что postfix не пробует локальную доставку. (через mydestination, virtual_domains и т. д.).
- Введите свой
relayhost
, - Добавьте второго слушателя в 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
и посмотреть, где все пошло не так.