TP : Formulaire de contact — Formation Symfony 7

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.

Liens utiles