为了账号安全,请及时绑定邮箱和手机立即绑定

阻止在 Laravel 5.8 中发送验证电子邮件地址电子邮件

阻止在 Laravel 5.8 中发送验证电子邮件地址电子邮件

PHP
手掌心 2021-08-27 09:33:09
我在我的用户模型上使用 Laravel Notifiable trait,因此用户必须在能够登录之前验证他们的电子邮件地址,这很好用。但是,我想将此电子邮件的发送延迟到应用程序中的稍后时间点(当管理员手动确认每个用户时)。如何防止 Laravel 在创建帐户时发送验证电子邮件?手动创建用户时,您可以使用 SendsPasswordResetEmails trait 在您的应用程序中随时发送验证电子邮件:use SendsPasswordResetEmails;$this->sendResetLinkEmail($request);问题是我在标准 Laravel 身份验证脚手架中找不到此代码以防止它发生。
查看完整描述

2 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

Notifiable特性来说并不算什么发送电子邮件验证的用户,但MustVerifyEmail界面,你的User模型实现。

因此,为了手动执行此操作,您需要做的是从

EventServiceProvider $listen 映射:

Registered::class => [
    SendEmailVerificationNotification::class,
    ]

然后稍后您可以找到User要将电子邮件验证发送到的目标,并像这样发送电子邮件:

User::find($userId)->sendEmailVerificationNotification();


查看完整回答
反对 回复 2021-08-27
?
UYOU

TA贡献1878条经验 获得超4个赞

它是MustVerifyEmailLaravel 用来施展魔法的接口。Laravel 检查要通知的类(即User)是否实现了该MustVerifyEmail接口,如果是,则发出验证通知。

虽然您可以Registered从 中删除事件侦听器EventServiceProvider,但也可以implements MustVerifyEmailUser类中删除。

通过保持事件侦听器完好无损并简单地MustVerifyEmailUser类中删除接口,您可以保持自动电子邮件验证系统完好无损,以防您确实想创建另一种类型的User类确实会收到自动电子邮件验证通知。

因此,implements MustVerifyEmail从您的User课程中删除,然后sendEmailVerificationNotification()在您想要发送验证电子邮件时手动呼叫您的用户。


查看完整回答
反对 回复 2021-08-27
  • 2 回答
  • 0 关注
  • 227 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信