2009-05-31 11 views
5

¿Alguien tiene una buena función para validar las direcciones de correo electrónico mediante SMTP en PHP? Además, ¿vale la pena? ¿Disminuirá la velocidad de mi servidor?Función simple de validación de correo electrónico SMTP para php? Además, ¿vale la pena?

-> EDIT: Me refiero a algo como esto:

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

que está destinado a complementar la validación de la sintaxis de la dirección de correo electrónico.

Parece complicado, y esperaba que hubiera una manera más simple de hacerlo.

+0

SMTP es un protocolo de transferencia de correo. ¿Qué quiere decir con "validar las direcciones de correo electrónico mediante SMTP"? Por favor aclare su pregunta. – rodion

Respuesta

2

Si desea comprobar si hay un intercambio de correo en el dominio, puede usar algo como esto:

/*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; 
} 

Uso:

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

Here's such a code, tomada desde el módulo de Drupal email_verify . Hay un par de llamadas específicas de Drupal allí, pero no debería tomar mucho tiempo para limpiarlo para una función PHP genérica:

También tenga en cuenta que algunos servidores web bloquean el puerto saliente 25, ya que es utilizado principalmente por spammers. Si su anfitrión está practicando dicho bloqueo, no podrá usar esta forma de verificación.

0

Le invitamos a utilizar mi función gratuita de PHP is_email() para validar las direcciones. Está disponible here.

Se asegurará de que una dirección sea totalmente compatible con RFC 5321. Opcionalmente, también puede verificar si el dominio existe realmente.

No debe confiar en un validador para decirle si realmente existe la dirección de correo electrónico de un usuario: algunos ISP entregan direcciones no compatibles a sus usuarios, particularmente en países que no usan el alfabeto latino. Más en mi ensayo sobre validación de correo electrónico aquí: http://isemail.info/about.

Cuestiones relacionadas