2012-05-01 59 views
0

我的郵件腳本在聯機服務器上。工作正常。但是不是現在。我很困惑它爲什麼停止發送郵件。它顯示發送電子郵件的消息,但收件箱中未收到電子郵件。這裏是我的PHP腳本:郵件功能已停止在服務器上工作

$useremail = $_POST['myemail']; 

    $friendemail = $_POST['friendemail']; 

     $name = "support"; 

     $email = "[email protected]"; 

     $rec = $friendemail; 

     $sub = "support Invitation"; 

     $body = 'the user '.$useremail.' has sent you message'; 

     $header="Content-type: text/html\n"; 

     $header .= "From: $name < ". $email ." >"; 

     $success_mail = mail($rec,$sub,$body,$header); 
     if($success_mail){ echo "success0";} else { echo "Not sent";} 

請幫助我!

+1

服務器停止工作時發生了什麼變化? – Maerlyn

+2

您是否檢查垃圾郵件文件夾?如果您的郵件服務器以接近垃圾郵件到達的模式接收郵件,則可能會將其歸類爲垃圾郵件 –

+0

+1讓測試電子郵件進入垃圾郵件文件夾變得非常頭痛。 – freshnode

回答

0

IME與從PHP發送郵件有關的大多數問題都與MTA有關,與PHP無關。如果系統已經停止發送郵件,但你的PHP沒有改變,那麼這也可能是這種情況。

您沒有提供有關運行這些操作系統的信息,也沒有提供關於如何配置PHP以使用郵件的信息 - 這在不同的操作系統上有很大不同。

,但沒有電子郵件收件箱中

有一大堆的事情,發送電子郵件之間hapen在收到它到達它的目的地。通常,它被排隊等待在發送端由MTA發送,在接收端傳遞給MTA(可選地通過中間MTA),在接收端應用策略檢查,傳遞到接收端的imap/pop服務(可能還有進一步的政策檢查),由您的郵件客戶端檢索(再次進行進一步的政策檢查)。

您需要查看流程的每個步驟以找出它失敗的位置。

mysql_real_escape_string($ _ POST ['friendemail']);

WTF?這是錯誤的。

$ header =「Content-type:text/html \ n」;

你不是試圖通過SMTP迫使非7位ASCII做自己任何好處。現在,這應該不是一個大問題,並且不太可能成爲錯誤的原因 - 但請嘗試發送純文本消息並查看會發生什麼情況。

哦...並再次查看您的代碼我看到您正在發送純文本所以WTF是html標頭的?

如果您需要任何可交付性保證,請修復您的電子郵件的編碼,而不管這種情況在這種情況下不是問題的原因。

+0

就在幾分鐘前發送電子郵件,html正文被髮送,而不是純文本。 – SAM

+0

請幫忙!我仍在尋找解決方案。 :( – SAM

相關問題