Rog*_*rat 4 cron amazon-web-services ssmtp
我不明白为什么我的 AWS EC2 ( Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64)
)上的 cron似乎无法通过 sSmtp 向 AWS SES 发送电子邮件。
这有效:echo "test" | ssmtp my@myemail.com
我从本地用户那里收到一封电子邮件。
这有效:echo "test" | sudo ssmtp my@myemail.com
我收到一封来自 root 的电子邮件。
但是,当 cron 运行并尝试发送电子邮件时,我什么也没有得到,这出现在 syslogs:sSMTP[14608]: 554 Transaction failed: Missing final '@domain'
或有时:554 Transaction failed: User name is missing: 'Cron Daemon <root>'
。
cron 试图以谁的身份发送电子邮件?我会认为它是root
。
/etc/crontab:
MAILTO="me@myemail.com"
Run Code Online (Sandbox Code Playgroud)
(我也试过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
Run Code Online (Sandbox Code Playgroud)
/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
Run Code Online (Sandbox Code Playgroud)
基于一些谷歌搜索,MAILFROM=
它似乎在 Ubuntu 上不起作用,更改它似乎没有任何效果(来自根 cron 和我的本地用户 cron)。
我很困惑和困惑。sSmtp 似乎没有任何调试选项来帮助了解 cron 电子邮件的来源和目的地并查看标题。
服务器是一个非常小的安装,我不想安装postfix
只是为了每天发送 10 封电子邮件(主要是日志文件)。
谢谢!
因此,afaict SES 在“from”和“to”字段中都需要一个域。
虽然MAILFROM=
在 Ubuntu 的 cron 上不受支持,但您可以FromLineOverride=NO
在 ssmtp.conf 中进行设置,并且 ssmtp 将强制“发件人”地址为“root@hostname”而不仅仅是“root”。这会处理“发件人”地址。
现在 - 您还需要确保“to”地址有一个域名(默认情况下它也只是“root”)。这可以通过向MAILTO=you@whereever.com
/etc/crontab添加一行来解决。
这解决了我的“554 Transaction failed: Missing final '@domain'”问题。我没有遇到您的“交易失败:缺少用户名:'Cron Daemon'”消息,因此我无法对此发表评论。
所有这一切的关键是Debug=YES
在 ssmtp.conf 中将一堆信息写入系统日志。
归档时间: |
|
查看次数: |
6480 次 |
最近记录: |