为了账号安全,请及时绑定邮箱和手机立即绑定

PHPmailer 和 vanilla JavaScript AJAX 表单提示

PHPmailer 和 vanilla JavaScript AJAX 表单提示

PHP
元芳怎么了 2022-07-22 19:15:04
所以,我需要一个联系表单,它可以发送带有“成功”提示的电子邮件,该提示出现在我的表单中,而无需重新加载。我发现 PHPmailer 有助于将邮件发送到收件箱而不是垃圾邮件(仅此一项工作正常,电子邮件直接发送到收件箱)。然后我添加 JS 验证,然后是 AJAX,然后是处理 JSON 响应的 PHP。当我单击“发送”(好!)时出现“成功”提示,但问题是没有发送/接收电子邮件。没有 AJAX 的代码在我的本地和网络主机上都可以正常工作。如何优化它,以便出现成功提示并发送电子邮件(收件箱,理想情况下)?请不要使用 jQuery 或任何额外的插件。提前致谢。HTML:<div class="contact-form">    <form action="mail.php" method="POST" onsubmit="return doRegister()">        <input id="mail-name" type="text" name="name" placeholder="Your Name">        <span id="name-alert"></span>        <input id="mail-email" type="text" name="email" placeholder="Your Email">        <span id="email-alert"></span>        <input id="mail-subject" type="text" name="subject" placeholder="Your Subject">        <span id="subject-alert"></span>        <textarea id="mail-message" name="message" placeholder="Your Message"></textarea>        <span id="message-alert"></span>        <input type="submit" value="Send">        <input type="reset" value="Clear">        <span class="contact__form--alert-success" id="success-alert"></span>    </form></div>JS:function doRegister() {  let checks = {    name : document.getElementById("mail-name"),    email : document.getElementById("mail-email"),    subject : document.getElementById("mail-subject"),    message : document.getElementById("mail-message")  },
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

您的 PHP 脚本不会发送邮件,因为send()未调用该函数,因此在验证后,您应该添加如下内容:


if(empty($error)){

    if(!$mail->send()){

        $error[] = 'There was an error sending the mail. Please try again!';

    }

}


echo json_encode([

"status" => count($error)==0 ? 1 : 0,

"error" => $error

]);

这样您就可以发送邮件,如果出现问题(send()返回false),则会将错误添加到您的错误数组中。


查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号