Есть ли способ добавить заголовки по умолчанию для всех писем в Laravel 5.1? Я хочу, чтобы все письма отправлялись со следующим заголовком:
x-mailgun-native-send: true
Laravel использует SwiftMailer для отправки почты.
Когда вы используете почтовый фасад для отправки электронной почты, вы вызываете метод send () и определяете обратный вызов:
\Mail::send('emails.reminder', ['user' => $user], function ($m) use ($user) { $m->to($user->email, $user->name)->subject('Your Reminder!'); });
Обратный вызов получает переменную $m
которая является объектом \Illuminate\Mail\Message
, у которого есть getSwiftMessage()
который возвращает объект \Swift_Message
который вы можете использовать для установки заголовков:
$swiftMessage = $m->getSwiftMessage(); $headers = $swiftMessage->getHeaders(); $headers->addTextHeader('x-mailgun-native-send', 'true');
Небольшая модификация ответа @ maxim-lanin. Вы можете использовать его так, плавно.
\Mail::send('email.view', ['user' => $user], function ($message) use ($user) { $message->to($user->email, $user->name) ->subject('your message') ->getSwiftMessage() ->getHeaders() ->addTextHeader('x-mailgun-native-send', 'true'); });