PHP邮件功能因exim4而失败

时间:2018-03-27 10:38:01

标签: php apache debian sendmail exim4

Debian网络服务器升级到jessie后,

PHP邮件功能失败。软件版本是,

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

谢谢!

2 个答案:

答案 0 :(得分:0)

根据错误消息

  

无法设置gid = 33或uid = 0(euid = 0):强制real =有效

可能没有必要使用root,第33组(可能是www-data)也应该足够了。

因此,您应该可以使用LimitGIDRange 1 9999代替LimitUIDRange

答案 1 :(得分:0)

我已经解决了这个问题。这里解释了实际问题https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797653

解决方案1:

您可以安装<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="a"></div> <div id="b"></div> <button id='start'>START</button> <button id='stop'>STOP</button>。安装ssmtp时,Debian apt-get会删除exim4。因此,您必须将其配置为使用外部smtp服务器。 点ssmtp发送邮件路径,如php。这可能因不同的分布而不同。

解决方案2:

您可以安装sendmail_path /usr/bin/ssmtp -t -i并将其配置为使用localhost smtp。见esmtp。点/etc/esmtprc发送邮件路径,如php。这可能因不同的分布而有所不同。