Installation
Le plugin Rebonds s’installe comme tous les plugins. Il nécessite le plugin Newsletters ainsi que l’extension IMAP de votre PHP.
Utilisations
Le plugin Rebonds vient en complément du plugin Mailshot pour traiter les erreurs SMTP (rebonds ou bounces) lors de l’envoi des info-lettres. Seuls les échecs de type “soft bounces” (4.X.X) ou “hard bounces” (5.X.X), respectivement une erreur temporaire (l’adresse est valide) ou définitive (l’adresse n’est pas valide), sont traités.
Ce plugin s’adresse aux envois directs sur un serveur SMTP et non par les services d’un prestataire (mailjet...) dont les erreurs sont gérées directement dans le plugin Mailshot.
La cinématique est la suivante:
- Lecture IMAP des emails dans la boite aux lettres qui reçoit les échecs (bounces) SMTP
- Recherche du code rejet SMTP (status) du type 4.X.X ou 5.X.X
- Recherche du destinataire d’origine (original-recipient) du type destinataire@domaine.ext
- Recherche des campagnes d’envoi correspondantes
- Exécution de l’API Newsletter
newsletter/feedback
Les adresses mail concernées sont alors désabonnées des listes de diffusion correspondantes.
Configuration
Connexion IMAP à la boite aux lettres
- La chaîne de connexion au serveur de messagerie est du type
imap.hebergeur.ext:993/ssl/novalidate-cert. Voir avec votre hébergeur le nom/port du serveur IMAP de messagerie. Si besoin consulter la documentation php. - L’utilisateur est l’adresse email qui collecte les messages d’erreur SMTP
- Le mot de passe pour se connecter à la boite aux lettres
- Le dossier est la boite de réception courante, par défaut
INBOX - La fréquence de consultation de la boite aux lettres est définie en heure
Notification d’échec de remise du message
- L’expéditeur permet de limiter la lecture des emails à ceux concernant les erreurs SMTP (postmaster...). En son absence, tous les messages de la boite aux lettres seront lus.
- Le préfixe code erreur est une chaîne de caractères unique qui précède (au plus près) le statut d’erreur SMTP (X.X.X) et permet de le retrouver dans le corps du message
- Le préfixe destinataire est une chaîne de caractères unique qui précède (au plus près) le destinataire d’origine du message en échec (email) et permet de le retrouver dans le corps du message
Exemple sur un extrait du message d’échec reçu (bounce)Reporting-MTA: dns; smtp.serveur.ext X-Postfix-Queue-ID: 3B6DE280868 X-Postfix-Sender: rfc822; expediteur@serveur.ext Arrival-Date: Thu, 01 May 2025 08:47:18 +0200 (CEST) Final-Recipient: rfc822;destinataire@domaine.ext Original-Recipient: rfc822;destinataire@domaine.ext Action: failed Status: 5.7.26 - Le préfixe du code rejet pourra alors être
Status=> 5.7.26 - Le préfixe du code destinataire pourra alors être :
Original-Recipient=> destinataire@domaine.ext (même si ’rfc822’ s’intercale entre les deux)
Campagnes d’envoi
La durée définit la profondeur de recherche des rebonds (échecs SMTP) dans la boite aux lettres après le début d’ouverture de la dernière campagne d’envoi. Elle est définie en nombre de jours.
Suppression des notifications
Les emails de notification traités peuvent être mis dans la corbeille de la boite aux lettres ou bien supprimés définitivement. Le dossier de la corbeille est par défaut INBOX.Trashmais peut varier selon les serveurs de messagerie.
Tester la configuration
Il est possible de tester la configuration de la connexion IMAP dans le formulaire de bas de page. En cas d’anomalie, le message indiquera l’erreur rencontrée, dans le cas contraire, le nombre de message de type “bounce” en attente de traitement.
Traitement périodique
Le traitement est lancé par le Cron SPIP sur la tâche imap_rebonds. Les logs sont écrites dans le fichier tmp/log/rebonds.log

Discussions by date of activity
One discussion
Ciao
Excellente initiative, je pense que c’est une très bonne idée de pouvoir gérer les bounces.
Cela semble simple mais efficace, merci
Merci @cam.laft de ton retour sympa. J’ai quelques améliorations dans les tuyaux en attente de test “grandeur nature” pour les passer sur la zone, notamment remettre en “non lu” les messages ouverts mais sans y avoir trouvé le destinataire ou le code erreur. Cela simplifie aussi les quelques tatonnements de réglage au départ.
Je suis également preneur de toute anomalie et/ou proposition d’amélioration sur le plugin...
a+
JMarc
Merci pour ce plugin !
Le nettoyage des listes d’e-mails est devenu quasi indispensable pour éviter les blocages en tant que fournisseur SMTP.
Ce plugin pourrait également servir de base pour implémenter le header List-Unsubscribe, une fonctionnalité intéressante pour enrichir l’écosystème des newsletters SPIP.
Je suis intéressé de collaborer sur ça
Bonjour Urs,
Ajouter une fonctionnalité “header List-Unsubscribe” aux Newsleters de SPIP est une très bonne idée. Je suis également intéressé pour y contribuer. Je pense par contre qu’il vaudrait mieux créer un nouveau plugin “ListUnsubscribe” spécifique que de réutiliser le plugin “Rebonds” qui traite uniquement les bounces même si la finalité est toujours de ne pas être considéré comme un SPAM.
Souhaites-tu que l’on collabore sur ce nouveau plugin ? Tu peux me contacter directement ou bien lancer un sujet sur discuter.spip.net
Merci ! :-)
Ca ne devrait pas plutôt être intégré à mailshot?
A mon sens, oui. Mais j’ai trouvé cette discussion récente qui semble fermer cette possibilité. C’est donc une proposition par défaut.
Ah oui la réponse de Cedric est assez coherente. Oui ajouter un unsubscribe id n’est necessaire que si on n’utilise pas un prestataire. Donc logique de mettre ailleurs.
@Urs, j’ai initialisé le plugin “List-Unsubcribe” sur la zone SPIP. Il est simple mais semble faire le travail. Il s’appuie sur le pipeline
newsletter_pre_envoide Mailshot pour ajouter les headers List-Unsubscribe. La limite est qu’il désabonne aujourd’hui un email de toutes ses listes de diffusion car ce pipeline ne met pas à disposition l’identifiant de la liste envoyée.Tu pourrais éventuellement (ou quiconque...) me faire un retour et voir si la piste te semble bonne à être améliorée ?
Merci :)
Reply to this message
Add a comment
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Follow the comments:
|
