背景信息:需要幫助檢查電子郵件是否屬於同一個域名?
我需要製作一個系統,讓用戶通過用電子郵件地址/密碼組合來標識自己來登錄。所以我試圖找到一種方法來檢查登錄是否與數據庫中的某些內容相匹配,當兩者可能是不同的輸入地址時。
所以對於域名驗證最初的步驟是:
- 轉換輸入的文本,以NFC
- 條評論用遞歸下降解析器
- 分裂本地部分從域。
通過這個運行域:
nslookup -type=mx $DOMAIN | awk '{ if($2 =="mail" && $3 == "exchanger") { print substr($6, 0, length($6)-1) } else if($2 == "internet" || $2 == "has") { print $1 } }' | sort | uniq'
這兩個
me.com
和iCloud.com
回報:mx1.mail.icloud.com mx2.mail.icloud.com mx3.mail.icloud.com mx4.mail.icloud.com mx5.mail.icloud.com mx6.mail.icloud.com
而且
gmail.com
和googlemail.com
都返回:alt1.gmail-smtp-in.l.google.com alt2.gmail-smtp-in.l.google.com alt3.gmail-smtp-in.l.google.com alt4.gmail-smtp-in.l.google.com gmail-smtp-in.l.google.com
所以我想我會輸入這個表格,以便所有的Gmail服務器都有ID 1,並且所有的iCloud服務器都有ID 2等,以任何順序嘗試註冊他們。
這不如果所有服務器都位於一個varchar單元中,則可以工作,因爲可以在稍後的日期添加或刪除服務器。如果服務器都是自己的行,因爲沒有辦法像操作單個邏輯單元一樣操縱它們,所以它並不真正起作用。
如果我得到每個服務器名稱的最長公共後綴將表明這些都使用一個郵件服務器?還是有可能實際上服務兩個由子域分隔的服務器?
如果域名都將MX記錄指向通用垃圾郵件過濾服務(如Postini),那麼會發生什麼? – TessellatingHeckler
MX服務器也不是靜態的?並且不同的域可以共享相同的mx服務器(我們目前有400多個域都指向我們的郵件羣集,並且不計算別名,例如(example.com/example.net/example.org)。所以我會警惕的試圖將mx記錄用於任何事情...... – Doon