使用 Laravel 5.3 Mailable 将电子邮件正文存储在 table 中
Store email body in table using Laravel 5.3 Mailable
我想将电子邮件正文存储在我的通讯中 table。我的控制器:
Mail::to($user->email)->send(new WelcomeEmail($subscription));
Communication::create([
'to' => $user->email,
'subject' => 'Welcome Email',
'body' => '???'
]);
我的电子邮件发出(成功)并且我能够创建通信记录,但不知道如何检索电子邮件正文。
看完Mail manual后,我想我可以处理一个事件:
protected $listen = [
'Illuminate\Mail\Events\MessageSending' => [
'App\Listeners\LogSentMessage',
],
];
但在这里我只收到完整的纯文本电子邮件。如果我创建一个邮件实例,使用:
$email = Mail::to($user->email)->send(new WelcomeEmail($subscription));
dd($email);
的结果是null
。
一些额外的信息,在我的 WelcomeEmail.php 中,我正在使用一个视图:
public function build()
{
return $this->view('emails.welcome_email');
}
我找到了解决办法,希望对其他人有帮助。
$body = View::make('emails.welcome_email')
->with('subscription', $this->subscription)
->with('template', $this->template)
->render();
我渲染了视图并将其保存在 body 变量中。
您可以直接执行此操作以呈现 Mailable 并将其存储在变量中
$html = (new WelcomeEmail($subscription))->render();
我想将电子邮件正文存储在我的通讯中 table。我的控制器:
Mail::to($user->email)->send(new WelcomeEmail($subscription));
Communication::create([
'to' => $user->email,
'subject' => 'Welcome Email',
'body' => '???'
]);
我的电子邮件发出(成功)并且我能够创建通信记录,但不知道如何检索电子邮件正文。
看完Mail manual后,我想我可以处理一个事件:
protected $listen = [
'Illuminate\Mail\Events\MessageSending' => [
'App\Listeners\LogSentMessage',
],
];
但在这里我只收到完整的纯文本电子邮件。如果我创建一个邮件实例,使用:
$email = Mail::to($user->email)->send(new WelcomeEmail($subscription));
dd($email);
的结果是null
。
一些额外的信息,在我的 WelcomeEmail.php 中,我正在使用一个视图:
public function build()
{
return $this->view('emails.welcome_email');
}
我找到了解决办法,希望对其他人有帮助。
$body = View::make('emails.welcome_email')
->with('subscription', $this->subscription)
->with('template', $this->template)
->render();
我渲染了视图并将其保存在 body 变量中。
您可以直接执行此操作以呈现 Mailable 并将其存储在变量中
$html = (new WelcomeEmail($subscription))->render();