Я запускаю небольшой сервер LAMP на Ubuntu. В какой-то момент мне понадобился скрипт php для отправки письма с помощью Mutt. Я использую системный вызов из скрипта php, как этот
mutt -s $file1 -a threedplot.jpeg -a velocityvstime.jpeg -a elossperstep.jpeg -a input.txt -a output.txt -- $email < /var/www/html/emailmessage.txt
Где все переменные и файлы определены соответствующим образом (Эта строка находится в runner.sh). Когда я выполняю команду из командной строки как пользователь ubuntu, проблем не возникает и электронное письмо отправляется. Но когда php пытается выполнить его с помощью системного вызова,
$last_line = system("./runner.sh Queued/", $retval);
он просто говорит "Не удалось отправить сообщение". Я подозреваю, что это потому, что php работает на пользователе www-data, у которого может не быть соответствующих прав. Есть ли способ добавить пользователя www-data, чтобы у него был полный доступ к Mutt? Спасибо
решение1
Ваша проблема в том, что когда Mutt пытается отправить сообщение, он также пытается сохранить его в папке отправленных. Поскольку он работает как web-user/www user/apache user или что-то подобное, это не удается. Исправление заключается в использовании локального файла конфигурации Mutt (указанного с помощью -F в строке Mutt) и в том, чтобы убедиться, что set copy=no
он находится в этом файле конфигурации.
благодаря kenene наархив ubuntu forlum для этого.