我正在調查郵件伺服器黑名單問題。
我們的郵件伺服器的使用者超過配額,這導致電子郵件被退回給寄件人,並顯示「使用者超過配額」訊息。其中一些電子郵件是帶有偽造「寄件者」欄位的垃圾郵件。郵件被退回到偽造者的寄件者地址。結果,我們的伺服器已被添加到某些黑名單中。這樣有道理嗎?
我不知道如何解決這個問題。我認為「用戶超出配額」訊息很有用:作為寄件者,我希望在訊息未送達時收到通知。
如果郵件被偵測為垃圾郵件,則可以選擇不退回該郵件。我們正在使用 postfix 和 spamassassin,當使用 來顯示這樣的訊息時postcat -q
,我可以看到該訊息有一個巨大的垃圾郵件分數。
我們該如何著手?
在我們的配置中,spamassassin 僅標記訊息,每個用戶可以使用 sieve 來過濾/刪除/移動訊息。 spamassassin 本身應該刪除大量的郵件嗎? postfix 是否應該在退回郵件之前檢查垃圾郵件分數,或者首先在嘗試傳遞郵件之前檢查垃圾郵件分數?
我不想重新發明輪子,所以雖然我上面的想法可能有效,但我想知道人們通常如何解決這個問題。
答案1
在郵件最初被接受交付後,不要退回郵件(向原始或欺騙的寄件者發送一條「新」郵件,宣布超出配額的情況),而是在 smtp 協商期間拒絕該郵件。
「如何」取決於 LDA。
例如,對於 postfix + dovecot,一個選項似乎是:
http://blog.sys4.de/postfix-dovecot-mailbox-quota-en.html
首先,您需要在 Dovecots dovecot.conf 中啟動並設定配額狀態服務:
plugin { ... quota_grace = 10%% # 10% is the default quota_status_success = DUNNO quota_status_nouser = DUNNO quota_status_overquota = "552 5.2.2 Mailbox is full" ... } service quota-status { executable = quota-status -p postfix inet_listener { port = 12340 # You can choose any port you want } client_limit = 1 }
為了使用新設定的 Dovecot 政策服務,您需要告訴 Postfix 與 main.cf 中的服務進行通訊:
smtpd_recipient_restrictions = ... check_policy_service inet:mailstore.example.com:12340