2009-05-31 4 views
5

Quelqu'un at-il une bonne fonction pour valider les adresses e-mail par SMTP en PHP? Aussi, cela vaut-il la peine? Est-ce que ça va ralentir mon serveur?Simple fonction de validation d'email SMTP pour php? Aussi, cela en vaut-il la peine?

-> EDIT: Je me réfère à quelque chose comme ceci:

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

qui vise à compléter la validation de la syntaxe de l'adresse e-mail.

Cela semble compliqué cependant, et j'espérais qu'il y avait une façon plus simple de le faire.

+0

Que voulez-vous dire par "valider les adresses e-mail par SMTP"? S'il vous plaît clarifier votre question. – rodion

Répondre

2

Si vous voulez vérifier s'il y a un échangeur de courrier au niveau du domaine, vous pouvez utiliser quelque chose comme ceci:

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

Utilisation:

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

Here's such a code, pris à partir du module drupal email_verify . Il y a quelques appels spécifiques à Drupal, mais cela ne devrait pas prendre beaucoup de temps pour le nettoyer pour une fonction PHP générique:

Notez également que certains hôtes Web bloquent le port sortant 25, car il est principalement utilisé par spammeurs. Si votre hôte pratique un tel blocage, vous ne pourrez pas utiliser cette forme de vérification.

0

Vous êtes invités à utiliser ma fonction PHP gratuite is_email() pour valider les adresses. Il est disponible here.

Il s'assurera qu'une adresse est entièrement conforme à RFC 5321. Il peut également vérifier si le domaine existe réellement. Vous ne devriez pas compter sur un validateur pour vous dire si l'adresse e-mail d'un utilisateur existe réellement: certains FAI donnent des adresses non conformes à leurs utilisateurs, en particulier dans les pays qui n'utilisent pas l'alphabet latin. Plus dans mon essai sur la validation d'email ici: http://isemail.info/about. Le protocole SMTP est un protocole de transfert de courrier.

Questions connexes