This section is for hosts that don't have their own Internet
hostname. Typically these are systems that get a dynamic IP address
via DHCP or via dialup. Postfix will let you send and receive mail
just fine between accounts on a machine with a fantasy name. However,
you cannot use a fantasy hostname in your email address when sending
mail into the Internet, because no-one would be able to reply to
your mail. In fact, more and more sites refuse mail addresses with
non-existent domain names.
Note: the following information is Postfix version dependent.
To find out what Postfix version you have, execute the command
"postconf
mail_version".
Solution 1: Postfix version 2.2 and later
Postfix 2.2 uses the
generic(5) address mapping to replace
local fantasy email addresses by valid Internet addresses. This
mapping happens ONLY when mail leaves the machine; not when you
send mail between users on the same machine.
The following example presents additional configuration. You
need to combine this with basic configuration information as
discussed the first half of this document.
1 /etc/postfix/
main.cf:
2
smtp_generic_maps = hash:/etc/postfix/generic
3
4 /etc/postfix/generic:
5 [email protected] [email protected]
6 [email protected] [email protected]
7 @localdomain.local [email protected]
When mail is sent to a remote host via SMTP:
-
Line 5 replaces [email protected] by his ISP
mail address,
-
Line 6 replaces [email protected] by her ISP
mail address, and
-
Line 7 replaces other local addresses by his ISP account,
with an address extension of +local (this example assumes
that the ISP supports "+" style address extensions).
Specify dbm instead of hash if your system uses
dbm files instead of db files. To find out what lookup
tables Postfix supports, use the command "postconf -m".
Execute the command "postmap /etc/postfix/generic"
whenever you change the generic table.
Solution 2: Postfix version 2.1 and earlier
The solution with older Postfix systems is to use valid
Internet addresses where possible, and to let Postfix map valid
Internet addresses to local fantasy addresses. With this, you can
send mail to the Internet and to local fantasy addresses, including
mail to local fantasy addresses that don't have a valid Internet
address of their own.
The following example presents additional configuration. You
need to combine this with basic configuration information as
discussed the first half of this document.
1 /etc/postfix/
main.cf:
2
myhostname = hostname.localdomain
3
mydomain = localdomain
4
5
canonical_maps = hash:/etc/postfix/canonical
6
7
virtual_alias_maps = hash:/etc/postfix/virtual
8
9 /etc/postfix/canonical:
10 your-login-name [email protected]
11
12 /etc/postfix/
virtual:
13 [email protected] your-login-name
Translation:
-
Lines 2-3: Substitute your fantasy hostname here. Do not
use a domain name that is already in use by real organizations
on the Internet. See
RFC 2606 for examples of domain
names that are guaranteed not to be owned by anyone.
-
Lines 5, 9, 10: This provides the mapping from
"[email protected]" to "[email protected]".
This part is required.
-
Lines 7, 12, 13: Deliver mail for "[email protected]"
locally, instead of sending it to the ISP. This part is not required
but is convenient.
Specify dbm instead of hash if your system uses
dbm files instead of db files. To find out what lookup
tables Postfix supports, use the command "postconf -m".
Execute the command "postmap /etc/postfix/canonical"
whenever you change the canonical table.
Execute the command "postmap /etc/postfix/virtual"
whenever you change the virtual table.