简体   繁体   English

邮件未以联系方式发送

[英]Message not sending in contact form

I'm trying to create a contact form where the user will fill out their name, email, subject and message in order to contact me. 我正在尝试创建一个联系表,用户将在其中填写其姓名,电子邮件,主题和消息以便与我联系。 It is suppose to send an email to my email account but every time i test it, it does not work. 假定将电子邮件发送到我的电子邮件帐户,但是每次测试时,它都无法正常工作。 I was positive it was correct, but i guess it is not. 我很肯定这是正确的,但我想那是不正确的。 Any help please? 有什么帮助吗?

<?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;

} ?> }?>

似乎您缺少form action和mailto,因为它的HTML,我认为应该包括在内。

your validation looks good to me. 您的验证对我来说看起来不错。 In terms of sending email, try finding some answers here: 在发送电子邮件方面,请尝试在此处找到一些答案:

PHP mail form doesn't complete sending e-mail PHP邮件表单未完成发送电子邮件

If that doesn't address your question, please provide some more info, like what mailer you're using. 如果那不能解决您的问题,请提供更多信息,例如您正在使用的邮件。 Hope this helps :) 希望这可以帮助 :)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM