Postfix is a great mailer, but if you’re new to administering it, finding your way around can be difficult. Here’s how to get started.
In part, this is because Postfix can be set up in a number of ways. Some installations use Postfix alone, others use Postfix in conjunction with other apps and store user information in MySQL. You can have users who have actual accounts on a system, or you can have users on virtual domains that don’t have a login but still receive mail. Or you might want aliases that include several users, so everybody on the “marketing” list gets mail or all folks in sales, legal or development can receive messages.
For this tip, I’ll assume that you’ve inherited a Postfix domain and want a way to add users or aliases quickly.
The simple way to add a user is to simply add a new account on the system. Postfix will handle the rest. For example, on my server running Ubuntu, I’d just use
adduser username, and Postfix would just do the right thing with regard to sending mail to that user, delivered locally.
But what if you don’t want to create a system account for the user? You should have a virtual domain set up that is not configured as a
mydestination domain. For more on this, be sure to read the Postfix guide on virtual domain hosting.
Users are then added in the form
user@domain and then either the mailbox on the system or handed off to Courier or another mail delivery program in the
However, if you don’t have a
/etc/postfix/vmailbox file, odds are your system was configured to deliver to local accounts. You should check
/etc/postfix/main.cf and look for the line
mydestination. If it includes the domain you’re adding users for, then they’re being added as regular users.
/etc/postfix/vmailbox, add a line like:
You should see some examples already. This will deliver mail to a mailbox called jzb in /var/mail/vhosts/mydomain.net — assuming your system is set up to deliver mail there. Note, you can store mail in an mdir format instead by adding a slash after the username.
postmap against the file (
To add an alias, go to
/etc/aliases and add the alias like so:
alias: localuser # For a local user mapping
alias2: firstname.lastname@example.org # For a remote user mapping
The first example adds an alias to a local user; the second will deliver mail to another domain. For example, if I want to send mail intended for “sales@” my domain to a Gmail address, I can just add my Gmail account after the alias.
If you’re new to Postfix, I strongly recommend making backups of your configuration files and settin up a test system in a virtual machine before making changes on a live mail server. Postfix isn’t too hard to use, but it can be confusing if you’re new — and a slight error can stop mail delivery to one or more users far too easily.
Joe ‘Zonker’ Brockmeier is a freelance writer and editor with more than 10 years covering IT. Formerly the openSUSE Community Manager for Novell, Brockmeier has written for Linux Magazine, Sys Admin, Linux Pro Magazine, IBM developerWorks, Linux.com, CIO.com, Linux Weekly News, ZDNet, and many other publications. You can reach Zonker at email@example.com and follow him on Twitter.