2012-07-02 30 views
0

我收到了郵件腳本(作爲更大的CMS的一部分),它不發送任何電子郵件。我不能爲了我的生活找出爲什麼它不發送任何電子郵件。我添加了一些更多的錯誤處理(我發現在其他問題上)並檢查了我的錯誤日誌,但無濟於事。郵件腳本錯誤 - 從哪裏開始?

這是代碼,我已經刪除了隱私代碼的bodytitle。但是,這個問題並不存在,因爲我試圖用純文本發送它。

<?php include '../includes/header.php' ; ?> 
<link rel="stylesheet" type="text/css" href="/vidvdcms/css/formstyle.css" /> 
<?php 

// For testing only 
error_reporting(E_ALL); 

$result = mysql_query("SELECT * FROM klant, bestellingen WHERE klant.klant_id LIKE '".$_GET['mail']."' ORDER BY bestellingen.order_id DESC LIMIT 1") or die(mysql_error()); 
while($row = mysql_fetch_array($result)){ 

// multiple recipients 

$to = ''.$row['email'].''; 
$name = '' . $row['voornaam'] . ' ' . $row['achternaam'] . ''; 

// subject 
$subject = 'REDACTED - SUBJECT OF EMAIL'; 

// message 
$message = 'REDACTED - BODY OF MAIL WITH HTML/GETS'; 

} 


$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From: XXXX <[email protected]>' . "\r\n"; 
$headers .= 'Bcc: [email protected]' . "\r\n"; 

// Mail it 
mail($to, $subject, $message, $headers); 

print "REDACTED - Email sent succesful message"; 

mysql_close($link) 
?> 

編輯:我有三重檢查的代碼,它似乎很好地工作。我嘗試了一個簡單的郵件腳本在網上找到,並且沒有發送任何。我在另一臺服務器上嘗試了它,併發送了它。所以我認爲這是服務器?我如何檢查這個?我接下來要做什麼?

+0

例如,日誌? – Shikiryu

+0

以前有用嗎?您的ISP阻止了IP嗎?查詢是否正常工作? <?php print_r(mysql_fetch_array($ result)); ?> – Robert

+0

它以前做過,但它「突然停止工作」。我現在要檢查我是否仍然可以在此服務器上發送郵件。好建議。查詢的工作原理,是的,我收到了以前輸入的大量數據。 – Linkjuice57

回答

0

假設你的問題是關於如何正確調試:

從哪裏開始將啓用所有PHP的日誌記錄:

ini_set('display_errors', 1); 
ini_set('error_reporting', E_ALL); 

然後看到你在屏幕上得到什麼。

您還需要在郵件服務器上查找日誌,看看您是否有任何郵件。

如果這沒有幫助,請在您的IDE(Google for Xdebug針對您的特定IDE的Xdebug設置說明)中逐行讀取代碼Xdebug,查看是否所有變量均符合您的預期。

如果您想解決此問題的具體幫助,則需要粘貼上述步驟中的某些錯誤輸出。

+0

謝謝,不,我想要一些關於從哪裏開始搜索的指針。我會開始工作! – Linkjuice57