From dbc0576763f25ad4ee400fd83ba6a5993218a0c7 Mon Sep 17 00:00:00 2001 From: Dwight Watson Date: Wed, 15 May 2019 17:15:43 +1000 Subject: [PATCH] Support headers with notificiation mail message --- .../Notifications/Channels/MailChannel.php | 16 ++++++++++++++ .../Notifications/Messages/MailMessage.php | 21 +++++++++++++++++++ .../NotificationMailMessageTest.php | 8 +++++++ 3 files changed, 45 insertions(+) diff --git a/src/Illuminate/Notifications/Channels/MailChannel.php b/src/Illuminate/Notifications/Channels/MailChannel.php index f26319dd4652..4b3afa0387db 100644 --- a/src/Illuminate/Notifications/Channels/MailChannel.php +++ b/src/Illuminate/Notifications/Channels/MailChannel.php @@ -134,6 +134,8 @@ protected function buildMessage($mailMessage, $notifiable, $notification, $messa $this->addAttachments($mailMessage, $message); + $this->addHeaders($mailMessage, $message); + if (! is_null($message->priority)) { $mailMessage->setPriority($message->priority); } @@ -225,4 +227,18 @@ protected function addAttachments($mailMessage, $message) $mailMessage->attachData($attachment['data'], $attachment['name'], $attachment['options']); } } + + /** + * Add the headers to the message. + * + * @param \Illuminate\Mail\Message $mailMessage + * @param \Illuminate\Notifications\Messages\MailMessage $message + * @return void + */ + protected function addHeaders($mailMessage, $message) + { + foreach ($message->headers as $name => $value) { + $mailMessage->getHeaders()->addTextHeader($name, $value); + } + } } diff --git a/src/Illuminate/Notifications/Messages/MailMessage.php b/src/Illuminate/Notifications/Messages/MailMessage.php index dfbf0efc77ca..d58c7ee54bed 100644 --- a/src/Illuminate/Notifications/Messages/MailMessage.php +++ b/src/Illuminate/Notifications/Messages/MailMessage.php @@ -73,6 +73,13 @@ class MailMessage extends SimpleMessage implements Renderable */ public $rawAttachments = []; + /** + * The headers for the message. + * + * @var array + */ + public $headers = []; + /** * Priority level of the message. * @@ -224,6 +231,20 @@ public function attachData($data, $name, array $options = []) return $this; } + /** + * Set a header for the message. + * + * @param string $name + * @param string $value + * @return $this + */ + public function header($name, $value) + { + $this->headers[$name] = $value; + + return $this; + } + /** * Set the priority of this message. * diff --git a/tests/Notifications/NotificationMailMessageTest.php b/tests/Notifications/NotificationMailMessageTest.php index 8f8a0878a678..484f2bf6e6d0 100644 --- a/tests/Notifications/NotificationMailMessageTest.php +++ b/tests/Notifications/NotificationMailMessageTest.php @@ -74,4 +74,12 @@ public function testReplyToIsSetCorrectly() $this->assertSame([['test@example.com', null], ['test@example.com', 'Test']], $message->replyTo); } + + public function testHeaderIsSetCorrectly() + { + $message = new Mailmessage; + $message->header('Name', 'Value'); + + $this->assertSame(['Name' => 'Value'], $message->headers); + } }