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.
Go to file
Fabien Potencier 7bdeff0f84 feature #33233 [Mailer] Simplify the way TLS/SSL/STARTTLS work (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Simplify the way TLS/SSL/STARTTLS work

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | yes
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | -

The way TLS/SSL/STARTTLS is handled is not easy to understand. It's inherited from Swiftmailer and today, I've spent some time to see if we could improve it.

First, the current way: `setEncryption()` takes a string, either `ssl` or `tls`:

 * `ssl`: to enable TLS support on the connection
 * `tls`: to enable `STARTTLS` (upgrade the connection)

There is also a `isTLS()` method which is really confusing due to the fact that both configuration are about TLS anyway.

So, this PR changes things radically:

 * The `setEncryption` method and the `encryption` option on the DSN are gone.

 * TLS is used by default and you can disable it via `disableTls()`. Being secure by default is probably a good idea anyway (like using HTTPS by default instead of HTTP).

 * A new "protocol" SMTPS is supported now and is a way to say that you want TLS; so use `smtps://localhost` to set TLS instead of `smtp://localhost?encryption=ssl`. Note that using `smtp://localhost:465` does the same. All third-party providers now supports both `smtp` and `smtps` protocol even if that does the exact same thing for them (TLS is always enabled).

 * The port is automatically determined based on the TLS setting (if not set explicitly). So 465 for TLS and falls back to 25.

 * There is no more way to enable `STARTTLS`. If you don't configure TLS on the connection and if the server supports `STARTTLS`, then we will enable it automatically.

Great document about all of this: https://www.fastmail.com/help/technical/ssltlsstarttls.html

Commits
-------

5b8c4676d0 [Mailer] simplified the way TLS/SSL/StartTls work
2019-08-19 12:47:43 +02:00
.composer Drop hirak/prestissimo 2016-05-12 07:44:15 -05:00
.github add yceruto as code owner of the ErrorRenderer component 2019-08-06 14:17:02 +02:00
src/Symfony [Mailer] simplified the way TLS/SSL/StartTls work 2019-08-19 11:19:02 +02:00
.appveyor.yml Merge branch '3.4' into 4.3 2019-08-10 22:47:15 +02:00
.editorconfig Update .editorconfig 2018-09-06 16:22:56 +02:00
.gitignore Run the phpunit-bridge from a PR 2019-08-02 17:46:19 +02:00
.php_cs.dist Merge branch '4.3' into 4.4 2019-08-14 14:37:46 +02:00
.travis.yml Merge branch '4.3' into 4.4 2019-08-10 22:49:34 +02:00
CHANGELOG-4.0.md Merge branch '3.4' into 4.1 2018-08-01 18:22:14 +02:00
CHANGELOG-4.1.md updated CHANGELOG for 4.1.10 2019-01-06 17:16:07 +01:00
CHANGELOG-4.2.md updated CHANGELOG for 4.2.10 2019-06-26 16:19:37 +02:00
CHANGELOG-4.3.md updated CHANGELOG for 4.3.3 2019-07-28 09:10:02 +02:00
CODE_OF_CONDUCT.md Added the Code of Conduct file 2018-10-10 03:13:30 -07:00
composer.json [WebLink] implement PSR-13 directly 2019-08-12 15:51:36 +02:00
CONTRIBUTING.md Mention the community review guide 2016-12-18 22:02:35 +01:00
CONTRIBUTORS.md Fixed markdown file 2019-08-13 19:39:09 +02:00
LICENSE update year in license files 2019-01-01 14:45:19 +01:00
link Merge branch '3.4' into 4.2 2019-05-20 18:15:26 +02:00
phpunit cs fix 2019-08-14 11:39:58 +02:00
phpunit.xml.dist [Cache] Add optimized FileSystem & Redis TagAware Adapters 2019-04-24 07:47:35 +02:00
README.md Merge branch '2.8' into 3.4 2018-05-25 16:50:57 +02:00
UPGRADE-4.0.md Merge branch '3.4' into 4.2 2019-06-06 12:03:46 +02:00
UPGRADE-4.1.md Merge branch '4.0' into 4.1 2018-05-31 12:17:53 +02:00
UPGRADE-4.2.md [Validator] fix deprecation layer of ValidatorBuilder 2019-06-06 19:07:55 +02:00
UPGRADE-4.3.md cs fix 2019-08-13 08:47:41 +02:00
UPGRADE-4.4.md feature #32845 [HttpKernel][FrameworkBundle] Add alternative convention for bundle directories (yceruto) 2019-08-13 15:29:11 +02:00
UPGRADE-5.0.md feature #32845 [HttpKernel][FrameworkBundle] Add alternative convention for bundle directories (yceruto) 2019-08-13 15:29:11 +02:00

Symfony is a PHP framework for web applications and a set of reusable PHP components. Symfony is used by thousands of web applications (including BlaBlaCar.com and Spotify.com) and most of the popular PHP projects (including Drupal and Magento).

Installation

Documentation

Community

Contributing

Symfony is an Open Source, community-driven project with thousands of contributors. Join them contributing code or contributing documentation.

Security Issues

If you discover a security vulnerability within Symfony, please follow our disclosure procedure.

About Us

Symfony development is sponsored by SensioLabs, led by the Symfony Core Team and supported by Symfony contributors.