当前位置:  开发笔记 > 编程语言 > 正文

如何使用laravel 5中的队列通过电子邮件发送密码重置链接

如何解决《如何使用laravel5中的队列通过电子邮件发送密码重置链接》经验,为你挑选了1个好方法。

我正在使用laravel的ResetsPasswords特性来实现密码重置.我想要实现的是使用队列发送电子邮件.通过代码挖掘我在函数postEmail()中找到了以下行:

$response = Password::sendResetLink($request->only('email'), function (Message $message) {
            $message->subject($this->getEmailSubject());
        }); 

进一步挖掘我注意到sendResetLink()函数是在PasswordBroker类中实现的,而PasswordBroker类又调用函数emailResetLink().emailResetLink函数返回以下内容:

return $this->mailer->send($view, compact('token', 'user'), function ($m) use ($user, $token, $callback) {
            $m->to($user->getEmailForPasswordReset());

我可以简单地mailer->send改为mailer->queue.如果不修改这个非项目文件,它们是更好的方法吗?



1> fakemeta..:

我知道这已经得到了解答,但我找到了排队密码重置通知的另一种方法,我发现这更简单.我在Laravel 5.3上测试过它.

默认情况下,密码重置通知由Illuminate\Auth\Notifications\ResetPassword类实现.此类UsersendPasswordResetNotification方法中的模型中实例化并传递给trait notify方法Illuminate\Notifications\Notifiable.

因此,要对密码重置通知进行排队,您只需创建新的ResetPassword通知类,artisan make:notification ResetPassword并将其替换为以下代码:



现在只需sendPasswordResetNotification在您的App\User类中覆盖方法:

notify(new ResetPasswordNotification($token));
}

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有