【问题标题】:PHP SMTP not sending email in Laravel ValetPHP SMTP 未在 Laravel Valet 中发送电子邮件
【发布时间】:2018-03-27 11:07:08
【问题描述】:

我在尝试使用 codeigniter 中的 mailtrap 配置发送电子邮件时遇到问题。我在 Laravel Valet 中使用 Codeigniter。最近想试试 Laravel Valet 作为开发环境,之前一直在用 vagrant box。如果我在 Vagrant 中使用相同的代码,则可以毫无问题地发送电子邮件,但是当我对 Valet 使用相同的代码时,它会失败并出现以下错误。

错误 - 2017-10-15 23:36:45 --> 220 mailtrap.io ESMTP 准备就绪, 你好:501 5.5.4 参数无效, 遇到以下 SMTP 错误:501 5.5.4 参数无效, 无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。日期:Sun, 15 Oct 2017 23:36:45 +0000

我在 Codeigniter 中用于 mailtrap 的 $config 配置如下。

$config = array(
'protocol' => 'smtp',
'mailpath' => '/usr/sbin/sendmail',
'smtp_host' => 'smtp.mailtrap.io',
'smtp_port' => 2525,
'smtp_user' => 'mailtrap_user',
'smtp_pass' => 'mailtrap_pass',
'crlf' => "\r\n",
'newline' => "\r\n"

);

当我在 Vagrant 工作时,此配置可以正常工作。我已经检查了几个关于 OpenSSL 问题的线程,但似乎 Valet 配置没问题。这是使用 Valet 时 phpinfo() 数据的一部分:

PHP 版本 7.1.10
SSL 版本 OpenSSL/1.0.2l
openssl
启用 OpenSSL 支持
OpenSSL 库版本 OpenSSL 1.0.2l 2017 年 5 月 25 日
OpenSSL 标头版本 OpenSSL 1.0.2l 2017 年 5 月 25 日
Openssl 默认配置 /usr/local/etc/openssl/openssl.cnf
卷曲
SSL 版本 OpenSSL/1.0.2l

在 Vagrant 方面,这是 phpinfo() 数据的一部分

PHP 版本 7.0.5-2
SSL 版本 OpenSSL/1.0.1f
openssl
启用 OpenSSL 支持
OpenSSL 库版本 OpenSSL 1.0.2g 2016 年 3 月 1 日
OpenSSL 标头版本 OpenSSL 1.0.2g 2016 年 3 月 1 日
Openssl 默认配置 /usr/lib/ssl/openssl.cnf
卷曲
SSL 版本 OpenSSL/1.0.1f

我已经检查了 php.ini 文件和 phpinfo() 数据中的一些配置,但未能发现差异。我不知道在此之前是否有人处理过这个问题可以为我指明正确的方向。如果需要更多信息,请告诉我。非常感谢您的所有时间和帮助。

【问题讨论】:

    标签: php codeigniter smtp php-openssl laravel-valet


    【解决方案1】:

    问题在于 mailtrap.io 本身。如果你的配置实际上是下面这样。

    MAIL_MAILER=smtp
    MAIL_HOST=smtp.mailtrap.io
    MAIL_PORT=2525
    MAIL_USERNAME=31466861b7bXXX
    MAIL_PASSWORD=fe2b6503618XXX
    MAIL_ENCRYPTION=null
    

    我用两个独立的框架进行了测试来证明这个错误。

    【讨论】:

      猜你喜欢
      • 2017-02-11
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 2018-12-08
      • 2016-11-22
      相关资源
      最近更新 更多