我知道禁用所有本地傳遞的方法是從“mydestination”中刪除網域,這將導致所有郵件都透過我設定的任何中繼進行中繼。但我希望 postfix 接受 GApps 的所有郵件,以便本地傳送到 dovecot,但將所有本地產生的郵件轉回 GApps。
例如:我在伺服器上執行網路郵件,使用本地後綴。[電子郵件受保護]發送電子郵件至[電子郵件受保護]。如果 user2 本機存在,則後綴在本機傳遞,但不存在 - 我可以新增一個後備中繼,將郵件傳送到 GApps。但我希望 postfix 始終將這些郵件轉回 GApps(GApps 會將這些郵件向下游發送回 postfix 進行本地投遞),無論本地可用性如何。這樣我就可以擁有一個瀑布模型。
我知道有很多與此相關的問題(沒有一個具體的答案),但基本上我想要的是在 gmail 和本地 dovecot 上為相同的用戶提供相同的收件匣。我找到了一個臨時修復方法,即直接使用GApps SMTP 中繼而不是本地網路郵件,但這對於那些使用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 的傳入郵件,但需要 postfix提交(在連接埠 587 上運作)供傳出 MTA 使用。所以我這樣評論/etc/postfix/master.cf
#submission inet n - - - - smtpd
並發表評論郵件傳輸協定和郵件傳輸協定但補充說提交,/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
我複製了預設的ISPConfig的main.cf/etc/postfix
並對我的進行了很多修改/etc/postfix-outgoing/main.cf
,但主要的是:
- 變更
myhostname
為與主實例不同。 (否則 postfix 會混淆它們) - 刪除了所有鴿舍特定配置。
- 更改數據目錄。
- 確保 postfix 不會嘗試本地傳送。 (透過 mydestination、virtual_domains 等)。
- 輸入您的
relayhost
。 - 將第二個偵聽器新增至 dovecot.conf
service auth
指向/var/spool/postfix-outgoing/private/auth
直接引用原始路徑對我來說不起作用。或者你可以嘗試使用 - 透過 TCP 進行 Dovecot 身份驗證。
最後啟用實例:
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
看看哪裡出了問題。