DISCLAIMER: USE AT YOUR OWN RISK. EVERY COMPUTER SYSTEM IS DIFFERENT, AND WHAT WORKED FOR ME MAY NOT WORK FOR YOU. RELEVANT PREREQUISITE KNOWLEDGE IS ASSUMED (BASIC UNIX SKILLS). SOFTWARE CAN CHANGE SIGNIFICANTLY BETWEEN VERSIONS. ALWAYS PROCEED WITH CAUTION, AND READ ALL AVAILABLE DOCUMENTATION.Back to all guides
postfix is an excellent MTA by Wietse Venema, and has been my choice for years. I have heard some people say that virtual domains are difficult to set up in postfix, but this is certainly no longer the case. The entire process takes less than 5 minutes, as demonstrated in the steps below. I will assume that your postfix configuration directory is /etc/postfix and your postfix version is around 2.0.141. Edit /etc/postfix/virtual
This is a plaintext file where you can specify the domains and users to accept mail for. Each virtual domain should begin with a single line containing the domain name. The subsequent lines define addresses at the domain that are deliverable. Mail will be delivered to local usernames on the right side, as demonstrated in the example below. The condition @domain allows you to deliver "all other" mail to the indicated user. You can list multiple domains in this file; just repeat the format demonstrated below.
example.com this-text-is-ignored email@example.com postmaster firstname.lastname@example.org destuser1 email@example.com destuser2 @example.com destuser1
2. Edit /etc/postfix/main.cf
You have to tell postfix where to look for these virtual alias mappings; the appropriate configuration directive is in the main postfix configuration file. This tells postfix to use the db-format (hash) version of your virtual mappings. Note that your system must have db support for this to work; also, the actual db file is not created until you run 'postmap' in step 3.
virtual_alias_maps = hash:/etc/postfix/virtual
3. Refresh configuration and mappings
Since you've changed main.cf, you should restart the daemon. The second command below updates the virtual mappings; you must run this 'postmap' command when you change your /etc/postfix/virtual file. The 'postmap' command actually creates the hash db file that postfix looks for.
postfix reload postmap /etc/postfix/virtual
Now try delivering mail to virtual domain addresses. If you encounter problems, check your mailer daemon system log and make sure your server configuration has been refreshed with 'postfix reload' and the 'postmap' commands.
Copyright (C) 2003-2005 SysDesign