2014-06-06 3 views
0

Обычно я код в ASP.NET, поэтому мир PHP для меня немного новый. Когда я заполняю форму и нажимаю «Отправить», я не получаю почту.отправьте почтовую форму, но почта не отправляется

Может кто-то увидеть, что здесь не так?

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

<?php 

/************************ 
* Variables 
*************************/ 

$cc = ""; 
$bcc = ""; 
$headermail = '[email protected]'; 
$toaddress = "[email protected]"; 
$to = "[email protected]"; 
$name = "Thomas Petersen"; 
$email = "[email protected]"; 

if($_SERVER["REQUEST_METHOD"] == "POST") 
    { 
    if(strlen($_POST['companyname']) < 1 || strlen($_POST['navn']) < 1 || strlen($_POST['beskrivelse']) < 1 || strlen($_POST['kommentar']) < 1 || validateEmail($email) == FALSE) 
     { 

     if(empty($_POST['navn'])){ 
      $emailerror .= '<li>Venligst indtast dit navn</li>'; 
     } 

     else if(empty($_POST['telefon'])){ 
      $emailerror .= '<li>Venligst indtast dit telefon nummer</li>'; 
     } 

     else if(!is_numeric($_POST['telefon'])){ 
      $emailerror .= '<li>OPMÆRKSOM! Telefon nummer, kan kun indholde tal-cifre.</li>'; 
     } 

     else if(empty($_POST['beskrivelse'])){ 
      $emailerror .= '<li>Venligst indtast en beskrivelse</li>'; 
     } 

     else if(empty($_POST['mvalue'])){ 
      $emailerror .= '<li>Venligst indtast ordre mængde</li>'; 
     } 

     else if(empty($_POST['kommentar'])){ 
      $emailerror .= '<li>Venligst indtast en kommentar</li>'; 
     } 
    } 

    else 
    { 

     $emailerror .= "<h1 style='color:#00ff00;'>Mail Send!</h1>"; 

     $message = '<!DOCTYPE HTML> 
      <html> 
      <head></head> 
      <body> 
      <table> 
       <tr><td colspan="2">' . $_POST['navn'] . ' har sendt denne foresp&oslash;rgsel.</td></tr> 
       <tr><td>Telefon nr.:</td><td>' . $_POST['telefon'] . '</td></tr> 
       <tr><td>Beskrivelse:</td><td>' . $_POST['beskrivelse'] . '</td></tr> 
       <tr><td>M&aelig;ngde:</td><td>' . $_POST['mvalue'] . '</td></tr> 
       <tr><td>Kommentar:</td><td>' . $_POST['kommentar'] . '</td></tr> 
      </table> 
      </body> 
      </html>'; 

     $message = trim(stripslashes($message)); 

     $e_subject = 'Moseg&aring;rden Foresp&oslash;rgsel fra ' . $_POST['navn'] . '.'; 

     $headers = "Fra: " . $_POST['navn'] . PHP_EOL; 
     $headers .= "Reply-To: $email" . PHP_EOL; 
     $headers .= "MIME-Version: 1.0" . PHP_EOL; 
     $headers .= "Content-type: text/html; charset=utf-8" . PHP_EOL; 
     $headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL; 
     $headers .= 'To: Thomas <[email protected]>' . PHP_EOL; 
     $headers .= 'From: Salg af hus [email protected]>' . PHP_EOL; 
     $headers .= 'Cc: [email protected]' . PHP_EOL; 
     $headers .= 'Bcc: [email protected]' . PHP_EOL; 

     mail($toaddress, $e_subject, $message, $headers); 
    } 
} 
?> 

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title></title> 
     <style> 
     input[type=text] { 
      padding:5px; border:2px solid #ccc; 
      -webkit-border-radius: 5px; 
      border-radius: 5px; 
     } 
     input[type=text]:focus { 
      border-color:#333; 
     } 
     input[type=submit] { 
      padding:5px 15px; 
      background:#ccc; 
      border:0 none; 
      cursor:pointer; 
      -webkit-border-radius: 5px; 
      border-radius: 5px; 
     } 
     textarea{ 
      padding:5px; border:2px solid #ccc; 
      -webkit-border-radius: 5px; 
      border-radius: 5px; 
     } 
     </style> 
    </head> 
    <body> 
     <h1>Foresp&oslash;rgsel</h1> 
     <div id='emailerror'> 
      <ul> 
       <p><?php echo $emailerror; ?></p> 
      </ul> 
     </div> 
     <form method="post" action=""> 
      <div> 
       <div class="input_label user"> 
        <label>Navn:</label> 
       </div> 
       <input type="text" name="navn" /> 
      </div> 
      <br /> 
      <div> 
       <div class="input_label user"> 
        <label>Telefon nr.:</label> 
       </div> 
       <input type='text' name="telefon" /> 
      </div> 
      <br /> 
      <div> 
       <div class="input_label user"> 
        <label>Beskrivelse:</label> 
       </div> 
       <textarea name="beskrivelse"></textarea> 
      </div> 
      <br /> 
      <div> 
       <div class="input_label user"> 
        <label>M&aelig;ngde:</label> 
       </div> 
       <input type="text" name="mvalue" /> 
      </div> 
      <br /> 
      <div> 
       <div class="input_label user"> 
        <label>Kommentar:</label> 
       </div> 
       <textarea name="kommentar"></textarea> 
      </div> 
      <br /> 
      <input type="submit" value=" Send " /> 
     </form> 
    </body> 
