2013-02-06 2 views
0

아래 양식을 사용하여 아래 이메일 주소로 PHP 스크립트를 보내고 있습니다. XAMP를 사용하여 테스트했지만 이메일이 전송되지 않았습니다. 로컬 호스트에서 테스트되었거나 내 코드가있는 것입니까? 아래를 보시고 저에게 알려주십시오. PHP에 대해 아주 새롭다는 것을 알 수 있습니다.이메일 문의 양식을위한 PHP 스크립트

감사합니다.

조. 메일 서버가 로컬 컴퓨터에 설치되어 있지 않기 때문에

<?php 
    if(isset($_POST['email'])) { 

    // EDIT THE 2 LINES BELOW AS REQUIRED 
    $email_to = "[email protected]"; 
    $email_subject = "eMail enquiry"; 


    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['first_name']) || 
     !isset($_POST['email']) || 
     !isset($_POST['telephone']) || 
     !isset($_POST['comments'])) { 
     died('We are sorry, but there appears to be a problem with the form you submitted.');  
    } 

    $first_name = $_POST['first_name']; // required 
    $email_from = $_POST['email']; // required 
    $telephone = $_POST['telephone']; // not required 
    $comments = $_POST['comments']; // required 

    $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,$first_name)) { 
      $error_message .= 'The First Name you entered does not appear to be valid.<br />'; 
    } 
     if(strlen($comments) < 2) { 
      $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 .= "First Name: ".clean_string($first_name)."\n"; 
     $email_message .= "Email: ".clean_string($email_from)."\n"; 
     $email_message .= "Telephone: ".clean_string($telephone)."\n"; 
     $email_message .= "Comments: ".clean_string($comments)."\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 shortly. 

    <?php 
    } 
    ?> 

답변

1

예, 아마입니다.

전자 메일 서버가 설치된 Linux 웹 서버 (Windows를 사용하는 것으로 가정)에 업로드 해보십시오.

0

PHPMailer를 사용해 볼 수도 있지만 smtp 서버가 필요합니다. PHPMailer at sourceforge

+0

그건 도움이되지 않습니다. PHPMailer는'mail()'함수에 의존합니다. 어떤 것이 작동하지 않습니다. –

+0

@ EM-Creations 아니요. "sendmail, PHP mail(), QMail, ** 또는 SMTP **를 통해 이메일을 보냅니다." – idmean

+0

PHPMailer를 설정하는 방법에 따라 문서를 살펴보십시오. 그럼에도 불구하고 그는 IMAP 또는 SMTP를 가질 가능성이 적습니다. –

0

mail() 전에 @ 기호를 제거하고 아파치 오류 로그에서 실제 메일러 문제를 확인하십시오.

참고 : 문제는 우편물 구성에 있어야합니다. php.ini에서 smtp 세부 사항을 정의해야합니다.

0

check phpinfo(); smtp에 대한 항목이 있다면? 메일을 보내다? smtp 서버가 설치되어 있으면 메일 ('[email protected] ','제목 ','bodyMessage ')을 호출하고 메일이 있는지 확인하십시오.