Commit Graph

183 Commits

Author SHA1 Message Date
Fabien Potencier
5b8c4676d0 [Mailer] simplified the way TLS/SSL/StartTls work 2019-08-19 11:19:02 +02:00
Fabien Potencier
afb1c04c35 [Mailer] added a way to test the number of queued emails 2019-08-16 21:31:41 +02:00
Pierre du Plessis
2706a9763f
Don't duplicate addresses in Sendgrid Transport 2019-08-16 20:11:33 +02:00
Fabien Potencier
876cec7c45 [Mailer] fixed missing property assignment 2019-08-14 17:19:53 +02:00
Nicolas Grekas
32389f8b7f Merge branch '4.3' into 4.4
* 4.3:
  Disable phpunit typehint patch on 4.3 branch
  Fix deprecation on 4.3
2019-08-08 14:07:40 +02:00
Jérémy Derussé
8fd16a6bee
Fix deprecation on 4.3 2019-08-08 00:24:12 +02:00
Mario Blažek
43acda6cf4 Remove deprecated assertContains 2019-08-07 10:22:11 +02:00
Christian Flothmann
ee4192ebc7 fix getName() when transport is null 2019-08-06 09:00:18 +02:00
Fabien Potencier
23f237b92f added PHPUnit constraints and assertions for the Mailer 2019-08-05 18:16:42 +02:00
Fabien Potencier
fdaf0e0cf4 feature #32912 [Mailer] Add support for the profiler (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Add support for the profiler

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | closes #31592
| License       | MIT
| Doc PR        | n/a

Web profiler for the Mailer.

Commits
-------

f152314e28 [Mailer] added support for the profiler
2019-08-05 17:51:23 +02:00
Fabien Potencier
77951de0e3 [Mailer] fixed dispatcher not available in Mailer 2019-08-05 15:28:06 +02:00
Fabien Potencier
f152314e28 [Mailer] added support for the profiler 2019-08-04 22:35:18 +02:00
Fabien Potencier
7642178d76 [Mailer] added message events logger 2019-08-04 17:13:13 +02:00
Fabien Potencier
37265de54d feature #32916 [Mailer] Add a name to the transports (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Add a name to the transports

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Having a name for Transports helps identify them (useful for instance in the profiler when one uses several mailers).

Commits
-------

2412dfe71f [Mailer] added a name to the transport
2019-08-04 07:00:35 +02:00
Fabien Potencier
2412dfe71f [Mailer] added a name to the transport 2019-08-04 06:22:04 +02:00
Fabien Potencier
158fe2aaec [Mailer] added missing entry in the CHANGELOG 2019-08-04 06:13:47 +02:00
Fabien Potencier
4cfb4b95d6 [Mailer] added debug info on HTTP transport exceptions 2019-08-03 17:35:50 +02:00
Fabien Potencier
621c7405a4 Merge branch '4.3' into 4.4
* 4.3:
  [Mailer] fixed wrong error message when connection closes unexpectedly
2019-08-03 11:38:12 +02:00
Fabien Potencier
887f27d513 [Mailer] fixed wrong error message when connection closes unexpectedly 2019-08-03 11:36:03 +02:00
Fabien Potencier
eefcb33d80 feature #32896 [Mailer] added debug info to TransportExceptionInterface (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] added debug info to TransportExceptionInterface

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | ~

