我试图在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)
它起作用了.
Win*_*ale 17
您需要从Gmail帐户启用2步验证.
https://myaccount.google.com/security
然后使用生成的密钥到您的ENV_PASSWORD而不是您的真实密码.
像这样使用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% 会起作用。