To bypass Laminas email transport in Elgg and integrate direct Amazon SES via custom Symfony DI container override, follow this exact implementation flow. This replaces Elgg's default Laminas mailer with your custom transport factory, enabling amazonses config while avoiding Symfony Mailer Bridge conflicts.
elgg-services.php (in your plugin's root or core override path):
Bootstrap.php (plugin's main boot file):
EmailTransport.php (namespace MyPlugin\Core\Notifications\Email\Transport):
AmazonSesEmailTransport.php (namespace MyPlugin\Notifications\Email, implements Laminas\Mail\Transport\TransportInterface):
SimpleEmailService.php (namespace MyPlugin\Notifications\Email\AmazonSes):
SimpleEmailServiceEnvelope.php (same namespace):
SimpleEmailServiceError.php (same namespace):
$CONFIG->{'email.transport'} = 'amazonses';
$CONFIG->{'email.amazonses_region'} = 'us-east-1';
$CONFIG->{'email.amazonses_access_key_id'} = 'YOUR_KEY';
$CONFIG->{'email.amazonses_secret_access_key'} = 'YOUR_SECRET';
Deploy in plugin (autoload PSR-4 namespaces), clear caches, test elgg_send_email(). Handles attachments/multipart, events-extensible.
Thanks, Nikolai, looks like a new plugin to intercept the email process...
I also found a realtively easy fix ...
Remove this line:
'Content-Transfer-Encoding' => '8bit',
from /var/www/html/vendor/elgg/elgg/engine/classes/Elgg/EmailService.php
tested and works fine exept that it coould be refreshed on the next Elgg update...
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by Raül Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.