Назад | Перейти на главную страницу

Замораживание функции PHP mail ()

У меня возникла проблема, из-за которой разрешения / var / lib / php / session были перезаписаны, поэтому я больше не мог создавать переменные сеанса в PHP.

Думаю, то же самое происходит с моей почтовой функцией. Где находится почтовая функция на сервере Linux, чтобы я мог ее изменить?


редактировать

Дополнительная информация:

$ "This is a test" | mail -s "Testing 123" team_pegasus@rayhawk.com
-bash: This is a test: command not found
Null message body; hope that's ok
postdrop: warning: mail_queue_enter: create file maildrop/111989.3781: Permission denied
postdrop: warning: mail_queue_enter: create file maildrop/112524.3781: Permission denied
postdrop: warning: mail_queue_enter: create file maildrop/113649.3781: Permission denied
postdrop: warning: mail_queue_enter: create file maildrop/114574.3781: Permission denied
postdrop: warning: mail_queue_enter: create file maildrop/115551.3781: Permission denied

chmod: changing permissions of `/usr/sbin/sendmail.postfix': Operation not permitted

chmod: changing permissions of `/usr/sbin/sendmail': Operation not permitted

Функция mail () делает много разных вещей в зависимости от того, как вы настроить это. Вы могли бы указать его на внешний SMTP-сервер, например, если это так, то в вашей локальной системе не к чему прикоснуться.

Если вы не изменили его по умолчанию, значит, вы используете в своей системе какой-то агент пересылки почты, но есть много возможностей. Вы действительно используете sendmail или просто используете какой-то инструмент, который имеет двоичный файл, совместимый с sendmail? Я считаю, что Postfix - это MTA по умолчанию на Centos. К сожалению, я не уверен, как называются папки спула и каковы должны быть разрешения по умолчанию.

Если никто не ответит на конкретные вопросы, я предлагаю вам быстро настроить виртуальную машину, аналогичную вашей основной системе, и просто сравнить, а затем восстановить разрешения.

Из оболочки командной строки вы также можете протестировать вещи. Просто запустите команду вроде echo 'test' | sendmail youraddress@example.org.

# /etc/postfix/post-install set-permissions

Проверьте переменную sendmail_path, установленную в вашем php.ini (по умолчанию: / usr / sbin / sendmail), которая будет использоваться функцией php mail ().