2016-08-28 3 views
0

Я пытаюсь настроить страницу контакта со мной, и в настоящее время у меня все работает до момента, когда результат сообщения отправлен правильно. Однако электронная почта никогда не появляется для меня в моем ящике входящих сообщений.PHP mail() не получает адрес электронной почты

<?php 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $subject = $_POST['subject']; 
    $message = $_POST['message']; 
    $antispam = $_POST['antispam']; 
    $to = '[email protected]'; 
    $from = 'From : ' . $email; 

    $body = "From: $name\n E-Mail: $email\n Message:\n $message"; 

    if ($antispam == '10' || 'Ten' || 'ten') { 
     $human = true; 
    } 

    if($_POST['submit'] && $name != "" && $email != "" && $message != "" && $subject != "") { 
     if ($human == true) { 
      if (mail($to, $subject, $body, $from)) { 
       $result = "Your message was sent successfully!"; 
      } else { 
       $result = "Something went wrong! Try sending your message again"; 
      } 
     } else { 
      $result = "You answered the anti-spam answer incorrectly. Please try again."; 
     } 
    } else { 
     $result = "You did not fill out a required field. Please try again."; 
    } 

?> 

<?php echo $result; ?> 

Я прочитал, что Gmail отдельно имеет проблемы с PHP почты(), является то, что, возможно, причина?

+3

'если (антиспам 'right there, is undefined constant error и что условие не работает по другой причине, недействительно. Мы также не знаем, как выглядит форма. –

+0

@ Fred-ii- Я не совсем понимаю. Когда я ввожу правильное значение на первый экран и представить, что я получаю '$ result =" Ваше сообщение отправлено успешно! ";' который говорит мне, что он работает? Но я все равно никогда не получаю свой адрес электронной почты. – FirstOrderKylo

+2

Смотрите сами. http://php.net/manual/en/function.error-reporting.php, чтобы ловить и отображать, и вы поймете, что я имею в виду. Весь этот бит 'if (antispam == '10' || 'Ten' || 'ten') { $ human = true; } 'здесь вообще не работает; 2 основных ошибки. проверьте свой спам. –

ответ

1

Я нашел ответ и честно чувствую себя глупо, не признавая его.

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

  if ($human == true) { 
      if (mail($to, $subject, $body, $from)) { 
       $result = "Your message was sent successfully!"; 
      } else { 
       $result = "Something went wrong! Try sending your message again"; 
      } 

и вот исправленную версию

  if ($human == true) { 
      mail($to, $subject, $body, $from); 
      if (mail($to, $subject, $body, $from)) { 
       $result = "Your message was sent successfully!"; 
      } else { 
       $result = "Something went wrong! Try sending your message again"; 
      } 

быть коротким, я добавил mail($to, $subject, $body, $from); после проверки, чтобы увидеть if $human == true

+0

Медленное устранение неполадок окупилось, я вижу ;-) Рад это слышать, * cheers * –

+0

Отправляя 'mail()' дважды просто отправляет почту дважды. Указывает SMIL-graylisting, кстати. И ваш «фиксированный» код просто приведет вас к запрету RBL. – mario

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