如何停止我在過渡 postfix-spamassassin-dovecot 設置中引入的循環
我正處於陡峭的電子郵件處理學習曲線的早期階段,感謝您的溫柔:-)。
我有一個帶有後綴和鴿舍的設置。我正在嘗試將我的電子郵件伺服器(域
example.com
)從我家遷移到在其他地方執行的實例(test.example.com
)。這個想法是,當事情似乎可行時,我將更改 DNS 並替換test.example.com
為example.com
)。我懷疑我遇到的問題可能是過渡性的,但希望得到任何驗證。在我的舊伺服器上,我有實際的 unix 帳戶,並且在 /etc/aliases 中有以下內容:
a: \a, b
因此,除了本地副本外,
a@example.com
還轉發了發送到的電子郵件。b@example.com
在我的新伺服器(目前
test.example.com
)上,我有虛擬使用者a@example.com, b@example.com
,並且$virtual_alias_maps
包含@test.example.com @example.com a@example.com a@example.com, b@example.com
其中發送到的電子郵件
a@test.example.com
將按預期傳遞而不會出現循環。然後我以下列方式將 spamassassin 添加到 main.cf 中,它似乎有一個例外。
smtp inet n - - - - smtpd -o content_filter=spamassassin spamassassin unix - n n - - pipe user=debian-spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
現在當我發送電子郵件時
a@test.example.com
,我在郵箱中收到一份,在郵箱 中a@example.com
收到兩份b@example.com
。擴展似乎發生了兩次,這讓我感到驚訝。
我的問題是:
- 為什麼擴張會發生兩次?
- 當我更改 DNS 並
test.
從我的配置中刪除時,這個問題會消失(也就是說,這是一個過渡性問題)嗎?- 如果 2. 的答案是否定的,您有什麼建議嗎?
這是放置內容之前 跨後綴守護程序的電子郵件之旅
spamassassin
Email for a@example.com -> aliased to a@example.com and b@example.com -> final destination
在你放
spamassassin
東西之後,基本上你把內容過濾器放在後綴堆棧中,這樣電子郵件之旅就變成了Email for a@example.com -> aliased to a@example.com and b@example.com -> spamassassin
來自 spamassassin,postfix 被兩封電子郵件注入
Email for a@example.com -> aliased to a@example.com and b@example.com -> final destination Email for b@example.com -> final destination
這就解釋了為什麼您在 b@example.com 中有兩封電子郵件,在 a@example.com 中有一封電子郵件
解決方案
Postfix 有參數
receive_override_options
withno_address_mappings
來處理這個問題。將其放在內容過濾器之前,您將不會收到重複的電子郵件。smtp inet n - - - - smtpd -o content_filter=spamassassin -o receive_override_options=no_address_mappings spamassassin unix - n n - - pipe user=debian-spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}