From 6ec7c8f8f6421f703cb1fda17fbc0bb447215c51 Mon Sep 17 00:00:00 2001 From: Leandro Hermes Neto Date: Thu, 3 Mar 2022 14:49:28 -0300 Subject: [PATCH 1/2] Set SES MessageId to the sent message ID --- src/Illuminate/Mail/Transport/SesTransport.php | 4 +++- tests/Mail/MailSesTransportTest.php | 10 ++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Illuminate/Mail/Transport/SesTransport.php b/src/Illuminate/Mail/Transport/SesTransport.php index 3938d510834b..d767ac283783 100644 --- a/src/Illuminate/Mail/Transport/SesTransport.php +++ b/src/Illuminate/Mail/Transport/SesTransport.php @@ -45,7 +45,7 @@ public function __construct(SesClient $ses, $options = []) protected function doSend(SentMessage $message): void { try { - $this->ses->sendRawEmail( + $result = $this->ses->sendRawEmail( array_merge( $this->options, [ 'Source' => $message->getEnvelope()->getSender()->toString(), @@ -58,6 +58,8 @@ protected function doSend(SentMessage $message): void } catch (AwsException $e) { throw new Exception('Request to AWS SES API failed.', $e->getCode(), $e); } + + $message->setMessageId($result->get('MessageId')); } /** diff --git a/tests/Mail/MailSesTransportTest.php b/tests/Mail/MailSesTransportTest.php index 9e5fe65d7597..e469ac5081d7 100755 --- a/tests/Mail/MailSesTransportTest.php +++ b/tests/Mail/MailSesTransportTest.php @@ -2,6 +2,7 @@ namespace Illuminate\Tests\Mail; +use Aws\Result; use Aws\Ses\SesClient; use Illuminate\Config\Repository; use Illuminate\Container\Container; @@ -56,10 +57,15 @@ public function testSend() $message->to('me@example.com'); $message->bcc('you@example.com'); + $result = m::mock(Result::class); + $result->shouldReceive('get')->once()->with('MessageId')->andReturn('123'); + $client = m::mock(SesClient::class); - $client->shouldReceive('sendRawEmail')->once(); + $client->shouldReceive('sendRawEmail')->once()->andReturn($result); + + $sentMessage = (new SesTransport($client))->send($message); - (new SesTransport($client))->send($message); + $this->assertEquals('123', $sentMessage->getMessageId()); } public function testSesLocalConfiguration() From 075f93d2f404f799df2871fb81b8814818146809 Mon Sep 17 00:00:00 2001 From: Leandro Hermes Neto Date: Thu, 3 Mar 2022 15:02:27 -0300 Subject: [PATCH 2/2] style fix --- src/Illuminate/Mail/Transport/SesTransport.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Mail/Transport/SesTransport.php b/src/Illuminate/Mail/Transport/SesTransport.php index d767ac283783..75669e2fc071 100644 --- a/src/Illuminate/Mail/Transport/SesTransport.php +++ b/src/Illuminate/Mail/Transport/SesTransport.php @@ -58,7 +58,7 @@ protected function doSend(SentMessage $message): void } catch (AwsException $e) { throw new Exception('Request to AWS SES API failed.', $e->getCode(), $e); } - + $message->setMessageId($result->get('MessageId')); }