Postfix Local Mail
The goal of this article is to setup Postfix for local mailbox delivery only. See: Postfix for a virtual mail delivery configuration.
Step 1: Edit /etc/postfix/main.cf
The only things you need to change are as follows. Uncomment them and modify them to the specifics listed below. Everything else can be left as installed by pacman.
inet_interfaces = loopback-only mynetworks_style = host append_dot_mydomain = no default_transport = error: Local delivery only!
If you want to control where the mail gets delivered and which mailbox format is to be used, you can do this by setting
home_mailbox = /some/path
mail_spool_directory is an absolute path where all mail goes, while home_mailbox specifies a mailbox relative to the user's home directory. If the path ends with a slash ('/'), messages are stored in Maildir format (directory tree, one message per file); if it doesn't, the mbox format is used (all mail in one file).
mail_spool_directory = /var/mail (1) home_mailbox = Maildir/ (2)
1) All mail will be stored in /var/mail, mbox format
2) Mail will be saved in ~/Maildir, Maildir format
Step 2: Edit /etc/postfix/aliases
Namely, put a username in for the the following, substituting the correct username you desire (actual system account required) for USER
# Person who should get root's mail. Don't receive mail as root! root: USER
Run the following command as root. This creates the map file that postfix understands.
In addition, create the file .forward in /root.
In it, specify the user to whom root mail should be forwarded, e.g. user@localhost.
Step 3: Start the daemon
If postfix check returns no errors, then enable and start the daemon.
# systemctl enable postfix.service # systemctl start postfix.service
Check /var/log/mail.log for any errors.
Step 4: Test
Try sending an email. Even from yourself to yourself should be a good test.
mail -s test user this is a test email. .
Now check your mail using whatever client you desire.
Step 5: Test some more!
Make sure root mail forwards to the desired user; use the same test as above, but substitute root for user.