У меня есть задание cron, которое в случае неудачи выводит HTML. Если это успешно, это ничего не выводит, в этом случае я не получаю почту. Если он не работает и пишет HTML, cron отправляет мне письмо, но оно приходит в виде простого текста и его трудно прочитать.
Я придумал два частичных решения, но не понял, как заставить его работать действительно хорошо. Во-первых, моя работа должна печатать спецификаторы MIME в верхней части вывода, например так:
Mime-Version: 1.0
Content-Type: text/html
<html>...
Затем я запускаю это в cron:
my-job | sendmail my.name
Основная проблема в том, что я получаю почту, даже если текст отсутствует. Вторичная проблема заключается в том, что мне пришлось добавить строки MIME-типа в мой скрипт, что является своего рода неподходящим местом (не элегантно, но, возможно, терпимо).
Затем я попытался использовать mail
или mailx
, у которых есть опция -E
чтобы пропустить отправку, если текст отсутствует:
my-job | mail -E my.name
Это делает в значительной степени то, что делает cron по умолчанию. Тем не менее, я не могу придумать, как установить MIME-тип с помощью mail/mailx! Некоторые ссылки в Интернете говорят, что это делается с помощью параметра -a
, но в моей системе (Fedora 16)mail -a
принимает имя файла вложения, а не строку заголовка, как Content-Type: text/html
как это, очевидно, происходит в некоторых других системах. ,
Я не хочу делать временный файл, проверять его размер и т.д. Я думаю, что хочу один из них:
- Способ сделать почту cron читабельной как HTML.
- Чтобы sendmail пропускал пустые сообщения.
- Чтобы установить MIME, введите mailx.
- Какой-то другой подход, использующий другую программу, которая установлена по умолчанию в Fedora.