我已經成功地使用PHP的mail()函數發送郵件,並且爲了我的密碼重置通知電子郵件,我複製了我在其他地方使用的語法,但是我想我搞砸了,因爲它沒有到達目的地。這裏是我使用的代碼:PHP郵件沒有發送 - 標頭設置不正確?
$headers = 'To:'.$email."\r\n";
$headers .= 'From: [email protected]'."\r\n";
$to = $email."\r\n";
$subject = 'AromaClear Password Reset Notification'. "\r\n";
$msg = 'From: AromaClear'."\r\n";
$msg .='Subject: Your New Password'. "\r\n";
$msg .= 'Message: Your new password is '.$newpass."\r\n";
$msg.= 'If you have received this e-mail in error, please ignore it.'. "\r\n";
mail($to, $subject, $msg, $headers);
有什麼想法?
我改變了代碼,並添加了一個不同的鍵值對查詢字符串取決於成功或失敗,它似乎已通過(我也加入了可選的-f參數),但我仍然不收到電子郵件。已經檢查過數據庫,電子郵件地址和用戶名是正確的,因爲他們已經進行了數週的測試)。依然沒有。奇怪。 – user97410 2009-09-13 18:54:58
然後我的猜測是堆棧裏的東西越來越低。你真的需要看看你的系統的郵件日誌(通常是/ var/log/mail),看看郵件是否被推送。如果你沒有看到你的郵件出現,那麼PHP可能被錯誤地配置爲sendmail(而不是指向sendmail所在的位置?)。也許你的sendmail配置錯誤?也許你的ISP阻止SMTP中繼? – 2009-09-13 19:04:53
我已經從同一臺服務器成功發送郵件,這是什麼讓這特別奇怪。事實上,我今天早些時候發過一些郵件,而且我還有另一個腳本可以工作,發送一個大的HTML編碼郵件和我在這裏發佈的原始語法(除了$ msg只是一個巨大的CSS和HTML字符串)。 – user97410 2009-09-13 19:06:21