Skip to content

symfony/mailer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f3871b1 · Jan 27, 2025
Sep 25, 2024
Mar 4, 2024
Jan 23, 2024
Jun 20, 2024
Jun 20, 2024
Sep 13, 2024
May 29, 2024
May 29, 2024
Sep 23, 2024
Oct 6, 2024
Jan 27, 2025
Jul 6, 2024
Sep 17, 2019
Nov 25, 2024
May 29, 2024
Oct 6, 2024
Jan 24, 2023
May 29, 2024
Jun 27, 2024
Nov 15, 2024
May 29, 2024
Sep 13, 2024
Sep 24, 2024
Jun 2, 2021

Repository files navigation

Mailer Component

The Mailer component helps sending emails.

Getting Started

composer require symfony/mailer
use Symfony\Component\Mailer\Transport;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mime\Email;

$transport = Transport::fromDsn('smtp://localhost');
$mailer = new Mailer($transport);

$email = (new Email())
    ->from('hello@example.com')
    ->to('you@example.com')
    //->cc('cc@example.com')
    //->bcc('bcc@example.com')
    //->replyTo('fabien@example.com')
    //->priority(Email::PRIORITY_HIGH)
    ->subject('Time for Symfony Mailer!')
    ->text('Sending emails is fun again!')
    ->html('<p>See Twig integration for better HTML integration!</p>');

$mailer->send($email);

To enable the Twig integration of the Mailer, require symfony/twig-bridge and set up the BodyRenderer:

use Symfony\Bridge\Twig\Mime\BodyRenderer;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\Mailer\EventListener\MessageListener;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mailer\Transport;
use Twig\Environment as TwigEnvironment;

$twig = new TwigEnvironment(...);
$messageListener = new MessageListener(null, new BodyRenderer($twig));

$eventDispatcher = new EventDispatcher();
$eventDispatcher->addSubscriber($messageListener);

$transport = Transport::fromDsn('smtp://localhost', $eventDispatcher);
$mailer = new Mailer($transport, null, $eventDispatcher);

$email = (new TemplatedEmail())
    // ...
    ->htmlTemplate('emails/signup.html.twig')
    ->context([
        'expiration_date' => new \DateTimeImmutable('+7 days'),
        'username' => 'foo',
    ])
;
$mailer->send($email);

Sponsor

The Mailer component for Symfony 7.2 is backed by:

  • Sweego, a European email and SMS sending platform for developers and product builders. Easily create, deliver, and monitor your emails and notifications.

Help Symfony by sponsoring its development!

Resources