За последние 24 часа нас посетили 17587 программистов и 1678 роботов. Сейчас ищут 1920 программистов ...

mail() returns bool(false)

Тема в разделе "Прочие вопросы по PHP", создана пользователем kinguru, 25 сен 2006.

  1. kinguru

    kinguru Активный пользователь

    С нами с:
    25 сен 2006
    Сообщения:
    9
    Симпатии:
    0
    Привет всем! я тут впервые, просьба ногами не пинать.

    Проблема в следующем. Есть простой скрипт:
    <?php
    $res = mail("aaa@sss.com", "123", "123");
    var_dump($res);
    ?>

    Если этот скрипт вызвать из под root с консольки, >php ./mail.php
    то почта на адрес приходит. Если выполнять через веб сервер, то всегда возвращается bool(false) в переменной $res.
    Подскажите почему так происходит и как с этим бороться.
     
  2. Davil

    Davil Guest

    На *nix серверах иногда возвращается false, а почта приходит. Также иногда (тоже в *nix) приходится пользовать "sendmail".
     
  3. kinguru

    kinguru Активный пользователь

    С нами с:
    25 сен 2006
    Сообщения:
    9
    Симпатии:
    0
    Почта не приходит =(
    Функция mail() как раз и юзает sendmail, а точнее "sendmail -t -i".
    В логи maillog ничего не падпет. Я так подозреваю, что проблема в правах пользователя под которым запускается php/apache.
     
  4. Davil

    Davil Guest

    .htaccess правленый?
     
  5. Anonymous

    Anonymous Guest

    Мммм..? Какое слово - правленый, в смысле измененный, или ты опечатался когда писал "правильный"?
     
  6. Davil

    Davil Guest

    Я имел ввиду прописан нормально?
     
  7. kinguru

    kinguru Активный пользователь

    С нами с:
    25 сен 2006
    Сообщения:
    9
    Симпатии:
    0
    Davil его вообще нет
     
  8. Anonymous

    Anonymous Guest

    kinguru, а если просто sendmail вызывать напрямую, шлет? а если из под юзверя, под которым апач живет?
     
  9. Davil

    Davil Guest

    Хостер платный?
     
  10. kinguru

    kinguru Активный пользователь

    С нами с:
    25 сен 2006
    Сообщения:
    9
    Симпатии:
    0
    Devil хостер это я
    Горбунов Олег если из-под юзверя apache вызвать sendmail, говорит следующее:

    WARNING: RunAsUser for MSP ignored, check group ids (egid=48, want=51)
    can now write to queue directory /var/spool/clientmqueue/: Permission denied

    вот. Права доступа на папку clientmqueue smmsp:smmsp 770.
     
  11. Davil

    Davil Guest

    Мне кажется тут конфиги кривые... (httpd.conf и т.д.)
     
  12. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    kinguru, ну дык и что же непонятного?
    Если лень подумать о том как правильно раздать права - просто поставьте 777... и все заработает.
     
  13. Anonymous

    Anonymous Guest

    Просто попробуйте, если сработает, то тогда думайте, как правильно раздать права - если нет, надо искать дальше...
     
  14. kinguru

    kinguru Активный пользователь

    С нами с:
    25 сен 2006
    Сообщения:
    9
    Симпатии:
    0
    avm расскажите мне плиз непонятливому и как же правильно раздавать права? на этой папке права должны быть такие как они выставлены, если вы этого не знаете.

    Если поменять права на 777, то всё работает, но дык этого оставлять так низзя, сами понимаете почиму. Вопрос в следующем, где нада крутить чтобы гапач мог вызывать sendmail под юзером apache?
    пробовал добавить юзверя apache в группу smmsp - не помогает.
     
  15. Anonymous

    Anonymous Guest

    Это странно...
    в PHP safe_mode включен?
     
  16. kinguru

    kinguru Активный пользователь

    С нами с:
    25 сен 2006
    Сообщения:
    9
    Симпатии:
    0
    неа, выключен.
    Не помогает потому что проверяется gid данного пользователя, а не его членство в других группах, а его gid = apache.
     
  17. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    хорошо. только я за это беру деньги...

    а для простого решения именно этого вашего случая - проще всего:
    man sudo
     
  18. Anonymous

    Anonymous Guest

    Я сам в никсах полный ноль, но тут товарищи советуют:
    либо с chmod mail.local непорядок,
    либо в sendmail.cf параметры неверные,
    либо chmod/chown на директорию clientmqueue неверны,
    а еще submit.cf может быть в некоторых версиях sendmail