2012-01-30 32 views
2

我cannt從PHP腳本發送郵件,雖然我可以從sendmail命令行和sendmail的SH:/ usr/sbin目錄/ sendmail的:權限被拒絕

PHP sendMyMail.php

發送我已經嘗試了這些

  1. 的httpd正在作爲apache用戶和我加入apache的用戶smmsp組

  2. httpd_can_sendmail - 上

    >
  3. SELinux status:     enabled 
    SELinuxfs mount:    /selinux 
    Current mode:     permissive 
    Mode from config file:   enforcing 
    Policy version:     24 
    Policy from config file:  targeted 
    

不過的httpd error_log中仍然顯示此錯誤

SH:/ usr/sbin目錄/ sendmail的:權限被拒絕

誰能有什麼想法?我真的很感激你的所有建議,並真的用盡了這個。

+0

你有沒有檢查權限#chmod -v 2755/usr/sbin/sendmail – Rikesh 2012-01-30 10:10:10

+0

是的,我做了但沒有運氣。謝謝 – user1147995 2012-01-30 10:15:36

+0

/usr/sbin/sendmail的權限是什麼? 您是否在可以訪問sendmail二進制文件的服務器上運行? – 2012-01-30 10:24:30

回答

0

您可以從命令行發送電子郵件並不意味着任何用戶都可以(例如apache)。

檢查阿帕奇實際上可以發送電子郵件:

sudo -u apache sendmail [email protected] 

閱讀郵件日誌文件(通常/var/log/mail.log),看看發生了什麼。根的收件箱通常位於/ var/spool/mail/root中)。 Tipp:如果您不想將根用作豚鼠,請使用與root不同的其他用戶。

+0

嗨,謝謝,我運行了那個命令,沒有登錄maillog,但它也顯示任何錯誤,並且sendmail命令與apache用戶一起工作。我運行sudo -u php sendMyMail.php並且仍然出現這個錯誤sh:/ usr/sbin/sendmail:權限被拒絕 – user1147995 2012-01-30 10:36:18

+0

你確定你有一個叫'php'的用戶嗎?當你從命令行運行php時,執行命令的用戶就是你登錄的用戶(鍵入whoami來查看你是誰)。通過web服務器運行php,apache是​​運行php的用戶。您使用的是什麼* nix系統? – 2012-01-30 11:03:24

+0

非常感謝您的幫助。 我更改了send_path = /usr/sbin/sendmail.sendmail -t -i,並且我更改了權限chmod -v 2755 /usr/sbin/sendmail.sendmail 它正在工作。這絕對是許可問題。我沒有用/ usr/sbin/sendmail把它整理出來。無論如何,謝謝你。 – user1147995 2012-01-30 11:17:46