PHPMAILER的问题无法连接到SMTP主机

时间:2019-04-30 05:28:10

标签: php phpmailer

我在使用PHPMAILER时遇到问题,在localhost中工作正常,但在服务器中却给我错误

PHPMAILER代码

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

function sendMail($driver, $driverUser){

    // Load Composer's autoloader
    require 'vendor/autoload.php';

    // Instantiation and passing `true` enables exceptions
    $mail = new PHPMailer(true);

    try {
        //Server settings
        $mail->SMTPDebug = 2;                                       // Enable verbose debug output
        $mail->isSMTP();                                            // Set mailer to use SMTP
        $mail->Host       = 'smtp.gmail.com';                       // Specify main and backup SMTP servers
        $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
        $mail->Username   = 'wastaapplication@gmail.com';                // SMTP username
        $mail->Password   = '*******';                      // SMTP password
        $mail->SMTPSecure = 'tls';                                  // Enable TLS encryption, `ssl` also accepted
        $mail->Port       = 587;                                    // TCP port to connect to

        //Recipients
        $mail->setFrom('wastaapplication@gmail.com', 'Wasta Driver');
        $mail->addAddress($driver, $driverUser);     // Add a recipient

        // Content
        $mail->isHTML(true);                                  // Set email format to HTML
        $mail->Subject = 'New Order';
        $mail->Body    = ' مرحبا ' . '<strong>' . $driverUser . '</strong>' . '  لديك طلبيه جديده برجاء مراجعه برنامج الطيارين ';
        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

        $mail->send();
        echo 'Message has been sent';
    } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }

}

错误

2019-04-30 05:14:51 SERVER -> CLIENT: 220-server.issgroups.org ESMTP Exim 4.91 #1 Tue, 30 Apr 2019 07:14:51 +0200 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail.
2019-04-30 05:14:51 CLIENT -> SERVER: EHLO wastetkheer.com
2019-04-30 05:14:51 SERVER -> CLIENT: 250-server.issgroups.org Hello wastetkheer.com [138.201.107.252]250-SIZE 52428800250-8BITMIME250-PIPELINING250-AUTH PLAIN LOGIN250-STARTTLS250 HELP
2019-04-30 05:14:51 CLIENT -> SERVER: STARTTLS
2019-04-30 05:14:51 SERVER -> CLIENT: 220 TLS go ahead
SMTP Error: Could not connect to SMTP host.
2019-04-30 05:14:51 CLIENT -> SERVER: QUIT
2019-04-30 05:14:51 
2019-04-30 05:14:51 
SMTP Error: Could not connect to SMTP host.
Message could not be sent. Mailer Error: SMTP Error: Could not connect to SMTP host.

我正在尝试将SMTPDebug更改为1 &// $ mail-> isSMTP();

在本地主机而不是服务器中工作良好 我想问题出在SMTP身份验证,但是我找不到问题。

2 个答案:

答案 0 :(得分:0)

请在发布之前进行搜索,因为该问题已被多次回答。

在STARTTLS之后立即失败,表明TLS错误。这在gmail中非常常见,因为它们的CA根证书大约在一年前更改为许多较旧的操作系统中不存在的证书。它适用于localhost,因为您的本地操作系统没有过时的CA证书。

阅读the troubleshooting guide,该书确切地告诉您如何处理。

这还可能取决于您的ISP将SMTP通信重定向到其自己的邮件服务器,从而导致证书名称不匹配-该指南提供了诊断确切问题的方法。

答案 1 :(得分:-1)

尝试更换 $ mail-> SMTPSecure ='tls'; $ mail-> SMTPSecure ='ssl';

//因为此错误后服务器退出: 2019-04-30 05:14:51服务器->客户:220 TLS继续进行 SMTP错误:无法连接到SMTP主机。

所以尝试