diff --git a/DotBlue/Mandrill/AbstractMessage.php b/DotBlue/Mandrill/AbstractMessage.php index 4effce2..c0e6bab 100644 --- a/DotBlue/Mandrill/AbstractMessage.php +++ b/DotBlue/Mandrill/AbstractMessage.php @@ -405,4 +405,24 @@ public function removeImage(IAttachment $toBeRemoved) /** @var string[] */ public $metadata = []; + + + /** + * @return [] + */ + public function getHeaders() + { + return $this->headers; + } + + + /** + * @param string $header + * @param string $value + */ + public function addHeader($header, $value) + { + $this->headers[$header] = $value; + } + } diff --git a/DotBlue/Mandrill/Exporters/MessageExporter.php b/DotBlue/Mandrill/Exporters/MessageExporter.php index 07cb200..595b137 100644 --- a/DotBlue/Mandrill/Exporters/MessageExporter.php +++ b/DotBlue/Mandrill/Exporters/MessageExporter.php @@ -72,6 +72,9 @@ private function exportMessage(\DotBlue\Mandrill\IBasicMessage $message) // Attachments 'attachments' => $this->exportAttachments($message->getAttachments()), 'images' => $this->exportAttachments($message->getImages()), + + // Headers + 'headers' => $message->getHeaders(), ], ]); } diff --git a/DotBlue/Mandrill/IBasicMessage.php b/DotBlue/Mandrill/IBasicMessage.php index 6e4aa67..eaefc9f 100644 --- a/DotBlue/Mandrill/IBasicMessage.php +++ b/DotBlue/Mandrill/IBasicMessage.php @@ -55,6 +55,12 @@ function getMergeVars(); function getAttachments(); + /** + * @return [] + */ + function getHeaders(); + + /** * @return IAttachment[] */ diff --git a/tests/DotBlueTests/Mandrill/Exporters/MessageExporterTest.phpt b/tests/DotBlueTests/Mandrill/Exporters/MessageExporterTest.phpt index fac60ce..ac63817 100644 --- a/tests/DotBlueTests/Mandrill/Exporters/MessageExporterTest.phpt +++ b/tests/DotBlueTests/Mandrill/Exporters/MessageExporterTest.phpt @@ -186,6 +186,8 @@ class MessageExporterTest extends \Tester\TestCase 'inline_css' => TRUE, 'preserve_recipients' => FALSE, + + 'headers' => [], ], 'async' => TRUE, 'ip_pool' => 'IP pool', diff --git a/tests/DotBlueTests/Mandrill/MessageTest.phpt b/tests/DotBlueTests/Mandrill/MessageTest.phpt index fcc3b7c..8919498 100644 --- a/tests/DotBlueTests/Mandrill/MessageTest.phpt +++ b/tests/DotBlueTests/Mandrill/MessageTest.phpt @@ -32,6 +32,19 @@ class MessageTest extends \Tester\TestCase Assert::same('HTML!', $message->getHtml()); Assert::same('HTML!', $message->getText()); } + + + public function testHeaders() + { + $message = new Message('dummy'); + $message->addHeader('header1', 'value1'); + $message->addHeader('header2', 'value2'); + + Assert::same([ + 'header1' => 'value1', + 'header2' => 'value2', + ], $message->getHeaders()); + } } (new MessageTest())->run(); diff --git a/tests/DotBlueTests/Mandrill/TemplateMessageTest.phpt b/tests/DotBlueTests/Mandrill/TemplateMessageTest.phpt index 5f5f73d..0c135ce 100644 --- a/tests/DotBlueTests/Mandrill/TemplateMessageTest.phpt +++ b/tests/DotBlueTests/Mandrill/TemplateMessageTest.phpt @@ -50,6 +50,19 @@ class TemplateMessageTest extends \Tester\TestCase 'secondRegion' => 'yabadabadooo', ], $message->getEditableRegions()); } + + + public function testHeaders() + { + $message = new TemplateMessage('dummy'); + $message->addHeader('header1', 'value1'); + $message->addHeader('header2', 'value2'); + + Assert::same([ + 'header1' => 'value1', + 'header2' => 'value2', + ], $message->getHeaders()); + } } (new TemplateMessageTest())->run();