我的centos服务器可以发送邮件使用“邮件”命令,但不是从PHP。 Maillog说:
sendmail[18010]: NOQUEUE: SYSERR(nginx): can not chdir(/var/spool/clientmqueue/): Permission denied
我的权限如下:
lrwxrwxrwx 1 nginx nginx 30 Oct 30 20:27 /usr/lib/sendmail -> /etc/alternatives/mta-sendmail lrwxrwxrwx 1 nginx nginx 21 Oct 30 20:27 /usr/sbin/sendmail -> /etc/alternatives/mta lrwxrwxrwx 1 nginx nginx 27 Oct 30 2012 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail lrwxrwxrwx 1 nginx nginx 26 Oct 30 2012 /etc/alternatives/mta-sendmail -> /usr/lib/sendmail.sendmail lrwxrwxrwx 1 nginx nginx 16 Oct 30 2012 /usr/lib/sendmail.sendmail -> ../sbin/sendmail -rwxr-xr-x 1 root smmsp 775064 Aug 11 2011 /usr/sbin/sendmail.sendmail
这些链接将会是什么?
Sendmail-8.12 +二进制文件应该被设置为GROUP ID。
(在你的情况下是/usr/sbin/sendmail.sendmail)
http://www.sendmail.org/~ca/email/doc8.12/SECURITY
-r-xr-sr-x root smmsp ... /PATH/TO/sendmail drwxrwx--- smmsp smmsp ... /var/spool/clientmqueue
还有一个名为httpd_can_sendmail的SELINUX布尔策略….我敢肯定,这也必须设置为true。