Javascript Ajax和PHPMailer错误
我正在改进代码,但遇到了一些问题 我正在尝试向我的一个用户发送电子邮件。如果电子邮件存在,我没有问题,相反,如果不存在的网站应用程序爆炸 这是我使用ajax的js代码:Javascript Ajax和PHPMailer错误,javascript,ajax,phpmailer,Javascript,Ajax,Phpmailer,我正在改进代码,但遇到了一些问题 我正在尝试向我的一个用户发送电子邮件。如果电子邮件存在,我没有问题,相反,如果不存在的网站应用程序爆炸 这是我使用ajax的js代码: callAjax(url, paramsInsert, true, function (data) { if (data.success) { modal("OK", "<h3>ALL OK</h3>", "OK"); } else { modal("err
callAjax(url, paramsInsert, true, function (data) {
if (data.success) {
modal("OK", "<h3>ALL OK</h3>", "OK");
} else {
modal("error", "<h3> ERROR </h3>", "Error");
}
});
仍然得到相同的错误:
jsontext=“SMTP错误:以下收件人失败:gjdfhgdf@dfgndfjkgd.com::收件人地址被拒绝:找不到域
↵{“success”:false,“jsontext”:“Error”}
我还尝试在创建新PHPMailer时添加参数:
$mail = new PHPMailer(false);
$mail->isSMTP();
$mail->SMTPDebug = false;
$mail->do_debug = 0;
可在此帖子上找到:
解决方案:
我通过以下代码找到函数:
if (!$mail->send()) {
echo $mail->ErrorInfo;
$estado = false;
}
因此,我刚刚评论了First lane以禁用Errorinfo打印:)要进入该
中,您需要确保数据。success
包含的值不会被视为true
,这取决于您从PHP返回的值,而不是JS中的值
如果希望将返回值作为JSON处理,则需要实际从PHP返回JSON,而您的示例jsontext
不是
在您的PHP中,它类似于:
if (!$mail->send()) {
echo json_encode(['success' => false, 'jsontext' => $mail->ErrorInfo]);
} else {
echo json_encode(['success' => true, 'jsontext' => 'OK']);
}
只需将PHPMailer设置为不显示任何调试输出即可修复,否?@CBroe我尝试过,lokk at edit:(您所说的作为输出获取的内容与所显示的PHP代码不匹配。jsontext
属性将包含除Error
或OK
之外的任何内容都毫无意义,因为这是您在所显示的代码中为该属性设置的唯一两个值。是的,看起来像您“我没有在这里包括您的所有代码。在接收端,jsontext
将包含脚本输出的所有内容,因此您必须有其他输出以及预期的JSON内容。@Synchro您是对的,我编辑了这篇文章,因为我是通过函数找到这段代码的。谢谢!
if (!$mail->send()) {
echo $mail->ErrorInfo;
$estado = false;
}
if (!$mail->send()) {
echo json_encode(['success' => false, 'jsontext' => $mail->ErrorInfo]);
} else {
echo json_encode(['success' => true, 'jsontext' => 'OK']);
}