laravel预计响应代码250,但代码为“530”

时间:2017-03-03 08:49:53

标签: php laravel-5.1

我试图在Laravel 5.1中邮寄

我的mail.php代码是

 return [
     'driver' => env('MAIL_DRIVER', 'smtp'),
     'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
     'port' => env('MAIL_PORT', 587),
     'from' => ['address' => 'myemail@gmail.com', 'name' => 'sample'],
     'encryption' => env('MAIL_ENCRYPTION', 'tls'),
     'username' => env('MAIL_USERNAME'),
     'password' => env('MAIL_PASSWORD'),
     'sendmail' => '/usr/sbin/sendmail -bs',
     'pretend' => env('MAIL_PRETEND', false),

 ];

我的.env文件是

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=null

我的电子邮件功能是

public function sendEmailVerification()
{
    $user = $this->user;//retrieved by $request->user() in __construct

    Mail::send('emails.verifyemail', ['user' => $user], function ($m) use ($user) {
        $m->from('myemail@gmail.com, 'sample');

        $m->to($user->email, $user->name)->subject('Verify Email');
    });
}

预期的响应代码250,但代码为“530”,消息“530 5.7.0必须先发出STARTTLS命令。每次调用我的函数时都会出现l188sm21749863pfl.28 - gsmtp”错误。

9 个答案:

答案 0 :(得分:24)

我遇到了同样的问题。我改变了,

MAIL_ENCRYPTION=null to 
MAIL_ENCRYPTION=tls 

php artisan config:cache

并且有效。

答案 1 :(得分:15)

您需要从Gmail帐户启用2步验证。

https://myaccount.google.com/security

然后使用生成的密钥到您的ENV_PASSWORD而不是您的真实密码。

答案 2 :(得分:1)

使用SSL和端口465,如下所示:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=mail@gmail.com
MAIL_PASSWORD=12345678
MAIL_ENCRYPTION=ssl

100%将有效。

答案 3 :(得分:1)

转到“管理您的Google帐户”页面,然后在“安全性”标签上转到“应用程序密码”并获取新的随机代码。在.env文件中使用它,并用电子邮件密码代替。

答案 4 :(得分:1)

MAIL_ENCRYPTION =空 更改为 MAIL_ENCRYPTION = tls

只需将您的加密类型更改为“ tls”即可,并确保 您的google帐户的“无需安全的应用程序访问”已打开,并且在更改.env文件后,您还应该重新启动laravel服务器。

希望有帮助。

答案 5 :(得分:0)

将MAIL_ENCRYPTION = null更改为MAIL_ENCRYPTION = ssl或MAIL_ENCRYPTION = tls。我之前遇到过这个问题,并改为MAIL_ENCRYPTION = tls为我工作。还要确保config \ mail.php中的邮件设置与.env文件相同

答案 6 :(得分:0)

从较不安全的设备启用日志记录后,请确保.env文件包含以下配置:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD="your_passwrod_here"
MAIL_ENCRYPTION=tls

确保您的密码用双引号""进行四舍五入。

确保您的mail.php文件包含以下配置:

'from' => [
    'address' => env('MAIL_FROM_ADDRESS', 'your_email@gmail.com'),
    'name' => env('MAIL_FROM_NAME', 'your_email'),
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),

不要忘记关闭服务器并运行php artisan config:clear以清除配置缓存。

这对我有用

答案 7 :(得分:0)

这些更改后,您应该重新启动工匠。这就是我的问题。

答案 8 :(得分:0)

更改.env文件:

MAIL_ENCRYPTION=tls

清除缓存:

php artisan config:cache

对于Gmail帐户,您还需要在https://myaccount.google.com/security上启用“缺乏安全的应用程序访问权限”。但是,不应在主帐户上更改该选项。