2009-11-03 12 views
9

Mi è stato chiesto di implementare la validazione di alcuni indirizzi e-mail su un'app Web - Sono sicuro che ci siamo stati mille volte ... tuttavia, questa volta mi è stato chiesto di fare un MX Cerca sul dominio per vedere se accetta e-mail.Convalida e-mail MX Lookup

Qualcuno sa di potenziali problemi con questo? La ricerca di mx è un modo affidabile per scoprire se un dominio accetta la posta elettronica? ci sono casi limite in cui un indirizzo email valido potrebbe fallire un controllo di ricerca MX?

Grazie per il vostro consiglio!

risposta

7

ci sono casi limite in cui un indirizzo email valido potrebbe fallire un Controllo della ricerca MX?

Sì, in quanto in cui non esiste un record MX, gli MTA ricadono sull'uso del record A. Pertanto, solo i record MX consentiti non funzionerebbero con una classe di server di posta che funziona nel mondo reale.

Consentire qualsiasi nome con un MX o Un record rileva almeno errori di visualizzazione ovvi che risultano in NXDOMAIN. Tuttavia, permetteranno comunque di scrivere in modo errato che finiscono nei siti degli squatter. Un ulteriore passaggio per gli indirizzi risolti dai record A potrebbe essere quello di verificare dove la porta 25 accetta le connessioni su tale indirizzo.

+0

Per i record A, non altre porte come 2525/587/465/2526 lavoro anche tu? Cheers ~ – lulalala

+1

@lulalala: per accettare l'e-mail pubblica in entrata, quella porta deve essere sempre 25. La porta 587 e le alternative personalizzate sono per l'invio di posta in uscita. – bobince

2

È possibile controllare solo se è presente un server di posta registrato per il dominio.

Se il server accetta anche mail e se l'indirizzo è valido (non sintatticamente ma nel senso che esiste una casella di posta elettronica per esso e così via ...) lo scoprirai solo quando invierai l'e.g. registrazione e-mail

di esempio su come fare questo in 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 {...} 

Sì, è possibile utilizzare '[email protected]' troppo. La documentazione PHP per checkdnsrr(host, type) stati

host può essere sia l'indirizzo IP in punteggiato-quad notazione o il nome dell'host

+0

Ciao jitter - grazie per la risposta. Sapete se le ricerche MX funzioneranno se l'indirizzo di posta elettronica sta usando l'indirizzo IP: qualcosa come [email protected] – Paul

+0

risposta estesa per rispondere alla vostra domanda aggiuntiva – jitter

Problemi correlati