ssmtp не будет отправлять электронное письмо cron

Я не могу понять, почему Cron на моем AWS EC2 (Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64)) кажется, не может отправить электронную почту через sSmtp в AWS SES.

Это работает: echo "test" | ssmtp my@myemail.com и я получаю письмо от моего локального пользователя.

Это работает: echo "test" | sudo ssmtp my@myemail.com и я получаю письмо от root.

Но когда cron запускается и пытается отправить электронное письмо, я ничего не получаю, и это появляется в системных журналах: sSMTP[14608]: 554 Transaction failed: Missing final '@domain' или иногда: 554 Transaction failed: User name is missing: 'Cron Daemon <root>',

Кто пытается отправить электронное письмо как? Я бы предположил, что это было root,

/ И т.д. / кронтаб:

MAILTO="me@myemail.com"

(Я тоже пробовал MAILTO=root)

/ и т.д. / SSMTP / revaliases:

root:me@myemail.com:email-smtp.us-east-1.amazonaws.com:465
me:me@myemail.com:email-smtp.us-east-1.amazonaws.com:465

/etc/ssmtp/ssmtp.conf:

root=me@myemail.com
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

Основываясь на некоторых Google, MAILFROM= похоже, не работает на Ubuntu, и изменение этого, похоже, не имеет никакого эффекта (от корня cron и моего локального пользователя cron).

Я в замешательстве и растерянности. Похоже, в sSmtp нет опций отладки, которые бы помогли понять, откуда поступает электронная почта cron, и посмотреть на заголовки.

Сервер очень минимальная установка, и я не хочу устанавливать postfix просто чтобы отправлять 10 писем в день (в основном файлы журналов).

Спасибо!

1 ответ

Таким образом, для afaict SES требуется домен в полях "from" и "to".

В то время как MAILFROM= не поддерживается в cron Ubuntu, вы можете установить FromLineOverride=NO в ssmtp.conf, и ssmtp заставит адрес "from" быть "root@hostname" вместо просто "root". Это заботится о "от" адреса.

Теперь - вам также нужно убедиться, что адрес "to" имеет доменное имя (по умолчанию это также просто "root"). Это можно исправить, добавив MAILTO=you@whereever.com строка в /etc/crontab.

Это решило мою "554 транзакцию не удалось: пропущены последние проблемы с @domain". Я не сталкивался с вашими сообщениями "Сбой транзакции: отсутствует имя пользователя:" Cron Daemon "", поэтому я не могу комментировать это.

Ключевым выводом всего этого является то, что Debug=YES в ssmtp.conf записывает кучу информации в системный журнал.

Другие вопросы по тегам