为了账号安全,请及时绑定邮箱和手机立即绑定

PHP Mailer - 454 TLS 连接失败

PHP Mailer - 454 TLS 连接失败

PHP
收到一只叮咚 2023-03-11 17:23:04
在我的页面上,我有一个使用 PHP Mailer 的联系表格。一开始,仅出于测试目的,我将其与我的 Gmail 帐户一起使用。一切都像一个魅力。然后我决定将电子邮件服务从 Gmail 更改为来自我的托管服务提供商的服务。然后问题就开始了。每次我尝试发送电子邮件时,都会发生异常:2020-05-13 20:53:44 CLIENT -> SERVER: STARTTLS2020-05-13 20:53:44 SERVER -> CLIENT: 220 ready for tlsSMTP Error: Could not connect to SMTP host.2020-05-13 20:53:44 CLIENT -> SERVER: QUIT2020-05-13 20:53:44 SERVER -> CLIENT: 454 TLS connection failed: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure (#4.3.0)2020-05-13 20:53:44 SMTP ERROR: QUIT command failed: 454 TLS connection failed: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure (#4.3.0)这是我发送电子邮件的代码:<?php    use PHPMailer\PHPMailer\PHPMailer;    use PHPMailer\PHPMailer\Exception;    use PHPMailer\PHPMailer\SMTP;    require 'PHPMailer.php';    require 'SMTP.php';    require 'Exception.php';    class Mailer    {        private $mail;        public function __construct($host, $user, $password, $port = 587)        {            $this->mail = new PHPMailer();            try            {                $this->mail->SMTPDebug = SMTP::DEBUG_SERVER;                  $this->mail->CharSet    = "UTF-8";                $this->mail->isSMTP();                $this->mail->Host       = $host;                $this->mail->SMTPAuth   = true;                $this->mail->SMTPSecure = 'ssl';                $this->mail->Username   = $user;                $this->mail->Password   = $password;                $this->mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;                $this->mail->Port       = $port;            }            catch(Exception $e)            {                echo "Exception: " . $e;            }        }我想我在 TLS/SSL 方面错误地配置了 PHP Mailer,因为我对此很新手。我的网页使用 TLS 1.3 加密可能是一个权宜之计
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

这是一个提示,如果有效,请不要忘记投票以加强。让我们去设置...


$mail->SMTPOptions = array(

    'ssl' => array(

        'verify_peer' => false,

        'verify_peer_name' => false,

        'allow_self_signed' => false

    )

);

请记住,这是一种可以立即起作用的姑息解决方案,但我建议调查问题。另一个细节有时会使用端口 465 和 587 进行测试!


$mail->Port = "587";

$mail->SMTPSecure = "tls";

另一件事我不明白......为什么我要使用$ this->mail->SMTPSecure两次?


 $this->mail->SMTPSecure = 'ssl';

 $this->mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;


查看完整回答
反对 回复 2023-03-11
  • 1 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信