Функция PHP Mail не работает с exim4
Функция PHP Mail не работает после обновления Debian
веб-сервер для jessie
, Версии программного обеспечения,
Apache2 : 2.4
Php : 5.6
Exim4: 4.8
Этот веб-сервер имеет несколько веб-сайтов, и я использую libapache2-mpm-itk
модуль для запуска php разными пользователями для каждого сайта. Так www-data
не используется
Я получаю ниже ошибку при попытке отправить электронную почту, используя функцию php mail.
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 ответа
Я решил эту проблему. Актуальная проблема объясняется здесь https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797653.
Решение 1:
Вы можете установить ssmtp
, Debian apt-get
удалит exim4
при установке ssmtp
, Поэтому вам придется настроить его для использования внешнего сервера 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
, Это может отличаться в зависимости от распределения.
Согласно сообщению об ошибке
невозможно установить gid=33 или uid=0 (euid=0): принудительное выполнение = эффективное
С помощью root
скорее всего, не нужно, группа 33 (вероятно, www-data
) тоже должно хватить.
Таким образом, вы должны быть в состоянии использовать LimitGIDRange 1 9999
вместо LimitUIDRange
,