From 9598c1a54c4d7013c98fb2600c6a2a991ea169bd Mon Sep 17 00:00:00 2001 From: Deleu Date: Wed, 26 Jan 2022 14:20:10 +0100 Subject: [PATCH 1/6] Support AWS SES with IAM Assume Role --- src/Illuminate/Mail/MailManager.php | 4 ++-- tests/Mail/MailSesTransportTest.php | 32 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100755 tests/Mail/MailSesTransportTest.php diff --git a/src/Illuminate/Mail/MailManager.php b/src/Illuminate/Mail/MailManager.php index 5b546738365d..b7b0fc7908b4 100644 --- a/src/Illuminate/Mail/MailManager.php +++ b/src/Illuminate/Mail/MailManager.php @@ -243,8 +243,8 @@ protected function createSesTransport(array $config) return $factory->create(new Dsn( 'ses+api', 'default', - $config['key'], - $config['secret'], + $config['key'] ?? null, + $config['secret'] ?? null, $config['port'] ?? null, $config )); diff --git a/tests/Mail/MailSesTransportTest.php b/tests/Mail/MailSesTransportTest.php new file mode 100755 index 000000000000..031caa65edb2 --- /dev/null +++ b/tests/Mail/MailSesTransportTest.php @@ -0,0 +1,32 @@ +singleton('config', function () { + return new Repository([ + 'services.ses' => [ + 'key' => 'foo', + 'secret' => 'bar', + 'region' => 'us-east-1', + ], + ]); + }); + + $manager = new MailManager($container); + + $transport = $manager->createSymfonyTransport(['transport' => 'ses']); + + $this->assertSame('ses+api://foo@us-east-1', $transport->__toString()); + } +} From a1e215f6341ab001797b3c49efad60357228cdf4 Mon Sep 17 00:00:00 2001 From: Deleu Date: Wed, 26 Jan 2022 14:31:41 +0100 Subject: [PATCH 2/6] install Symfony Amazon Mailer for SES testing --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 91c2d3aa6185..50236d030871 100644 --- a/composer.json +++ b/composer.json @@ -92,7 +92,8 @@ "phpstan/phpstan": "^1.0", "predis/predis": "^1.1.9", "phpunit/phpunit": "^9.5.8", - "symfony/cache": "^6.0" + "symfony/cache": "^6.0", + "symfony/amazon-mailer": "^6.0" }, "provide": { "psr/container-implementation": "1.1|2.0", From a5b5f19c406bad0c0bfb312c1a6319c8fa8159c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Aur=C3=A9lio=20Deleu?= Date: Wed, 26 Jan 2022 14:51:37 +0100 Subject: [PATCH 3/6] Remove key :facepalm: --- tests/Mail/MailSesTransportTest.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/Mail/MailSesTransportTest.php b/tests/Mail/MailSesTransportTest.php index 031caa65edb2..cb3fb56128f0 100755 --- a/tests/Mail/MailSesTransportTest.php +++ b/tests/Mail/MailSesTransportTest.php @@ -16,8 +16,6 @@ public function testGetTransport() $container->singleton('config', function () { return new Repository([ 'services.ses' => [ - 'key' => 'foo', - 'secret' => 'bar', 'region' => 'us-east-1', ], ]); @@ -27,6 +25,6 @@ public function testGetTransport() $transport = $manager->createSymfonyTransport(['transport' => 'ses']); - $this->assertSame('ses+api://foo@us-east-1', $transport->__toString()); + $this->assertSame('ses+api://@us-east-1', $transport->__toString()); } } From d281c362bb145e0c3d9d1307320bb1dc7a9f97b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Aur=C3=A9lio=20Deleu?= Date: Wed, 26 Jan 2022 15:05:47 +0100 Subject: [PATCH 4/6] Update MailSesTransportTest.php --- tests/Mail/MailSesTransportTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Mail/MailSesTransportTest.php b/tests/Mail/MailSesTransportTest.php index cb3fb56128f0..306038cc4514 100755 --- a/tests/Mail/MailSesTransportTest.php +++ b/tests/Mail/MailSesTransportTest.php @@ -25,6 +25,6 @@ public function testGetTransport() $transport = $manager->createSymfonyTransport(['transport' => 'ses']); - $this->assertSame('ses+api://@us-east-1', $transport->__toString()); + $this->assertSame('ses+api://random_key@us-east-1', $transport->__toString()); } } From 9c40c6e433b471641b4c984d083b86d830ef21db Mon Sep 17 00:00:00 2001 From: Dries Vints Date: Thu, 27 Jan 2022 16:04:40 +0100 Subject: [PATCH 5/6] Update composer.json --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 50236d030871..bd44721a7f1b 100644 --- a/composer.json +++ b/composer.json @@ -92,8 +92,8 @@ "phpstan/phpstan": "^1.0", "predis/predis": "^1.1.9", "phpunit/phpunit": "^9.5.8", - "symfony/cache": "^6.0", - "symfony/amazon-mailer": "^6.0" + "symfony/amazon-mailer": "^6.0", + "symfony/cache": "^6.0" }, "provide": { "psr/container-implementation": "1.1|2.0", From 8f8cdcae76f8ab9331b78c719fa98bb33fcad590 Mon Sep 17 00:00:00 2001 From: Dries Vints Date: Thu, 27 Jan 2022 16:12:27 +0100 Subject: [PATCH 6/6] wip --- .github/workflows/tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e0f56e6f6a3f..175b476b6b90 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -143,6 +143,9 @@ jobs: - name: Execute tests run: vendor/bin/phpunit --verbose + env: + AWS_ACCESS_KEY_ID: random_key + AWS_SECRET_ACCESS_KEY: random_secret - name: Store artifacts uses: actions/upload-artifact@v2