Я знаю, что способ отключить всю локальную доставку — удалить домен из "mydestination", что приведет к тому, что вся почта будет ретранслироваться через любой ретранслятор, который я настрою. Но я хочу, чтобы postfix принимал всю почту из GApps для локальной доставки в dovecot, но ретранслировал всю локально сгенерированную почту обратно в GApps.
Пример: У меня на сервере запущена веб-почта, использующая локальный Postfix.[email protected]отправляет электронное письмо[email protected]. Если user2 существует локально, postfix доставляет локально, не существует - я мог бы добавить резервный ретранслятор, который отправлял бы эту почту в GApps. Но я хочу, чтобы postfix всегда ретранслировал эту почту обратно в GApps (который будет отправлять эту почту вниз по течению обратно в postfix для локальной доставки) независимо от локальной доступности. Так что у меня может быть своего рода модель водопада.
Я знаю, что есть много связанных вопросов по этому поводу (ни один из них не отвечает конкретно на этот), но в основном я хочу иметь своего рода идентичные почтовые ящики для тех же пользователей как на gmail, так и на локальном dovecot. Я нашел временное решение, напрямую используя GApps SMTP Relay вместо локального для веб-почты, но это ничего не решает для тех, кто подключается с помощью IMAP (в конечном итоге пришлось бы предоставить каждому пользователю доступ к GApps SMTP).
решение1
Наконец-то моя настройка заработала с несколькими экземплярами postfixмасегалоэхупоминалось. Я пытался использовать 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
, но основные из них следующие:
- Изменено так
myhostname
, чтобы оно отличалось от основного экземпляра. (иначе постфикс путает их) - Удалены все конфигурации, специфичные для 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
и посмотреть, где что-то пошло не так.