From 8cdd825e3221b3fdf5adbd077509703e7d8125ff Mon Sep 17 00:00:00 2001 From: Serreau Jovann Date: Fri, 20 Mar 2026 16:03:06 +0100 Subject: [PATCH] Add symfony/amazon-mailer via composer require for SES email transport Co-Authored-By: Claude Opus 4.6 (1M context) --- .env | 5 + composer.json | 1 + composer.lock | 415 +++++++++++++++++++++----------------------------- symfony.lock | 9 ++ 4 files changed, 188 insertions(+), 242 deletions(-) diff --git a/.env b/.env index 80cbc8f..32ce7b0 100644 --- a/.env +++ b/.env @@ -59,3 +59,8 @@ OAUTH_KEYCLOAK_CLIENT_SECRET=changeme OAUTH_KEYCLOAK_URL=https://auth.esy-web.dev OAUTH_KEYCLOAK_REALM=e-cosplay ###< SSO E-Cosplay (Keycloak OIDC) ### + +###> symfony/amazon-mailer ### +# MAILER_DSN=ses://ACCESS_KEY:SECRET_KEY@default?region=eu-west-1 +# MAILER_DSN=ses+smtp://ACCESS_KEY:SECRET_KEY@default?region=eu-west-1 +###< symfony/amazon-mailer ### diff --git a/composer.json b/composer.json index d5b38b6..ddc8af6 100644 --- a/composer.json +++ b/composer.json @@ -22,6 +22,7 @@ "phpstan/phpdoc-parser": "^2.3", "stevenmaguire/oauth2-keycloak": "^6.1", "stripe/stripe-php": "*", + "symfony/amazon-mailer": "8.0.*", "symfony/asset": "8.0.*", "symfony/console": "8.0.*", "symfony/doctrine-messenger": "8.0.*", diff --git a/composer.lock b/composer.lock index 35b0944..da9c8ed 100644 --- a/composer.lock +++ b/composer.lock @@ -4,158 +4,140 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "53da9b302a2b28356f861372e8679637", + "content-hash": "cb8493c3f2e7f5a5fd9625178d808e03", "packages": [ { - "name": "aws/aws-crt-php", - "version": "v1.2.7", + "name": "async-aws/core", + "version": "1.28.1", "source": { "type": "git", - "url": "https://github.com/awslabs/aws-crt-php.git", - "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e" + "url": "https://github.com/async-aws/core.git", + "reference": "e8b02ac30b17afaf1352cbd352dceb789d792d39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/d71d9906c7bb63a28295447ba12e74723bd3730e", - "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e", + "url": "https://api.github.com/repos/async-aws/core/zipball/e8b02ac30b17afaf1352cbd352dceb789d792d39", + "reference": "e8b02ac30b17afaf1352cbd352dceb789d792d39", "shasum": "" }, "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5", - "yoast/phpunit-polyfills": "^1.0" - }, - "suggest": { - "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality." - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "AWS SDK Common Runtime Team", - "email": "aws-sdk-common-runtime@amazon.com" - } - ], - "description": "AWS Common Runtime for PHP", - "homepage": "https://github.com/awslabs/aws-crt-php", - "keywords": [ - "amazon", - "aws", - "crt", - "sdk" - ], - "support": { - "issues": "https://github.com/awslabs/aws-crt-php/issues", - "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.7" - }, - "time": "2024-10-18T22:15:13+00:00" - }, - { - "name": "aws/aws-sdk-php", - "version": "3.373.5", - "source": { - "type": "git", - "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "978964f417f3617a6ced691110af6fc5d496fb4e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/978964f417f3617a6ced691110af6fc5d496fb4e", - "reference": "978964f417f3617a6ced691110af6fc5d496fb4e", - "shasum": "" - }, - "require": { - "aws/aws-crt-php": "^1.2.3", - "ext-json": "*", - "ext-pcre": "*", + "ext-hash": "*", "ext-simplexml": "*", - "guzzlehttp/guzzle": "^7.4.5", - "guzzlehttp/promises": "^2.0", - "guzzlehttp/psr7": "^2.4.5", - "mtdowling/jmespath.php": "^2.8.0", - "php": ">=8.1", - "psr/http-message": "^1.0 || ^2.0", - "symfony/filesystem": "^v5.4.45 || ^v6.4.3 || ^v7.1.0 || ^v8.0.0" + "php": "^8.2", + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/http-client": "^4.4.16 || ^5.1.7 || ^6.0 || ^7.0 || ^8.0", + "symfony/http-client-contracts": "^1.1.8 || ^2.0 || ^3.0", + "symfony/service-contracts": "^1.0 || ^2.0 || ^3.0" + }, + "conflict": { + "async-aws/s3": "<1.1", + "symfony/http-client": "5.2.0" }, "require-dev": { - "andrewsville/php-token-reflection": "^1.4", - "aws/aws-php-sns-message-validator": "~1.0", - "behat/behat": "~3.0", - "composer/composer": "^2.7.8", - "dms/phpunit-arraysubset-asserts": "^v0.5.0", - "doctrine/cache": "~1.4", - "ext-dom": "*", - "ext-openssl": "*", - "ext-sockets": "*", - "phpunit/phpunit": "^10.0", - "psr/cache": "^2.0 || ^3.0", - "psr/simple-cache": "^2.0 || ^3.0", - "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0", - "yoast/phpunit-polyfills": "^2.0" - }, - "suggest": { - "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", - "doctrine/cache": "To use the DoctrineCacheAdapter", - "ext-curl": "To send requests using cURL", - "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages", - "ext-pcntl": "To use client-side monitoring", - "ext-sockets": "To use client-side monitoring" + "phpunit/phpunit": "^11.5.42", + "symfony/error-handler": "^7.3.2 || ^8.0", + "symfony/phpunit-bridge": "^7.3.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.28-dev" } }, "autoload": { - "files": [ - "src/functions.php" - ], "psr-4": { - "Aws\\": "src/" - }, - "exclude-from-classmap": [ - "src/data/" - ] + "AsyncAws\\Core\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], - "authors": [ - { - "name": "Amazon Web Services", - "homepage": "https://aws.amazon.com" - } - ], - "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project", - "homepage": "https://aws.amazon.com/sdk-for-php", + "description": "Core package to integrate with AWS. This is a lightweight AWS SDK provider by AsyncAws.", "keywords": [ "amazon", + "async-aws", "aws", - "cloud", - "dynamodb", - "ec2", - "glacier", - "s3", - "sdk" + "sdk", + "sts" ], "support": { - "forum": "https://github.com/aws/aws-sdk-php/discussions", - "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.373.5" + "source": "https://github.com/async-aws/core/tree/1.28.1" }, - "time": "2026-03-18T18:22:37+00:00" + "funding": [ + { + "url": "https://github.com/jderusse", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2026-02-16T10:24:54+00:00" + }, + { + "name": "async-aws/ses", + "version": "1.14.1", + "source": { + "type": "git", + "url": "https://github.com/async-aws/ses.git", + "reference": "8ba4c7f5bbb4d1055f3ebedcf0ea1b8b79393e5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/async-aws/ses/zipball/8ba4c7f5bbb4d1055f3ebedcf0ea1b8b79393e5b", + "reference": "8ba4c7f5bbb4d1055f3ebedcf0ea1b8b79393e5b", + "shasum": "" + }, + "require": { + "async-aws/core": "^1.9", + "php": "^8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.5.42", + "symfony/error-handler": "^7.3.2 || ^8.0", + "symfony/phpunit-bridge": "^7.3.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.14-dev" + } + }, + "autoload": { + "psr-4": { + "AsyncAws\\Ses\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "SES client, part of the AWS SDK provided by AsyncAws.", + "keywords": [ + "amazon", + "async-aws", + "aws", + "sdk", + "ses" + ], + "support": { + "source": "https://github.com/async-aws/ses/tree/1.14.1" + }, + "funding": [ + { + "url": "https://github.com/jderusse", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2026-02-16T10:24:54+00:00" }, { "name": "bacon/bacon-qr-code", @@ -2694,61 +2676,6 @@ }, "time": "2026-02-25T17:01:41+00:00" }, - { - "name": "league/flysystem-aws-s3-v3", - "version": "3.32.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "a1979df7c9784d334ea6df356aed3d18ac6673d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/a1979df7c9784d334ea6df356aed3d18ac6673d0", - "reference": "a1979df7c9784d334ea6df356aed3d18ac6673d0", - "shasum": "" - }, - "require": { - "aws/aws-sdk-php": "^3.295.10", - "league/flysystem": "^3.10.0", - "league/mime-type-detection": "^1.0.0", - "php": "^8.0.2" - }, - "conflict": { - "guzzlehttp/guzzle": "<7.0", - "guzzlehttp/ringphp": "<1.1.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "League\\Flysystem\\AwsS3V3\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Frank de Jonge", - "email": "info@frankdejonge.nl" - } - ], - "description": "AWS S3 filesystem adapter for Flysystem.", - "keywords": [ - "Flysystem", - "aws", - "file", - "files", - "filesystem", - "s3", - "storage" - ], - "support": { - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.32.0" - }, - "time": "2026-02-25T16:46:44+00:00" - }, { "name": "league/flysystem-bundle", "version": "3.6.2", @@ -3384,72 +3311,6 @@ ], "time": "2026-01-02T08:56:05+00:00" }, - { - "name": "mtdowling/jmespath.php", - "version": "2.8.0", - "source": { - "type": "git", - "url": "https://github.com/jmespath/jmespath.php.git", - "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc", - "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0", - "symfony/polyfill-mbstring": "^1.17" - }, - "require-dev": { - "composer/xdebug-handler": "^3.0.3", - "phpunit/phpunit": "^8.5.33" - }, - "bin": [ - "bin/jp.php" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "files": [ - "src/JmesPath.php" - ], - "psr-4": { - "JmesPath\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Declaratively specify how to extract elements from a JSON document", - "keywords": [ - "json", - "jsonpath" - ], - "support": { - "issues": "https://github.com/jmespath/jmespath.php/issues", - "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0" - }, - "time": "2024-09-04T18:46:31+00:00" - }, { "name": "nelmio/security-bundle", "version": "v3.9.0", @@ -4509,6 +4370,76 @@ }, "time": "2026-03-06T22:53:13+00:00" }, + { + "name": "symfony/amazon-mailer", + "version": "v8.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/amazon-mailer.git", + "reference": "db372af664e6ff8f315901a05fa7a844c7812954" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/amazon-mailer/zipball/db372af664e6ff8f315901a05fa7a844c7812954", + "reference": "db372af664e6ff8f315901a05fa7a844c7812954", + "shasum": "" + }, + "require": { + "async-aws/ses": "^1.8", + "php": ">=8.4", + "symfony/mailer": "^7.4|^8.0" + }, + "require-dev": { + "symfony/http-client": "^7.4|^8.0" + }, + "type": "symfony-mailer-bridge", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\Bridge\\Amazon\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Amazon Mailer Bridge", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/amazon-mailer/tree/v8.0.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-02-12T08:52:49+00:00" + }, { "name": "symfony/asset", "version": "v8.0.6", diff --git a/symfony.lock b/symfony.lock index f6fd310..5362c5f 100644 --- a/symfony.lock +++ b/symfony.lock @@ -129,6 +129,15 @@ "ref": "d6829c693e3927a8972c7671d74a1a5c505712b0" } }, + "symfony/amazon-mailer": { + "version": "8.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.4", + "ref": "9648db3ecae5c8a6b1a5f74715d3907124348815" + } + }, "symfony/console": { "version": "8.0", "recipe": {