laravel 5 邮件发送的 Gmail 设置

Gmail setup for laravel 5 mail send

我将其设置为通过 laravel 5 从我的 gmail 帐户发送邮件。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=********@gmail.com //email address
MAIL_PASSWORD="*******" //password for that email
MAIL_ENCRYPTION=tls

为了测试邮件发送,我用了这个

Route::get('/email', function(){
$data = array(
    'name' => "Library",
    );
Mail::send('mailview',$data,function($message){
    $message->from('*******@gmail.com','Library');
    $message->to('*******@gmail.com')->subject('Confirmation mail.');
});

return "A email has been sent to you. Check inbox. Also check spambox if not in inbox.";});

但这给了我以下错误。

Swift_TransportException in AbstractSmtpTransport.php line 383: Expected response code 250 but got code "530", with message "530 5.7.0 Must issue a STARTTLS command first. g20sm4065212pfd.55 - gsmtp "

我用谷歌搜索了这个,发现了一些与此相关的问题。并且到目前为止了解到 gmail 安全设置是罪魁祸首 here.But 没有找到任何描述如何解决这个问题的答案。 现在我想知道我应该如何配置我的 gmail 帐户? [假设我刚刚在 linux mint 上创建了一个新的 gmail account.Working - 如果此信息对您有帮助的话。]

465和587端口的区别:

端口 465 用于 smtps - SSL 加密在任何 SMTP 级通信之前自动启动。

端口 587 用于 msa - 它几乎就像标准的 SMTP 端口。如果服务器支持并且您的 ISP 不过滤服务器的 EHLO 回复(2014 年 11 月报告),则可以通过 STARTTLS 命令在 SMTP 级别启动 SSL 加密。

(source)

所以如果你想使用端口号 587,你应该在你的设置中将加密设置为空,但是对于 465,设置 'ssl' 为加密将解决问题:

'host' => 'smtp.gmail.com',
'port' => 465, 
'encryption' => 'ssl',

'host' => 'smtp.gmail.com',
'port' => 587, 
'encryption' => '',

也许您需要在您的 gmail 帐户中启用不太安全的应用程序访问。

不确定发生了什么。

port 587 应该可以。

你会尝试创建一个新项目并像你在这里写的那样配置设置吗?

我觉得这里一切都还好。您的项目设置可能存在其他问题。

有一次我遇到了这样的事情并创建了一个对我有用的新项目。