Gérer les erreurs de mail dans Django

Le problème exposé dans ce sujet a été résolu.

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.

+0 -0

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).

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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