2014-09-12 2 views
-2

Мой код:Я не могу отправить почту в PHP

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


       //veryfing the name 
       if(empty($_POST['name'])){ ?> 
        <div class="alert alert-danger alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>PLease enter your name .</div> 
       <?php} 
       else{ 
        $name = htmlentities($_POST['name']); 
       } 


       //veryfing the email 
       if(empty($_POST['email'])) { ?> 
        <div class="alert alert-danger alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>PLease enter your email .</div> 
       <?php} 
       else if(filter_var($_POST['email'] , FILTER_VALIDATE_EMAIL === false)){ ?> 
        <div class="alert alert-danger alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>PLease enter a valid email .</div> 
       <?php } 
       else{ 
        $email ="<". htmlentities($_POST['email']).">"; 
       } 



       if(empty($_POST['message'])){?> 
        <div class="alert alert-danger alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>PLease enter some message .</div> 
       <?php} 
       else{ 
        $message = htmlentities($_POST['message']); 
       } 
       if(empty($_POST['name']) or empty($_POST['email']) or empty($_POST['message'])){?> 
        <div class="alert alert-danger alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>Something went wrong ! .</div> 
       <?php} 
       else{ 
        $headers = 'From: {$email}' . "\r\n" . 
         'Reply-To: {$email}' . "\r\n" . 
         'X-Mailer: PHP/' . phpversion(); 
        $send_mail = mail("[email protected]" , "An email from Omarmannan.net" , $message , $headers); 

       } 
       if(!$send_mail){?> 
        <div class="alert alert-danger alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>Something went wrong ! .</div> 
       <?php } 
       else{ 
        echo '<div class="alert alert-success">Email successfully sent. Thank you for your message.</div>'; 
       } 
      }?> 

Но я не могу отправить почту. Я работаю со своим личным сайтом. На моей странице контакта я не могу отправить письмо с этим кодом. После нажатия кнопки «Отправить» отображается пустая страница.

+0

Вы работаете на локальном хосте? – 2014-09-12 09:17:49

+1

Пустая страница может быть вызвана тем, что ошибка вызывается, но отчет об ошибках отключен. – lxg

+1

У вас есть [error_reporting] (http://de2.php.net/manual/en/function.error-reporting.php)? – AbcAeffchen

ответ

1

Функция php mail() ведет себя неожиданно в какой-то момент.

В моем опыте - и другие - функция mail() не является особенно предсказуемой или полезной.

В частности, функция mail() ведет себя совершенно по-другому между серверами Linux и Windows>. В linux используется sendmail, но в Windows он использует SMTP.

Для того, чтобы функция mail() работала на всех php.ini, необходимо настроить> правильно, указав местоположение sendmail или SMTP-сервера.

Проблема с mail() заключается в том, что она «пытается» упростить ситуацию до такой степени, что она на самом деле делает вещи более сложными из-за плохого дизайна интерфейса. Разработчики Swift Mailer приложили много усилий, чтобы сделать работу с почтовым транспортом с достаточной степенью согласованности.

Я предлагаю вам использовать библиотеку SwiftMailer Для отправки почты, это очень сильно.

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