Get postfix to forward root's mail
Solution 1:
As ususal, check your logs.
In your case, the postfix daemon thinks the mail is not for it and sends it without using /etc/aliases
First check your /etc/hosts
file : it should have your machine name corresponding to 127.0.1.1
, like this:
127.0.1.1 linux1.mydomain.com linux1
Check your /etc/mailname
too, and it should be consistent.
Check your /etc/aliases
to see if root (user) is sent to another user, and redo the newaliases
command.
And it should work!
Solution 2:
If mydestination
is empty or does not contain $myhostname
then the /etc/aliases
will be ignored because postfix thinks the email is not a local delivery and will therefore not apply the local aliases. So, leave mydestination
at the default (postconf -d mydestination
or remove it from main.cf
) and the logs should show the to=<...>
as your aliased address.
Solution 3:
In some circumstances, (i.e. where all mail gets relayed to an external system), it's easier to just set the MAILTO
variable in root's crontab to a real email address. This should pretty much bypass traditional delivery to root and just make it go where you want.
# Root's crontab
[email protected]
0 0 * * * /usr/bin/somescript