This page is about configuring the mail subsystem on a Raspberry Pi installed with RaspiOS, to be used as NAS and mediacenter. See the main index at Home Mediacenter and NAS with the Raspberry Pi.
I want a working mail system on the NAS, mainly because I want to eventually receive error messages from the various subsystems, think e.g. at the smartd daemon watching for S.M.A.R.T. hard drive errors…
In the following examples pimedianas is the hostname of my Raspberry Pi Mediacenter NAS. I istalled the postfix package and configured it as satellite system using a SMTP relay host. The relevant settings in /etc/postfix/main.cf are:
myhostname = pimedianas mydestination = $myhostname, localhost.localdomain, localhost relayhost = mail.example.org:587 default_transport = smtp relay_transport = smtp myorigin = $myhostname # Rewrite some sender addresses. sender_canonical_maps = hash:/etc/postfix/sender_canonical_maps # Relay host requires SASL authentication. smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_mechanism_filter = plain, login smtp_sasl_security_options = smtp_tls_security_level = may
The content of /etc/postfix/sender_canonical_maps will force the MAIL FROM on locally generated mails:
root pimedianas@example.org root@pimedianas pimedianas@example.org root@localhost pimedianas@example.org root@localhost.localdomain pimedianas@example.org
Write the proper info about localhost in /etc/hosts:
127.0.1.1 localhost.localdomain localhost
Finally I had to put my SMTP credentials required by the relaying server into /etc/postfix/sasl_passwd:
mail.example.org pimedianas:MyVerySecretPwd
Last but not least, I redirected all the mail for root to my real email address in /etc/aliases:
root: niccolo@example.org
Remember to compile all the files and restart the service:
postmap /etc/postfix/sasl_passwd postmap /etc/postfix/sender_canonical_maps newaliases systemctl restart postfix.service
Now all the locally generated mails addressed to root, root@pimedianas, root@localhost or root@localhost.localdomain should have the MAIL FROM rewritten as above and forwarded to the external mailbox.