Bonjour à tous,

Je débute sur Symfony, j'ai passé plusieurs jours à tenter d'envoyer des mails sur Symfony 6 avant de comprendre que l'envoie des mails se fessait de manière asynchrone.

Du coup en local, j'execute cette commande pour envoyer des mails :

php bin/console messenger:consume async -vv     

Mais je me demande quand même pourquoi l'envoie des mails se fait de manière asynchrone ?
Comment faire pour envoyer des mails ensuite quand mon application sera en ligne sur serveur mutualisé ?
Est-ce qu'il est possible d'envoyer des mails directement juste après l'appel à la fonction $mailer->send($email); ?

Merci d'avance pour vos retours 🙂

4 réponses


gillesr
Réponse acceptée

Je viens de vérifier sur un nouveau projet et il semble que l'envoi de mail soit par défaut configuré en async.
Pour envoyer les mails en direct, tu peux désactiver ça en commentant la ligne


Symfony\Component\Mailer\Messenger\SendEmailMessage: async

dans le fichier config/packages/messenger.yaml

Bonjour,

l'envoi ne se fait pas obligatoirement de manière asynchrone, tout dépend de ta configuration.
Qu'y a-t-il dans le fichier 'config/packages/mailer.yaml' ?

Bonjour Gillesr,

Merci pour ta réponse.

Voici le contenu de mon fichier config/packages/mailer.yaml

framework:
    mailer:
        dsn: '%env(MAILER_DSN)%'        

C'est la configuration par défaut.

Ah oui tout simplement !

Merci beaucoup 🙂