stocker les adresses emails qui ne fonctionnent pas dans une bd [MAIL] - PHP - Programmation
Marsh Posté le 18-05-2007 à 10:51:49
tu ne vas pas pouvoir distinguer un email invalide d'un email avec un bloqueur d'image
Marsh Posté le 18-05-2007 à 11:03:41
... a oui .. je n'avais pas pensé a ca ...
j'ai pensé au bloqueur d'image pour la lecture du mail, parce qu'en fait on considère que quelqu'un qui n'affiche pas les images ne lit pas le mail ...
mais ya pas moyen que le mail non délivré qui normalement renvoie un mailer daemon execute un script ... je ne sais pas si tu comprend ce que je veux dire .. lol .. mais je cherche des solutions ...
Marsh Posté le 18-05-2007 à 11:11:38
en fait ca va dependre des provider de mail
des fois tu aura un message te disant qu'il n'aura pas ete distribué, des fois non
et le traitement du mail de retour n'est pas non plus super simple a mettre en place
Marsh Posté le 18-05-2007 à 11:15:22
ouais ... bon .... en fait en gros c'est pas super faisable selon toi?
Marsh Posté le 18-05-2007 à 11:17:23
j'aidu mettre ca en place, et tout au mieux, j'ai pu differencier les adresses qui avaietn afficher les images au moins une fois, de celles qui ne les avaient jamais ouvertes
j'avais testé avec les demandes d'accusé de reception ,mais ca saoulait les destinataire et c'etait assez souvent bloqué
Marsh Posté le 18-05-2007 à 11:39:26
Si c'est pour obliger les gens à utiliser des adresses valides au moment de s'inscrire sur le site, tu peux faire le coup classique du mail contenant un "lien d'activation du compte".
Par contre, c'est sur que gérer les mails signalant des erreurs de distributions n'est pas facile. A mon ancien boulot, j'avais du utiliser une disaine de filtres succéssifs dans outlook pour trier la pluspart des mails. Malgrés ça j'en avais quand même qui étaient mal classé. En php, c'est encore plus difficile par ce qu'il faut séparer les différentes zones du mail avant de pouvoir y appliquer éfficacement des filtres.
Marsh Posté le 18-05-2007 à 11:41:56
flo850 a écrit : tu ne vas pas pouvoir distinguer un email invalide d'un email avec un bloqueur d'image |
ben le mail invalide peut être détecté avec le protocole SMTP : tu contactes le serveur host de messagerie, et tu lui demandes des infos sur l'email en question. normalement, il te répond si elle n'existe pas.
=> ze soucy, c'est que tu peux pas passer par un relay, tous les serveurs ne vont pas toujours répondre, etc.
L'autre solution, c'est d'avoir une boîte aux lettres virtuelle que tu colles en adresse de réponse à ton mail envoyé. Tout courrier qui y entre provoque un ban immédiat de l'email. Le souci, c'est que si le gars répond ça le fait pas (d'un autre côté, quand on répond c'est généralement pour demander à se désinscrire )
Marsh Posté le 18-05-2007 à 11:43:37
omega2 a écrit : Par contre, c'est sur que gérer les mails signalant des erreurs de distributions n'est pas facile. A mon ancien boulot, j'avais du utiliser une disaine de filtres succéssifs dans outlook pour trier la pluspart des mails. Malgrés ça j'en avais quand même qui étaient mal classé. En php, c'est encore plus difficile par ce qu'il faut séparer les différentes zones du mail avant de pouvoir y appliquer éfficacement des filtres. |
Moi j'ai réglé le problème, mon site envoie des mails avec mon adresse, donc quand j'ai 150 "return mail to sender" dans ma bal, je sais que j'ai 150 adresses à effacer de mon site
Marsh Posté le 18-05-2007 à 11:51:20
MagicBuzz > C'est clair que si ta boite mail ne sert qu'a ça, c'est plus facile, mais quand elle sert aussi à autre chose, ça se complique vu que les serveurs mails de certains FAI francais renvoyent des mails en francais, que les serveurs lotus notes ne renvois pas le même texte que les autres serveurs ...
Enfin bref ...
En passant, tu fais comment pour obtenir les infos d'un compte à un serveur smtp? Réponds moi par MP si c'est trop HS.
Marsh Posté le 18-05-2007 à 12:06:54
MagicBuzz a écrit : ben le mail invalide peut être détecté avec le protocole SMTP : tu contactes le serveur host de messagerie, et tu lui demandes des infos sur l'email en question. normalement, il te répond si elle n'existe pas. |
et donc quand tu reçois un mail de type "la remise du message a ete repoussé, mais ne vous inquietez pas le client recevra son mail " , tu considere l'adresse invalide ?
Marsh Posté le 18-05-2007 à 12:15:26
Ben attends, je recherche.
http://fr.wikipedia.org/wiki/Simpl [...] r_Protocol
=> Normalement, lorsque tu dis "RCPT <email>" le serveur répond "250 recipient ok". Si l'email n'est pas bonne, ou si la boite est pleine ou autre, tu es censé recevoir un autre code. Mais après, est-ce que tous les serveurs SMTP respectent la chose ?
Dans tous les cas, cela demande à écrire son propre module d'envoie d'email, histoire de faire le test au moment de l'envoi, plutôt que d'établir deux connection pour rien.
Marsh Posté le 18-05-2007 à 12:20:58
D'après la norme : http://tools.ietf.org/html/rfc821#section-3.3
|
Il y a VRFY aussi, mais on dirait qu'il ne sert qu'à matcher le nom de l'utilisateur avec une email. Je ne sais pas s'il accepte une adresse email en entrée.
|
PS : Je réponds pas par MP, parceque je pense que c'est de loin la méthode la plus propre pour tester la validité d'un mail.
Marsh Posté le 18-05-2007 à 12:22:42
sauf que si ton smtp est par exmeple smtp.wanadoo.fr
c'est lui que tu interroge, et je sais aps dans quelle mesure il est fait ses verifs (juste le domaine racine? tout le domain ? ou user@domain)
par exemple , tu envoi un mail a toto@compta.france.entreprise.com
est ce qu'il vérifié lexistence du .com ? celle de compta.france.entreprise.com ou celle detoto@compta.france.entreprise.com ?
edit : par rapport a ton exmepl , est ce que ca fonctionne aussi avec des domaines disjoint
Marsh Posté le 18-05-2007 à 13:02:36
En cherchant j'ai finis par trouver une version francaise de la RFC : http://www.iprelax.fr/smtp/821tm.php
Visiblement, VRFY permet de vérifier l'existance d'un utilisateur. Par contre, le fait que l'adresse email soit utilisable pour cette vérification dépend de l'implantation du serveur SMTP.
La commande EXPN permet d'obtenir de la même maniére la liste des inscriptions à une liste de diffusion.
Ces deux commandes peuvent ne pas être implémenté (ca ne fait pas partie des spécifications minimales)
Pour RCPT, si j'ai bien compris le truc, ca indique juste que le serveur SMTP accepte d'envoyer le mail à ce destinataire là. On ne peut donc pas vérifier l'existance du destinataire s'il est hébergé sur un autre serveur vu qu'on aura une réponse positive s'il accepte de servir de relais et une négative s'il refuse et ce que l'adresse mail soit ou non valide.
Marsh Posté le 18-05-2007 à 13:54:36
flo850 a écrit : sauf que si ton smtp est par exmeple smtp.wanadoo.fr |
D'où le fait que je dis qu'il faut faire son propre service de SMTP, et se connecter manuellement au serveur final.
T'envoies le mail à "trucmuche@domain.com" => tu dois trouver sur quel serveur est hébergé cette email et interroger le domaine.
Faut regarder du côté des relais du coup, ou simplement interroger l'enregistrement MX de "domain.com"
Marsh Posté le 18-05-2007 à 13:57:17
flo850 a écrit : sauf que si ton smtp est par exmeple smtp.wanadoo.fr |
Mon email est en "manga-torii.com"
Mon enregistrement MX est "shawt.net"
Avec une requête DNS pour retrouver le MX de manga-torii.com, tu trouves donc l'adresse du SMTP final.
Si shawt.net ne faisait qu'un relais vers "zozoll-online.com" alors il te le dirais dans la réponse au moment du VRFY ou RCPT : User not local, en indiquant quelle réelle email se cache derrière. A ce moment, tu récupère le DNS de l'email en question, et tu recommences.
Marsh Posté le 18-05-2007 à 14:01:58
omega2 a écrit : Ces deux commandes peuvent ne pas être implémenté (ca ne fait pas partie des spécifications minimales) |
=> C'est pour ça que j'ai dit dès le départ que c'était pas forcément la solution la plus fiable. Ceci dit, si avec ça tu détectes que l'email n'est pas valide, tu peux être sûr et certain qu'elle ne l'est pas, ça va donc filtrer énormément, et éviter d'envoyer le mail pour rien.
omega2 a écrit : Pour RCPT, si j'ai bien compris le truc, ca indique juste que le serveur SMTP accepte d'envoyer le mail à ce destinataire là. On ne peut donc pas vérifier l'existance du destinataire s'il est hébergé sur un autre serveur vu qu'on aura une réponse positive s'il accepte de servir de relais et une négative s'il refuse et ce que l'adresse mail soit ou non valide. |
Effectivement. Mais s'il s'agit d'un relay, il doit te dire où il va relayer. A partir de là, tu peux interroger le serveur qui gère l'adresse utilisée pour le relai.
Donc dans tous les cas, si t'envoies un mail "toto@truc.com" via Wanadoo, le premier truc à faire, c'est déjà de trouver le MX de truc.com avant d'aller chercher à interroger Wanadoo, qui te répondra forcément qu'il va relayer
Le problème, c'est que pour les grosses structures (ou les paranos comme le gars qui gère mon serveur de messagerie ), on va rapidement arriver à des relais internes, c'est à dire que le SMTP final n'est pas touchable : mail.shawt.net relai par exemple à serveur.zozoll-online.local, via une IP locale. Ainsi, impossible pour mon nom de domaine de savoir si duchmole@manga-torii.com existe ou non.
Edit : D'ailleurs c'est mieux, sur mon mail.shawt.net, un VRFY rençois direct un "permission denied"
Marsh Posté le 18-05-2007 à 10:08:48
Bonjour a tous,
je suis en train de réaliser un systeme de tracking d'email afin de savoir qui lit les mail qui clique les liens contenu dans celui ci, en stockant dans la bdd l'email du destinataire. Jusque la pas de probleme..
Mais il faut aussi que je puisse stocker dans une autre table les email invalide ou qui ne fonctionne plus..
et la je n'ai rien trouver qui puisse m'aider a le faire.. si vous avez des idées, meme une petite piste je suis preneuse.... parce que je n'ai vraiment rien trouvé..
si vous souhaitez des precisions n'hesitez pas...
Merci a tous..
Message édité par c_lolly_pop1 le 18-05-2007 à 10:14:36