2015-12-04 5 views
-1

Он всегда перенаправляется на страницу успеха, но я никогда не получаю письмо. Я пробовал переписывать как PHP, так и HTML, но он ничего не исправит, и я никогда не смогу найти страницы google о том, как исправить эту ситуацию (все кажется прекрасным, и у большинства людей возникают проблемы с получением электронной почты, а не страница переадресации). Я не очень хорошо знаком с PHP, но не могу найти никаких ошибок. Это страница контактов для бизнес-сайта.Почему моя PHP-форма не работает?

PHP:

<?php 
$name = $_POST['name']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 
$formcontent="From: $name \n Message: $message"; 
$to = "[email protected]"; 
$subject = "Contact From $name"; 
$mailheader = "From: $email \n Phone: $phone \n Message $message \r\n"; 
mail($recipient, $subject, $mailheader, $formcontent); 
    if (mail($to, $subject, $body)) 
    header('Location: success.html'); 
else 
    print "Something went wrong" ; 
?> 

HTML:

\t \t <div id="copy"> 
 
    <form action="mail.php" method="POST" name="contact"> 
 
\t <div class="name">Name</div> 
 
\t <input required type="text" name="name" style="border: solid 1px #081B26; width: 200px;" value=""> 
 
\t <div class="email">Email</div> 
 
\t <input required type="email" name="email" style="border: solid 1px #081B26; width: 200px;" value=""> 
 
\t <div class="tel">Phone</div> 
 
\t <input type="tel" name="phone" style="border: solid 1px #081B26; width: 200px;" value=""> 
 
\t <div class="message">Message</div> 
 
\t <textarea required name="message" rows="6" cols="25" style="border: solid 1px #081B26; width: 200px;" value=""></textarea> 
 
    <br /> 
 
\t <input type="submit" value="Send" class="send"> 
 
\t <input type="reset" value="Clear" class="clear"> 
 
    </form> 
 
</div>

+0

использовать библиотеку уже для отправки сообщений электронной почты. Взгляните на быструю почтовую рассылку. – HamZa

+0

Вы дважды вызываете 'mail()' и каждый раз один из параметров не определен. Вам нужно использовать отладчик и желательно хорошую среду IDE. –

ответ

2

Если вы хотите отправить почту с PHP вы никогда не будете счастливы с этим способом. Я настоятельно рекомендую вам использовать что-то вроде PHPMailer (Скачать и инструкции здесь: https://github.com/PHPMailer/PHPMailer). Если у вас есть действующая и правильно работающая электронная почта, используйте эту настройку и настройте PHP Mailer для входа с этим адресом и отправки сообщений через SMTP. Если вам нужен пример, я могу предоставить его вам, но это довольно предисловие вперед и очень хорошо объяснено на данной ссылке.

Вы не получили E-Mail, потому что (скорее всего) ваш E-Mail НЕ пропускал фильтры спама по адресу вашего адресата электронной почты. Существует довольно много метаинформации, и в целом также необходимы сертификаты, необходимые для вашей почты, чтобы передавать спам-фильтры большинства из всех поставщиков электронной почты.

+0

Не знал, что такие вещи существуют, мой учитель в школе сказал мне, что это единственный способ сделать код PHP. (: – arsilhavy

+0

У вас, должно быть, был ужасный учитель. Но отправлять электронные письма с помощью PHP на самом деле не так просто, я трачу много часов на то, чтобы выяснить это ... – JRsz

2

Вы пытаетесь запустить это с вашего компьютера разработки? Скорее всего, ваша установка PHP не настроена для отправки писем.

  1. Открыть файл с кодом php.ini.
  2. Поиск [mail function]
  3. Редактировать настройки для ваших нужд
Смежные вопросы