Мне нужно получать уведомления по электронной почте, когда мои пользователи FTP загружают файлы.
Для этого я использую pure-uploadscript. Приведенный ниже код настроен на запуск от моего собственного (не суперпользователя):
#! /bin/bash
echo "File $1 (size $UPLOAD_SIZE) uploaded by $UPLOAD_VUSER \
on $(date)" \
| /usr/bin/mutt -s "[FTP] File uploaded: $1" \
user@example.com 2>&1 >> path/logfile \
&& echo "OK $1 $(id)" >> path/logfile \
|| echo "ERR $1 $(id)" >> path/logfile
Вызывается мой сценарий, $ (id) отображает правильные данные, но Mutt говорит (как я вижу из журнала) «Не удалось отправить сообщение».
Когда я запускаю ту же команду из командной строки моего собственного пользователя, сообщение отправляется.
Что я могу сделать, чтобы отладить это?
Mutt, вероятно, ищет неправильное место для команды sendmail.
:set sendmail
from inside Mutt дает вам место, где Mutt его ищет. Его также можно использовать для установки правильного местоположения, например :set sendmail="/usr/sbin/sendmail"
Кстати, Mutt - отличная программа, но nail
или mailx
обычно являются инструментами выбора для использования в скрипте.