Отправить письмо из команды UNIX с вложением и текстом сообщения HTML
Это может звучать как глупый вопрос, но я пробовал и искал много вариантов, и ни один не отвечал моим требованиям
Я пытаюсь отправить письмо с отчетом из командной строки unix с помощью bash-скрипта, мне удалось отправить его с телом и вложением с помощью сервиса mailx, но тело не отформатировано и не радует глаз
(echo "$(cat /tmp/report_summary.html)";uuencode /tmp/report_details.xls report_details.xls) |/usr/bin/mailx -s "Report for XYZ" $MAIL_GRP
Я попробовал опцию sendmail, которая отлично форматирует тело сообщения, но не имеет возможности для вложения
(
echo "From: From@xyz.vom";
echo "To: Address@xyz.vom";
echo "Subject: Test Message 1 2 3";
echo "Content-Type: text/html";
echo "MIME-Version: 1.0";
echo "Content-Disposition: inline";
echo "<HTML><BODY><PRE>";
cat /tmp/report_details.html;
echo "</PRE></BODY></HTML>";
) | /usr/sbin/sendmail -t
У меня нет опции Mutt, но я попробовал sendmail, mailx и почтовый сервис, и ни один из них не может помочь мне удовлетворить мою, по-видимому, простую потребность
ОС Unix: Solaris 10 8/07 s10s_u4wos_12b SPARC
Примечание: не помечайте это как дубликат с существующими ответами, так как у них есть возможность отправить вложение или HTML-текст или вложение с простым телом.
1 ответ
Отправка "единственной части MIME" с помощью sendmail (команда низкого уровня) довольно проста.
Ваш скрипт серьезные ошибки:
- Отсутствует "END OF HEADERS" (пустая строка)
- Отсутствует
-i
опция командной строки sendmail
Ваш скрипт предложил улучшения:
- Перемещение получателей из заголовков в командную строку sendmail
- Отсутствует
charset
в Content-type (если вы не используете US-ASCII) - Отсутствует Content-Transfer-Encoding (если вы не используете US-ASCII = 7bit)
Исправленный скрипт:
#!/bin/sh
(
# Email headers and html header body in body
cat - <<END
From: From@xyz.vom
To: Address@xyz.vom
Subject: Test Message 1 2 3
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline
<HTML><BODY><PRE>
END
# file to be "HTMLized"
cat /tmp/report_details.html
# html footer in body
cat - << END_FOOTER
</PRE></BODY></HTML>
END_FOOTER
)
| /usr/sbin/sendmail -t -- 'Address@xyz.vom'