gpt4 book ai didi

PHP 警告 : stream_socket_enable_crypto(): SSL operation failed with code 1

转载 作者:太空宇宙 更新时间:2023-11-03 14:03:50 26 4
gpt4 key购买 nike

我在尝试使用 PHPMailer 配置和发送邮件时收到以下警告:

PHP Warning:  stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

我查看了其他解决方案,但都没有用。以下是一些细节:

  1. 我的证书(来自 letsencrypt)是有效的,至少在我的 Nginx 配置中是这样。我的 WordPress 网站安全无误地提供服务。我的PHP版本是7.0.xx

  2. 我尝试将证书文件位置添加到 php.ini,但它警告加载流失败,即使地址是正确的。这是我尝试过的(以及其他):

    openssl.capath = "/etc/letsencrypt/live/example.org/" 这导致与上面完全相同的错误。

    我也试过:openssl.cafile = "/etc/letsencrypt/live/example.org/fullchain.pem" 但收到警告:PHP Warning:failed loading cafile stream

    /li>

我的 PHP 邮件程序配置(在我的 wordpress 函数文件中)如下所示:

        $phpmailer->Host = 'mail.example.org';
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 587;
$phpmailer->Username = 'myadminaccount@example.org';
$phpmailer->Password = 'mypassword';
$phpmailer->SMTPSecure = "tls";
$phpmailer->From = "myadminaccount@example.org";
$phpmailer->FromName = "MY Admin Account";

正如我所说,我已经在网站的其他地方尝试过各种解决方案,但都没有用。我很困惑,因为我的本地证书(以及与此相关的邮件服务器证书)都是有效的。

我真的不想按照其他地方的建议关闭同行验证,但如果必须的话,我想我会的。

最佳答案

UGH 解决方案相当简单,并且超出了我上面所写的范围。我正在使用 switch case 来检查以确保我的服务器是正确的,如下所示:

switch ($_SERVER['HTTP_HOST']) {
case 'https://example1.org':
// Set the hostname of the mail server
$phpmailer->Host = 'mail.example1.org';

我需要省略 https。所以将其更改为:

switch ($_SERVER['HTTP_HOST']) {
case 'example1.org':
// Set the hostname of the mail server
$phpmailer->Host = 'mail.example1.org';

成功了!我觉得自己像个笨蛋,但我希望这对其他人有帮助。

关于PHP 警告 : stream_socket_enable_crypto(): SSL operation failed with code 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46425599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com