Bonjour,
Voila j'ai créer un webservices php qui permet d'envoyer des mail (principalement des campagnes) par SMTP.
j'ai rajouter plein de fonctionnalité (délai d'envoi, anti spam, compression des pjs, priorisation des mails, ...)
ça marche très bien.
mais le but premier de ce webservices c'est récupérer les informations de la campagne expéditeur, destinataire, ... .
mais surtout si le smtp n'a pas réussi à délivrer un mail avoir l'erreur.
et c'est sur ça que je bloque.
si le mail est délivrer tout de suite je peut avoir l'erreur (2% des cas).
mais si postfix le met dans la file d'attente (queue) je peut pas avoir l'erreur (98% des cas), ce qui est normal vu qu'il va l'envoyer plus tard.
j'ai analyser 2/3 solutions mais soit je comprend pas comment ça fonctionne soit ça marche pas a tout les coups.
1) bounce address : pour moi était la meilleur solution mais tu peut pas spécifier une adresse spécifique (Error-To: pas tout les smtp ne fonctionne avec ça) (j'aurais en PHP fouiller en imap l'adresse error@domain.fr)
2) analyser les log de mail (phpmailer ne renvoi pas l'id du message, car postfix le génère seulement quand il tente de l'envoyer, pas a la mise en file d'attente) (grâce a l'ID j'aurais fait un grep sur linux et j'aurais eu les info)
3) j'ai chercher du coté postfix mais j'ai pas trouvée ou ça existe pas
- impossible de rajouter dans le mta un ligne spécifique pour les non délivrer
- impossible avec le paramétrage d’exécuter un script sh/perl/php/... quand un mail n'a pas été délivrer
Je trouve ça quand même fou qu'il existe aucun moyen normer pour récupérer si un mail n'est pas partie.
Cordialement,
Partager