Cronjob: E-Mail com saída Cronjob de mailutils está vazio

1

Estou moderando meus cronjobs para alterar o remetente e o assunto dos e-mails enviados pelo cronjob. Para enviar e-mails, instalei o pacote mailutils no Ubuntu 14.04.

É assim que estou enviando meu e-mail do cronjob: 0 3 * * * /root/bin/backup.sh 2>&1 | mail -s "Slave1 Backup" -a "From:Slave1<[email protected]>" [email protected]

Fonte: Como alterar o campo "De:" para e-mails do Cron?

No entanto, isso me envia um e-mail vazio. O script de backup foi executado porque vejo que todos os arquivos estão atualizados, mas o e-mail não contém texto.

Se eu alterá-lo de volta para isso, os emails contêm toda a saída do script de backup, como eu quero: MAILTO: [email protected] 0 3 * * * /root/bin/backup.sh

O que eu tenho que mudar para que o mailutils envie a saída do cronjob?

    
por rewb0rn 24.02.2016 / 10:58

3 respostas

0

Parece que isso foi mais um problema com meu cliente de email do que com o próprio cronjob. Notei que o Thunderbird mostraria o texto do email corretamente na notificação de visualização que aparece quando você recebe um email com o Thunderbird aberto.

No entanto, ao clicar no email dentro do próprio Thunderbird, ele estava vazio e não continha nenhum texto. Então imaginei que poderia estar relacionado a um conteúdo HTML vazio. Eu poderia consertar isso alterando o parâmetro headers em mailutils para -a "Content-type: text/html;From:Slave3<[email protected]>"

    
por 07.03.2016 / 11:05
0

Cronjob parece bem, eu apenas mudei o lugar de um parâmetro no utilitário de email e ele começou a enviar e-mail com saída de script.

0 3 * * * /root/bin/backup.sh 2>&1 | mail -s "Slave1 Backup" [email protected] -a "From:Slave1<[email protected]>"
    
por 24.02.2016 / 13:48
0

Adicione o argumento -E ao comando mail , o que significa "não envie mensagens se o corpo estiver vazio".

Portanto, altere a linha do crontab para:

0 3 * * * /root/bin/backup.sh 2>&1 | mail -E -s "Slave1 Backup" -a "From:Slave1<[email protected]>" [email protected]

No meu sistema (Arch Linux), o parâmetro -a não parece alterar o endereço From: . Talvez a linha crontab precise ser alterada para isso:

0 3 * * * /root/bin/backup.sh 2>&1 | mail -E -s "Slave1 Backup" -Sfrom='Slave1 <[email protected]>' [email protected]

EDIT: Na verdade, meu executável mail vem de s- prego pacote. O argumento -E não é suportado pelo GNU mailutils , então minha solução não funciona.

Você pode usar heirloom-mailx em vez do GNU Mailutils. Instale o pacote heirloom-mailx e modifique a linha do crontab para:

 0 3 * * * /root/bin/backup.sh 2>&1 | heirloom-mailx -E -s "Slave1 Backup" -Sfrom='Slave1 <[email protected]>' [email protected]
    
por 07.03.2016 / 13:58