sendmail_path использовании php как cgi по умолчанию использовался бы email из свойств www домена

Ямалтдинов Эдуард добавил(а) 3 года назад
В рассмотрении

Нашел проблему на форуме

Также, при использовании php как модуль apache, sendmail_path прописывается в виртуалхост автоматически. подставляется email, который указан в свойствах www домена.

можно ли сделать, чтобы при использовании php как cgi по умолчанию использовался бы email из свойств www домена ?


http://forum.ispsystem.ru/showthread.php?31632-Ispmanager-5-Lite-5-7-0-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B-c-exim-%D0%B8-sendmail


Из-за того, что по умолчанию прописывается webmaster@example.com в настройках php любой версии php.

Много писем не отправляется и висит в очереди.

31m 3.0K 1fGtKU-0005pX-2T <> *** frozen ***

webmaster@example.com


31m 3.0K 1fGtKV-0005pd-AK <> *** frozen ***

webmaster@example.com


14m 2.9K 1fGtap-0006pw-5q <> *** frozen ***

webmaster@example.com


12m 2.6K 1fGtcY-0007Ff-2x <> *** frozen ***

webmaster@example.com

Комментарии (5)

фото
1

Здравствуйте!

Да, действительно такая тема уже есть, и как я писала в ней, такова логика в панели на данный момент, поэтому оставляем на голосовании данное пожелание.

фото
1

Это явная ошибка работы Панели, почему на рабочем домене создается в php.ini sendmail_path с каким-то example.com???

фото
фото
1

Поддерживаю!

фото
1

Проблему с example.com в режиме CGI было бы правильным пофиксить. Лишняя стопка очереди писем и вопросы от клиентов никому не нужны.

фото
1

Поддерживаю почту настраиваешь все тесты проходит но вот через php_mail все идет либо в спам, либо не доходит и эти танцы с бобном уже порядком надоели, только настроишь все опять какая нить проблема возникает.

фото
2

Дорогие разработчики прежде чем строить какие то конфиги для начала стоило бы изучить документацию.

В php.ini замечательно можно использовать встроенные переменные от apache через "${}"


для того что бы добиться желаемого эффекта, а именно если под одним пользователем находятся несколько сайтов на разных доменах, и требуется слать почту что бы во FROM был именно тот домен с которого шлётся почта

достаточно использовать внешнюю переменную SERVER_ADMIN

в которой хранится собственно E-Mail администратора (который туда замечательно помещает панель ispmanager при добавлении/редактировании WWW домена)


Для людей которым нужно краткий мануал:


в режиме CGI достаточно просто поправить 2 шаблона панели:

/usr/local/mgr5/etc/templates/php.ini

/usr/local/mgr5/etc/dist/templates/php.ini


а именно заменить

sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@example.com

на

sendmail_path = /usr/sbin/sendmail -t -i -f ${SERVER_ADMIN}


для режима работы php как FastCGI по мимо правок двух шаблонов нужно ещё скопировать шаблоны apache:


cp -rp /usr/local/mgr5/etc/templates/default/apache2-vhosts.template /usr/local/mgr5/etc/templates/

cp -rp /usr/local/mgr5/etc/templates/default/apache2-vhosts-ssl.template /usr/local/mgr5/etc/templates/


далее правим оба скопированных файла

/usr/local/mgr5/etc/templates/apache2-vhosts.template

/usr/local/mgr5/etc/templates/apache2-vhosts-ssl.template


дописать в шаблон требуется блок отвечающий за добавления параметров при включенном режиме fcgi

к примеру находим в шаблонах следующий блок:


{% if $PHP == on and $FILES_MATCH == on %}

<FilesMatch "\.ph(p[3-5]?|tml)$">

SetHandler [% $PHP_HANDLER %]

{% if $APACHE_FCGID == on and $PHP_MODE == php_mode_fcgi_apache %}

FCGIWrapper [% $PHP_BIN_WRAPPER %]

{% endif %}

</FilesMatch>

{% endif %}


и дописываем к нему ещё один блок:


{% if $PHP == on and $FILES_MATCH == on %}

<FilesMatch "\.ph(p[3-5]?|tml)$">

SetHandler [% $PHP_HANDLER %]

{% if $APACHE_FCGID == on and $PHP_MODE == php_mode_fcgi_apache %}

FCGIWrapper [% $PHP_BIN_WRAPPER %]

{% endif %}

</FilesMatch>

{% endif %}

{% if $APACHE_FCGID == on and $PHP_MODE == php_mode_fcgi_apache %}

FcgidInitialEnv SERVER_ADMIN [% $EMAIL %]

{% endif %}


после этого перезапускаем панель

killall -9 core


создаём новый домен, включаем режим работы или cgi или fcgi

при этом в директории пользователя в php-bin/php.ini в конце должно вместо


webmaster@example.com добавиться ${SERVER_ADMIN}


проверяем.