geo*_*310 14 php laravel laravel-5
有没有办法在Laravel 5.1中为所有电子邮件添加默认标头?我希望所有电子邮件都使用以下标头发送:
x-mailgun-native-send: true
Run Code Online (Sandbox Code Playgroud)
Max*_*nin 20
Laravel使用SwiftMailer进行邮件发送.
当您使用Mail facade发送电子邮件时,您调用send()方法并定义回调:
\Mail::send('emails.reminder', ['user' => $user], function ($m) use ($user) {
$m->to($user->email, $user->name)->subject('Your Reminder!');
});
Run Code Online (Sandbox Code Playgroud)
回调接收$m作为\Illuminate\Mail\Message对象的变量,该变量具有getSwiftMessage()返回\Swift_Message可用于设置标题的对象的方法:
$swiftMessage = $m->getSwiftMessage();
$headers = $swiftMessage->getHeaders();
$headers->addTextHeader('x-mailgun-native-send', 'true');
Run Code Online (Sandbox Code Playgroud)
小智 9
我知道这是一篇旧帖子,但我现在遇到了同样的问题,我认为这对其他人可能有用。
如果您使用的结构与 Laravel(6.x 和 7.x)中所示的结构完全相同,如下所示:
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from('example@example.com')
->view('emails.orders.shipped');
}
Run Code Online (Sandbox Code Playgroud)
您可以按以下格式向电子邮件添加标头:
public function build()
{
return $this->from('example@example.com')
->view('emails.orders.shipped')
->withSwiftMessage(function ($message) {
$message->getHeaders()
->addTextHeader('Custom-Header', 'HeaderValue');
});
}
Run Code Online (Sandbox Code Playgroud)
我希望这会有用。
链接到当前文档:https://laravel.com/docs/7.x/mail#customizing-the-swiftmailer-message
对@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');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10614 次 |
| 最近记录: |