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 записывает кучу информации в системный журнал.