Laravel 5.1 中的电子邮件发送问题

Email send issue in Laravel 5.1

我正在使用 laravel 5.1,我正在尝试从本地主机的 laravel 应用程序发送电子邮件。

我已经在 .env 文件中配置了我的电子邮件凭据但是,我收到 需要身份验证 错误。 我附上 .env 文件和控制器文件的代码。

.env

APP_ENV=local
APP_DEBUG=true
APP_KEY=1MJzLfnALmtppcbfzoVtlf8rzsFX94nm

DB_HOST=localhost
DB_DATABASE=real_estate
DB_USERNAME=root
DB_PASSWORD=''

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=my_account@gmail.com
MAIL_PASSWORD=my_password
MAIL_ENCRYPTION=ssl

控制器代码

$subject = 'Welcome!';
    Mail::send('mail', ['key' => 'value'], function($message) use ($subject) {
    // note: if you don't set this, it will use the defaults from config/mail.php
    $message->from('my_account@gmail.com', 'Sender Name');
    $message->to('receiver_account@gmail.com', 'John Smith')
            ->subject($subject);
    });

代码本身看起来不错,但是在您的 .env 文件中,加密应该是 tls 而不是 ssl;即

MAIL_ENCRYPTION=tls

另一件需要仔细检查的事情是您的 Google 帐户是否设置为允许使用安全性较低的应用程序。如果不是,那么这可能会给您带来问题,但只需转到您的 Google 帐户主页并遵循:登录和安全 -> 连接的应用程序和网站 -> 允许安全性较低的应用程序

https://myaccount.google.com/security#connectedapps

只要打开它就可以了。

如果没有,请查看 this link,文章底部有一些您可以尝试的想法。