Tester si un email existe et qu'il est valide

Petit nouveau ! | 8 Messages

11 févr. 2020, 20:58

Bonjour,

Existe t il à votre connaissance une fonction ou bout de code qui permettent de vérifier l’existence d'un email et qu'il est bien valide.
J'ai trouvé des bouts de fonction sur le net, qui date de longtemps et après test ne donne pas de résultat.
Je souhaiterais trouver de la documentation , ou des petits bouts de code fonctionnels cette fois.
pour l'exemple il existe des sites sur le net qui propose ce type de service: https://verify-email.org/


Voila ce que j'ai trouvé par exemple:
https://github.com/deewakarbabu/Emailve ... verify.php

Merci par avance.

Mammouth du PHP | 1630 Messages

12 févr. 2020, 09:42

on utilise cette fonction pour vérifier qu'un email correspond à un email valide (point de vue caractère spéciaux pas qu'il existe)
https://www.php.net/manual/en/function.filter-input

pour vérifier l'éxistence du mail, on envoie un mail avec un lien pour vérifier sa validité.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Petit nouveau ! | 8 Messages

12 févr. 2020, 13:00

ok mais si le destinataire ne clique pas sur le lien, tu n'as pas l'information.

Sur le site de verify-email, tu indiques un email et tu as le résultat dans la foulé, c'est surement pas fiable a 100%.
Mais c'est de l'instantané.
Mon objectif est d'identifier les emails invalident, obsolètes d'une base de donnée.
Du coup ce site verify-email m'inspire beaucoup

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8457 Messages

12 févr. 2020, 14:33

Bah du coup ils le font en 3 étapes comme ils l'ont indiqué :
1) vérifier que l'adresse est techniquement bien formé (c'est ce que t'a indiqué Spols)
2) vérifier que le domaine existe bien et a des enregistrements MX pour recevoir des mails (cf la fonction PHP chceckdnsrr() https://php.net/checkdnsrr )
3) te connecter au serveur de mail distant pour simuler l'envoi un mail et quitter juste après avoir indiqué l'adresse du destinataire (techniquement c'est décrit ici)


C'est ce que fait aussi j'ai l'impression le code Github que tu as posté, du coup, quelle est la question ? :-D
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 8 Messages

12 févr. 2020, 15:44

hé bien la question est lié au fait du code trouvé sur le github qui ne marche pas, ou je n'ai pas su le faire tourner.
Et le doute c'est que cela ne fonctionne surement plus comme ça.

Concernant les points 1 et 2 ça, ça va.

C'est effectivement le point 3 que je voudrais comprendre.
Le mécanisme et sur lequel je ne trouve pas de doc pertinente.

Mammouth du PHP | 1630 Messages

12 févr. 2020, 17:27

Un autre moyen est d'envoyer un mail à toutes les addresses que tu as et de voir les mail de retour d'erreur et supprimer ces mail là.

Car sinon je trouve que mettre tout cela en place est un peu complex et inutile dans la plupart des cas.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8457 Messages

12 févr. 2020, 18:11

C'est effectivement le point 3 que je voudrais comprendre.
Le mécanisme et sur lequel je ne trouve pas de doc pertinente.
C'est parfaitement décrit ici :
https://www.webdigi.co.uk/blog/2009/how ... -an-email/

Et en regardant le code de la librairie tu verras que c'est ce qu'il fait.

Toutefois il est important de préciser que ça ne marchera pas avec tous les serveurs de mails.
Et que certains serveurs de mail (notamment Gmail par exemple) vont bannir ton IP au bout de quelques dizaines de tentatives si il voit que tu fait celà pour contrôler l'existence d'adresses e-mails sans envoyer réellement de mails derrières.

C'est d'ailleurs la raison même d'exister des services payants comme verify-email.org qui utilisent probablement des proxys/VPN pour éviter de se faire blacklister et donc gagner en fiabilité.
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 8 Messages

13 févr. 2020, 08:24

@ @rthur
Ah oui oui, j'avais vu ton lien dans ta première réponses, j'ai commencé à lire merci.
Je vais regardé ca de prêt et voir si j'arrive a quelque chose.

Oui tu as raison pour cette histoire de vpn, car j'ai une base de 4000 adresses a vérifier,
il faut y aller mollo.
Je peux aussi filtrer est traiter des groupes bien spécifiques en fonction des domaines.

Après je peux aussi pour les membres qui sont là régulièrement mettre en place un système qui les oblige, 1 fois par an ou ans1/2 à
vérifier leur email et par l'envoi d'un email a valider son existence.

@ Spols:

Oui c'est une solution, mais je la trouve empirique.
Pas pour moi, ce n'est pas inutile de chercher a me simplifier la vie, c'est le but même de l'informatique, on se creuse la tête au début et après c'est automatique et autonome...tout l’intérêt de la programmation ;)

Je vais regarder tout ca et je reviens vous donner des nouvelles...

Bonne journée et merci!

Mammouth du PHP | 1630 Messages

13 févr. 2020, 09:43

Oui c'est une solution, mais je la trouve empirique.
Pas pour moi, ce n'est pas inutile de chercher a me simplifier la vie, c'est le but même de l'informatique, on se creuse la tête au début et après c'est automatique et autonome...tout l’intérêt de la programmation ;)
Je suis d'accords avec toi mais il faut mettre le temps de programmation (y compris l'aprentissage spécifique) en parallèle avec le temps gagné et l'avantage réelle.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie