Le premier parchemin

Exercice 1 sur 6 du chapitre 10 · 270 XP · 5 objectifs vérifiés par des tests

Notions abordées : MailerMailerInterfaceEmailMAILER_DSNassertEmailCount

Les réservations du site sont désormais enregistrées : Pipin a ajouté au formulaire l'adresse du voyageur et le jour de sa venue. Il manque la politesse de la maison : un parchemin de confirmation, envoyé à chaque réservation.

Mailer

Le composant Mailer envoie des e-mails à travers un transport, choisi par la variable MAILER_DSN : smtp://… en production, un service comme Mailgun ou Brevo, ou null://null, qui n'envoie rien du tout. C'est le cas ici : aucun parchemin ne quitte vraiment la taverne. Pour que vous puissiez les lire, Pipin garde une copie de chaque envoi dans la 📬 Boîte aux lettres (/boite-aux-lettres, en développement seulement).

Dans le code, on construit un Email et on le confie à MailerInterface. Le transport ne change rien au code.

Votre mission

  1. Après chaque réservation enregistrée, envoyez un parchemin à l'adresse donnée, avec pour sujet « Votre table au Dragon Ivre ». Le texte mentionne le nom, le nombre d'aventuriers et la date (18/09/2026).
  2. Chaque parchemin de la taverne vient de La taverne du Dragon Ivre <taverne@dragon-ivre.fr>. Réglez-le une fois pour toutes dans config/packages/mailer.yaml, pas dans le contrôleur.
  3. Une adresse invalide est refusée (422), avec un message qui parle d'« adresse ».
  4. Une réservation refusée n'envoie rien.

Pour essayer : réservez une table dans l'aperçu, puis ouvrez la boîte aux lettres.