错误-200:使用phpmailer发送邮件时发生parsererror

问题描述

我刚刚开始使用phpmailer发送邮件,而不是基本的邮件功能。 我已经将phpmailer函数添加到ajax脚本中,以便在某个事件上发送邮件。该脚本本身可以很好地运行,但是一旦添加$mail->send();命令,我就会收到错误消息:

"Error - 200: parsererror"

它确实有效-邮件已发送,但没有正确返回到调用过程。 我已经减少了一些代码,以删除与该特定问题无关的额外验证和功能。 调用代码是:

    jQuery('#save-supplier').click(function(e){
    e.preventDefault();
      
    $('#save-supplier').html('<i class="fa fa-cloud"></i> Saving...');
                                  
    var formData = new FormData($('#edit-supplier-form')[0]);
      
    $.ajax({
        type: "POST",url: "./ajax/ajaxSendphpMail.php",data: formData,contentType: false,processData:false,cache: false,dataType: 'json',success: function(data) {
            $(location).attr("href","supplier.php?supplier_code=<?php echo $supplier_code; ?>");
        },error: function(data){
            var errorMessage = data.status + ': ' + data.statusText;
            alert('Error - ' + errorMessage);
            $('#save-supplier').html('<i class="fa fa-save mr-5"></i> Save Changes');
        }
    });
  
    return false;
});

});

并且带有phpmailer命令的脚本是:

    ob_start();
session_start();
require '../inc/_global/db_con.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require '/var/www/vhosts/compleit.com/vendor/autoload.php';

try {
    $mail = new PHPMailer(true);

    //Server settings
    $mail->SMTPDebug = 0;
    $mail->isSMTP();
    $mail->Host       = 'compleit.com';
    $mail->SMTPAuth   = true;
    $mail->Username   = '[email protected]';
    $mail->Password   = 'cAp$xxxYY';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port       = 587;

    //Recipients
    $mail->setFrom('[email protected]');
    $mail->addAddress('[email protected]');
    $mail->addReplyTo('[email protected]');

    // Content
    $mail->isHTML(true);
    $mail->Subject = 'test email';
    $mail->Body    = 'email body';
    $mail->AltBody = 'email body';

    $mail->send();
} catch (Exception $e) {
    // no exception reporting - no need to know if email succeeded or failed
}

以前,我是通过标准的mail命令发送邮件的,但没有问题。 但是,现在我切换到phpmailer,并收到200 parsererror。停止此操作的唯一方法是注释掉$mail->send()命令。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)