Назад | Перейти на главную страницу

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>'.

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

/ и т.д. / crontab:

MAILTO="me@myemail.com"

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

/ etc / 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 писем в день (в основном файлы журналов).

Спасибо!

Таким образом, afaict SES требует наличия домена в полях «от» и «до».

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

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

Это решило мои проблемы «Ошибка транзакции 554: отсутствует последний '@domain'». Я не сталкивался с вашими сообщениями «Transaction failed: User name is missing: 'Cron Daemon'», поэтому я не могу это комментировать.

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