I'm running a server on AWS (ubuntu) and I need outgoing email to be able to email log files. To do this I'm using ssmtp and amazon's SES (Simple Email Service).

I have the email addresses verified and everything works fine when I run tests from the command line. The email is sent and received as expected.

The problem I'm having is with logwatch. When it runs (both from cron and by me directly), I see the follow error:

sSMTP[6890]: 554 Transaction failed: User name is missing: 'root'.

I have logwatch set up with:

MailFrom = logs@mydomain.com
MailTo = logs@mydomain.com

Both verified emails with SES.

ssmpt.conf is set up with:

#rewriteDomain=mydoman.com   # Having these uncommented doesn't help



ssmpt works find if I send email through it as a test.

Does anyone know what is happening and why it thinks the user name is missing? I can send email through ssmpt as 'root' without a issue. It's just logwatch that is causing issues.



OK, I finally figure this out.

Despite what a lot of "sites" on the internet say, you do not modify the logwatch.conf file:


Instead you need to copy this file to:


And make any changes there.

After I did this, everything works. Hopefully this will save someone else days of headache.

In retrospect, I did think it odd to be modifying a config file in /usr/share. I should have listened to my gut.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.