【问题标题】:Unable to send SSL/TLS smtp emails in Laravel 7 [duplicate]无法在 Laravel 7 中发送 SSL/TLS smtp 电子邮件 [重复]
【发布时间】:2020-09-25 06:31:23
【问题描述】:

我的配置:

PHP 版本:7.4.5

Laravel 版本:7

Swiftmailer 版本:6.2.3

观察到的行为

Swift_TransportException Connection could not be established with host ... :stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

预期行为

工作 -> 我认为底层库和使用的加密方法发生了重大变化,因为我的系统使用完全相同的 swiftmailer 版本。

重现示例

  1. 安装最新的 Laravel 7。
  2. 创建正确的配置和邮件。
  3. 尝试使用端口 587 并启用 tls 发送电子邮件。错误: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
  4. 尝试使用端口 465 并启用 ssl 发送电子邮件。错误: Connection could not be established with host ... :stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

请注意:

  1. 配置经过 100% 验证,我可以从许多不同的系统发送电子邮件,但不能使用这个库 -> swiftmailer -> used_by -> laravel。
  2. 我尝试了不同的 smtp 邮件供应商,结果都是一样的。

我在这里做错了什么?

【问题讨论】:

    标签: php laravel email swiftmailer


    【解决方案1】:

    解决方案真的很简单。

    解决这个问题需要在.env 中设置MAIL_ENCYRPTIONtcp。 而不是 tlsssl 在相应的端口上。

    由于一些奇怪的原因,使用正确的端口设置tls(无论版本)或ssl 不起作用。

    因此,如果您遇到此类问题,请设置MAIL_ENCYRPTION=tcp - 这应该可以解决您的错误。

    编码愉快...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      • 2013-11-28
      • 1970-01-01
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 2022-07-20
      相关资源
      最近更新 更多