За последние 24 часа нас посетил 17601 программист и 1310 роботов. Сейчас ищут 926 программистов ...

php mail(): failed to open stream...

Тема в разделе "Работа с почтой", создана пользователем Allan Stark, 27 дек 2012.

  1. Allan Stark

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

    С нами с:
    31 май 2010
    Сообщения:
    17
    Симпатии:
    0
    Freebsd 9.0, php 5.3.8
    Все поставлено с портов, все работает.
    В php.ini внесены настройки корректного почтового сервера.

    При попытке отправки почты:
    mail($to, $subject, $message, $headers)

    в ответ письмо отправляется и доставляется, но в странице и в логах :

    Warning: mail(/var/log/) [function.mail]: failed to open stream: Is a directory in /usr/local/www/apache22/data/test/send_mail.php on line 32

    По гуглю нашел, что проблема из-за отсутствия/проблем с записью для файла /var/log/php_mail.log - создал, дал 775, проблема осталась.
     
  2. Allan Stark

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

    С нами с:
    31 май 2010
    Сообщения:
    17
    Симпатии:
    0
    Разобрался. В php.ini нашел раскомментированную директиву mail.log.
    Согласно документации это "Путь к лог-файлу, в который будут записываться все вызовы функции mail(). Записи в логе содержат полный путь до скрипта, номер строки, адрес получателя To и заголовки".
    Эта же директива была раскоменчена в php.ini-development, с которого делал оригинальный php.ini.
    Указал полный путь к файлу логов почты - проблема исчезла.
    На виртуалке накатил свежий порт - там директива уже в каменте.
    Наверно мейнтейнер порта накосячил...