Joomla

时间:2016-03-29 13:05:44

标签: phpmailer joomla3.0

此链接介绍了解决此问题的一些方法: https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting#php-56-certificate-verification-failure 但我根本不知道在Joomla中应该做什么以及如何防止这种验证,因为我无法为我的网站设置ssl。 警告:

Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /nfsmnt/hosting1_1/1/b/1bec1745-5e90-43d0-beb1-2d132937948b/domain.com/web/libraries/vendor/phpmailer/phpmailer/class.smtp.php on line 344

当许多网站没有运行ssl时,这种验证的意义是什么?

Joomla库中的一段代码(class.smtp.php)

        // Begin encrypted connection
    if (!stream_socket_enable_crypto(
        $this->smtp_conn,
        true,
        STREAM_CRYPTO_METHOD_TLS_CLIENT
    )) {
        return false;
    }
    return true;
}

1 个答案:

答案 0 :(得分:0)

你错过了这一点。它不是使用SSL的网站,而是您要连接的邮件服务器。例如,如果您使用PHPMailer通过您的Gmail帐户发送邮件,则无论您的网络服务器是否正常,都将加密与Gmail的连接。

您遇到的问题是您使用的邮件服务器配置错误。如果是对入站连接进行通告加密,则应使用有效证书。错误将是证书已过期,是自签名证书(因此无法信任),或者与您连接的主机名不匹配。本指南中的说明告诉您如何禁用这些检查,并且应该在使用PHPMailer时应用它们,而不是通过更改库本身。您可以通过搜索new PHPMailer的实例并使用在指南中设置降级SSL选项的代码跟随它来在Joomla代码库中找到执行此操作的位置。请记住,这是解决问题的错误方法。如果您的邮件服务器无法修复,请使用适当的托管公司,知道它在做什么。

对于"没有多少网站运行SSL",这是不正确的。所有网站运行SSL,但许多网站不运行SSL。现在没有理由不能获得free real certificates with minimal hassle。对于更引人注目的纪录,read this