【问题标题】:Connection could not be established with host smtp.gmail.com [Operation timed out #60]无法与主机 smtp.gmail.com 建立连接 [操作超时 #60]
【发布时间】:2015-06-03 15:17:41
【问题描述】:

我无法在本地环境中发送任何电子邮件。

我不断得到:

_

.env 文件。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=my-email@gmail.com
MAIL_PASSWORD=*****

注意:令人惊讶的是 - 我的生产服务器中有相同的设置,而且效果很好。

任何提示/建议?

【问题讨论】:

  • 我不确定,但是来自 Gmail 的 2 因素身份验证会影响这一点吗?你应该去Gmail设置看看是否确实是问题!只是猜测。
  • 什么是两因素身份验证?我该如何解决?就像我提到的那样,我已经使用我的应用程序将近一个月了,并且没有任何问题。我很好奇。
  • 我不是故意要混淆你的。但是正如你所说的刚刚一个月,那么它可能是其他一些问题。但无论如何,如果在 gmail 设置中启用了 2 因素身份验证,则在您登录到您的 gmail 帐户后,谷歌会将 OTP 发送到您的手机号码。您需要输入正确的 OTP 才能查看您的电子邮件。

标签: php laravel gmail laravel-5


【解决方案1】:

将我的驱动程序行更新为

MAIL_DRIVER=sendmail

第一次尝试就可以了。

最终的.env 文件应如下所示

MAIL_DRIVER=sendmail
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=my-email@gmail.com
MAIL_PASSWORD=*****

【讨论】:

  • 这是错误的答案。它将通过默认服务器 smtp 发送电子邮件,而不是使用 gmail smtp。
  • 这没有回答问题。 MAIL_DRIVER=smtp
【解决方案2】:

对我来说,以下内容与 GMAIL 一起使用:

'encryption' => 'ssl',

.env

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=xxx@gmail.com
MAIL_PASSWORD=xxx

【讨论】:

    【解决方案3】:

    1:您必须允许安全性较低的应用,或者通过在您的 gmail acc 上启用两步验证来使用应用密码。 2:禁用您机器上的任何防病毒软件。

    【讨论】:

      【解决方案4】:

      在 .env 文件中更改设置并在设置 smtp 后保留您的邮件服务器的凭据

      MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=465 MAIL_USERNAME=xxx MAIL_PASSWORD=xxx

      【讨论】:

        【解决方案5】:

        Laravel 还包括 Mailgun 和 Mandrill HTTP API 的驱动程序。这些 API 通常比 SMTP 服务器更简单、更快捷。这两个驱动程序都需要将 Guzzle 5 HTTP 库安装到您的应用程序中。您可以通过将以下行添加到您的 composer.json 文件来将 Guzzle 5 添加到您的项目中:

        "guzzlehttp/guzzle": "~5.0"
        
        composer update
        

        Mailgun 驱动程序

        要使用 Mailgun 驱动程序,请在 config/mail.php 配置文件中将驱动程序选项设置为 mailgun。接下来,如果您的项目还没有配置文件,请创建一个 config/services.php 配置文件。验证它是否包含以下选项:

        'mailgun' => [
            'domain' => 'your-mailgun-domain',
            'secret' => 'your-mailgun-key',
        ],
        

        山魈驱动器

        要使用 Mandrill 驱动程序,请在 config/mail.php 配置文件中将驱动程序选项设置为 mandrill。接下来,如果您的项目还没有配置文件,请创建一个 config/services.php 配置文件。验证它是否包含以下选项:

        'mandrill' => [
            'secret' => 'your-mandrill-key',
        ],
        

        基本用法

        The Mail::send method may be used to send an e-mail message:
        
        Mail::send('emails.welcome', ['key' => 'value'], function($message)
        {
            $message->to('foo@example.com', 'John Smith')->subject('Welcome!');
        });
        

        http://laravel.com/docs/5.0/mail

        【讨论】:

        • 我不是故意使用邮枪驱动的。我想使用自己的 gmail。
        • 这没有回答问题。
        • 这不会回答,但它会帮助需要 Mailgun 或 Mandrill 驱动程序的人。
        猜你喜欢
        • 2018-12-29
        • 1970-01-01
        • 2017-10-15
        • 2011-02-13
        • 2019-03-01
        • 2012-12-20
        • 2018-07-03
        • 2016-02-07
        • 2017-05-01
        相关资源
        最近更新 更多