Lors des campagnes Marketing, il est primordial d’avoir une base d’adresses mail valides. Par validation, j’entends que l’adresse est correcte dans la structure (toto@tata.com par exemple) mais également qu’elle est défini et active sur un serveur.
Le premier niveau de contrôle (également le niveau le plus simple) c’est de valider la structure de l’adresse avec une expression régulière ou en utilisant la lib apache.commons-validator
EmailValidator emailValidator = EmailValidator.getInstance(); boolean valid=emailValidator.isValid(sEmail);
Ce premier niveau vous dira seulement si la structure de l’adresse est bonne (cela permettra de faire dèjà un premier tri), si vous souhaitez savoir si l’adresse est valide c’est un peu plus compliqué
J’ai passé un peu de temps sur la recherche d’une solution (en Java) et une approche consiste à intérroger un serveur SMTP en lui envoyant un mail lui disant COUCOU je souhaiterais valider l’adresse suivante. Comment on s’y prend ? En ouvrant un socket vers le serveur SMTP :
1- on lui envoi un “ECHLO” + domain (extrait de l’adresse mail, @tata.com)
2- On valide l’envoyeur “MAIL FROM: <” + senderAddress + “>”
3- On valide le destinataire “RCPT TO: <” + address + “>”
4- Enfin, on quitte proprement “RSET” puis “QUIT”
Bien sur, à chaque niveau on teste le retour.
Pour le code java, c’est plutôt ici.
Le serveur SMTP que l’on interroge est soit renseigné par défaut soit “récupéré” depuis le domaine.
A partir de ces informations, j’ai créé une étape dans PDI. Voila à quoi ressemble le résultat:
A@
Samatar

quelle habileté !
cpmment ne pourrait-on pas être un det es admirateurs ?
Bonjour,
merci pour ce commentaire.
As-tu jeter un cup d’oeil sur Pentaho Data Integration?
Samatar