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

men*_*ndz 6 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),

 ];
Run Code Online (Sandbox Code Playgroud)

我的.env文件是

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=null
Run Code Online (Sandbox Code Playgroud)

我的电子邮件功能是

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');
    });
}
Run Code Online (Sandbox Code Playgroud)

预期的响应代码250,但得到代码"530",消息"530 5.7.0必须首先发出STARTTLS命令.每次调用我的函数时出现l188sm21749863pfl.28 - gsmtp"错误.

Ama*_*rja 30

我有同样的问题.我变了,

MAIL_ENCRYPTION=null to 
MAIL_ENCRYPTION=tls 

php artisan config:cache
Run Code Online (Sandbox Code Playgroud)

它起作用了.

  • 谢谢你为我的制作节省了一天,因为我的电子邮件队列在生产中被阻止了 2 天。我忘记将 .env 文件中的加密更新为“MAIL_ENCRYPTION=tls”。如果你缓存你的配置,你只需要 `php artisan config:cache` 以便队列中的代码可以找到新的配置。 (2认同)

Win*_*ale 17

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

https://myaccount.google.com/security

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

  • 另外,在配置smtp MAIL_DRIVER = smtp MAIL_HOST = smtp.gmail.com MAIL_PORT = 587 MAIL_USERNAME = <<您的电子邮件地址>> MAIL_PASSWORD = << app密码>> MAIL_ENCRYPTION = tls (2认同)

Has*_*imi 9

像这样使用SSL和移植465

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=mail@gmail.com
MAIL_PASSWORD=12345678
MAIL_ENCRYPTION=ssl
Run Code Online (Sandbox Code Playgroud)

100% 会起作用。