Programmation PHP/Symfony/Mailer

Un livre de Wikilivres.
Aller à la navigation Aller à la recherche

Mailer[modifier | modifier le wikicode]

Depuis Symfony 4.3, un composant Symfony Mailer a été ajouté.

Pour l'installer[1] :

Terminal
Logo
composer require symfony/mailer


Ajouter ensuite le SMTP dans le .env :

MAILER_DSN=smtp://mon_utilisateur:mon_mot_de_passe@smtp.example.com

Utilisation[modifier | modifier le wikicode]

    private MailerInterface $mailer;

    public function __construct(MailerInterface $mailer)
    {
        $this->mailer = $mailer;
    }

    public function send(string $message): void
    {
        $email = (new Email())
            ->from('no-reply@example.com')
            ->to('target@example.com')
            ->subject('Test Symfony Mailer')
            ->text($message)
        ;

        $this->mailer->send($email);
    }


Swift Mailer[modifier | modifier le wikicode]

Avant Symfony 4.3 et la création du composant Mailer[2], on pouvait utiliser Swift Mailer.

Swift Mailer est ensuite remplacé en novembre 2021 par le composant Mailer.

Installation[modifier | modifier le wikicode]

Terminal
Logo
composer require symfony/swiftmailer-bundle


Utilisation[modifier | modifier le wikicode]

Par exemple, pour un envoi d'email sans passer par config.yml :

        $transport = (new \Swift_SmtpTransport('mon_smtp.com', 25));
        $mailer = new \Swift_Mailer($transport);
        $message = (new \Swift_Message('Hello World from Controller'))
            ->setFrom('mon_email@example.com')
            ->setTo('mailcatcher@example.com')
            ->setBody('Hello World',
                'text/html'
            )
        ;
        $mailer->send($message);
 il existe des applications comme Mailcatcher[3] pour intercepter les emails envoyés en environnement de développement, et les lire dans une interface graphique.

Références[modifier | modifier le wikicode]