2013-10-13 180 views
3

發送郵件時,我發現一個PHP腳本互聯網上:無法通過PHP腳本

<?php 
$to = "*******@yahoo.com"; 
$subject = "Test mail"; 
$message = "Hello! This is a simple email message."; 
$from = "****@*****.nu"; 
$headers = "From:" . $from; 
mail($to,$subject,$message,$headers); 
echo "Mail Sent."; 
?> 

,它完美地工作,如果我用它從我的網絡服務。但我需要通過運行在我的家庭服務器上,而我只是沒有收到任何東西。我試圖運行它與php -f phpTest,並通過本地IP(10.0.0.2)和通過使用全局主機名。我只是收到「郵件發送」而沒有收到郵件。

這是一個我正在運行的ubuntu服務器,它使用apache2。就像我說的,腳本中沒有錯,因爲它在web-hotel上工作。它應該是我的本地設置,但我無法弄清楚什麼。

所有幫助將不勝感激!

\\妖

+3

你有一個郵件後臺設置?如果沒有,最好在超級用戶上詢問。 – Dave

+0

您應該檢查您的服務器上的郵件日誌/設置。 –

+0

檢查您的目標垃圾郵件文件夾?你簽署你的消息? –

回答

1

的PHP mail功能使用本地MTA(郵件傳輸代理),即在同一臺計算機上運行你的PHP解釋器和您的Apache Web服務器郵件守護進程。

因此,您必須在Ubuntu安裝程序上安裝並配置一個。 sendmail是經典之作,但exim據說可以很容易配置,並且可以使用當前的SMTP服務器作爲智能主機中繼,這對於家庭服務器來說非常合適。

sudo apt-get install exim4-daemon-light 
sudo dpkg-reconfigure exim4-config 
1

不是依靠內置mail功能,需要一個工作MTA的,你可以使用庫像Swiftmailer發送郵件through an existing SMTP server(例如,您的普通郵件地址)。這樣,您就可以獲得更少的垃圾郵件過濾功能(因爲垃圾郵件過濾器有時對從家庭服務器發送的郵件非常懷疑)。

+1

這絕對是您的最佳選擇。我曾嘗試在家中建立自己的郵件SMTP服務器,但使用動態IP則可能完全忘記它。即使使用固定IP,您仍然會被大多數郵件服務器過濾掉 – chuck258