Domain-Name-System

後綴 - NDR 郵件在發送到壞域時立即

  • October 11, 2020

我們向其中一位客戶提供服務,向他們的客戶發送報表。不幸的是,我們的客戶對電子郵件地址的驗證並不總是最好的,所以當他們向我們送出一批要發送時,我們通常會看到很多電子郵件由於公共域拼寫錯誤而無法發送(例如 gnail.com、htmail .com 等)。我們收集退回給我們的客戶以修復他們的電子郵件列表,但在退回/NDR 發生之前,這些郵件將保留在我們的後綴 mailq 中,直到它們到達隊列到期時間。一次又一次地重試發送。

有什麼好方法可以讓 postfix 在第一次失敗時立即為這些消息發送 NDR,而不是一次又一次地嘗試?我們只希望這種情況發生在壞域上,但有時,我們會看到由於灰名單而延遲的郵件,並且它們在第二次嘗試時就會消失。

我已經嘗試過我的 Google-foo,但它似乎在這項任務中讓我失敗了……

首先通過添加reject_non_fqdn_recipientreject_unknown_recipient_domain到適當的限製表來拒絕完全無效的郵件。

Postfix 還可以REJECT通過check_recipient_mx_accessand發送消息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% 的可能排列中,所以它擷取了大多數錯別字。

如果你有至少幾個月的日誌,你可能會得到一個很好的開始,只需從連接超時中查找隊列超時,手動刪除誤報並像我上面所做的那樣完成列表。

引用自:https://serverfault.com/questions/1036175