Validation de l'existence d'un courriel en PHP

Utilisation d'un script créer par webO3 pour valider l'existence d'une adresse de courriel sur le serveur SMTP.

Introduction

Ceci est une librairie (PHP) qui émule l'envoi d'un courriel en se connectant au serveur SMTP inscrit dans les MX du domaine, ce qui permet de vérifier si une adresse de courriel est utilisable avant de lui faire parvenir des courriels. On peut donc utiliser ce script pour valider des listes d'envoi.

Prérequis

  • PHP >= 5.6
  • fsockopen
  • getmxrr

Afin d'utiliser la librairie, on doit pouvoir se connecter au port 25 distant.

Plusieurs fournisseurs d'accès ne vous permettront pas de vous connecter directement sur le port 25 distant.

Télécharger

Via git :

git clone https://github.com/webo3/smtp-email-validation.git

Ou utiliser via composer :

composer require webo3/smtp-email-validation

Comment l'utiliser


// L'adresse à partir de laquelle on souhaite établir un test
$from = "user@domain.from";

// L'adresse que nous souhaitons tester l'existence
$to = "user@domain.to";

// Lancer le test de connexion
$result = \webO3\SmtpEmailValidation\Validator::test($from, $to);

Ce script commencera par établir une connexion au serveur de courriel (MX) défini pour le domaine du courriel que nous souhaitons tester. Une fois qu'il a déterminé le serveur à utiliser, il établira une connexion et enverra les commandes SMTP HELO/MAIL FROM/RCPT TO afin de simuler un envoie de courriel. Aucun courriel ne sera envoyé.

Voici les réponses possibles :

Array
(
    [code] => 10
    [success] => false
    [msg] => Could not find any MX record associated with the domain.
)

Array
(
    [code] => 15
    [success] => false
    [msg] => Could not connect to any MX servers, they maybe down.
)

Array
(
    [code] => 20,
    [success] => false
    [msg] => Server connexion timeout. They maybe connexion protection in place.
)

Array
(
    [code] => 25,
    [success] => false
    [msg] => Server did not return a 220 response code.
)

Array
(
    [code] => 250,
    [success] => true
    [msg] => Email is valid.
)

Array
(
    [code] => 451 ou 452,
    [success] => true
    [msg] => The server rejected the email temporary, this indicate that greylisting is in use.
)

Array
(
    [code] => 451 ou 452,
    [success] => false
    [msg] => The server rejected the email address.
)

Il y a plusieurs situations qui peuvent se produire. Serveur MX inconnu ou non disponible, greylisting, catch all, etc. L'utilisation de cette librairie ne garantit pas à 100% qu'une adresse existe ou pas. C'est un outil qui doit être utilisé avec des précautions et utiliser avec d'autres moyens de surveillances.

Autres suggestions

Session PHP

PHP

Tutoriel d'utilisation des sessions PHP.

Traduction Laravel

PHP

Utilisation d'un script créer par webO3 pour travailler avec les traductions sous Laravel.

Validation de l'intégrité des fichiers WordPress

PHP WordPress

Utilisation d'un script créer par webO3 pour valider l'intégrité du code source d'un WordPress.

Copyright 2017-2020 © webO3 - tout droit réservé