I already wrote about sending mails with ssmtp, a simple alternative to sendmail. But since I got a few questions (and I tend to forget myself) how to use ssmtp’s revaliases-file, here is a short reminder:
/etc/revaliases, allows you to map a local user to a specific ‘From:’ address on outbound mail and to route that mail through a specific mailhub. But it will not rewrite the ‘To:’ address according to the local user who should receive the mail.
Usually, you would add aliases to /etc/aliases to ensure that a local user (receiving a mail) is mapped to a valid eMail address. But as the documentation clearly says (if you actually read it), ssmtp does not use /etc/aliases.
The solution turns out to be letting mail handle the alias – which is done by configuring aliases in /etc/mail.rc
set ask askcc append dot save crt ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via Delivered-To alias root root<email@example.com> alias localuser localuser<firstname.lastname@example.org>
You can test it with with:
# echo test | mail -s "testing ssmtp" localuser
The mail will actually be delivered to email@example.com (since ‘localuser’ is mapped to this address in /etc/mail.rc).