消息未以联系表格发送

时间:2017-05-05 02:41:58

标签: php html

我正在尝试创建一个联系表单,用户将填写他们的姓名,电子邮件,主题和消息,以便与我联系。我想将电子邮件发送到我的电子邮件帐户,但每次测试时都不起作用。我很肯定它是正确的,但我想它不是。有什么帮助吗?

<?php

//Get user input
$name = $_POST["name"];
$email = $_POST["email"];
$subject = $_POST["subject"]
$message = $_POST["message"];

//error messages
$missingName = '<p><strong>Please enter your name!</strong></p>'; 
$missingEmail = '<p><strong>Please enter your email address!</strong></p>'; 
$invalidEmail = '<p><strong>Please enter a valid email address!</strong></p>';
$missingSubject = '<p><strong>Please enter a Subject!</strong></p>';
$missingMessage = '<p><strong>Please enter a message!</strong></p>'; 

//if the user has submitted the form
if($_POST["submit"]){
   //check for errors
     if(!$name){
       $errors .= $missingName;  
    }else{
       $name = filter_var($name,FILTER_SANITIZE_STRING);   
    }
     if(!$email){
       $errors .= $missingEmail;   
    }else{
      $email = filter_var($email, FILTER_SANITIZE_EMAIL);
      if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
          $errors .=$invalidEmail;   
      }
  }

    if(!$subject){
       $errors .= $missingSubject;
   }else{
       $message = filter_var($subject, FILTER_SANITIZE_STRING);   
   }

   if(!$message){
      $errors .= $missingMessage;
   }else{
       $message = filter_var($message, FILTER_SANITIZE_STRING);   
   }

    //if there are any errors
    if($errors){
       //print error message
       $resultMessage = '<div class="alert alert-danger">' . $errors .'</div>';   
   }else{
     $to = "fanonxr@gmail.com";
     $subject = "Contact";
     $message = "
     <p>Name: $name.</p>
     <p>Email: $email.</p>
     <p>Subject: $subject.</p>
     <p>Message:</p>
     <p><strong>$message</strong></p>"; 
     $headers = "Content-type: text/html";
     if(mail($to, $subject, $message, $headers)){
        $resultMessage = '<div class="alert alert-success">Thanks for your message. We will get back to you as soon as possible!</div>';  
        header("Location: index.php");
      }else{
          $resultMessage = '<div class="alert alert-warning">Unable to send Email. Please try again later!</div>';  
     }
 }
 echo $resultMessage;

}     ?&GT;

1 个答案:

答案 0 :(得分:0)

您的验证对我来说很好。 在发送电子邮件方面,请尝试在此处找到答案:

PHP mail form doesn't complete sending e-mail

如果这不能解决您的问题,请提供更多信息,例如您正在使用的邮件。希望这会有所帮助:)