J’ai corrigé un problème assez mineur qui existait depuis plusieurs années sur le service mail. Jusqu’à présent, les DSN n’étaient pas correctement envoyées lorsque les mails étaient destinés à l’extérieur.
Les DSN (Delivery Status Notifications) sont des rapports automatiques qui confirment si un mail a bien été délivré. Elles permettent de vérifier si un message a atteint sa destination et peuvent être activées dans son logiciel de messagerie. (À noter que ce n’est pas la même chose qu’un accusé de réception mail.)
![Image](https://images.franceserv.fr/images/2024/12/03/5141ed7474d713bec2a96ae81bac070c.png)
Désormais, les DSN sont générées correctement dans toutes les situations.
![Dan.San :ange:](./images/smilies/36.gif)
Pour résoudre ce problème, une troisième instance mail intermédiaire a été mise en place. Elle relaye les notifications entre l’instance mail sortante secondaire et le service principal, assurant ainsi leur bon acheminement.
Voilà l'explication technique plus en détail :
J'utilise depuis plusieurs années deux instances de serveur mail postfix-multi (tournant sur le même service mais pas le même port). La première reçoit les e-mails, évalue leur score de spam, et selon ce score si c'est à livrer aux clients, les livre soit dans le dossier des spams, soit dans le dossier du courrier entrant. Si des mails sont à destination de l'extérieur, elle relaie ces messages vers la seconde instance postfix. Cette seconde instance a pour rôle de bloquer les messages considérés comme du spam ou de les envoyer à l’extérieur.
Cependant, un problème survenait lorsqu’un utilisateur demandait une notification de statut de délivrance (DSN). Dans ce cas, le rapport mail ne pouvait pas revenir à la première instance depuis la seconde, car postfix-multi détectait une boucle infinie (loopback myself).
Pour résoudre ce problème, j'ai configuré un troisième serveur mail léger dans un autre conteneur LXC. Ce serveur est chargé de recevoir les e-mails DSN grâce à un transport spécifique pour les adresses locales depuis la seconde instance. Il relaie ensuite ces e-mails vers la première instance, sans déclencher le mécanisme de blocage de boucle infinie.
Et voici le schema (MOT) du traitement mail (d'une manière simplifiée) :
![Image](https://images.franceserv.fr/images/2024/12/03/5579bf386d2bc8b5950ad2e0e72ef260.jpeg)
Je ne sais pas si j'ai pu rester limpide dans mon explication
![Dan.San :)](./images/smilies/1.gif)