2012-06-12 16 views
-2

我已按照指示on this page在AWS linux ubuntu上設置mail(),但郵件功能不起作用。我知道我已經正確編寫了發送郵件腳本,那麼爲了實現這個目標,我還需要其他的東西嗎?是否有特殊的網絡郵件軟件或我需要的東西?無法讓PHP郵件()在linux上工作ubuntu

編輯:

display_errors上。 PHP代碼如下。 顯示成功消息,但永遠不會收到電子郵件。

$to = "[email protected]"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 

if (mail($to, $subject, $body)) 
{ 
    echo("Message successfully sent!"); 
} 
else 
{ 
    echo("Message delivery failed..."); 
} 

編輯2:

我試圖把它發送到由GoDaddy和一個Gmail帳戶託管的電子郵件。兩者在錯誤日誌中都返回了相同的響應。 [。]

錯誤日誌:

「8C029主機smtp.secureserver.net拒絕談論到 我:- - *。 554由於發送MTA信譽不佳,您對此郵件系統的訪問權限已被拒絕 。如果您認爲 ,這種故障是錯誤的,請通過替代方法請與預定收件人 。」

沒關係,Gmail接收郵件,15分鐘後,我想了兩個錯誤均被相關GoDaddy的託管電子郵件。

+0

你是什麼意思不工作?任何錯誤消息? 'display_errors'是否打開? –

+0

在我的問題中更新。謝謝! – Jack

+0

您日誌文件中的任何錯誤? –

回答

3

沒關係,Gmail接收郵件,15分鐘後,我想了兩個錯誤均被相關GoDaddy的託管電子郵件。

錯誤確實也不對原產於您的mail()代碼或服務器設置 - 您的MTA收到來自mail命令的消息並嘗試傳遞消息。

該錯誤來自GoDaddy的接收郵件服務器(您的後綴嘗試傳遞郵件的那個服務器)。或者沿線的SMTP中繼服務器之一。

雖然拒絕並非意外:您聲明您的服務器正在AWS中運行。不幸的是,您不是AWS實例中的唯一郵件。許多臭名昭着的垃圾郵件發送者已經在您身邊,將AWS的IP地址的可信度作爲可靠的郵件來源。這就是爲什麼許多ISP阻止來自AWS的傳入郵件(這是554錯誤:中繼訪問被拒絕)。

惡化您的問題:如果您繼續使用此方法,AWS會自動阻止來自您實例的所有外發郵件,以嘗試解決垃圾郵件問題。手動驗證你的意圖後,他們應該恢復你的郵件特權。

您在AWS上最好的選擇可靠地發送電子郵件可能會使用他們自己的SES service,這可能會讓您通過MTA的大多數RBL檢查。但SES確實需要花錢。

+0

哈..當然。謝謝你的幫助! – Jack