2012-01-17 70 views
1

我有一個運行RH/Linux的Amazon EC2實例。我的問題是PHP郵件()函數不起作用,雖然我可以從命令行使用sendmail發送郵件。Php郵件()不工作,但sendmail是。

我運行這個命令。 # telnet localhost 25

Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 
XXXXX 

我的php.ini中是

mail function] 
SMTP = localhost 
smtp_port = 25 
sendmail_path = /usr/sbin/sendmail -t -i 
mail.add_x_header = On 

我不能fingure出什麼錯。我沒有得到任何PHP郵件錯誤。我也沒有收到任何電子郵件。問題是什麼?

+0

「SMTP」和「smtp_port」僅適用於Windows,因此將它們從您的配置中刪除。手動發送時,使用sendmail來使用哪些參數? – eth0 2012-01-17 10:11:08

+0

sendmail [email protected] – user1147995 2012-01-17 10:22:07

+0

感謝這是我從sendmail發送的方式 sendmail [email protected] 我正在測試 再見! 。 – user1147995 2012-01-17 10:25:50

回答

4

在EC2上發送郵件是非常困難的。大多數EC2 IP地址都在垃圾郵件黑名單中。這與PHP mail()的可怕錯誤報告相結合導致了非常可怕的經歷。

您需要將Amazon Simple Email Service與EC2結合使用。他們最近添加了一個SMTP service,這意味着您可以使用任何符合標準的PHP郵件庫來發送郵件。

我個人建議Swiftmailer完成這項任務。