You are currently viewing Symfony Mailer – Et si je t’envoi un mail

Symfony Mailer – Et si je t’envoi un mail

  • Post comments:4 commentaires
  • Temps de lecture :4 min de lecture

Dans une application Symfony, ce n’est pas rare d’avoir besoin d’envoyer des mails. Dans cet article, je vais vous montrer l’envoi de mail avec un nouvel composant Symfony : Mailer.

Installation

Pour installer Mailer, on va utiliser la célèbre commande composer :

 composer require symfony/mailer

Configuration

Rien à configurer pour l’instant.

Utilisation

Lors de l’installation du composant Mailer, celui ci comporte deux classes :

  • SMTPTransport ( Uniquement pour ceux qui veulent lié à Messenger de Symfony )
  • Mailer ( Comme SwiftMailer c’est lui qui envoi votre email ).

Pour notre exemple, on utilisera le smtp Gmail comme pour l’article avec Swiftmailer.

A Savoir, pour les emails avec Swiftmailer on utilisait directement Swift_Message. Pour Mailer, on va utiliser un nouveau composant Mime.

Mime Component

MIME (Multipurpose Internet Mail Extension) est une norme qui étend le format de base des emails, pour rajouter du contenu complexe par exemple

  • Pièces jointes non textuels comme des images, vidéos, gif.
  • Injecter directement de Html dans le corps.
  • etc.

Installation

composer require symfony/mime

Avec ce package on va pouvoir créer un objet Email.

Exemple

Dans un premier temps, on va créer notre email !

Comme pour SwiftMailer, nous allons devoir crée une variables dans notre .env qui seront nos informations de connexion sur le smtp de Gmail.

// .env 

// SMTP Configuration with Gmail
MAILER_DSN=smtp://test42:PASSWORD@gmail

Pour créer un mot de passe d’application avec Gmail cliquez ici

Pour la liste des autres DSN cliquez ici

Maintenant on va envoyer un mail via une commande Symfony (Lien vers l’article).

Maintenant vous avez compris le nouveau système d’envoi de mail de Symfony : Mailer

Like a Boss

Cet article a 4 commentaires

  1. sidi

    Merci pour ce tuto

  2. rimoi

    Bonjour je l’ai tester mais ça ne marche pas !
    J’ai ceci comme message d’erreur :

    Connection could not be established with host “ssl://gmail:465”: stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name or service not known.

    1. rimoi

      J’ai trouvé la solution !
      Le problème provient de mon MAILER_DSN
      ‘MAILER_DSN’ => ‘gmail+smtp://USERNAME:PASSWORD_APPLICATION@default’,

      Et n’oublié pas d’installer google-mailer avec

      composer require symfony/google-mailer

      1. Gary Houbre

        Merci pour ton retour, je vais faire une vérification et modifier si nécessaire.

Laisser un commentaire