Maison >développement back-end >tutoriel php >Comment puis-je vérifier les adresses e-mail en PHP sans envoyer d'e-mails ?

Comment puis-je vérifier les adresses e-mail en PHP sans envoyer d'e-mails ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-16 00:00:34312parcourir

How Can I Verify Email Addresses in PHP Without Sending Emails?

Vérifier les adresses e-mail sans envoyer d'e-mails

Avec l'avènement du filtrage anti-spam et de la vérification des listes de diffusion, les développeurs ont souvent besoin d'un moyen de valider les adresses e-mail sans envoyer d'e-mails. PHP fournit une solution utilisant SMTP.

Vérification SMTP

SMTP (Simple Mail Transfer Protocol) est utilisé pour envoyer des e-mails. La prise en charge de PHP pour SMTP permet la vérification des e-mails de deux manières :

1. Commande VRFY :

La commande VRFY interroge un serveur pour confirmer si un destinataire de courrier électronique existe. Si le serveur répond avec un DSN (Delivery Status Notification) 2.0.0, l'adresse email est valide.

Exemple :

$socket = fsockopen('server', 25);
fwrite($socket, "VRFY user\r\n");
$response = fgets($socket);

2. Commande RCPT TO :

La commande RCPT TO tente d'envoyer un e-mail. Si le destinataire n'existe pas, le serveur répondra avec un DSN 5.1.1.

Exemple :

$socket = fsockopen('server', 25);
fwrite($socket, "MAIL FROM:<sender>\r\n");
fwrite($socket, "RCPT TO:<user@domain>\r\n");
$response = fgets($socket);

Limitations

  • Tous les serveurs SMTP ne prennent pas en charge la commande VRFY.
  • Certains serveurs peuvent ignorer RCPT TO en silence. demandes.
  • Les techniques de liste grise peuvent interférer avec la validation des e-mails.

Approche alternative

Malgré les limites de la vérification SMTP, une méthode plus fiable consiste à utiliser une expression régulière pour filtrer les adresses invalides, puis à envoyer un e-mail avec un lien de validation. Cela confirme l'adresse e-mail de l'utilisateur et évite les erreurs typographiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn