首页 > 解决方案 > 在 Laravel 5.8 中阻止发送验证电子邮件地址电子邮件

问题描述

我在我的用户模型上使用 Laravel Notifiable trait,因此用户必须在登录之前验证他们的电子邮件地址,这很好用。

但是,我想将此电子邮件的发送延迟到应用程序的稍后时间(当管理员手动确认每个用户时)。

如何防止 Laravel 在创建帐户时发送验证电子邮件?

手动创建用户时,您可以在应用程序中随时使用 SendsPasswordResetEmails trait 发送验证电子邮件:

use SendsPasswordResetEmails;
$this->sendResetLinkEmail($request);

问题是我在标准的 Laravel 身份验证脚手架中找不到此代码以防止它发生。

标签: phplaravel

解决方案


Notifiable特征不是向用户发送电子邮件验证的内容,而是您MustVerifyEmailUser模型实现的接口。

因此,为了手动完成,您需要做的是从

EventServiceProvider $listen映射:

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

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

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

推荐阅读