首页 > 解决方案 > JS表单提交无论是否发送邮件都不会发送成功消息

问题描述

大家好,我正在尝试在不重新加载页面、表单验证等的情况下发送邮件,似乎一切正常,但我无法确定是否正在发送邮件,因为没有打印成功消息

这是我的 html、js 和 php 代码

html

<form name="ContactForm" method="post" action="">   
<div class="message_box" style="margin:10px 0px;"></div>
      <input type="text" name="name" id="name" placeholder="Name:" />
      <input type="email" name="email" id="email" placeholder="Email:" />
      <input type="tel" name="phone" id="phone" placeholder="Phone:" />
      <textarea name="message" id="message" placeholder="Message:" /></textarea>
 <input type="submit" name="send" class="btn btn-default" value="Send message">
</form>

js

$(document).ready(function() {
   var delay = 2000;
       $('.btn-default').click(function(e){
       e.preventDefault();
   var name = $('#name').val();
       if(name == ''){
       $('.message_box').html(
       '<span style="color:red;">Enter Your Name!</span>'
       );
       $('#name').focus();
       return false;
   }        
   var email = $('#email').val();
       if(email == ''){
       $('.message_box').html(
       '<span style="color:red;">Enter Email Address!</span>'
       );
       $('#email').focus();
       return false;
   }
   if( $("#email").val()!='' ){
       if( !isValidEmailAddress( $("#email").val() ) ){
           $('.message_box').html(
           '<span style="color:red;">Provided email address is incorrect!</span>'
           );
           $('#email').focus();
           return false;
       }
   }
    var phone = $('#phone').val();
       if(phone == ''){
       $('.message_box').html(
       '<span style="color:red;">Enter Your Phone With Country Code!</span>'
       );
       $('#phone').focus();
       return false;
   }                    
   var message = $('#message').val();
       if(message == ''){
       $('.message_box').html(
       '<span style="color:red;">Enter Your Message Here!</span>'
       );
       $('#message').focus();
          return false;
   }                        
   $.ajax
   ({
       type: "POST",
           url: "quickmail.php",
               data: "name="+name+"&email="+email+"&phone="+phone+"&message="+message,
               beforeSend: function() {
               $('.message_box').html(
               '<img src="images/loading.gif" width="25" height="25"/>'
           );
           },        
           success: function(data)
           {
           setTimeout(function() {
               $('.message_box').html(data);
               }, delay);
           }
       });
    });         
});

最后是php代码

if(isset($_POST['name']) !="" && isset($_POST['email']) !=""){
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

$to = "email@yourdomain.com";
$subject = "New Query";
$message = "<p>New email is received from $name.</p>
<p>$message</p>";


$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: <".$email.">" . "\r\n";
$sent = mail($to,$subject,$message,$headers);
if($sent){
    echo "<span style='color:green; font-weight:bold;'>
    Thank you for contacting us, we will get back to you shortly.
    </span>";
    echo '<script type="text/javascript">alert("Thanks $name, we have received your message.")</script>';
}else{
    echo "<span style='color:red; font-weight:bold;'>
    Sorry! Your form submission is failed.
    </span>";
    }
}

真的很感激你们中的一位专家可以帮助我解决它。

提前致谢

更新

正如建议的那样,我尝试了 json 但仍然没有打印任何内容?

header('Content-Type: application/json');   
$json = json_encode($data);
if(isset($_POST['name']) !="" && isset($_POST['email']) !=""){
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

$to = "email@yourdomain.com";
$subject = "New Query";
$message = "<p>New email is received from $name.</p>
<p>$message</p>";

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: <".$email.">" . "\r\n";
$sent = mail($to,$subject,$message,$headers);
if($sent){
    $data = "<span style='color:green; font-weight:bold;'>
    Thank you for contacting us, we will get back to you shortly.
    </span>";
}else{
    $data = "<span style='color:red; font-weight:bold;'>
    Sorry! Your form submission is failed.
    </span>";
    }
}
echo $json;

标签: phpjqueryajaxformsemail

解决方案


推荐阅读