2011-07-21 73 views
1

我的電腦已經安裝了Apache(localhost),所以我做了一個註冊選項,並有一個電子郵件選項,我發送郵件激活帳戶。我有一個互聯網連接,現在如果在PHP腳本中,我寫了 郵件($ to,$ subject,$ msg); 此代碼是否會將郵件傳遞到所需的收件人,因爲它沒有發送郵件。

+0

我正在將此標記爲遷移到serverfault.com,因爲問題與您的服務器設置有關。 – paulmorriss

+0

我不知道這應該去哪裏。這可能是一個編碼問題,可能是服務器問題,也可能是垃圾郵件過濾器問題。 –

+1

例如,使用[SwiftMailer](http://swiftmailer.org/)等專用郵件發送類。將其配置爲直接使用SMTP,這樣您就可以發送電子郵件,就像通過Outlook/Thunderbird /或任何其他郵件客戶端發送電子郵件一樣,而無需在您的PC上安裝郵件服務器。 – LazyOne

回答

3

收件人收到電子郵件時無法100%確定。

mail()函數返回值取決於發送電子郵件是否有問題。你會是這樣做的:

$successful = mail($to,$subject,$msg); 
if (!$successful) 
{ 
    // The email was not sent 
} 

如果$successfulfalse那麼服務器必須發送電子郵件的問題。因此,添加到您的代碼,看看會發生什麼。如果$successfultrue那麼服務器發送的電子郵件正常,您的問題可能在於接收電子郵件並將其刪除的垃圾郵件過濾器。您可以在this question瞭解更多有關如何防止這種情況的信息。

+0

但我會需要的是我的電腦上的網絡服務器和互聯網訪問權限?我的郵件被交付? – Kraken

+0

和[Mercury Mail](http://www.pmail.com/)這樣的郵件服務器。如果你沒有那個,那麼你知道它爲什麼不起作用。 –

+0

是的。 $成功是錯誤的。怎麼來的?我不知道。 – Kraken

0

還需要包括頭:

$headers = 'From: [email protected]' . "\r\n" . 
'Reply-To: [email protected]' . "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 

mail($to,$subject,$msg,$headers); 

沒有標題,你可能會得到標記爲收件人的郵件服務器的垃圾郵件。

相關問題