From 82f1f9c618999bc640c26b8414e845256fc24b33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Sat, 22 May 2021 11:07:39 +0200 Subject: [PATCH] Make Mailgun Header compatible with other Bridges --- UPGRADE-5.1.md | 1 - src/Symfony/Component/Mailer/Bridge/Mailgun/CHANGELOG.md | 6 ++++++ .../Mailgun/Tests/Transport/MailgunApiTransportTest.php | 4 +++- .../Mailer/Bridge/Mailgun/Transport/MailgunApiTransport.php | 2 -- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/UPGRADE-5.1.md b/UPGRADE-5.1.md index bc5a5e5083..a08df30d55 100644 --- a/UPGRADE-5.1.md +++ b/UPGRADE-5.1.md @@ -80,7 +80,6 @@ Inflector Mailer ------ - * Deprecated passing Mailgun headers without their "h:" prefix. * Deprecated the `SesApiTransport` class. It has been replaced by SesApiAsyncAwsTransport Run `composer require async-aws/ses` to use the new classes. * Deprecated the `SesHttpTransport` class. It has been replaced by SesHttpAsyncAwsTransport Run `composer require async-aws/ses` to use the new classes. diff --git a/src/Symfony/Component/Mailer/Bridge/Mailgun/CHANGELOG.md b/src/Symfony/Component/Mailer/Bridge/Mailgun/CHANGELOG.md index be411a8ec9..d2aa1d5282 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailgun/CHANGELOG.md +++ b/src/Symfony/Component/Mailer/Bridge/Mailgun/CHANGELOG.md @@ -1,7 +1,13 @@ CHANGELOG ========= +5.2 +--- + + * Not prefixing headers with "h:" is no more deprecated + 5.1.0 +----- * Not prefixing headers with "h:" is deprecated. diff --git a/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php b/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php index 1ea96bcd8f..61f3f43ee2 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php @@ -214,6 +214,7 @@ class MailgunApiTransportTest extends TestCase $json = json_encode(['foo' => 'bar']); $email = new Email(); $email->getHeaders()->addTextHeader('h:X-Mailgun-Variables', $json); + $email->getHeaders()->addTextHeader('Custom-Header', 'value'); $email->getHeaders()->add(new TagHeader('password-reset')); $email->getHeaders()->add(new MetadataHeader('Color', 'blue')); $email->getHeaders()->add(new MetadataHeader('Client-ID', '12345')); @@ -223,9 +224,10 @@ class MailgunApiTransportTest extends TestCase $method = new \ReflectionMethod(MailgunApiTransport::class, 'getPayload'); $method->setAccessible(true); $payload = $method->invoke($transport, $email, $envelope); - $this->assertArrayHasKey('h:x-mailgun-variables', $payload); $this->assertEquals($json, $payload['h:x-mailgun-variables']); + $this->assertArrayHasKey('h:custom-header', $payload); + $this->assertEquals('value', $payload['h:custom-header']); $this->assertArrayHasKey('o:tag', $payload); $this->assertSame('password-reset', $payload['o:tag']); $this->assertArrayHasKey('v:Color', $payload); diff --git a/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunApiTransport.php b/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunApiTransport.php index 33d0fb1ff5..174b82de32 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunApiTransport.php +++ b/src/Symfony/Component/Mailer/Bridge/Mailgun/Transport/MailgunApiTransport.php @@ -135,9 +135,7 @@ class MailgunApiTransport extends AbstractApiTransport if (\in_array($prefix, ['h:', 't:', 'o:', 'v:']) || \in_array($name, ['recipient-variables', 'template', 'amp-html'])) { $headerName = $name; } else { - // fallback to prefix with "h:" to not break BC $headerName = 'h:'.$name; - @trigger_error(sprintf('Not prefixing the Mailgun header name with "h:" is deprecated since Symfony 5.1. Use header name "%s" instead.', $headerName), \E_USER_DEPRECATED); } $payload[$headerName] = $header->getBodyAsString();