</html> 

EDIT

Этот код работает отлично без санкционирования, для отправки почты.

<?php 
    if($_SERVER["REQUEST_METHOD"] == "POST") 
    { 
     $name = "Thomas Petersen"; 
     $email = "[email protected]"; 
     $message = $_POST['navn'] . " har sendt denne foresp&oslash;rgsel." . \r\n . "Telefon nr.: ". $_POST['telefon'] . "\r\n" . "Beskrivelse: ". $_POST['beskrivelse'] . "\r\n" . "M&aelig;ngde: ". $_POST['mvalue'] . "\r\n" . "Kommentar: ". $_POST['kommentar'] . "\r\n"; 
     $to = "[email protected]"; 
     $subject = "Moseg&aring;rden Foresp&oslash;rgsel fra " . $_POST['navn']; 
     $headers = 'MIME-Version: 1.0' . "\r\n"; 
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
     $headers .= 'To: Thomas <[email protected]>' . "\r\n"; 
     $headers .= 'From: Salg af hus [email protected]>' . "\r\n"; 
     $headers .= 'Cc: [email protected]' . "\r\n"; 
     $headers .= 'Bcc: [email protected]' . "\r\n"; 
     if (!mail($to, $subject, $message, $headers)) { 
      echo "<h1 style='color:rgb(0,0,255);'>Mail ikke send!</h1>"; 
     } else { 
      echo "<h1 style='color:#00ff00;'>Mail Send!</h1>"; 
     } 
    } 
?> 
+1

У вас есть почтовый сервер, работающий на вашем сервере, потому что если нет, то есть ваша проблема. – kpp

+0

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

+0

точно так же, как @kpp сказал, вам нужен запуск почтового сервера. и/или для вашего веб-пространства/веб-сервера-провайдера необходимо, чтобы все функции 'mail()' работали. если у вас есть собственный сервер, работающий на окнах, я могу порекомендовать [smtp4dev] (http://smtp4dev.codeplex.com/) для тестирования. –

ответ

0

Как я указал в комментариях $_POST["companyname"] isnt не указан в вашей форме. Поэтому его всегда меньше 1

//change this 
if(strlen($_POST['companyname']) < 1 || strlen($_POST['navn']) < 1 || strlen($_POST['beskrivelse']) < 1 || strlen($_POST['kommentar']) < 1 || validateEmail($email) == FALSE) 

//to this 
if(strlen($_POST['navn']) < 1 || strlen($_POST['beskrivelse']) < 1 || strlen($_POST['kommentar']) < 1 || validateEmail($email) == FALSE) 
+0

Привет, KPP, что-то сделал, теперь я получаю '$ emailerror. ="

Mail Send!

";' но я не получаю почту, это потому, что мне нужно вызовите эту строку после 'mail ($ toaddress, $ e_subject, $ message, $ headers);'? –

+0

в вашем редактировании вы, кажется, удалили почту ($ toaddress, $ e_subject, $ message, $ headers); 'убедитесь, что она все еще существует, потому что если нет, вы не получите почту действительно: p – kpp

+0

также может закончиться в спамбоксе – kpp

0

Не могу найти текстовое поле ввода с именем «companyname» в вашей форме.

если strlen($_POST['companyname']) < 1 оценивается в true, ваш адрес электронной почты не будет отправлен.

поэтому, возможно, принять его из if состоянии, так что он выглядит точно так же, как это:

if(strlen($_POST['navn']) < 1 || strlen($_POST['beskrivelse']) < 1 || strlen($_POST['kommentar']) < 1 || validateEmail($email) == FALSE) 
Смежные вопросы