[英]PHP Mail function fails with exim4
将Debian
Web服务器升级到jessie
后,PHP Mail功能失败。 软件版本是,
Apache2 : 2.4
Php : 5.6
Exim4: 4.8
这个Web服务器有多个网站,我使用libapache2-mpm-itk
模块为不同的用户为每个网站运行php。 所以没有使用www-data
。
尝试使用php邮件功能发送电子邮件时,我得到以下错误。
unable to set gid=33 or uid=0 (euid=0): forcing real = effective
Sendmail路径是,
sendmail_path /usr/sbin/sendmail -t -i
它指向exim,
/usr/sbin/sendmail -> exim4
我从http://blog.gaiterjones.com/send-php-mail-ubuntu-upgrade/找到了一个解决方案,当我使用itk
模块设置下面的设置时问题解决了,
LimitUIDRange 0 2000
但是不建议像我这样允许root
用户使用共享服务器。
有更好的解决方案吗?
编辑:我发现了一个未解决的错误报告。 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797653
谢谢!
根据错误消息
无法设置gid = 33或uid = 0(euid = 0):强制real =有效
可能没有必要使用root
,第33组(可能是www-data
)也应该足够了。
因此,您应该能够使用LimitGIDRange 1 9999
而不是LimitUIDRange
。
我已经解决了这个问题。 实际问题在这里解释https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797653 。
解决方案1:
你可以安装ssmtp
。 Debian apt-get
将在安装ssmtp
时删除exim4
。 因此,您必须将其配置为使用外部smtp服务器。 指向php
sendmail路径,如sendmail_path /usr/bin/ssmtp -t -i
。 这可能因不同的分布而不同。
解决方案2:
您可以安装esmtp
并将其配置为使用localhost smtp。 请参见/etc/esmtprc
。 指向php
sendmail路径,如sendmail_path /usr/bin/esmtp -t -i
。 这可能因不同的分布而不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.