phpmailer 在本地主机上工作但是当我将它上传到我的 ubuntu 服务器时它给我错误并且邮件没有发送(我正在使用 gmail smtp)

phpmailer working on localhost but when i upload it on my ubuntu server it gives me error and mail is not sending(I am using gmail smtp)

    <?php 
    if(isset($_POST['sendmail'])) {
        
        require 'PHPMailerAutoload.php';
        require 'credential.php';

        $mail = new PHPMailer;

        $mail->SMTPDebug = 4;                               // 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 = EMAIL;                 // SMTP username
        $mail->Password = PASS;                           // SMTP password
        $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
        $mail->Port = 587;                                    // TCP port to connect to

        $mail->setFrom(EMAIL, 'litdeveloper');
        $mail->addAddress($_POST['email']);     // Add a recipient

        $mail->addReplyTo(EMAIL);
        // print_r($_FILES['file']); exit;
        for ($i=0; $i < count($_FILES['file']['tmp_name']) ; $i++) { 
            $mail->addAttachment($_FILES['file']['tmp_name'][$i], $_FILES['file']['name'][$i]);    // Optional name
        }
        $mail->isHTML(true);                                  // Set email format to HTML

        $mail->Subject = $_POST['subject'];
        $mail->Body    = '<div style="border:2px solid red;">This is the HTML message body <b>in bold!</b></div>'.$_POST['message'];
        $mail->AltBody = $_POST['message'];

        if(!$mail->send()) {
            echo 'Message could not be sent.';
            echo 'Mailer Error: ' . $mail->ErrorInfo;
        } else {
            echo 'Message has been sent';
        }
    }
 ?>

我如何解决这个错误 我在评论这个 $mail->isSMTP() 之后也尝试过,但它不起作用。 它在 XAMP 上正常工作电子邮件 ID 和密码正确我应该怎么做请帮助我

收到错误消息时最重要的事情是阅读它的内容,所以当它说:

534-5.7.14 Please log in via your web browser and then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/answer/78754 g206sm18050557pfb.178 - gsmtp

解决这个问题的方法是使用普通网络浏览器登录到您的 gmail 帐户,如果您想知道他们问您的原因,请遵循 link这样做。

有关其他信息,您应该按照 link 出现在调试输出中的故障排除指南(并且您在此处重新发布了两次!),特别是 this part,它解决了确切的问题你有。

除了您使用的是非常旧版本的 PHPMailer 之外,您的配置和代码看起来是正确的;这不是问题所在。

顺便说一句,您现在应该更改您的 gmail 密码,因为它在您的调试输出中以易于解码的格式显示。