2013-08-21 3 views
0

이메일에 지정된 이메일 주소로 보내야하는 PHP 스크립트에 제출하는 것과 같은 매우 간단한 연락처 양식이 있습니다. 하지만 내받은 편지함에는 아무 것도 나타나지 않습니다. 나는 아마 그것이 단지 늦어진다라고 생각했다. 그러나 아무것도 보이지 않고있는 약 3 시간 지금 있었다!PHP 이메일 스크립트 | 받은 편지함에 이메일이 나타나지 않습니다.

문의 양식

<form name="contactform" id="contactForm" method="post" action="assets/send_form_email.php"> 
       <fieldset> 
       <label for="name">Your Name</label> 
       <input type="text" name="name" id="name" class="text ui-widget-content ui-corner-all" /> 
       <label for="email">Email</label> 
       <input type="text" name="email" id="email" class="text ui-widget-content ui-corner-all" /> 
       <label for="question">Question/Comment</label> 
       <textarea name="question" id="question" class="text ui-widget-content ui-corner-all" style="margin: 0px 0px 10px; width: 303px; height: 54px;"></textarea> 
       </fieldset> 
      </form> 

* PHP 스크립트 *

<? php 
if (isset($_POST['email'])) { 
    // EDIT THE 2 LINES BELOW AS REQUIRED 
    $email_to = ""; 
    $email_subject = "New Contact Form | Website"; 
    echo $_POST['email']; 
    echo $_POST['name']; 
    echo $_POST['question']; 

    function died($error) { 
     // your error code can go here 
     echo "We are very sorry, but there were error(s) found with the form you submitted. "; 
     echo "These errors appear below.<br /><br />"; 
     echo $error."<br /><br />"; 
     echo "Please go back and fix these errors.<br /><br />"; 
     die(); 
    } 
    // validation expected data exists 
    if (!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['question'])) { 
     died('We are sorry, but there appears to be a problem with the form you submitted.'); 
    } 
    $name = $_POST['name']; // required 
    $email_from = $_POST['email']; // required 
    $question = $_POST['question']; 
    $error_message = ""; 
    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
    if (!preg_match($email_exp, $email_from)) { 
     $error_message. = 'The Email Address you entered does not appear to be valid.<br />'; 
    } 
    $string_exp = "/^[A-Za-z .'-]+$/"; 
    if (!preg_match($string_exp, $name)) { 
     $error_message. = 'The Name you entered does not appear to be valid.<br />'; 
    } 
    if (strlen($question) < 5) { 
     $error_message. = 'The Comments you entered do not appear to be valid.<br />'; 
    } 
    if (strlen($error_message) > 0) { 
     died($error_message); 
    } 
    $email_message = "Form details below.\n\n"; 

    function clean_string($string) { 
     $bad = array("content-type", "bcc:", "to:", "cc:", "href"); 
     return str_replace($bad, "", $string); 
    } 
    $email_message. = "Name: ".clean_string($name)."\n"; 
    $email_message. = "Email: ".clean_string($email_from)."\n"; 
    $email_message. = "Question/Comment: ".clean_string($question)."\n"; 
    // create email headers 
    $headers = 'From: '.$email_from."\r\n".'Reply-To: '.$email_from."\r\n".'X-Mailer: PHP/'.phpversion();@mail($email_to, $email_subject, $email_message, $headers); ?> 
    <!-- 
    include your own success html here --> 
    Thank you 
    for contacting us.We will be in touch with you very soon. <? php 
} ?> 

정말 그것을 해결하는 코드에 어떤 문제가 있는지 알아낼 수 없습니다. 누군가 제발 도와주세요.

+0

"스팸"폴더를 선택 했습니까? –

+1

mail() 함수는 어디에 있습니까? –

+0

서버가 전자 메일을 보내도록 설정되어 있습니까? XAMPP를 사용하는 경우이 기능을 설정했는지 확인하십시오! – djthoms

답변

0

또한 mail() 기능이 작동하고 실패하지 않았는지 확인하십시오. 다음과 같음 :

if (mail($email_to, $email_subject, $email_message, $headers)) 
{ 
    echo 'Sent'; 
} 
+0

좋아, 코드를 내 코드에 넣고 'echo'라고 말한 else 문을 추가했다. 잘못된 것이있다. ';'그리고 나는 else 쪽을 받았다. 오류를 에코하기 위해 무언가를 추가 할 수 있습니까? – user2680630

+0

오류 메시지를 무시하지 않으려면 @mail을 @mail에서 제거하십시오 –

+0

@user2680630 로그를 먼저 확인하십시오. –

관련 문제