En regardant le FOSUserBundle, j’ai découvert une technique très int”ressante pour gérer les mails d’une application ou d’un bundle. Dans ce bundle, ils utilisent un service pour envoyer tous leur mails, ce qui apporte une couche d’abstraction supplémentaire au-dessus de Swift Mailer. Et ce là permet de garder le code des contrôleurs relativement propre.
J’ai appliqué cette même technique pour l’envoi des mails de ce blog, voici le code de la page “À propos” de mon site.
Comme vous pouvez le voir dans cette action, on sait seulement que l’on doit envoyer un message à partir des informations saisies dans le formulaire de contact, mais on ne sais pas comment celui-ci va être envoyé. On pourrait très bien l’envoyer via Swift Mailer ou alors directement via mail().
Dans mon cas, j’ai suivi l’implémentation faite dans FOSUserBundle en ajoutant une dépendance afin de générer des mails en html :
Avec cette technique, on peut facilement redéfinir la façon d’envoyer les mails et leur contenu sans toucher à la logique métier.