In 4.4, you can get the debug information for the SMTP/HTTP data via `$message->getDebug()` (see #32583). But the data are probably even more important when there is an exception. That's what I implemented in this PR.

Commits
-------

39ebb84602 [Mailer] added debug info to TransportExceptionInterface
2019-08-03 11:01:05 +02:00
Fabien Potencier
87458fc7b8 Merge branch '4.3' into 4.4
* 4.3:
  [Mailer] fixed error that is masked by another error
  [Mailer] fixed the order of authenticators
2019-08-03 10:59:34 +02:00
Fabien Potencier
e248345e5d bug #32895 [Mailer] Fix error not being thrown properly (fabpot)
This PR was merged into the 4.3 branch.

Discussion
----------

[Mailer] Fix error not being thrown properly

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

When the SMTP server returns a fatal error, the error is not thrown properly as catched and another error (empty) is thrown. That makes debugging very difficult and what we would expect anyway.

Commits
-------

15dbe4b948 [Mailer] fixed error that is masked by another error
2019-08-03 10:58:03 +02:00
Fabien Potencier
39ebb84602 [Mailer] added debug info to TransportExceptionInterface 2019-08-03 10:39:50 +02:00
Fabien Potencier
15dbe4b948 [Mailer] fixed error that is masked by another error 2019-08-03 10:22:01 +02:00
Fabien Potencier
0800e90fde [Mailer] fixed the order of authenticators 2019-08-03 09:24:14 +02:00
Nicolas Grekas
daa4e4020f Merge branch '4.3' into 4.4
* 4.3:
  Fix tests
  Fix deprecated phpunit annotation
2019-08-02 14:28:34 +02:00
Nicolas Grekas
1b56d7f04d Merge branch '3.4' into 4.3
* 3.4:
  Fix tests
  Fix deprecated phpunit annotation
2019-08-02 14:15:04 +02:00
Christian Flothmann
1b2aaa4a06 add parameter type declarations to private methods 2019-07-31 20:51:46 +02:00
Konstantin Myakshin
5d64009ae0 [Mailer] Make transport factory test case public 2019-07-25 22:12:48 +03:00
Konstantin Myakshin
eda4f01e0e [Mailer][DX][RFC] Rename mailer bridge transport classes 2019-07-25 11:34:25 +02:00
Konstantin Myakshin
8c24a537c7 [Mailer][DX] Improve exception message for unsupported scheme 2019-07-19 19:29:21 +03:00
Nicolas Grekas
edd4a74f5c [Mailer] fix merge 2019-07-18 23:13:01 +02:00
Nicolas Grekas
d3a50d6cef Merge branch '4.3' into 4.4
* 4.3:
  Properly handle optional tag attributes for !tagged_iterator
  [Mime] rename Headers::getAll() to all()
  [Mailer] Fix phpdoc for variadic methods
  [HttpClient] fix debug output added to stderr at shutdown
2019-07-18 22:39:44 +02:00
Nicolas Grekas
9252e75923 [Mime] rename Headers::getAll() to all() 2019-07-18 20:01:20 +02:00
Fabien Potencier
3849e1c238 feature #32583 [Mailer] Logger vs debug mailer (fabpot)
This PR was squashed before being merged into the 4.4 branch (closes #32583).

Discussion
----------

[Mailer] Logger vs debug mailer

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Currently, there is no way to get the network data for the HTTP calls done by the HTTP transports (which makes debugging harder). For SMTP, we do have the network data, but as logs (each SMTP command/response is its own log line which means that the logs are "polluted" and the data is not tied with the sent message).

This pull request adds a `getDebug()` method on `SentMessage`. That allows to get the debug data conveniently in a standardized way (for both SMTP and HTTP transports). I have moved the SMTP logs to this new mechanism and added support for HTTP transports.

Commits
-------

fded3cd68c [Mailer] added support ffor debug info when using SMTP
d2f33d2cfe [Mailer] added debug info for HTTP mailers
2019-07-18 15:39:24 +02:00
Fabien Potencier
fded3cd68c [Mailer] added support ffor debug info when using SMTP 2019-07-18 14:34:22 +02:00
Fabien Potencier
288772478c [Mailer] fixed logic 2019-07-18 10:29:30 +02:00
Fabien Potencier
d2f33d2cfe [Mailer] added debug info for HTTP mailers 2019-07-18 10:17:52 +02:00
Fabien Potencier
c8eed54684 fixed missing license 2019-07-18 10:16:25 +02:00
Konstantin Myakshin
5b9cded276 Add transport factories (closes #31385, closes #32523) 2019-07-16 22:15:50 +03:00
Teoh Han Hui
390c9a67bf
Remove experimental notice from components 2019-07-11 11:03:49 +02:00
Fabien Potencier
191cb52902 removed @experimental annotations 2019-06-29 18:43:50 +02:00
Fabien Potencier
4d8c473fd3 Merge branch '4.3' into 4.4
* 4.3:
  [Mailer] fixed tests on Windows
  [PhpUnitBridge] fix tests
  [Mailer] fixed error message when connecting to a stream raises an error before connect()
  [Mailer] fixed timeout type hint
  improve error messages in the event dispatcher
  [Security/Core] work around sodium_compat issue
  bumped Symfony version to 4.3.3
  updated VERSION for 4.3.2
  updated CHANGELOG for 4.3.2
  bumped Symfony version to 4.2.11
  updated VERSION for 4.2.10
  updated CHANGELOG for 4.2.10
  bumped Symfony version to 3.4.30
  updated VERSION for 3.4.29
  update CONTRIBUTORS for 3.4.29
  updated CHANGELOG for 3.4.29
  Fixed type annotation.
2019-06-27 18:48:03 +02:00
Fabien Potencier
90f61e9efa [Mailer] fixed tests on Windows 2019-06-27 18:29:52 +02:00
Fabien Potencier
eb15bffa78 [Mailer] fixed error message when connecting to a stream raises an error before connect() 2019-06-27 11:33:25 +02:00
Fabien Potencier
0e7ed9e45c [Mailer] fixed timeout type hint 2019-06-27 10:51:02 +02:00
Nicolas Grekas
55c0b02587 Merge branch '4.3' into 4.4
* 4.3: (34 commits)
  [PhpunitBridge] Read environment variable from superglobals
  [Bridge/PhpUnit] Fix PHP5.5 compat
  [PhpUnitBridge] More accurate grouping
  fixed CS
  Extract unrecoverable exception to interface
  [FrameworkBundle] Fix calling Client::getProfile() before sending a request
  Fix type error
  [Security/Core] require libsodium >= 1.0.14
  [Workflow] re-add workflow.definition tag to workflow services
  [Security/Core] Don't use ParagonIE_Sodium_Compat
  revert #30525 due to performance penalty
  collect called listeners information only once
  [Lock] fix missing inherit docs in RedisStore
  [Messenger] fix retrying handlers using DoctrineTransactionMiddleware
  [Mailgun Mailer] fixed issue when using html body
  [HttpClient] fix timing measurements with NativeHttpClient
  [HttpClient] fix dealing with 1xx informational responses
  add test to avoid regressions
  fix mirroring directory into parent directory
  fix typos
  ...
2019-06-26 11:30:56 +02:00
Fabien Potencier
f8b0bfd332 bug #32131 [Mailgun Mailer] fixed issue when using html body (alOneh)
This PR was merged into the 4.3 branch.

Discussion
----------

[Mailgun Mailer] fixed issue when using html body

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

I tested the `symfony/mailgun-mailer` and get an issue when using the `api` scheme with a templated email cause we try to manipulate a stream whereas the `Symfony\Component\Mime\Email::getHtmlBody()` could return also a string (in my case it is one).

The issue :

```
stream_get_meta_data() expects parameter 1 to be resource, string given
```

Commits
-------

afbefe131b [Mailgun Mailer] fixed issue when using html body
2019-06-26 10:48:20 +02:00
Hippolyte Alain
afbefe131b [Mailgun Mailer] fixed issue when using html body 2019-06-24 16:09:08 +02:00
Nicolas Grekas
698601140b minor #31993 [Mailer] Catch missing scheme in DSN (derrabus)
This PR was merged into the 4.3 branch.

Discussion
----------

[Mailer] Catch missing scheme in DSN

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | N/A
| License       | MIT
| Doc PR        | N/A

The `Symfony\Component\Mailer\Transport::createTransport()` method parses and validates a passed DSN. I noticed that we never check if the DSN contains a valid scheme, but we always assume that the scheme is present in then parse result. If someone passes a DSN without a scheme to that method, they would almost certainly run into a PHP notice.

This PR makes sure that a scheme is present in the URL and throws a proper exception otherwise.

Commits
-------

3eba36c088 [Mailer] Catch missing scheme in DSN.
2019-06-23 17:43:40 +02:00
Nicolas Grekas
651de173df Merge branch '4.3' into 4.4
* 4.3:
  [Cache] replace getNsSeparator by NS_SEPARATOR on AbstractTrait
  [Cache] fix versioning with SimpleCacheAdapter
  [Messenger] fix AMQP delay queue to be per exchange
  Fix expired lock not cleaned
  [HttpClient] throw DecodingExceptionInterface when toArray() fails because of content-type error
  [HttpFoundation] Fix SA/phpdoc JsonResponse
  [DI] Show the right class autowired when providing a non-existing class in constructor
  SimpleCacheAdapter fails to cache any item if a namespace is used
  validate composite constraints in all groups
  [Serializer] Handle true and false appropriately in CSV encoder
  [Messenger] improve logs
  [Messenger] fix delay delivery for non-fanout exchanges
  Parameterize Mailgun's region
  Fix binary operation `+`, `-` or `*` on string
  [VarDumper] fix dumping objects that implement __debugInfo()
  [HttpClient] Don't use CurlHttpClient on Windows when curl.cainfo is not set
  Add statement to fileLink to ignore href code when no fileLink.
  [Routing] fix absolute url generation when scheme is not known
2019-06-17 19:38:10 +02:00
Jérémy Derussé
7439c8de55
Parameterize Mailgun's region 2019-06-13 19:53:12 +02:00
Fabien Potencier
8787bbc94a Merge branch '4.3' into 4.4
* 4.3:
  fixed CS
  fixed CS
  fixed CS
  Do not log or call the proxy function when the locale is the same
  Added missing required dependencies on psr/cache and psr/container in symfony/cache-contracts and symfony/service-contracts respectively.
  [HttpClient] fix closing debug stream prematurely
  [Mailer] made code more robust
  Restore compatibility with php 5.5
  fixed sender/recipients in SMTP Envelope
  collect called listeners information only once
  [HttpKernel] Remove TestEventDispatcher.
2019-06-13 13:05:05 +02:00
Fabien Potencier
9526988eca fixed CS 2019-06-13 13:03:18 +02:00
Fabien Potencier
1c1d6d9edf bug #31992 Fix sender/recipients in SMTP Envelope (fabpot)
This PR was merged into the 4.3 branch.

Discussion
----------

Fix sender/recipients in SMTP Envelope

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #31986
| License       | MIT
| Doc PR        | n/a

<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.

Additionally (see https://symfony.com/roadmap):
 - Bug fixes must be submitted against the lowest maintained branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against branch 4.4.
 - Legacy code removals go to the master branch.
-->

Commits
-------

7a2f9bf134 fixed sender/recipients in SMTP Envelope
2019-06-12 18:30:49 +02:00
Fabien Potencier
8bdc6596ef [Mailer] made code more robust 2019-06-12 06:54:21 +02:00
Fabien Potencier
7a2f9bf134 fixed sender/recipients in SMTP Envelope 2019-06-11 21:40:57 +02:00
Alexander M. Turek
3eba36c088 [Mailer] Catch missing scheme in DSN. 2019-06-11 14:30:26 +02:00
Konstantin Myakshin
bdb6217b15 Changed EventDispatcherInterface dependency from Component to Contracts 2019-06-09 11:03:37 +03:00
Fabien Potencier
7207849037 Merge branch '4.3' into 4.4
* 4.3:
  [Console] Add check for Konsole/Yakuake to disable hyperlinks
  [HttpClient] work around PHP 7.3 bug related to json_encode()
  [VarDumper] fix dumping the cloner itself
  Rename the Symfony Mailer service config to avoid conflict with SwitMailer
  Set default crypto method - Fix #31105
  [Form] add missing symfony/service-contracts dependency
  [HttpClient] Don't throw InvalidArgumentException on bad Location header
2019-06-05 04:26:21 +02:00
Beno!t POLASZEK
4f0ad25fab Set default crypto method - Fix #31105 2019-06-04 15:59:49 +02:00
Fabien Potencier
926ded8ea5 Merge branch '4.3' into 4.4
* 4.3:
  Fix inconsistency in json format regarding DST value
  changed type hints
  do not process private properties from parent class
  [HttpClient] fix unregistering the debug buffer when using curl
  don't add embedded properties to wrapping class metadata
  [Messenger] set amqp content_type based on serialization format
  [Mailer] fixed the possibility to set a From header from MessageListener
2019-06-04 14:24:01 +02:00
Fabien Potencier
d56ae06ca3 changed type hints 2019-06-04 11:22:54 +02:00
Fabien Potencier
f4254e6f5e [Mailer] fixed the possibility to set a From header from MessageListener 2019-06-01 11:23:43 +03:00
Alexander M. Turek
e6a4526fa3 Marked several components as incompatible with EventDispatcher 5. 2019-05-30 09:25:19 +02:00
Nicolas Grekas
384393cb36 Allow Symfony 5.0 2019-05-28 17:53:17 +02:00
Nicolas Grekas
94fd42c396 Merge branch '4.3' into 4.4
* 4.3:
  bumped Symfony version to 4.3.0
  updated VERSION for 4.3.0-RC1
  updated CHANGELOG for 4.3.0-RC1
  Create an abstract HTTP transport and extend it in all HTTP transports
  Updated "experimental" annotations for 4.3
2019-05-28 14:57:34 +02:00
Victor Bocharsky
3c8d63ca82 Create an abstract HTTP transport and extend it in all HTTP transports 2019-05-28 14:49:33 +03:00
Nicolas Grekas
f0a14b1d39 Merge branch '4.3'
* 4.3:
  fix tests
  [Messenger] Use real memory usage for --memory-limit
2019-05-28 09:51:04 +02:00
Nicolas Grekas
cfeb5bee07 fix tests 2019-05-28 09:50:59 +02:00
Nicolas Grekas
beb603694d Merge branch '4.3'
* 4.3: (23 commits)
  minor: add some test in the ldap component
  [Workflow] Update MethodMarkingStore
  [Bridge\ProxyManager] isProxyCandidate() does not take into account interfaces
  adding experimental note
  [HttpClient] add missing argument check
  [Messenger] Fix undefined index on read timeout
  [Workflow] use method marking store
  [Routing][AnnotationClassLoader] fix utf-8 encoding in default route name
  fixed a phpdoc
  [Debug] Wrap call to require_once in a try/catch
  [EventDispatcher] Removed "callable" type hint from WrappedListener constructor
  prevent deprecation when filesize matches error code
  [PropertyInfo] Add missing documentation link in Readme
  Use the current working dir as default first arg in 'link' binary
  Respect parent class contract in ContainerAwareDoctrineEventManager
  [WebProfilerBundle][Form] The form data collector return serialized object when profiler bundle attends object
  [Validator] Add the missing translations for the Danish ("da") locale
  [PropertyAccess] Add missing property to PropertyAccessor
  [Cache] fix saving unrelated keys in recursive callback calls
  [Serializer] Fix denormalization of object with variadic constructor typed argument
  ...
2019-05-20 18:28:43 +02:00
Christopher Hertel
5175f6fffc
adding experimental note 2019-05-20 11:28:54 +02:00
Fabien Potencier
387207f6c4 updated version to 4.4 2019-05-09 09:23:25 +02:00
Fabien Potencier
5ad2cb1b5a made the email validator a hard requirement of mailer 2019-04-26 08:12:58 +02:00
Fabien Potencier
5d4d4e7a71 fixed roundrobin dead transport which should recover 2019-04-10 21:43:06 +02:00
Patrick Landolt
ccbb171312 fixed roundrobin dead transport which should recover 2019-04-10 21:43:06 +02:00
Patrick Landolt
4518ac56a1 allow user/pass on dns while using failover/roundrobin and type fix for username/password 2019-04-07 22:39:37 +02:00
Sebastiaan Stok
907adf47e3
[Mailer] Remove unneeded catch in ping()
The stop() method doesn't throw
2019-03-30 16:56:09 +01:00
Fabien Potencier
c128d50196 bug #30787 [Mailer] Fix SMTP support when a message cannot be sent (fabpot)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Mailer] Fix SMTP support when a message cannot be sent

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - Bug fixes must be submitted against the lowest branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the master branch.
-->

Commits
-------

3d25c1c613 [Mailer] fixed SMTP support when a message cannot be sent
2019-03-30 16:52:03 +01:00
Fabien Potencier
3d25c1c613 [Mailer] fixed SMTP support when a message cannot be sent 2019-03-30 14:46:29 +01:00
Fabien Potencier
9cf665f2ea [Mailer] fixed typo 2019-03-30 14:28:10 +01:00
Fabien Potencier
827e61f645 fixed author 2019-03-30 13:09:36 +01:00
Fabien Potencier
69b9ee794c added the Mailer component 2019-03-30 09:09:06 +01:00