2015-03-21 4 views
0

У меня есть сайт, а внизу у меня есть раздел «Свяжитесь с нами». Он отправляет электронное письмо, но когда я проверяю его в своем письме, он появляется в спаме. Он думает, что у него пустое сообщение из пустого письма. Вот HTML:Что с этим сценарием?

Apply: 
         <form action ="contact2.php" method "post"> 
        <div class="row control-group"> 
         <div class="form-group col-xs-12 floating-label-form-group controls"> 
          <label>Name</label> 
          <input type="text" class="form-control"name ="cf_name" placeholder="Name" id="name" required data-validation-required-message="Please enter your name."> 
          <p class="help-block text-danger"></p> 
         </div> 
        </div> 
        <div class="row control-group"> 
         <div class="form-group col-xs-12 floating-label-form-group controls"> 
          <label>Email Address</label> 
          <input type="email" class="form-control"name = 'cf_email' placeholder="Email Addres" id="email" required data-validation-required-message="Please enter your email address."> 
          <p class="help-block text-danger"></p> 
         </div> 
        </div> 
        <div class="row control-group"> 
         <div class="form-group col-xs-12 floating-label-form-group controls"> 
          <label>Message</label> 
          <textarea rows="5" class="form-control" name = 'cf_message' placeholder="Why should we pick you?" id="message" required data-validation-required-message="Please enter a message."></textarea> 
          <p class="help-block text-danger"></p> 
         </div> 
        </div> 
        <br> 
        <div id="success"></div> 
        <div class="row"> 
         <div class="form-group col-xs-12"> 
          <button type="submit" class="btn btn-success btn-lg">Send</button> 
         </div> 
        </div> 
       </form> 

А вот PHP:

<?php 
$field_name = $_POST['cf_name']; 
$field_email = $_POST['cf_email']; 
$field_message = $_POST['cf_message']; 

$mail_to = '[email protected]'; 
$subject = 'Message from a site visitor '.$field_name; 

$body_message = 'From: '.$field_name."\n"; 
$body_message .= 'E-mail: '.$field_email."\n"; 
$body_message .= 'Message: '.$field_message; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

if ($mail_status) { ?> 
<script language="javascript" type="text/javascript"> 
    alert('Thank you for the message. We will contact you shortly.'); 
    window.location = 'contact_page.html'; 
</script> 
<?php 
} 
else { ?> 
<script language="javascript" type="text/javascript"> 
    alert('Message failed. Please, send an email to [email protected] help.com'); 
    window.location = 'contact_page.html'; 
</script> 
<?php 
} 
?> 

ответ

0

Проблема проста, что функция PHP-Mail не использует хорошо настроенный сервер SMTP.

В настоящее время почтовые клиенты и серверы выполняют массивные проверки на сервере отправки электронной почты, например обратном DNS-поиске, Graylisting и whatevs. Все эти тесты потерпят неудачу с помощью функции php mail(). Если вы используете динамический ip, это еще хуже.

Используйте PHPMailer-Class и настройте его для использования smtp-auth вместе с хорошо настроенным выделенным SMTP-сервером (либо локальным, либо удаленным), и ваши проблемы исчезли.

https://github.com/PHPMailer/PHPMailer

+0

Большое вам спасибо! Я проверю это немного. –

Смежные вопросы