2012-05-25 251 views
0

我不明白爲什麼我的發送郵件功能已停止工作。它曾經工作正常,但我剛剛發現,試圖註冊我的網站的用戶不再收到電子郵件。PHP發送郵件功能

我必須改變一些意外。

我已經刪除了所有的細節,試圖回到基礎和解決問題。但是下面的代碼 - 用正確的電子郵件地址替換 - 仍然不起作用。它始終打印成功,但電子郵件不會發送到地址。

感謝您的幫助!

$email_address2 = "[email protected]"; 
    $header2 = "From: [email protected]\n"; 

    $subject2 = "Your Membership!"; 
    $message2 = " 
    The message2 
    "; 

$mailsend = mail($email_address2, $subject2, $message2, $header2.">\nX-Mailer: PHP/" . phpversion()); 

if($mailsend) { 
    echo 'Your membership information has been mailed to your email address!<br/><br/>Please check it and follow the directions!'; 
} else { 
print "There has been an error. Please try again"; 
} 
+0

也許你的域名/ IP已被添加到black-/spamlist。或者,也許sendmail在機器上不再工作。 – PeeHaa

+0

可能。你知道爲什麼會發生嗎?它已被打破至少一個星期,可能更長......我開始添加頻繁域到cpanel黑名單,因爲該網站正在遭受相當廣泛的垃圾郵件攻擊......但我不能阻止我的,否則我可能會不會無法訪問該網站? – Simeon

+0

測試它是否在[Spamhaus](http://www.spamhaus.org/lookup/)和[MX Toolbox](http://www.mxtoolbox.com/)列入黑名單。也嘗試從cli發送郵件,以查看您是否從sendmail中收到錯誤。 – PeeHaa

回答

0

第一步是找出sendmail的安裝位置。一旦你知道這個路徑,進入你的php.ini。您正在查找sendmail_path設置。適當地設置它。

如果路徑設置正確,則正確調用mail()的結果應返回true。 (請注意,返回值只能讓你知道郵件是否傳遞到sendmail [或者在Windows的情況下是SMTP],但不能保證電子郵件用完或sendmail配置正確。)如果它返回true,你仍然沒有收到電子郵件,然後檢查你的sendmail配置。