2009-11-03 80 views
9

我已經要求執行上的Web應用中的一些電子郵件地址驗證 - 我敢肯定,我們都在那裏一千倍......然而,這一次,我被要求做一個MX查看域名以查看它是否接受電子郵件。電子郵件驗證MX查找

有誰知道有這樣做的任何潛在的問題? mx查找是找出域名是否接受電子郵件的可靠方法?是否有任何邊界情況下有效的電子郵件地址可能無法通過MX查找檢查?

感謝您的諮詢!

回答

7

是否有任何邊緣情況下,一個有效的電子郵件地址可能會失敗的MX查找檢查?

是的,在沒有MX記錄的情況下,MTA會回退到使用A記錄。所以只允許MX記錄會使在現實世界中工作的一類郵件服務器失敗。

允許任何名稱與MX 記錄至少可以檢測到導致NXDOMAIN的明顯錯誤編號。然而,它仍然會允許在寮屋地區結束的錯誤密碼。 A記錄解決的地址的另一個步驟可能是檢查端口25在哪個地址接受連接。

+0

對於A記錄,不會有其他端口如2525/587/465/2526工作呢?乾杯〜 – lulalala 2014-11-27 02:45:27

+1

@lulalala:爲接受傳入的公共電子郵件,該端口必須始終爲25.端口587和自定義替代方案用於發送郵件。 – bobince 2014-11-30 18:15:20

2

您只能檢查是否存在域註冊的郵件服務器。

如果服務器也接受郵件,如果地址是有效的(不是語法,但在這個意義上,存在着爲它的收件箱等...)發送例如,當你只會發現如何做到這一點在PHP

function mailserver_exists($email) { 
list($user,$domain) = split('@',$email); 
//included check for 'A' after [comment from bobince][1] 
return checkdnsrr($domain,'MX') || checkdnsrr($domain,'A'); 
} 
if(domain_exists('[email protected]')) {...} else {...} 

是的,你可以使用'[email protected]'太註冊電子郵件

樣品。對於checkdnsrr(host, type)狀態

主機的PHP文件可以是在 點分四組表示法的IP地址或主機名

+0

喜抖動 - 感謝您的答覆。 如果電子郵件地址正在使用IP地址,MX知識庫查詢是否可以正常工作:類似[email protected] – Paul 2009-11-03 12:01:33

+0

擴展回答回答您的其他問題 – jitter 2009-11-03 13:08:41