在Laravel 5.5中使用Mailable而不是MailMessage来重置电子邮件

时间:2018-01-19 23:19:50

标签: email laravel-5 reset-password

我希望我的应用程序将Mailables用于它发送的所有电子邮件,因此我创建了自己的ResetPasswordEmail类,扩展了Mailable。然后我创建了自己的ResetPassword通知类,该类扩展了同名的供应商类,并覆盖了toMail方法,如下所示:

public function toMail($notifiable)
{
    return (new ResetPasswordEmail())->with('token', $this->token);
}

然后我从sendPasswordResetNotification模型中的CanResetPassword特征覆盖User,如下所示:

public function sendPasswordResetNotification($token)
{
    $this->notify(new ResetPassword($token));
}

调用我的自定义ResetPassword通知类。

问题是,如果我使用默认方法创建MailMessage并发送它,它会自动使用用户的电子邮件填充“”字段。但是,当我使用我的ResetPasswordEmail mailable类时,它不会。

有没有一种很好的方法可以让我的自定义邮件像这样工作?

1 个答案:

答案 0 :(得分:1)

最后我把#34;设置为"我的Mailable实例的字段如下:

public function toMail($notifiable)
{
    return (new ResetPasswordEmail())->with('token', $this->token)->to($notifiable->email);
}

由于$notifiable在这种情况下是User模型的一个实例,因此我可以获得这样的电子邮件。我不知道这是否是最好的方法,但它确实有效。