Pour mon premier message, je commence par quelque chose d’assez technique. Je suis en train de faire un générateur d’email sur la base d’un nom et prénom d’utilisateurs récupérer sur Linkedin.
Mon objectif est de tester si le SMTP est valide sur plusieurs domaine dont Gmail. Comme techno de base j’utilise j’utilise Node.js.
Savez-vous s’il existe une librairie NPM spécifique à Gmail, car je ne parviens pas à le tester. Et l’API de base ne fourni pas fonctionnalité pour tester si une adresse email est valide ou non.
Je comprends ce que tu essayes de faire, néanmoins saches qu’il ne s’agit malheureusement pas d’une technique fiable.
La raison en est toute simple, certains providers / serveur SMTP sont configurés pour contrer les pings de type « mail valide », de telle sorte qu’en testant ces SMTP ils répondront toujours par une réponse positive pour l’email en cours de test, alors même que celui-ci n’existe pas.
J’imagine que des serveurs SMTP de chez Google ou autres grands du web, sont extrêmement bien protégés contre les techniques comme celle que tu tentes de mettre en place.
pour tester sur node.js.
Je l’avais fait il y a longtemps:
var dns = require(‹ dns ›);
dns.resolveMx(domain, function(err, addresses) {
…smtp check
});
Pour le smtp check, je crois que j’avais utilisé:
ce qui donne:
import {SMTPClient} from ‹ smtp-client ›;
let s = new SMTPClient({
host: ‹ mx.domain.com ›,
port: 25
});
(async function() {
await s.connect();
await s.greet({hostname: ‹ mx.domain.com ›}); // runs EHLO command or HELO as a fallback
await s.authPlain({username: ‹ john ›, password: ‹ secret ›}); // authenticates a user
await s.mail({from: ‹ [email protected] ›}); // runs MAIL FROM command
// ici tu loop sur les emails a tester (par contre pas plus de 25 par batch de mémoire)
await s.rcpt({to: ‹ [email protected] ›}); // runs RCPT TO command (run this multiple times to add more recii)
Un moyen simple pour savoir si un un serveur est configuré en « accept all », c’est de générer un email aléatoire sur le domaine et voir s’il est deliverable. Si oui, c’est que le serveur accepte tout et les vérifications ont peu d’utilité.
Je suppose que si tu le développes c’est que tu préfère le faire toi même, mais je poste quand même ça là, sait-on jamais