![使用 ssmtp 向 SES 发送邮件时 logwatch 出错](https://linux22.com/image/800557/%E4%BD%BF%E7%94%A8%20ssmtp%20%E5%90%91%20SES%20%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%E6%97%B6%20logwatch%20%E5%87%BA%E9%94%99.png)
我在 AWS (ubuntu) 上运行服务器,我需要外发电子邮件才能通过电子邮件发送日志文件。为此,我使用了 ssmtp 和亚马逊的 SES(简单电子邮件服务)。
我已经验证了电子邮件地址,当我从命令行运行测试时,一切正常。电子邮件按预期发送和接收。
我遇到的问题是logwatch
。当它运行时(从 cron 和我直接运行),我看到以下错误:
sSMTP[6890]: 554 Transaction failed: User name is missing: 'root'.
我已经logwatch
设置了:
MailFrom = [email protected]
MailTo = [email protected]
两封电子邮件均已通过 SES 验证。
ssmpt.conf
设置如下:
[email protected]
mailhub=email-smtp.us-east-1.amazonaws.com:465
#rewriteDomain=mydoman.com # Having these uncommented doesn't help
#hostname=mydomain.com
UseTLS=YES
AuthUser=XXXXX
AuthPass=XXXXX
AuthMethod=LOGIN
FromLineOverride=YES
revaliases
:
root:[email protected]:email-smtp.us-east-1.amazonaws.com:465
logs:[email protected]:email-smtp.us-east-1.amazonaws.com:465
如果我通过它发送电子邮件作为测试,ssmpt 就会起作用。
有人知道发生了什么,以及为什么它认为用户名缺失吗?我可以通过 ssmpt 以“root”身份发送电子邮件,没有任何问题。只是logwatch
这导致了问题。
谢谢
答案1
好的,我终于明白了。
尽管互联网上有很多“网站”这么说,但您不需要修改 logwatch.conf 文件:
/usr/share/logwatch/default.conf/logwatch.conf
相反,您需要将此文件复制到:
/etc/logwatch/conf/logwatch.conf
并在那里做出任何更改。
在我这样做之后,一切都正常了。希望这能为其他人省去几天的麻烦。
现在回想起来,我确实觉得修改配置文件很奇怪/usr/share
。我应该听从自己的直觉。