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