Skip to content

Commit

Permalink
[9.x] implement email "metadata" for SesTransport (#41422)
Browse files Browse the repository at this point in the history
  • Loading branch information
kbond committed Mar 10, 2022
1 parent 6ed5918 commit 70d992c
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion src/Illuminate/Mail/Transport/SesTransport.php
Expand Up @@ -5,8 +5,10 @@
use Aws\Exception\AwsException;
use Aws\Ses\SesClient;
use Exception;
use Symfony\Component\Mailer\Header\MetadataHeader;
use Symfony\Component\Mailer\SentMessage;
use Symfony\Component\Mailer\Transport\AbstractTransport;
use Symfony\Component\Mime\Message;

class SesTransport extends AbstractTransport
{
Expand Down Expand Up @@ -44,10 +46,20 @@ public function __construct(SesClient $ses, $options = [])
*/
protected function doSend(SentMessage $message): void
{
$options = $this->options;

if ($message->getOriginalMessage() instanceof Message) {
foreach ($message->getOriginalMessage()->getHeaders()->all() as $header) {
if ($header instanceof MetadataHeader) {
$options['EmailTags'][] = ['Name' => $header->getKey(), 'Value' => $header->getValue()];
}
}
}

try {
$this->ses->sendRawEmail(
array_merge(
$this->options, [
$options, [
'Source' => $message->getEnvelope()->getSender()->toString(),
'Destinations' => collect($message->getEnvelope()->getRecipients())
->map
Expand Down

0 comments on commit 70d992c

Please sign in to comment.