【问题标题】:Laravel sending mail over gmailLaravel 通过 gmail 发送邮件
【发布时间】:2016-08-31 04:07:50
【问题描述】:

我似乎无法让它工作:

环境

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=my_acc@gmail.com
MAIL_PASSWORD=***
MAIL_ENCRYPTION=tls

在控制器中:

Mail::send('mail.template', ['post' => $post, 'user' => $user], function($message) {
            $message->to('my_acc@gmail.com', 'X Y')->subject('Comment');
        });

我得到错误:

stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

我已尝试将此添加到 StreamBuffer.php

$options['ssl']['verify_peer'] = FALSE;
$options['ssl']['verify_peer_name'] = FALSE;

然后我得到这个错误:

Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted.

即使我没有收到该错误,我也想要一个解决方案,而不是快速修复...

【问题讨论】:

  • 您的 gmail 帐户是否启用了两因素身份验证?
  • 不,但我也试过了。是否应该启用?逻辑表明不是:)
  • 这是个人喜好,如果你启用了它,你需要生成一个应用密码才能通过你的应用访问它。
  • 我会记住这一点...但我现在没有,而且错误在那里
  • 作为记录,我遇到了同样的问题,following post 更正了这个错误。

标签: laravel email gmail send


【解决方案1】:

使用您的MAIL_ENCRYPTION=ssl 应该可以正常工作。

【讨论】:

  • 无法与主机 smtp.gmail.com 建立连接
  • 尝试将端口也更改为 465。
  • 检查您的 openssl 扩展是否在您的 php.ini 中启用。如果没有,请启用并重试。
  • Laravel 没有 php.ini 文件?
  • 不,你的 PHP 安装会有一个。尝试在终端中运行php -i | grep php.ini 以了解您的 php.ini 文件所在的位置。
猜你喜欢
  • 2018-03-21
  • 1970-01-01
  • 2019-05-30
  • 2014-10-01
  • 2014-12-28
  • 2012-01-07
  • 2023-03-19
  • 2017-09-20
相关资源
最近更新 更多