Автор Тема: всеми изъеденная функция mail(), но тут особенный случай  (Прочитано 5339 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jus

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Люди помогите (прочтите до конца - я не буду спрашивать, что и какиепараметры обозначают в mail()) все форумы облазила - немного получилось - но дальше тупик...

 Итак ситуация:
На сервер был поставлен АЛЬТ линукс Мастер 2.2
через apt-get поставлен Apache/1.3.28 (ALT Linux/alt9) PHP/4.3.4-dev/ALT с сизифа
[root@rabbit conf]# rpm -qa | grep php
php-mysql-4.3.4-alt0.cvs20030830
mod_php-4.3.4-alt0.cvs20030903
php-common-4.3.4-alt0.cvs20030903

Все сайты на ПХП работают - всё хорошо но вот только не отрабатывала функция mail() не отсылала письма, для проверки был напиман примерно такой скрипт

if (mail(здесь всё правильно.... все параметры правильно
)
echo \'message sent\';
else {
echo \'error!\';
}
?>
так вот при его запуске вываливалось
Warning: mail():
Permission denied: unable
to execute shell to run
mail delivery binary
\'/usr/sbin/sendmail -t -i\' in
/www/www.serdi.ru/htdocs/111.php
on line 2
error!
что только не пробывала  прва на сендмыло:
root@jus:~/distr/magazine/deface/d2#
ls -al /usr/sbin | grep sendmail
-r-xr-sr-x 1 root smmsp 549092 Мар 3 2003 sendmail*

потом почитав мануалы и полазив по конференциям выяснилось что в новой версии ПХП, которая находится в сизифе разработчики этого   модуля (Mail) по какй-то не мыслемой причине перед работой с содержимым
 параметра sendmail_path вставили проверку:
 ...
 if (access(sendmail_path, X_OK)) {
 ...
 
 Соответственно, если в параметре sendmail_path есть что-нибудь кроме имени (например -t -i) файла возникает ошибка.
 
 Так что, люди у кого возникнет такая проблема просто исправьте в php.ini
 sendmail_path=/usr/sbin/sendmail -t -i
 на
 sendmail_path=/usr/sbin/sendmail
 
 Теперь идём далее -он один чёрт неотрабатывает нормально
 error выдаёт,  нуно теперь наверно узнать код ошибки
чтобы знать в каком направлении бороться дальше mail() возвращает либо да, либо нет, а как узнать код ошибки?
я уже неделю мучаюсь - не пойму в чём дело - у других этот же скрипт (один в один) отрабатывает всё прекрасно и отсылает - у меня же - нифига!
Пожалйста, профессионалы помогите найти направление - куда дальше бить, а то уволят...
Так же ставила всё это дело на слакваре (апач 27 и пхп 4.3.3)
всё работатет...
Плиз - наваедите на путь истинный как можно вычислить причину не выполнения функции mail()

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
работа в Украине

Оффлайн jus

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
нет это я уже делала - это спасло от
Warning: mail(): Permission denied: unable to execute shell to run mail
> delivery binary \'/usr/sbin/sendmail -t -i\' in ...

А дальше как узнать почему маил() не отправляет?

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
jus
а что в /var/log/maillog
?
AS IS...

Оффлайн jus

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
вот именно что ничего!
не знаю куда бить дальше
Люди кто заядлый АЛьт пользователь - как через apt-get можно поставить не последнюю версию ПХП а скажем 4.3.3
а то он предлагает всё время последнюю...

Оффлайн jus

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
щас стоит уже
php-common-4.3.4-alt0.cvs20031101
php-imap-4.3.4-alt0.cvs20031101
php-sockets-4.3.4-alt0.cvs20031101
mod_php-4.3.4-alt0.cvs20031101
php-mysql-4.3.4-alt0.cvs20031101
И теперь ещё такая ошибка вылетает
(раньше её не было)
Fatal error:  Allowed memory size of 8388608 bytes exhausted (tried to allocate 46080 bytes) in /www.site.ru/htdocs/bitrix/modules/subscribe/classes/general/subscription.php on line 72


может кто знает что может вызывать подобные ошибки

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
jus
Выскажу свое мнение, оно может быть ошибочным, если что не пинать больно :) PHP и все остальное можно взять не с сайта АЛЬТ линукса, а с того места, откуда все берут, php.net  и т.д. Затянуть по фтп и руцями скомпилять.
Лично я бы проверил, отправляется ли вообще почта  с этого хоста, с самого начала поставил бы обкатанный дистр.
работа в Украине

Оффлайн jus

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
ага потом начнут зависимости вылазить - тоже не гуд уже было

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Подменяешь sendmail на скрипт с соотв названием  (временно)
пишешь свой лог - смотришь - вызывается ли вообще он

Могу ошибаться, но "unable to execute shell " скорее значит, что нельзя запустить ШЕЛЛ, а не сендмейл.

У тебя от чьего имени запущен httpd/php ? и какой у него шелл стоит ?

Да и что пишут в error.log- е ?
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
а просто sendmail на прямую отправляет?
Не все коту матрица.

Оффлайн jus

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
to Oak
да с проблемой "анэйбэл ту ран шелл" уже разобралась если вы внимательно читали, вы бы увидели в чём была проблема
теперь такой ошибки не вылетает!
но попрежнему письма через пхп маил функцию не отсылаются и я уже устала бороться, перловый скрипт через сендмаил всё прекрасно отсылает!
а вот через пхп не хочет
Люди может кто подскажет, делаю на слакваре
echo testing | sendmail -froot@serdi.ru -t jus@serdi.ru
пашет отправляет без проблем!
то же саме делаю на АЛЬте
[root@rabbit var]# echo testing | sendmail -froot@serdi.ru -t jus@serdi.ru


просит ещё что-то ввести
лано делаем без -t
echo testing | sendmail -froot@serdi.ru jus@serdi.ru

тоже просит что-то ввести
хотя через никсовую "команду" mail - она же тоже юзает сендмыло всё отправляется на альте безпроблем!
теперь делаю так
$result = exec("echo testing | mail -s testing jus@serdi.ru", $sendmail, $error );
  if ($error){
        echo $result;
    echo $error;
            }

?>
ждёт долго ответа и всё ничего не выдаёт - может у кого стоит Альт и он подскажет как с шелла через сендмаил отправить почту "одной строчкой"?
Уже сил нет - хоть бери да сноси сервер из-за такой фигни

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Может CC: просит ?

man mail:
Цитировать

     ask     Causes mail to prompt you for the subject of each message you
             send.  If you respond with simply a newline, no subject field
             will be sent.

     askcc   Causes you to be prompted for additional carbon copy recipients
             at the end of each message.  Responding with a newline indicates
             your satisfaction with the current list.
.......
If an
     option is not set, mail will look for an environment variable of the same
     name.

может поможет ?
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28