phpmailer在本地主机上工作,但当我在ubuntu服务器上上传它时,它会给我错误,邮件不会发送(我使用的是gmail smtp)

phpmailer在本地主机上工作,但当我在ubuntu服务器上上传它时,它会给我错误,邮件不会发送(我使用的是gmail smtp),php,amazon-ec2,phpmailer,ubuntu-18.04,Php,Amazon Ec2,Phpmailer,Ubuntu 18.04,如何解决此错误我在注释$mail->isSMTP()后也尝试过,但它不起作用。 它在XAMP电子邮件id上工作正常,密码正确。我应该怎么做?请帮助我解决问题。当您收到错误消息时,最重要的是阅读它所说的内容,因此当它说: <?php if(isset($_POST['sendmail'])) { require 'PHPMailerAutoload.php'; require 'credential.php';

如何解决此错误我在注释$mail->isSMTP()后也尝试过,但它不起作用。
它在XAMP电子邮件id上工作正常,密码正确。我应该怎么做?请帮助我解决问题。

当您收到错误消息时,最重要的是阅读它所说的内容,因此当它说:

    <?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';
        }
    }
 ?>
解决这一问题的方法是使用普通的网络浏览器登录你的gmail帐户,如果你想知道他们为什么要求你这么做,请点击这个链接,这一点也不奇怪

对于其他信息,您应该按照调试输出中出现的故障排除指南的链接进行操作(您在这里重新发布了两次!),特别是它解决了您遇到的确切问题

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


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

您收到了什么错误消息?SMTP connect()失败。无法发送邮件。邮件程序错误:SMTP connect()失败。我在这里托管了它(litdeveloper.ml/donemail)请访问此查看错误您的服务器似乎不支持SMTP。您应该检查这些配置设置。显然,gmail中有一些配置设置需要整理,请参见您的本地主机环境中的“先决条件”部分。您也使用过gmail吗?我从浏览器注销了所有gmail帐户,然后再次登录并转到此链接(“”)只需按“继续”,然后我再次在浏览器中重新加载代码,最后它就可以工作了。非常感谢您,先生。您给了我解决此问题的方法,这对我很有帮助。非常感谢您
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