@@ -26,6 +26,15 @@ class MailjetApiTransport extends AbstractApiTransport
2626{
2727 private const HOST = 'api.mailjet.com ' ;
2828 private const API_VERSION = '3.1 ' ;
29+ private const FORBIDDEN_HEADERS = [
30+ 'Date ' , 'X-CSA-Complaints ' , 'Message-Id ' , 'X-Mailjet-Campaign ' , 'X-MJ-StatisticsContactsListID ' ,
31+ 'DomainKey-Status ' , 'Received-SPF ' , 'Authentication-Results ' , 'Received ' , 'X-Mailjet-Prio ' ,
32+ 'From ' , 'Sender ' , 'Subject ' , 'To ' , 'Cc ' , 'Bcc ' , 'Return-Path ' , 'Delivered-To ' , 'DKIM-Signature ' ,
33+ 'X-Feedback-Id ' , 'X-Mailjet-Segmentation ' , 'List-Id ' , 'X-MJ-MID ' , 'X-MJ-ErrorMessage ' ,
34+ 'X-MJ-TemplateErrorDeliver ' , 'X-MJ-TemplateErrorReporting ' , 'X-MJ-TemplateLanguage ' ,
35+ 'X-Mailjet-Debug ' , 'User-Agent ' , 'X-Mailer ' , 'X-MJ-CustomID ' , 'X-MJ-EventPayload ' , 'X-MJ-Vars ' ,
36+ 'X-Mailjet-TrackOpen ' , 'X-Mailjet-TrackClick ' , 'X-MJ-TemplateID ' , 'X-MJ-WorkflowID ' ,
37+ ];
2938
3039 private $ privateKey ;
3140 private $ publicKey ;
@@ -104,6 +113,14 @@ private function getPayload(Email $email, Envelope $envelope): array
104113 $ message ['HTMLPart ' ] = $ html ;
105114 }
106115
116+ foreach ($ email ->getHeaders ()->all () as $ header ) {
117+ if (\in_array ($ header ->getName (), self ::FORBIDDEN_HEADERS , true )) {
118+ continue ;
119+ }
120+
121+ $ message ['Headers ' ][$ header ->getName ()] = $ header ->getBodyAsString ();
122+ }
123+
107124 return [
108125 'Messages ' => [$ message ],
109126 ];
0 commit comments