在 Laravel 电子邮件验证中选择收件人电子邮件

Choosing Recipient Email on Laravel Email Verification

我在我的 Laravel 应用程序中实现了 email verification。默认情况下,当用户注册时,验证电子邮件会发送给用户。但是,我想要的是向我的邮箱发送一封验证邮件,即选择收件人,以便网站管理员(在本例中为我)批准用户注册。

有什么办法吗?怎么样?

为此,我不推荐 Laravel 附带的默认用户电子邮件验证,即 use Illuminate\Contracts\Auth\MustVerifyEmail;

如果你想让用户必须得到管理员的批准,我会设置一个辅助字段,它不是 email_verified_at

修改您的用户迁移 database/migrations/*********_create_users_table.php 并添加一个布尔字段。

...
class CreateUsersTable extends Migration
{
    ...
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            ...
            $table->boolean('approved');
            ...
        });
    }
    ...
}

然后你可以创建一个新的中间件来检查用户是否被批准。

为了触发电子邮件,我会添加当用户在监听数组中注册时触发的事件 app/Providers/EventServiceProvider.php


...
class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
            /* add some notification here that sends you an email */
        ],
    ];
...

抱歉,这个答案不够详细,但它会让你继续。