2013-07-04 2 views
7

Я не могу найти способ в API-интерфейсе Laravel 4 docs/Email, где я могу добавить пользовательские заголовки к электронной почте.Пользовательские заголовки электронной почты в Laravel 4

Например:

Mail::send('emails.welcome', $data, function($message) 
{ 
    $message->to('[email protected]', 'John Smith')->subject('Welcome!'); 
    $message->headers('X-Tags', 'tag1 tag2 tag3'); 
}); 

Кто-нибудь знает, как это можно сделать?

ответ

15

Насколько я знаю, нет возможности добавить пользовательские заголовки, не дойдя до Swift Mailer.

Попробуйте что-нибудь подобное.

$message->getSwiftMessage()->getHeaders()->addTextHeader('X-Tags', 'tag1 tag2 tag3'); 

Это не выглядит красиво, но, глядя через источник, который должен делать трюк.


Как указано в комментариях ниже метода getSwiftMessage не требуется, поскольку есть __call магический метод на Illuminate\Mail\Message класс, который я проглядел.

$message->getHeaders()->addTextHeader('X-Tags', 'tag1 tag2 tag3'); 
+1

Метод 'getSwiftMessage()' нужен ли он? Я получил хороший результат с помощью только '$ Message-> getHeaders() -> addTextHeader()' –

+0

Ах да, это не нужно. Не заметил волшебный метод, который запускает методы класса 'Swift_Message'. Я обновил свой ответ. –

+0

Спасибо @JasonLewis – eski009