почта: не удалось открыть поток: отказано в доступе? - PullRequest
1 голос
/ 15 декабря 2009

Я получаю это предупреждение при отправке почты с php Предупреждение: mail (1) [function.mail]: не удалось открыть поток: в /home/...

отказано в разрешении
  • с использованием ssmtp и gmail в качестве smtp
  • PHP 5.3.1
  • ничего в логах (без ошибок)
  • почта попадает в пункт назначения
  • права доступа к файлам: rwxrxrx

В доступе отказано?

Даже вызывая что-то простое, как

mail ("mail@domain.com", "subject", "body");

Я все еще получаю это предупреждение

Ответы [ 3 ]

9 голосов
/ 19 декабря 2011

Проблема в том, что пользователь веб-сервера не может писать и / или читать файл журнала почты. Для конфигурации проппера:

1) создайте папку и файл для регистрации электронной почты. Например:

touch /var/log/php5/mail.log

2) установить файл журнала в php.ini:

mail.log = /var/log/php5/mail.log

3) установить владельца и группу для этой папки / файла в случае необходимости:

проверьте владельца и группу с помощью

ls -la /var/log/php5

в случае необходимости, измените группу (измените www-данные для любой группы вашего веб-сервера)

sudo chgrp -R www-data /var/log/php5

в случае необходимости, смените владельца (измените www-данные для любого пользователя вашего веб-сервера)

sudo chown -R www-data /var/log/php5
0 голосов
/ 18 декабря 2009

Оказывается, файл проблем с разрешениями в конце концов. Но не в скриптах, а в каталоге. Я запустил chmod -R 777 *, и предупреждение прошло. после дальнейшего изучения я обнаружил файл с именем 1, в котором содержался журнал отправленных писем. В предупреждении мне сообщалось, что он не может открыть этот файл

.

Решение:

 sudo chmod -R 755 *
 sudo chmod  777 1

F # $% ^% загадочных сообщений об ошибках php

0 голосов
/ 16 декабря 2009

Работает ли это, если вы упростите это?

 $mail_sent = mail('address@domain.com', 'subject', 'message');

Если это так, то вы знаете, что почта работает.

После этого я бы удалил материал $ eol и посмотрел, исправит ли это. Если нет, то я бы удалил блок заголовка и продолжал удалять содержимое, пока оно не заработало.

...