如何在 Laravel 5.1 中为电子邮件添加标头
有没有办法在Laravel 5.1中的所有电子邮件中添加默认标题?我希望所有电子邮件都使用以下标头发送:
x-mailgun-native-send: true
有没有办法在Laravel 5.1中的所有电子邮件中添加默认标题?我希望所有电子邮件都使用以下标头发送:
x-mailgun-native-send: true
Laravel使用SwiftMailer进行邮件发送。
当您使用 Mail 外观发送电子邮件时,调用 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');
我知道这是一篇老文章,但我现在路过同样的问题,我认为这可能对其他人有用。
如果你使用的结构与Laravel(6.x和7.x)中所示完全相同,如下所示:
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from('example@example.com')
->view('emails.orders.shipped');
}
您可以按以下格式向电子邮件添加标题:
public function build()
{
return $this->from('example@example.com')
->view('emails.orders.shipped')
->withSwiftMessage(function ($message) {
$message->getHeaders()
->addTextHeader('Custom-Header', 'HeaderValue');
});
}
我希望这能有所帮助。
链接到当前文档:https://laravel.com/docs/7.x/mail#customizing-the-swiftmailer-message