Mails de demandes non livrés (proposition de solution)

On a parlé la semaine dernière du problème du suivi des emails non reçus par les administrations. C’est particulièrement criant pour les batches, où il peut arriver qu’une poignée de demandes ne soient pas délivrées correctement.
On n’a pas vraiment d’outil pour détecter ces cas-là, et plusieurs fois des usagers nous ont fait remonter des emails non livrés plus d’un mois après l’envoi initial.

J’avais échangé avec mySociety sur le sujet en Février, mais ils n’avaient pas vraiment de solution fiable. Leur recommandation: télécharger le CSV du batch, trier par nombre de réponses reçues, et se concentrer sur celles qui en ont le moins. Clairement, dans le contexte français, ça ne mènera pas à grand chose :frowning:

Il y’a dans la db une table mail_server_logs qui contient un champ delivery_status qui semble être ce qu’on cherche, mais après avoir épluché quelques demandes, je ne suis pas encore bien sûr de son mode de fonctionnement. Le code correspondant est dans app/models/mail_server_log.rb.

Mon impression est qu’on pourrait faire tourner un script une fois par jour (par exemple) qui listerait les emails envoyés pour lesquels on n’a pas de confirmation de livraison (au moins 6h après l’envoi) , et pour chacun d’eux, enverrait un mail à l’auteur de la demande, en disant simplement que le mail de demande n’a pas l’air d’être arrivé.

Pas exactement sûr du volume de travail, mais on a déjà un script qui notifie les usagers++ une fois par jour, on peut probablement le modifier pour ajouter ça dedans. On pourrait tester ça avec quelques usagers volontaires (il risque d’y avoir un peu trop de faux positifs au début).

Commentaires bienvenus!

Pas grand chose à dire à part que j’aime bien ta solution @LaurentS !

Je pensais que quand un mail n’était pas délivré, on recevait un « bounce » ou qqch du genre.