即使我已经允许使用较低的安全应用程序,我也无法使用Gmail发送电子邮件|拉拉维尔



我有一个观察者,如果用户更新了他的电子邮件地址。

public function updated(User $user)
{
    if($user->isDirty('email')){
        $new_email = $user->email; 
        $old_email = $user->getOriginal('email');
        //dd($user);
        event(new UserUpdate($user, $old_email));
    }
}

在UserUpdate事件中,我在构造函数内部有以下内容:

public function __construct($user, $old_email)
{
    $this->user = $user;
    $this->old_email = $old_email;
}

在侦听器的情况下,我想将电子邮件发送到旧的电子邮件地址。

public function handle(UserUpdate $event)
{
    $user = $event->user;
    Mail::to($event->old_email)->send(new UserUpdated($user));
}

和邮件类看起来像这样:

public function __construct($user)
{
    $this->user = $user;
}
public function build()
{
    $this->subject("Updated Email");
    return $this->view('emails.updatedUser');
}

更新用户时,我会收到以下错误:

Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required

我在.env

中设置了电子邮件
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=example@gmail.com
MAIL_PASSWORD=******
MAIL_ENCRYPTION=tls

在mail.php中,我还编辑了一些详细信息:

'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'from' => [
    'address' => env('MAIL_FROM_ADDRESS', 'example@gmail.com'),
    'name' => env('MAIL_FROM_NAME', 'Admin Email'),
],

我去了我的电子邮件,并启用了该选项以允许更安全的应用程序。

如何使我的电子邮件工作?

使用此问题作为参考,我注意到我要做的就是重新启动服务器并清除缓存。