2017-01-02 2 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 является

<?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

По documentation:

Несколько дополнительных заголовков должны быть разделены с 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; 
?> 
Смежные вопросы