後綴 - NDR 郵件在發送到壞域時立即
我們向其中一位客戶提供服務,向他們的客戶發送報表。不幸的是,我們的客戶對電子郵件地址的驗證並不總是最好的,所以當他們向我們送出一批要發送時,我們通常會看到很多電子郵件由於公共域拼寫錯誤而無法發送(例如 gnail.com、htmail .com 等)。我們收集退回給我們的客戶以修復他們的電子郵件列表,但在退回/NDR 發生之前,這些郵件將保留在我們的後綴 mailq 中,直到它們到達隊列到期時間。一次又一次地重試發送。
有什麼好方法可以讓 postfix 在第一次失敗時立即為這些消息發送 NDR,而不是一次又一次地嘗試?我們只希望這種情況發生在壞域上,但有時,我們會看到由於灰名單而延遲的郵件,並且它們在第二次嘗試時就會消失。
我已經嘗試過我的 Google-foo,但它似乎在這項任務中讓我失敗了……
首先通過添加
reject_non_fqdn_recipient
和reject_unknown_recipient_domain
到適當的限製表來拒絕完全無效的郵件。Postfix 還可以
REJECT
通過check_recipient_mx_access
and發送消息check_recipient_access
,但是如何生成適當的查找取決於您可接受的錯誤級別(拒絕非拼寫錯誤/非拒絕拼寫錯誤)。**理想情況下,永遠不要將郵件傳遞到與更受歡迎的收件人域之間的Levensthein 距離較小的收件人域。**指定收件人與發音相似的目標之間的音量差異越大,收件人就越不可能是預期的收件人(一個人不會簡單地操作拼寫差不多*的
gmail.com
*大型電子郵件服務)。對我來說更簡單和有用的是一個
pcre
表,其中包含最常見的錯誤輸入域硬編碼,例如:# reject recipient MX table typosquatter.example REJECT shady-data-broker.example REJECT # reject recipient domain table # skip the correct one example.com DUNNO # broadly reject all minor permutations ..ample.com REJECT ex..ple.com REJECT exa..le.com REJECT # ... example.co REJECT
通過從不同時匹配 TLD 更改和排列,我將誤報保持在可接受的水平 - 無論如何,所有大接收者聽起來都與其他合法企業不太相似。為什麼這對我來說就足夠了,即使我沒有匹配所有的排列?因為 90% 的錯別字都在同一組 5% 的可能排列中,所以它擷取了大多數錯別字。
如果你有至少幾個月的日誌,你可能會得到一個很好的開始,只需從連接超時中查找隊列超時,手動刪除誤報並像我上面所做的那樣完成列表。