Функция 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 модуля itk ,

 LimitUIDRange 0 2000 

Но разрешение root пользователю не рекомендуется для общего сервера, такого как мой.

Есть ли лучшее решение?

EDIT: Я нашел нерешенный отчет об ошибке. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797653

Спасибо!

Согласно сообщению об ошибке

не удалось установить gid = 33 или uid = 0 (euid = 0): заставить real = effective

Использование root , вероятно, не обязательно, также должно хватить группе 33 (вероятно, www-data ).

Таким образом, вы должны использовать LimitGIDRange 1 9999 вместо LimitUIDRange .

Я разрешаю эту проблему. Актуальная проблема объясняется здесь 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 . Это может различаться разными распределениями.