2017-05-05 2 views
0

사용자가 연락하기 위해 이름, 전자 메일, 제목 및 메시지를 작성하는 연락처 양식을 작성하려고합니다. 이메일 계정에 이메일을 보내고 싶지만 테스트 할 때마다 작동하지 않습니다. 나는 그것이 옳았다는 것을 긍정적으로 보았지만 그렇지 않다. 어떤 도움을 주시겠습니까?메시지가 연락처 양식으로 전송되지 않음

<?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 = "[email protected]"; 
    $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; 

} ?>

+0

당신이 언급하지 않는 일부 헤더 부분을 놓치고있다 ** 헤더에서 이메일 ID ** 참조 (https://www.w3schools.com/php/func/mail_mail.asp) –

+0

그것은 귀하의 서버 설정이 될 수 있습니다. 그것도 확인하십시오. – MACMAN

답변

0

당신이 form action 및 MAILTO을 자사의 HTML을 이후로 그가 포함되어야한다고 생각 누락 보인다.

0

귀하의 유효성이 나에게 좋을 것 같습니다. 여기에 몇 가지 답을 찾는 시도, 이메일 전송의 관점에서 : 그 질문을 해결하지 않으면 무엇을 당신이 사용하고있는 메일러 같은

PHP mail form doesn't complete sending e-mail

는 좀 더 정보를 제공하십시오. 희망이 도움이 :)

관련 문제