ssmtp não enviará o email cron

2

Não consigo entender por que o cron no meu AWS EC2 ( Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64) ) parece não enviar e-mails via sSmtp para o AWS SES.

Isso funciona: echo "test" | ssmtp [email protected] e recebo um e-mail do meu usuário local.

Isso funciona: echo "test" | sudo ssmtp [email protected] e eu recebo um e-mail do root.

Mas, quando o cron é executado e tenta enviar um email, não recebo nada e isso aparece nos syslogs: sSMTP[14608]: 554 Transaction failed: Missing final '@domain' ou às vezes: 554 Transaction failed: User name is missing: 'Cron Daemon <root>' .

Quem é o cron tentando enviar um email como? Eu teria assumido que era root .

/ etc / crontab:

MAILTO="[email protected]"

(Eu também tentei MAILTO=root )

/ etc / ssmtp / revaliases:

root:[email protected]:email-smtp.us-east-1.amazonaws.com:465
me:[email protected]:email-smtp.us-east-1.amazonaws.com:465

/etc/ssmtp/ssmtp.conf:

[email protected]
mailhub=email-smtp.us-east-1.amazonaws.com:465
rewriteDomain=myemail.com
hostname=myemail.com
#UseSTARTTLS=YES
UseTLS=YES
AuthUser=XXXXXXXXXXXXXXXXX
AuthPass=XXXXXXXXXXXXXXXXX
AuthMethod=LOGIN
FromLineOverride=YES

Com base em alguns Googling, o MAILFROM= parece não funcionar no Ubuntu, e alterá-lo parece não ter efeito (do cron do root e do meu cron do usuário local).

Estou confuso e perplexo. O sSmtp não parece ter nenhuma opção de depuração para ajudar a entender de quem o email do cron está vindo e pesquisando os cabeçalhos.

O servidor é uma instalação mínima e eu não quero instalar postfix apenas para enviar 10 e-mails por dia (principalmente arquivos de log).

Obrigado!

    
por Roger Gilbrat 02.08.2014 / 03:27

1 resposta

5

Assim, o SES exige um domínio nos campos "de" e "para".

Embora MAILFROM= não seja suportado no cron do Ubuntu, você pode definir FromLineOverride=NO em ssmtp.conf e ssmtp forçará o endereço "de" a ser "root @ hostname" em vez de apenas "root". Isso cuida do endereço "de".

Agora, você também precisa ter certeza de que o endereço "to" tem um nome de domínio (por padrão, também é apenas "root"). Isso pode ser corrigido adicionando uma linha [email protected] ao / etc / crontab.

Isso resolveu meus problemas "554 Transaction failed: Missing final '@domain'". Eu não encontrei as mensagens "Transação falhou: nome do usuário está faltando: 'Cron Daemon'", então não posso comentar sobre isso.

O principal argumento de tudo isso é que Debug=YES no ssmtp.conf grava um monte de informações no syslog.

    
por 06.12.2014 / 21:19