у меня есть задание 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.