繁体   English   中英

PHP邮件功能因exim4而失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM