2009-05-31 12 views
5

Qualcuno ha una buona funzione per la convalida degli indirizzi e-mail tramite SMTP in PHP? Inoltre, ne vale la pena? Rallenterà il mio server?Semplice funzione di convalida e-mail SMTP per php? Inoltre, ne vale la pena?

-> EDIT: mi riferisco a qualcosa di simile:

http://onwebdevelopment.blogspot.com/2008/08/php-email-address-validation-through.html

, che è destinata a completare la convalida della sintassi dell'indirizzo e-mail.

Tuttavia, sembra complicato e speravo che esistesse un modo più semplice per farlo.

+0

SMTP è un protocollo di trasferimento della posta. Cosa intendi per "convalidare gli indirizzi e-mail tramite SMTP"? Per favore chiarisci la tua domanda. – rodion

risposta

2

Se si desidera controllare se v'è uno scambiatore di posta nel dominio, è possibile utilizzare qualcosa di simile:

/*checks if email is well formed and optionally the existence of a MX at that domain*/ 
function checkEmail($email, $domainCheck = false) 
{ 
    if (preg_match('/^[a-zA-Z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+'. 
        '\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/', $email)) { 
     if ($domainCheck && function_exists('checkdnsrr')) { 
      list (, $domain) = explode('@', $email); 
      if (checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A')) { 
       return true; 
      } 
      return false; 
     } 
     return true; 
    } 
    return false; 
} 

Usage:

$validated = checkEmail('[email protected]', true); 
0

Here's such a code, preso dal modulo drupal email_verify . Ci sono un paio di chiamate Drupal specifiche lì, ma non ci vuole molto tempo per ripulirlo per una generica funzione PHP:

Si noti inoltre che alcuni host Web bloccano la porta in uscita 25, in quanto viene utilizzata principalmente da spammer. Se il tuo host sta praticando tale blocco, non sarai in grado di utilizzare questo modulo di verifica.

0

Siete invitati a utilizzare la mia funzione PHP gratuita is_email() per convalidare gli indirizzi. È disponibile here.

Garantirà che un indirizzo sia completamente conforme a RFC 5321. Può anche verificare anche se il dominio esiste realmente.

Non si deve fare affidamento su un validatore per dirti se l'indirizzo di posta elettronica di un utente esiste effettivamente: alcuni ISP forniscono indirizzi non conformi ai propri utenti, in particolare in paesi che non utilizzano l'alfabeto latino. Altro nel mio saggio sulla convalida dell'email qui: http://isemail.info/about.