PHP邮件功能因exim4而失败

Yas*_*u G 7 php apache debian sendmail exim4

DebianWeb服务器升级到之后,PHP Mail功能失败jessie.软件版本是,

Apache2 : 2.4 
Php : 5.6 
Exim4: 4.8
Run Code Online (Sandbox Code Playgroud)

这个Web服务器有多个网站,我使用libapache2-mpm-itk模块为不同的用户为每个网站运行php.所以www-data没用过.

尝试使用php邮件功能发送电子邮件时,我得到以下错误.

unable to set gid=33 or uid=0 (euid=0): forcing real = effective
Run Code Online (Sandbox Code Playgroud)

Sendmail路径是,

sendmail_path   /usr/sbin/sendmail -t -i 
Run Code Online (Sandbox Code Playgroud)

它指向exim,

/usr/sbin/sendmail -> exim4
Run Code Online (Sandbox Code Playgroud)

我从http://blog.gaiterjones.com/send-php-mail-ubuntu-upgrade/找到了一个解决方案,当我在下面设置itk模块时,问题解决了,

LimitUIDRange 0 2000
Run Code Online (Sandbox Code Playgroud)

但是root不建议像我这样允许用户使用共享服务器.

有更好的解决方案吗?

编辑: 我发现了一个未解决的错误报告. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797653

谢谢!

Yas*_*u G 0

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

解决方案一:

您可以安装ssmtp. Debian在安装时apt-get会删除。因此,您必须将其配置为使用外部 smtp 服务器。点sendmail路径就好。这可能因不同的发行版而异。exim4ssmtpphpsendmail_path /usr/bin/ssmtp -t -i

解决方案2:

您可以安装esmtp并配置它以使用 localhost smtp。看/etc/esmtprc。点phpsendmail路径就好sendmail_path /usr/bin/esmtp -t -i。这可能因不同的发行版而异。