Bonjour,

sur plusieurs de nos applications nous utilisons state_machine avec
des hooks before/after_transition pour envoyer des emails (par
exemple, un envoi de mail de confirmation à un nouvel utilisateur, ou
une confirmation de commande).
Malheureusement l'envoi de mail échoue parfois : adresse mail fausse
ou qui contient une typo, erreur SMTP sur le serveur mail, problème
réseau... ce qui entraîne l'envoi d'un mail d'exception_notifier (qui
peut d'ailleurs potentiellement échouer lui aussi) et l'affichage
d'une erreur 500 au visiteur.

Dans la plupart des cas l'envoi de ce mail dans l'immédiat n'est pas
primordiale, on doit donc pouvoir ignorer cette erreur et retenter un
envoi ultérieurement, le visiteur n'ayant pas a être au courant de ce
genre de problèmes.
J'envisage 2 pistes pour éviter ce genre d'erreurs :
- passer l'envoi de tous les mails en background (avec resque ou
delayed_job par exemple), ce qui serait le plus "propre", et gérer les
erreurs dans ce contexte (logging, renvoi)
- reprendre tous les cas ou on envoie un mail et catcher manuellement
les erreurs possibles pour les logger ou prévenir l'admin. On aurait
ainsi pas besoin de mettre en place un système de tâches de fond s'il
n'y en a pas déjà mais ça peut demander du temps de dev important
selon la taille du projet et complexifier le code des modèles

Comment procédez vous sur vos projets ? Il me semble que la solution
resque_mailer ou delayed_job est la plus populaire mais il y a peut
être d'autres pistes que je n'ai pas encore exploré.

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à