Domain-Name-System

修復使用者輸入的電子郵件地址中的拼寫錯誤

  • September 27, 2011

我們不時在我們的郵件隊列中看到一些拼寫錯誤的域,我一直在考慮使用我們的內部 DNS 伺服器來糾正這些人的錯誤。

目前郵件隊列中的一些範例:

g-mail.com
hotail.com
hotmai.com
hotmaiil.com
hotmal.com
htomail.com
rediffmai.com
yahii.com

上述域沒有 MX 記錄,但很容易看出使用者輸入時的意思。

有問題的電子郵件通常是註冊確認電子郵件,因此使用者無法登錄並修復他們自己的電子郵件地址,並且執行在數據庫中修復它的 cron 作業不會再次發送確認電子郵件。

設置我們的內部 DNS 以將這些 MX 查找解析為正確的 Hotmail、Gmail 或 Yahoo(或其他)地址,這很可能會導致郵件最終進入正確的收件箱。cron 作業還可以更正他們在數據庫中的電子郵件地址。

最好的解決方案是在 Web 伺服器上的註冊/電子郵件驗證碼中進行 MX 查找,這樣我們就可以在使用者仍在網站上時給他們一條錯誤消息,但我是系統管理員,我無法獲取為此批准的開發時間。

任何人都可以看到使用 DNS 重定向錯字電子郵件的任何潛在問題嗎?

更新:

我想到了一個可能會破壞整個想法的問題。假設我們確實使用 DNS 更正了拼寫錯誤的域,當我們連接到目標郵件伺服器時,我們將(在某些時候)說:

RCPT 收件人:<fat-fingered-user@hotmal.com>

Hotmail 伺服器可能會拒絕它,因為他們不接受 hotmal.com 的電子郵件,也不為我中繼郵件。問題是我們沒有固定地址。我們所做的只是將我們的 MTA 指向正確的伺服器,就好像我們擁有正確的地址一樣。

我還發現這個郵件列表存檔對錯字域有不同的解決方案。它並不能解決我讓使用者知道的問題,但它確實可以很快地將郵件從我的郵件隊列中取出。

最大的問題將是誤報 - 即您更正到錯誤域的那些拼寫錯誤。

使用可能不會發生的錯字,您可能會得到:

gotmail.com

你把這個改成

hotmail.com

或者

gmail.com

使用者可能意味著任何一個。

只需使用“域無法辨識”消息將這些內容退回給使用者並讓他們進行更正,這要簡單得多。

我看不到您要解決的問題。您想發送註冊確認。但由於您無法向不存在的域發送註冊確認,因此不會有註冊。沒關係。刪除無法確認的使用者,讓他們重新註冊。事情就是這樣。這稱為雙重選擇加入,是驗證電子郵件地址的必要條件。

通常這些郵件甚至不應該在隊列中:

  1. 如果域不存在,則郵件應立即退回(立即刪除使用者的時間)。
  2. 如果域解析但到達不存在的使用者,郵件會立即退回(是時候刪除使用者了)。
  3. 如果域已解析但伺服器暫時延遲了郵件,您無法決定郵件是否會稍後遞送或地址無效(等待選項 2 或 4 的時間)
  4. 如果域名解析且使用者有效,郵件將立即送達(時間等待確認,但郵件已出隊列)

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