diff --git a/src/Illuminate/Mail/Transport/SesTransport.php b/src/Illuminate/Mail/Transport/SesTransport.php index 41022c2c2caf..daa7b71b46f5 100644 --- a/src/Illuminate/Mail/Transport/SesTransport.php +++ b/src/Illuminate/Mail/Transport/SesTransport.php @@ -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 { @@ -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