Не может отправлять почту при запуске через веб-сервер, но может отправлять из командной строки с тем же сценарием php - PullRequest
4 голосов
/ 15 ноября 2011

У меня странная проблема: у меня в проекте есть файл mail.php.Когда я запускаю команду из оболочки:

php mail.php

, она отправляет почту за считанные секунды, но при запуске того же файла, что и:

https://www.domain.com/mail.php

Никакая почта не отправляется, используя этот код:

<?php
      echo "Sending mail now....";
      mail("mr.atanu.dey.83@gmail.com", "PHP Test mail", "Hope this works! ");
?>

Может ли кто-нибудь мне помочь?

Ответы [ 2 ]

1 голос
/ 08 февраля 2015

Может случиться так, что SELinux включен, и в соответствии с конфигурацией по умолчанию SELinux отправка почты через apache / веб-сервер запрещена.

Чтобы проверить, включен ли SELinux и настроен ли он на прекращение отправки электронной почты, запуститекоманда ниже:

getsebool -a | grep mail

пример вывода

allow_postfix_local_write_mail_spool --> on
httpd_can_sendmail --> off
logging_syslogd_can_sendmail --> off

Теперь, чтобы сконфигурировать SELinux для разрешения Apache отправлять электронную почту, выполните следующую команду:

setsebool -P httpd_can_sendmail on

Проверьте этот ответ, он решает мою проблему: Не удается отправить почту при запуске через веб-сервер, но может отправить из командной строки с тем же сценарием php

0 голосов
/ 16 ноября 2011

Возможное решение:

В php.ini заменить

sendmail_path = /usr/sbin/sendmail -t -i

с

sendmail_path = /usr/sbin/sendmail.postfix -t -i

Затем перезапустите Apache.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...