【问题标题】:Gmail setup for laravel 5 mail send用于 laravel 5 邮件发送的 Gmail 设置
【发布时间】:2016-03-23 08:32:39
【问题描述】:

我将此设置为通过 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.";});

但这给了我以下错误。

AbstractSmtpTransport.php 第 383 行中的 Swift_TransportException: 预期响应代码为 250,但得到代码“530”,消息为“530 5.7.0 必须先发出 STARTTLS 命令。g20sm4065212pfd.55 - gsmtp "

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

【问题讨论】:

  • 尝试设置加密 => '' 或同时更改端口和加密:'port' => 465, 'encryption' => 'ssl'
  • 新项目的相同设置成功运行。使用 465 而不是 587 端口有什么区别?

标签: php laravel-5 gmail swiftmailer


【解决方案1】:

465和587端口的区别:

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

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

(source)

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      不知道发生了什么。

      port 587 应该可以工作。

      您会尝试创建一个新项目并像您在此处编写的那样配置设置吗?

      我认为这里的一切都很好。您的项目设置可能存在其他问题。

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

      【讨论】:

        猜你喜欢
        • 2017-03-06
        • 2016-08-31
        • 1970-01-01
        • 2021-10-22
        • 2018-02-27
        • 2020-12-16
        • 1970-01-01
        • 1970-01-01
        • 2015-10-01
        相关资源
        最近更新 更多