Мой сервер centos может отправлять почту с помощью команды mail, но не через php. Maillog говорит:
sendmail[18010]: NOQUEUE: SYSERR(nginx): can not chdir(/var/spool/clientmqueue/): Permission denied
Мои разрешения следующие:
lrwxrwxrwx 1 nginx nginx 30 Oct 30 20:27 /usr/lib/sendmail -> /etc/alternatives/mta-sendmail
lrwxrwxrwx 1 nginx nginx 21 Oct 30 20:27 /usr/sbin/sendmail -> /etc/alternatives/mta
lrwxrwxrwx 1 nginx nginx 27 Oct 30 2012 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail
lrwxrwxrwx 1 nginx nginx 26 Oct 30 2012 /etc/alternatives/mta-sendmail -> /usr/lib/sendmail.sendmail
lrwxrwxrwx 1 nginx nginx 16 Oct 30 2012 /usr/lib/sendmail.sendmail -> ../sbin/sendmail
-rwxr-xr-x 1 root smmsp 775064 Aug 11 2011 /usr/sbin/sendmail.sendmail
Для чего нужны все эти ссылки?
Бинарный файл Sendmail-8.12 + должен быть установлен как установлен ГРУППА мне бы.
(/usr/sbin/sendmail.sendmail в вашем случае)
Это описано в SECURITY
файл в раздаче sendmail (.org):
-r-xr-sr-x root smmsp ... /PATH/TO/sendmail
drwxrwx--- smmsp smmsp ... /var/spool/clientmqueue
Также существует логическая политика SELINUX, называемая httpd_can_sendmail .... Я почти уверен, что для нее также должно быть установлено значение true.
Если вы унаследовали систему и хотите изменить расположение / var / spool / mqueue на другое место, и когда вы изменяете свой sendmail.mc и повторно создаете sendmail.cf или редактируете каталог sendmail.cf, и вы запускаете sendmail, и он жалуется "Permission denied" и ничего из вышеперечисленного не помогает - попробуйте это. Даже если вы полностью отключили SELINUX и т. Д.
Я прошел через все вышеперечисленные предложения по многочисленным системам на протяжении многих лет, и независимо от того, что это за пользователь, какой setgid установлен в sendmail или какие разрешения и информация о владении есть в любом каталоге, я все равно получаю ошибку. В каждом случае я обнаруживал, что это было что-то с существующей установленной версией sendmail. Даже если он самый последний. В каждый случае я смог преодолеть проблему:
Кажется, переустановка решила проблему.
Возможно, вам потребуется обновить / etc / sysconfig / sendmail, указав местоположение вашего файла sendmail.cf с измененным QUEUEDIR, а затем, возможно, запустить "journalctl daemon-reload", чтобы исправить это, тогда он должен работать.
Это своего рода проблема с OEM-версией sendmail, такая как отсутствие smmsp пользователя / группы и т.д., но это самый простой способ решить эту проблему при современной установке Linux.