À propos de ce tutoriel
Maintenant que l'on a vu les concepts de base je vous propose d'attaquer un premier cas pratique : un formulaire de contact.
Composant mailer
Pour ce TP vous aurez besoin d'utiliser le composant Mailer. Pour tester l'envoi des emails en local vous pouvez utiliser un de ces outils :
- Mailpit, disponible sous forme de simple exécutable.
- Maildev, disponible sous forme d'image docker.
- Mailtrap qui est un service tiers avec une formule gratuite limitée à 100 emails / mois
Ensuite on modifiera le fichier d'environnement pour ce câbler au serveur SMTP choisi.
MAILER_DSN=smtp://localhost:1025
Et on va modifier la configuration messenger.yaml
pour que l'envoi des emails se fasse de manière synchrone.
framework:
messenger:
failure_transport: failed
transports:
async:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
options:
use_notify: true
check_delayed_interval: 60000
retry_strategy:
max_retries: 3
multiplier: 2
failed: 'doctrine://default?queue_name=failed'
sync: 'sync://'
routing:
Symfony\Component\Mailer\Messenger\SendEmailMessage: sync
Symfony\Component\Notifier\Message\ChatMessage: sync
Symfony\Component\Notifier\Message\SmsMessage: sync
Pour le reste, je vous laisse découvrir le composant et essayer de créer le formulaire de contact par vous même.