Bootstrap 发送邮件显示引导警报 AJAX

nuypyhwy  于 2022-12-08  发布在  Bootstrap
关注(0)|答案(1)|浏览(142)

我想这样做,当我们发送电子邮件通过联系人的形式,它发送的电子邮件,并有一个引导警报出来的电子邮件发送.在那里,你可以看到我所有的代码html:https://jsfiddle.net/6rfeas35/这是我的php代码
在index.php底部 AJAX JQuery

<script>
       AOS.init();
       $(document).ready(function(){
           $('#contactForm').submit(function(e){
               e.preventDefault();
               const $this = $(this);

               // disable submit button
               const $button = $(this).find('button[type="submit"]').text('Submit...').attr('disabled', 'disabled');

               // send message
               $.ajax({
                   type: 'POST',
                   url: 'contact.php',
                   data: $this.serialize(),
                   success: function(data){
                       alert("E-mail envoyé avec succès ! Merci pour votre message ! Une réponse vous sera apportée dans les plus brefs délais.");
                        $this[0].reset(); // reset form
                   },
                   error: function(jqXHR, textStatus, errorThrown){
                       alert('An error occurred. Please try again')
                   },
                   complete: function(jqXHR, textStatus){
                       // enable submit button
                       $button.text('Submit').removeAttr('disabled');
                   }
               })
           })
       })
   </script>

contact.php

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';

if(isset($_POST["send"])){

    $body = $_POST['message'];
    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    

    $mail = new PHPMailer(true);
    
    $mail->isSMTP();
    $mail->Host = 'smtp.gmail.com';
    $mail->SMTPAuth = true;
    $mail->Username = '73.auto.73@gmail.com';
    $mail->Password = 'rlylecrtuvztqosz';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
    $mail->Port = 465;      
    $mail->setFrom('73.auto.73@gmail.com');

    $mail->addAddress($_POST["email"]);

    $mail->isHTML(true);

    $mail->Subject = 'Projet web';
    $mail->Body = "Message:" . $body . "<br>Phone number: " . $phone . "<br>Name: " . $name . "<br>Mail: " . $email;

    $mail->send();

    echo "success";
    
}

引导警报出去,但电子邮件没有发送,我不明白为什么.如果我删除 AJAX jquery代码,电子邮件发送,但它打开了一个空白页面,它说成功,我怎么能这样做,有发送电子邮件和引导警报?

6qftjkof

6qftjkof1#

由于您要检查contact.php文件中是否存在isset($_POST["send"]),因此必须确保在index.php文件的表单中存在name="send"的输入。

  • name="send"添加到表单中的隐藏字段,并将其从提交按钮中删除。

index.php
https://jsfiddle.net/r1jwn8kb/
contact.php

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';

if(isset($_POST["send"])){

    $body = $_POST['message'];
    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    

    $mail = new PHPMailer(true);
    
    $mail->isSMTP();
    $mail->Host = 'smtp.gmail.com';
    $mail->SMTPAuth = true;
    $mail->Username = '73.auto.73@gmail.com';
    $mail->Password = 'rlylecrtuvztqosz';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
    $mail->Port = 465;      
    $mail->setFrom('73.auto.73@gmail.com');

    $mail->addAddress($_POST["email"]);

    $mail->isHTML(true);

    $mail->Subject = 'Projet web';
    $mail->Body = "Message:" . $body . "<br>Phone number: " . $phone . "<br>Name: " . $name . "<br>Mail: " . $email;

    $mail->send();

    echo "success";
    die;
}

相关问题