RuWeb.net Forum

не работает функция mail в php! (VIP-тарифы)
kpv - 13.4.2008 в 11:47

Если не работает функция mail() в PHP - убедитесь что в панели управления ISPmanager в свойствах соответствующего www-домена указан реально существующий на данном сервере почтовый ящик. Т.е. например если ваш сайт - my-vip-site.ru, то создайте почтовый ящик admin@my-vip-site.ru и укажите именно его, а не vasya-pupkin@mail.ru.
В 95% случаев правильно указанный существующий ящик решает проблему.

Если проблема все-таки не решилась, загляните в файл /home/логин/data/php-bin/php.ini и убедитесь в наличии такой строчки:

Цитата:
sendmail_path = "/usr/sbin/sendmail -t -i -f admin@my-vip-site.ru"

Если там ящик не admin@my-vip-site.ru а vasya-pupkin@mail.ru - исправьте.
Чтобы изменения в php.ini вступили в силу, необходимо перезагрузить веб-сервер. Это случается автоматически, например, когда Вы редактируете какие-либо свойства www-домена в панели ispmanager. Или напишите нам, чтобы перезагрузили.

Если проблема все равно не решилась - пишите в нашу службу техподдержки.

[Отредактировано 5.6.2012 кто timru]


timru - 28.12.2012 в 11:26

Другой вариант: вообще убираем из своего php.ini из строчки:

Цитата:
sendmail_path = "/usr/sbin/sendmail -t -i -f admin@mysite.ru"


параметр " -f admin@mysite.ru", т.е. должно получиться:
Цитата:
sendmail_path = "/usr/sbin/sendmail -t -i"


и добавляем его непосредственно в фунцию mail(), 5-м параметром (так же можно задать адрес через ini_set):
Цитата:
<?php
mail("pupkin@mail.ru", "Subject", "Body", "From: admin@mysite.ru", "-f admin@mysite.ru");
?>


В этом случае почта также должна успешно отправляться. Преимущества данного варианта - Вы можете задавать ящик отправителя непосредственно в скрипте. Это будет полезно в случае если у Вас несколько доменов на аккаунте - не будет жесткой привязки к конкретному e-mail-адресу, прописанному в php.ini.


[Отредактировано 28.12.2012 кто timru]

[Отредактировано 28.12.2012 кто ln]