Gérer les erreurs de mail dans Django

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

J’ai une application Django (1.10) qui envoie des mails. Par exemple, quand un utilisateur passe une commande, je crée des objets dans ma base et lui envoie un mail confirmant la prise en compte de sa commande. Quand l’envoi du mail provoque une erreur (par exemple parce que le serveur mail est hors service), j’affiche un message lui indiquant que la commande a bien été enregistrée mais que le mail n’a pu être envoyé.

Ce que j’aimerais pouvoir faire, c’est, une fois le serveur mail réparé, pouvoir envoyer tous les mails qui n’ont pas pu l’être. Je me dis qu’il est possible de faire ça en les stockant en base, mais je me demandais s’il n’existait pas un truc déjà implémenté. Par exemple, je pourrais basculer de backend mail au rattrapage de l’erreur pour stocker mes mails dans des fichiers.

Avez-vous déjà rencontré un tel problème ?

Merci.

"Bienheureux celui qui sait rire de lui-même, il n’a pas fini de s’amuser." Joseph Folliet

+0 -0
Auteur du sujet

Merci pour ta réponse. Je ne suis pas vraiment sûr de comprendre à quoi sert PostFix. Il semblerait qu’il intervienne derrière Django. J’enverrais un mail à PostFix plutôt qu’à mon serveur SMTP et ensuite PostFix lui transmettra, en gérant les échecs éventuels ?

Sinon, j’ai développé un petit backend qui sauvegarde en base les mails non envoyés : https://github.com/Vayel/GUCEM-BVC/blob/master/bvc/backends/email.py. Je ne suis pas sûr de sa robustesse, mais il semble fonctionner dans mon cas (que des pièces jointes sous forme de tuples, avec du contenu texte).

"Bienheureux celui qui sait rire de lui-même, il n’a pas fini de s’amuser." Joseph Folliet

+0 -0

Cette réponse a aidé l’auteur du sujet

PostFix permet de remplacer sendmail dans son utilisation la plus simple.

Tu as la documentation officielle traduite ici et une autre adaptation de la documentation ici.

Il me semble que PostFix permet de gérer les erreurs après l’envoi (comme un mail qui n’arrive pas à destination), alors que ton script python détecte seulement les erreurs à l’envoi ?

Édité par A-312

+0 -0
Auteur du sujet

Ah d’accord, je n’avais pas compris que PostFix était un serveur mail. Merci, je vais regarder ça. :)

"Bienheureux celui qui sait rire de lui-même, il n’a pas fini de s’amuser." Joseph Folliet

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte