This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Mailer
Fabien Potencier 0d990449b3 bug #37961 [Mailer] Fixed 'verify_peer' option in mailer DSN being ignored (SnakePin)
This PR was squashed before being merged into the 5.1 branch.

Discussion
----------

[Mailer] Fixed 'verify_peer' option in mailer DSN being ignored

| Q             | A
| ------------- | ---
| Branch?       | 5.1 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | N/A <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT
| Doc PR        | N/A <!-- required for new features -->

The mailer DSN option 'verify_peer' was being ignored because `$dsn->getOption('verify_peer', true)` was returning a string and thus NOT operator on it was always resulting in false. I propose changing the line where it is used with a `filter_var` call with the `FILTER_VALIDATE_BOOLEAN` as the filter parameter to overcome this issue.

Commits
-------

1c789e87aa [Mailer] Fixed 'verify_peer' option in mailer DSN being ignored
2020-08-31 21:53:05 +02:00
..
Bridge Fix symfony/amazon-mailer constraint 2020-08-31 12:16:00 +02:00
DataCollector Fix some \Throwable support remaining issues 2019-11-12 18:18:47 +01:00
Event Merge branch '4.4' 2019-09-16 07:06:55 +02:00
EventListener Fix From/Sender handling in Emails 2020-04-16 16:49:30 +02:00
Exception Allow \Throwable $previous everywhere 2019-11-12 15:51:11 +01:00
Header [Mailer] added tag/metadata support 2020-01-30 10:57:20 -05:00
Messenger Merge branch '5.0' into 5.1 2020-06-11 23:20:02 +02:00
Test [Mailer] Change the DSN semantics 2019-09-02 15:50:44 +02:00
Tests [Mailer] Fixed 'verify_peer' option in mailer DSN being ignored 2020-08-31 21:52:58 +02:00
Transport [Mailer] Fixed 'verify_peer' option in mailer DSN being ignored 2020-08-31 21:52:58 +02:00
.gitattributes add missing gitattributes for phpunit-bridge 2020-03-27 17:54:36 +01:00
.gitignore Add gitignore file for Symfony 4.3 2019-09-17 11:54:03 +02:00
CHANGELOG.md [Mailer] add ability to disable the TLS peer verification via DSN 2020-01-29 08:52:36 +01:00
composer.json Merge branch '5.0' into 5.1 2020-05-20 19:43:50 +02:00
DelayedEnvelope.php [Mailer] Reorder headers used to determine Sender 2020-08-19 19:05:08 +02:00
Envelope.php Merge branch '5.0' into 5.1 2020-07-15 12:53:22 +02:00
LICENSE Update year in license files 2020-01-01 12:51:43 +01:00
Mailer.php [Mailer] Don't dispatch MessageEvent twice 2020-04-22 17:34:22 +02:00
MailerInterface.php rename SmtpEnvelope to Envelope 2019-09-12 16:17:57 +02:00
phpunit.xml.dist added the Mailer component 2019-03-30 09:09:06 +01:00
README.md Fix typo 2020-07-31 08:55:54 +02:00
SentMessage.php Add Message-Id to SentMessage when sending an email 2019-10-12 10:43:49 +02:00
Transport.php Merge branch '5.0' into 5.1 2020-06-09 13:33:28 +02:00

Mailer Component

The Mailer component helps sending emails.

Getting Started

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

$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\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\Mailer\EventListener\MessageListener;
use Twig\Environment as TwigEnvironment;

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

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

$mailer = new Mailer($transport, null, $eventDispatcher);

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

Resources