Email 使用Laravel 5.3 Mailable将电子邮件正文存储在表中

Email 使用Laravel 5.3 Mailable将电子邮件正文存储在表中,email,laravel-5.3,Email,Laravel 5.3,我想将电子邮件正文存储在我的通讯表中。我的控制器: Mail::to($user->email)->send(new WelcomeEmail($subscription)); Communication::create([ 'to' => $user->email, 'subject' => 'Welcome Email', 'body' => '???' ]); 我的电子邮件发出(成功),我

我想将电子邮件正文存储在我的通讯表中。我的控制器:

Mail::to($user->email)->send(new WelcomeEmail($subscription));

Communication::create([
    'to'       =>  $user->email,
    'subject'       => 'Welcome Email',
    'body'       => '???'
]);
我的电子邮件发出(成功),我能够创建通信记录,但不知道如何检索电子邮件正文

读了之后,我想我可以参加一个活动:

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();

Laravel建议您呈现电子邮件,但通过这种方式,您无法在示例中保存HTTP标头,也无法在示例中设置电子邮件的发送状态。。。我也有同样的问题