Adding Users and Aliases for Postfix

Tuesday Nov 9th 2010 by Joe Brockmeier

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.

More on Postfix

Postfix is a great mailer, but if you're new to administering Postfix, finding your way around can be difficult. For example, just finding information on adding users to a Postfix system can be quite a trial.

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.

Adding Users

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 /etc/postfix/vmailbox file.

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.

Otherwise, in /etc/postfix/vmailbox, add a line like:

jzb@mydomain.net mydomain.net/jzb

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.

Next, run postmap against the file (/etc/postfix/vmailbox) and postfix reload.

To add an alias, go to /etc/aliases and add the alias like so:

alias: localuser # For a local user mapping
alias2: user@remote.com # 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 jzb@zonker.net and follow him on Twitter.

Follow ServerWatch on Twitter

Mobile Site | Full Site