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]
