2010-11-03 77 views
8

更新:我解決了它。記錄下面的所有內容。我怎樣才能讓PHP郵件()工作?需要幫助配置MTA

我嘗試了很多東西,但它不起作用。

我不介意使用,後綴,exim4或sendmail。我只需要一步一步的指導和解釋我在做什麼。我也在使用Google Apps進行電子郵件。

編輯:

mail.log

Nov 3 01:14:02 mugbear postfix[16615]: error: to submit mail, use the Postfix sendmail command 
Nov 3 01:14:02 mugbear postfix[16615]: fatal: the postfix command is reserved for the superuser 

這是什麼意思?


更新到編輯:修正了在php.ini用sendmail_path = /usr/sbin/sendmail -t -i

EDIT2修正sendmail_path: PHP - 從文檔只是抓起。僅供參考,我刪除了我的電子郵件。

<?php 
// The message 
$message = "Line 1\nLine 2\nLine 3"; 

// In case any of our lines are larger than 70 characters, we should use wordwrap() 
$message = wordwrap($message, 70); 

// Send 
mail('[email protected]', 'My Subject', $message); 

?> 

EDIT3: 另一個錯誤:

Nov 3 07:22:29 mugbear postfix/postdrop[17131]: warning: unable to look up public/pickup: No such file or directory 
Nov 3 07:22:29 mugbear postfix/postdrop[17133]: warning: unable to look up public/pickup: No such file or directory 

更新到EDIT3:http://ubuntuforums.org/showthread.php?t=666018 運行此:

sudo mkfifo /var/spool/postfix/public/pickup 
sudo /etc/init.d/postfix restart 

之後用以下鏈接解決了這個,你會得到這個e RROR:

postfix/master[13902]: fatal: bind 0.0.0.0 port 25: Address already in use 

然後你必須檢查你的流程,並殺死sendmail的過程,例如:

[email protected]:/etc/postfix# ps aux | grep mail 
root  23554 0.0 0.0 8232 1900 ?  Ss 10:17 0:00 sendmail: MTA: accepting connections   
root  27308 0.0 0.0 3004 764 pts/0 S+ 10:30 0:00 grep mail 
[email protected]:/etc/postfix# kill 23554 

Edit4: 這是什麼意思?

Nov 3 07:34:51 mugbear postfix/pickup[17309]: 6602F1C151: uid=33 from=<www-data> 
Nov 3 07:34:51 mugbear postfix/cleanup[17311]: 6602F1C151: message-id=<[email protected]> 
Nov 3 07:34:51 mugbear postfix/qmgr[17310]: 6602F1C151: from=<[email protected]>, size=397, nrcpt=1 (queue active) 
Nov 3 07:34:51 mugbear postfix/error[17321]: 6602F1C151: to=<[email protected]>, relay=none, delay=0.03, delays=0.02/0/0/0.01, dsn=4.3.5, status=deferred (delivery temporarily suspended: Host or domain name not found. Name service error for name=xen.prgmr.com type=A: Host found but no data record of requested type) 

更新到edit4:我跑,dpkg-reconfigure postfix和選擇Internet Site

回答

2

什麼不起作用?服務器日誌顯示什麼(對於PHP和郵件)?你需要弄清楚問題出在PHP還是你的MTA上。

恕我直言,設置只發送後綴,然後使用PEAR郵件庫可能是最好的選擇。

+1

我只要接受任何解決方案,它的工作原理,能你給我一個什麼樣的指導? – Strawberry 2010-11-03 00:45:42

+0

只要我忘記了如何做到這一點,我就會遵循標準的CentOS指令。不過,配置postfix for sendonly很容易。應該有一個Debian指南來做到這一點。不過,您真的需要查看httpd錯誤日誌和郵件日誌,以查看問題所在。我想到的兩個問題在PHP嘗試發送時丟失標題(缺少From:通常是罪魁禍首),或者是MTA配置問題(很多時候,您只需要配置MTA以直接連接到遠程端)。 – mpdonadio 2010-11-03 00:56:13

+0

我會在我的edit2中發佈郵件日誌,而不是在apache中。 – Strawberry 2010-11-03 01:14:39