2010-04-13 3 views
1

Je gère un site Web avec plus de 60 000 utilisateurs enregistrés. Chaque semaine, des notifications sont envoyées à ces utilisateurs par e-mail, maintenant j'ai remarqué que certaines adresses mail n'existent plus, par exemple. l'adresse du domaine est valide mais le nom de l'email en asdas @ n'est plus valide car la personne ne travaille plus dans une entreprise, etc. Maintenant, je parcours la base de données et je vérifie si les enregistrements MX existent avec la après deux fonctionsVérification des adresses e-mail valides

function verify_email($email){ 

    if(!preg_match('/^[_A-z0-9-]+((\.|\+)[_A-z0-9-]+)*@[A-z0-9-]+(\.[A-z0-9-]+)*(\.[A-z]{2,4})$/',$email)){ 
     return false; 
    } else { 
     return true; 
    } 
} 

// Our function to verify the MX records 
function verify_email_dns($email){ 

    list($name, $domain) = split('@',$email); 

    if(!checkdnsrr($domain,'MX')){ 
     return false; 
    } else { 
     return true; 
    } 
} 

Si l'adresse e-mail est dans un format non valide ou le domaine n'existe pas que je compte supprimer les utilisateurs. Y at-il des méthodes que je pourrais utiliser pour vérifier si l'adresse e-mail existe toujours ou pas si le nom de domaine est valide et l'adresse e-mail est dans le bon format? Par exemple, [email protected] n'existe plus, mais test.com est un nom de domaine valide.

REMARQUE: Si un message est envoyé aux utilisateurs et que l'adresse e-mail n'existe plus, je reçois un e-mail dans ma boîte de réception, ce qui entraîne 1000 par jour que j'essaie d'éviter.

+1

Notez que la regex que vous utilisez ici rejette un grand nombre d'adresses e-mail valides déjà ... et j'ignorerais la vérification de domaine, ça n'en vaut pas la peine et ça se fera quand même en envoyant un mail. – Joey

+1

Je pense que la meilleure chose que vous pourriez faire est de vérifier automatiquement votre boîte de réception pour les messages rebondis et supprimer ces entrées de la base de données. – Jens

Répondre

5

La méthode standard consiste à se connecter au serveur de courrier distant et à lui envoyer une commande VRFY. Cependant, certains serveurs ne le permettent pas car cela permet aux spammeurs de trouver plus facilement des adresses e-mail valides. Vous pouvez également essayer de lui envoyer une commande RCPT TO (vous obtiendrez une réponse de 550 si l'adresse n'est pas valide), mais ils ont tendance à vous bloquer si vous le faites trop souvent, pour la même raison

Si vous êtes Si vous recevez déjà des e-mails rebondis dans votre boîte de réception, il semble que vous puissiez simplement les analyser et supprimer automatiquement les personnes de votre liste qui provoquent des échecs de livraison

+0

J'ai aussi eu une réponse mais la tienne est meilleure. J'ai également suggéré un mécanisme d'acceptation régulière (un courrier auquel répondre une fois par an environ), mais cela sort un peu du cadre de la question. – extraneon

Questions connexes