Я экспериментирую с PHP и столкнулся с проблемой. Я пытаюсь, чтобы мой php-скрипт отправлял электронное письмо после завершения процесса.
<!DOCTYPE html>
<html>
<body>
<?php
echo shell_exec('echo "testing" | mutt -x -F /usr/web/mail.mut -s test -- [email protected]');
?>
<br>
Thanks. PDF copys of energy plots have been emailed.
</body>
</html>
В результате на странице отображается эхо-сообщение «Не удалось отправить сообщение».
Однако, когда я вошел в систему на хосте, я могу выдать ту же самую команду, и сообщения проходят.
Некоторая дополнительная информация. Хост — Linux Mint vm. МТА это постфикс. Когда вы вошли в систему как мой пользователь (не пользователь PHP), Mutt отлично работает с терминала. Я проверил права доступа к файлу в указанном конфигурационном файле Mutt, и все должно быть в порядке. В конфигурационном файле Mutt (/usr/web/mail.mut) просто есть данные моей учетной записи для gmail. Опять же, когда я выполняю ту же команду, приходят сообщения. Я также попытался посмотреть в / var / log / syslog, но там нет записей.
Благодарен за любой совет.
РЕДАКТИРОВАТЬ:
Согласно комментарию Михала. Я также попробовал следующее с тем же результатом.
echo shell_exec('mutt -F /usr/web/mail.mut -s testing -- [email protected] < message');
Не решил проблему, но нашел лучшее решение того, что я пытался сделать.
Закончилось использование PHPMailer с ssmtp (postfix работал бы, но ssmtp очень прост в настройке).
Других решений пока нет …