Programmation PHP avec Symfony/Mailer
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

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

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.
Templates[modifier | modifier le wikicode]
Pour simplifier les templates d'email, une alternative au HTML / CSS existe, il s'agit de Inky[4].
Elle utilise d'autres balises XML, comme callout
ou spacer
[5].
Installation :
composer require twig/extra-bundle twig/inky-extra
Utilisation :
{% apply inky_to_html %} ...