Eu tenho um cron job que, se falhar, gera HTML. Se for bem sucedido, não produz nada, e nesse caso não recebo nenhum email. Se falhar e escrever HTML, o cron me envia o email, mas ele vem como texto simples e é difícil de ler.
Eu criei duas soluções parciais, mas não descobri como fazer isso funcionar muito bem. A primeira é fazer com que o meu trabalho imprima os especificadores MIME no topo da saída, assim:
Mime-Version: 1.0
Content-Type: text/html
<html>...
Então eu corro assim no cron:
my-job | sendmail my.name
O principal problema com isso é que eu recebo e-mails, mesmo que não haja texto algum. Um problema secundário é que eu tive que adicionar as linhas do tipo MIME ao meu script, que é uma espécie de lugar errado para ele (não elegante, mas talvez tolerável).
Então, tentei usar mail
ou mailx
, que têm uma opção -E
para ignorar o envio se não houver texto:
my-job | mail -E my.name
Isso faz praticamente o que o cron faz por padrão. Ainda não consigo descobrir qualquer maneira de definir o tipo MIME com mail / mailx! Algumas referências online dizem que é feito usando a opção -a
, mas no meu sistema (Fedora 16), mail -a
usa um nome de arquivo anexo, não uma linha de cabeçalho como Content-Type: text/html
como aparentemente faz em outros sistemas. p>
Eu não quero criar um arquivo temporário, verificar seu tamanho etc. Acho que quero um desses:
- Uma maneira de tornar o cron mail legível como HTML.
- Para fazer o sendmail pular mensagens vazias.
- Para definir um tipo MIME no mailx.
- Alguma outra abordagem usando um programa diferente que é instalado por padrão no Fedora.