diff --git a/CHANGELOG.md b/CHANGELOG.md index 60f2e8c..fa82226 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Yii Framework 2 swiftmailer extension Change Log ----------------------- - Enh #37: `yii\swiftmailer\Logger` now chooses logging level depending on incoming entry format (klimov-paul) +- Enh #40: Added `yii\swiftmailer\Message::setHeaders()` allowing to setup custom headers in batch (klimov-paul) 2.0.6 September 09, 2016 diff --git a/Message.php b/Message.php index 9d343ec..4b8234e 100644 --- a/Message.php +++ b/Message.php @@ -20,6 +20,7 @@ use yii\mail\BaseMessage; * * @method Mailer getMailer() returns mailer instance. * + * @property array $headers Custom header values of the message. This property is write-only. * @property int $priority Priority value as integer in range: `1..5`, where 1 is the highest priority and * 5 is the lowest. * @property string $readReceiptTo Receipt receive email addresses. Note that the type of this property @@ -479,6 +480,20 @@ class Message extends BaseMessage return $headers; } + /** + * Sets custom header values to the message. + * @param array $headers headers in format: `[name => value]`. + * @return $this self reference. + * @since 2.0.7 + */ + public function setHeaders($headers) + { + foreach ($headers as $name => $value) { + $this->setHeader($name, $value); + } + return $this; + } + // SwiftMessage shortcuts : /** diff --git a/tests/MessageTest.php b/tests/MessageTest.php index 2722f2a..43fe828 100644 --- a/tests/MessageTest.php +++ b/tests/MessageTest.php @@ -498,5 +498,13 @@ U41eAdnQ3dDGzUNedIJkSh6Z0A4VMZIEOag9hPNYqQXZBQgfobvPKw== $this->assertEquals(['foo'], $message->getHeader('Some')); $message->setHeader('Multiple', ['value1', 'value2']); $this->assertEquals(['value1', 'value2'], $message->getHeader('Multiple')); + + $message = $this->createTestMessage() + ->setHeaders([ + 'Some' => 'foo', + 'Multiple' => ['value1', 'value2'], + ]); + $this->assertEquals(['foo'], $message->getHeader('Some')); + $this->assertEquals(['value1', 'value2'], $message->getHeader('Multiple')); } }