2014-12-13 4 views
0

PHP 양식 mail()을 사용하여 HTML 양식의 데이터를 전자 메일 주소로 보내려는 '연락하기'양식을 작성하려고합니다.메일을 통해 수신 된 이메일을 수신하지 못합니다.

xampp을 사용하고 localhost에서 내 코드를 테스트하고 있습니다. 나는 테스트 메일 서버 도구를 설치하고 그것의 php.ini 파일

[mail function] 
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury 

; SMTP = smtp.secureserver.net 

; smtp_port = 25 

; For Win32 only. 

; http://php.net/sendmail-from 

;sendmail_from = [email protected] 

HTML 코드

<form action="upload.php" method="post" style="height:100%"> 

       <input name="articleTitle" value="Title" maxlength="50" 
       id="articleTitle"> 

       <textarea name="article-body"> 
        Compose your article... 
       </textarea> 

      <script> 
       CKEDITOR.inline('article-body'); 
      </script> 


       <input name="senderName" type="text" value="Name" maxlength="50" 
       id="name" class="textBox"> 

       <input name="senderEmail" value="Email address" maxlength="50" 
       id="email" class="textBox"> 

       <input name="abtyou" value="About Yourself" maxlength="150" 
       id="abtyou" class="textBox"> 

       <input type="submit" name="submit" class="button"> 

      </form> 

PHP 코드

을의 25

구성 포트에서 실행

<?php $thankYou=""; if(isset($_POST["submit"])) { $recipient="[email protected]"; $subject="New Guest Post"; $sender=$_POST["senderName"]; $senderEmail=$_POST["senderEmail"]; $senderAbout=$_POST["abtyou"]; $message=$_POST["article-body"]; $title=$_POST["articleTitle"]; $mailBody="Name: $sender\nEmail: $senderEmail\nAbout Sender: $senderAbout\nTitle: $title\n\n$message"; mail($recipient, $subject, $mailBody, "From: $sender <$senderEmail>"); $thankYou="Thank you! Your post has been submitted."; } ?> 

오류는보고되지 않았지만 언급 된 전자 메일 주소의받은 편지함에있는 전자 메일을 볼 수 없습니다. 오류를 발견 할 수 있습니까? 처음으로 메일 서버를 사용하고 구성에서 오류가 발생했을 수 있으므로 구성 문제라고 생각합니다. 감사합니다.

+1

세미콜론은 주석 문자입니다. 필요한 설정 앞에 세미콜론을 제거하십시오. –

+0

또한 메일 서버 테스트 도구를 설치 한 경우 (a) SMTP 서버가 localhost이고 (b) 메일이 실제로 전송되지 않을 것으로 기대됩니다. 그것이 * Test * 메일 서버 도구 인 이유입니다. –

+0

@MattGibson 고맙습니다. 서버를 localhost로 변경하고 서버와 포트에서 세미콜론을 제거했습니다. 로컬 서버에 메일을 보내려면 $ recipient에 어떤 이메일 주소를 사용해야합니까? – zaain

답변

-1

스팸 함을 먼저 확인하고 스팸 및 가짜 전자 메일로부터 전자 메일을 차단하는 주요 메일 서비스는 테스트를 위해이 유형의 전자 메일을 거부합니다. Google Yahoo!와 같은 유효한 메일 서버 계정을 설정해야한다고 생각합니다.

관련 문제