2011-04-15 95 views
0

我使用PHP Mailer製作了一個聯繫表單,該代碼基於PHPMailer測試郵件工作正常。問題PHP郵件程序

但現在它只是不會發送我的電子郵件,它不斷顯示我錯了。相反

的Verzonden(Sended)這裏是我的代碼

<?php 
require("CMS/scripts/phpmailer/phpmailer.inc.php"); 

if (isset($_POST) && !empty($_POST) && $_POST['post_form'] == "contact") { 
    $mail = new phpmailer; 

    print_pre($_POST); 

    $mail->IsSMTP(); // set mailer to use SMTP 
// $mail->From = $_POST['email']; 
    $mail->FromName = $_POST['voornaam']."&nbsp;".$_POST['achternaam']; 
    $mail->Host = "mail.chello.nl"; // this is my smtp server from my provider 
    $mail->AddAddress("[email protected]"); 
// $mail->AddReplyTo("[email protected]", "Reply"); 

    $mail->IsHTML(true); // set email format to HTML 
    $mail->Subject = $_POST['onderwerp']; 
    $mail->Body = " 
    <div id='mail'> 
     <table> 
      <tr> 
       <td colspan='2'><h2>".$_POST['onderwerp']."</h2></td> 
      </tr> 
      <tr> 
       <td>Naam</td> 
       <td>".$_POST['voornaam']."&nbsp;".$_POST['achternaam']."</td> 
      </tr> 
      <tr> 
       <td>Adres</td> 
       <td>".$_POST['adres']."</td> 
      </tr> 
      <tr> 
       <td>Postcode + Woonplaats</td> 
       <td>".$_POST['postcode']."&nbsp;".$_POST['woonplaats']."</td> 
      </tr> 
      <tr> 
       <td>Telefoon</td> 
       <td>".$_POST['telefoon']."</td> 
      </tr> 
      <tr> 
       <td>E-mail</td> 
       <td>".$_POST['email']."</td> 
      </tr> 
      <tr> 
       <td>Onderwerp</td> 
       <td>".$_POST['onderwerp']."</td> 
      </tr> 
      <tr> 
       <td colspan='2'>Bericht</td> 
      </tr> 
      <tr> 
       <td colspan='2'>".$_POST['bericht']."</td> 
      </tr>  
    </div> 
    "; 
    if ($mail->Send()) { 
     echo "Verzonden"; 
    } else {   
     echo "wrong"; 
    } 
} 
?> 
<div id="contact_form"> 
    <form action="#" method="post"> 
    <input type="hidden" value="contact" name="post_form"> 
    <table> 
     <tr> 
      <td>Naam</td> 
      <td><input type="text" name="voornaam" class="contact_inputfield"></td> 
      <td><input type="text" name="achternaam" class="contact_inputfield"></td> 
     </tr> 
     <tr> 
      <td>Adres</td> 
      <td colspan="2"><input type="text" name="adres" class="contact_inputfield_double"></td> 
     </tr> 
     <tr> 
      <td>Postcode + Woonplaats</td> 
      <td><input type="text" name="postcode" class="contact_inputfield"></td> 
      <td><input type="text" name="woonplaats" class="contact_inputfield"></td> 
     </tr> 
     <tr> 
      <td>Telefoon</td> 
      <td colspan="2"><input type="text" name="telefoon" class="contact_inputfield_double"></td> 
     </tr> 
     <tr> 
      <td>E-mail</td> 
      <td colspan="2"><input type="text" name="email" class="contact_inputfield_double"></td> 
     </tr> 
     <tr> 
      <td>Onderwerp</td> 
      <td colspan="2"><input type="text" name="onderwerp" class="contact_inputfield_double"></td> 
     </tr> 
     <tr> 
      <td valign="top">Bericht</td> 
      <td colspan="2"><textarea name="bericht" class="contact_textarea"></textarea> </td> 
     </tr> 
     <tr>   
      <td colspan="3"><input type="submit" value="Verzenden" class="contact_send"></td> 
     </tr> 
    </table> 
    </form> 
</div> 
+0

您的郵件提供商(Chello)似乎推遲了郵件的發送。請參閱荷蘭文章[Google論壇](http://www.google.com/support/forum/p/gmail/thread?tid=68ab3ffffcd2c4b1&hl=nl)。 – Lekensteyn 2011-04-15 19:38:02

+0

1.大部分代碼不是必需的,2.您的錯誤究竟是什麼? – cweiske 2011-04-15 21:45:01

回答

2

這是很好的,你要檢查,如果$mail->send()作品與否,而是你把自己的錯誤消息時失敗了,這是不好:

if ($mail->Send()) { 
    echo "Verzonden"; 
} else {   
    echo "failed: " . $mail->ErrorInfo; 
} 

但是,你不會說它是如何不發送郵件。 PHP Mailer只會將郵件轉發給它配置使用的任何郵件服務器。郵件仍然可能因爲其他原因而失敗,所以如果$mail->send()成功,那麼您必須檢查郵件服務器的日誌。

您的服務器可能已被列入黑名單,或被標記爲垃圾郵件源。