В CentOS
я решил эту проблему, запустив задание cron при запуске, которое запускаетсяsupervisord
:
Создать задание cron запустите crontab -e
в терминале, а затем вставьте@reboot /bin/supervisord
(это должен быть путь к супервизору)в конце заданий и сохраните его.
Иногда проще отправить все заголовки вecho
напр.
{
echo From: xxxx
echo To: yyyy
echo Subject: Foobar
echo
echo This is the message
} | /usr/lib/sendmail -t
Тема является частью заголовков, попробуйте:
echo -e "Subject:$SUBJECT" | /usr/sbin/sendmail -f XXXXXX@gmail.com -t XXXXXX@gmail.com
echo -e "Subject:$sub" |sendmail -f linuser@qcsp1app1.com -t arjun.karunakirinathan@gmail.com. < body_detail.txt
Вы действительно хотите избежать echo -e
здесь. На самом деле есть несколько причин предпочесть printf
, не последней из которых является просто удобство.
printf '%s\n' "Subject: $subject" \
"From: I am a Sender <sender@example.net>" \
"To: Recipient <victim@example.org>" \
"" \
"This is the body of the message." \
"It spans multiple lines." |
sendmail -oi -t
Пустая строка(""
)отделяет заголовки от тела сообщения. Тривиальное SMTP-сообщение представляет собой обычный текст, только US -ASCII.
Это все еще довольно ограничено в своих возможностях. Если вам нужно использовать наборы символов, отличные от -ASCII, или нетривиальные структуры MIME, вы действительно не хотите вставлять строки одну за другой. Некоторые версии mail
или mailx
позволяют вам собирать правильные сообщения MIME с вложениями или, возможно, посмотреть, например. mutt
, если у вас есть более сложные потребности.
Распространенные ошибки включают
<
в заголовках адресов или заключении в странные кавычки некоторых полей заголовка Заметьте также Исправление использования заглавных букв в сценариях Bash и shell