Письмо не отправляется с формой PHP - PullRequest
0 голосов
/ 04 ноября 2010

У меня есть форма, которую я использовал до этого, это просто обычная форма.Вы заполняете форму и нажимаете «Отправить», и она возвращает страницу с благодарностью.Таким образом, он идет от form.html к mailPage.php, а затем Thankyou.html.Я уже дважды использовал эту же форму, и она обычно работает нормально, но по какой-то причине на этом новом сайте она не отправляет письмоЯ знаю, что вызывается mailPage, потому что он отправляет вас на страницу благодарности, но письмо не отправляется.Любые идеи о том, что может быть причиной этого.Вот мой код:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>

<body>
<?php
  $email = $_REQUEST['eMail'] ;
  $comments = $_REQUEST['comments'] ;
  $year = $_REQUEST['year'] ;
  $make = $_REQUEST['make'] ;
  $model= $_REQUEST['model'] ;
  $zip = $_REQUEST['zip'] ;
  $state = $_REQUEST['State'] ;
  $city = $_REQUEST['City'] ;
  $address = $_REQUEST['Address'] ;
  $callTime = $_REQUEST['callTime'] ;
  $workNumber= $_REQUEST['workNumber'] ;
  $foundby = $_REQUEST['foundby'] ;
  $fullName = $_REQUEST['fullName'] ;
  $homeNumber = $_REQUEST['homeNumber'] ;

  mail( "XXXX@XXXXXXXXXXX", "Estimate Request",
    "From:\t$fullName\nEmail:\t$email\nHome Phone:\t$homeNumber\nWork Phone:\t$workNumber\nBest time to call:\t$callTime\nAddress:\n\t$address\n\t$city, $state $zip\nMake:                 $make\tModel:$model\tYear:$year\nFound us by:\t$foundby\n\nComments:\n$comments");
  header( "Location: thankyou.html" );
?>
</body>

</html>

Ответы [ 4 ]

1 голос
/ 04 ноября 2010

из какой среды вы работаете?
Есть ли у него почтовый сервер?

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

Локальные программы, такие как xampp обычно, не имеют
предустановленные почтовые серверы.

1 голос
/ 04 ноября 2010

Я всегда использовал дополнение PEAR к PHP для отправки своей почты, потому что у меня гораздо больше контроля над тем, что он делает.Он должен иметь следующие два включенных имени:

require "Mail.php";
require "Mail/mime.php";

Я обычно делаю всю свою обработку из моей формы после этих двух комментариев, затем я собираю все это вместе, используя следующий набор кода:

    $server   = "mail.myserver.com";
    $username = "myusername@myserver.com";
    $password = "thisIsAPassword";
    $port     = "587";

    // Set Up The Mail Headers
    $hdrsUs = array(
                "From"        => $sender,
                "To"          => $receiverUs,
                "Subject"     => $subjectUs,
                "Return-Path" => $sender
              );

    // Configure the Mailer Mechanism
    $smtp = Mail::factory("smtp",
              array(
                "host"     => $server,
                "username" => $username,
                "password" => $password,
                "auth"     => true,
                "port"     => $port
               )
            );

    $textUs =
      "This is a text version of the e-mail.";

    $htmlUs =
      "<html>
         <body>
           <center>
             <b>This is the HTML version of the e-mail.</b>
           </center>
         </body>
       </html>";

  $mimeUs = new Mail_mime($crlf);

  $mimeUs->setTXTBody($textUs);
  $mimeUs->setHTMLBody($htmlUs);

  // Do not EVER Try to Call These Lines in Reverse Order
  $bodyUs = $mimeUs->get();
  $hdrsUs = $mimeUs->headers($hdrsUs, true);

  // Send the Message
  $mailUs   = $smtp->send($receiverUs, $hdrsUs, $bodyUs);

  if (PEAR::isError($mailUs))
  {
    echo ($mailThem->getMessage());
  }
  else
  {
    echo "&nbsp;<br /><center><b>The Mail Has Sent.</b></center>\n";
  } 
1 голос
/ 04 ноября 2010

Единственное, что приходит на ум, это то, что на сервере нет определения php mail ... как exim4 или что-то в этом роде.

0 голосов
/ 06 мая 2013

Самая распространенная проблема - ввод имени электронной почты будет другим.Не могли бы вы сделать следующее?-

echo $email; die("");

Если вы видите, что сообщение отображается правильно, оно будет иметь отношение к настройке SMTP на вашем сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...