2017-01-02 14 views
1

나는 html 파일에 양식이 있으며 사용자가 양식을 작성하여 제출할 때 내 Gmail 계정으로 이메일을 보내려고합니다. 내 웹 사이트는 로컬 호스트가 아닌 서버에서 실행됩니다. 내 코드는 오류가 없지만 이메일을받지 못합니다. 이유는 무엇입니까? 아무도 샘플 코드를 제공하거나 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까? 사전에 .. 덕분에 ... 은 여기 내 코드서버에서 이메일 보내기 PHP

<form id="main-contact-form" name="contact-form" method="post" action="sendemail.php"> 
    <div class="row wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms"> 
     <div class="col-sm-6"> 
     <div class="form-group"> 
      <input type="text" name="name" class="form-control" placeholder="Name" required="required"> 
     </div> 
     </div> 
     <div class="col-sm-6"> 
     <div class="form-group"> 
      <input type="email" name="email" class="form-control" placeholder="Email Address" required="required"> 
     </div> 
     </div> 
    </div> 
    <div class="form-group"> 
     <input type="text" name="subject" class="form-control" placeholder="Subject" required="required"> 
    </div> 
    <div class="form-group"> 
     <textarea name="message" id="message" class="form-control" rows="4" placeholder="Enter your message" required="required"></textarea> 
    </div>       
    <div class="form-group"> 
     <button type="submit" class="btn-submit">Send Now</button> 
    </div> 
</form> 

입니다 그리고 sendemail.php는 documentation에 따르면

<?php 
$name = @trim(stripslashes($_POST['name'])); 
$from  = @trim(stripslashes($_POST['email'])); 
$subject = @trim(stripslashes($_POST['subject'])); 
$message = @trim(stripslashes($_POST['message'])); 
$to   = '[email protected]'; 

$headers = array(); 
$headers[] = "MIME-Version: 1.0"; 
$headers[] = "Content-type: text/plain; charset=iso-8859-1"; 
$headers[] = "From: {$name} <{$from}>"; 
$headers[] = "Reply-To: <{$from}>"; 
$headers[] = "Subject: {$subject}"; 
$headers[] = "X-Mailer: PHP/".phpversion(); 

mail($to, $subject, $message, $headers); 

die; 
+0

무엇인가'위해서 var_dump (($) $ 헤더, $ 제목, $ 메시지에 메일)의 출력,' –

+0

합니까 메일을 사용할 수 있습니까? 시도해보십시오. 'mail ('[email protected] ','test ','test '); - [Brucie Alpha] (http://stackoverflow.com/users/5380431/brucie-alpha) –

+0

메일 서버에 연결되어 있습니까? 현재 사용하고있는 호스트는 무엇입니까? – Ruby

답변

1

이다 : 분리해야

여러 추가 헤더 과 CRLF (\ r \ n).

그래서 당신의 PHP 파일이 있어야합니다 같은 :

<?php 
$name = @trim(stripslashes($_POST['name'])); 
$from = @trim(stripslashes($_POST['email'])); 
$subject = @trim(stripslashes($_POST['subject'])); 
$message = @trim(stripslashes($_POST['message'])); 
$to = '[email protected]'; 

$headers = "MIME-Version: 1.0" . "\r\n" . 
     "Content-type: text/plain; charset=iso-8859-1" . "\r\n" . 
     "From: {$name} <{$from}>" . "\r\n" . 
     "Reply-To: <{$from}>" . "\r\n" . 
     "Subject: {$subject}" . "\r\n" . 
     "X-Mailer: PHP/" . phpversion(); 

mail($to, $subject, $message, $headers); 

die; 
?>