Postfix/Exim sender address rewriting (was: Postfix ... ComCast port 587)

Alan Johnson alan at datdec.com
Wed Jan 21 10:54:11 EST 2009


On Wed, Jan 21, 2009 at 10:02 AM, Ben Scott <dragonhawk at gmail.com> wrote:

>  The goal here is to configure one's MTA (Mail Transfer Agent) such
> that mail from a local-only email address gets rewritten to an valid
> public Internet email address.
>
...

> How does one do this in Postfix and/or Exim?
>

>From the Webmin help for "Canonical Mapping" (install
webmin<http://webmin.com/>to make it easy):

The optional canonical file specifies an address mapping for local and
non-local addresses. The mapping is used by the cleanup(8) daemon. The
address mapping is recursive.

The file serves as input to the postmap(1) command. The result, an indexed
file in dbm or db format, is used for fast searching by the mail system.

The canonical mapping affects both message header addresses (i.e. addresses
that appear inside messages) and message envelope addresses (for example,
the addresses that are used in SMTP protocol commands). Think Sendmail rule
set S3, if you like.

Typically, one would use the canonical table to replace login names by
Firstname.Lastname, or to clean up addresses produced by legacy mail
systems.

The canonical mapping is not to be confused with virtual domain support. Use
the virtual domain
<https://mail.datdec.com:3748/help.cgi/postfix/virtual>map for that
purpose.

The canonical mapping is not to be confused with local aliasing. Use the mail
aliases <https://mail.datdec.com:3748/help.cgi/postfix/aliases> map for that
purpose.

The format of the canonical mappings is as follows, mappings being tried in
the order as listed:

   - *user at domain* mapped to... *address*:
   user at domain is replaced by address This form has the highest precedence.
   This form useful to clean up addresses produced by legacy mail systems. It
   can also be used to produce Firstname.Lastname style addresses, but see
   below for a simpler solution.
   - *user* mapped to...*address*:
   user at site is replaced by address when site is equal to $myorigin, when
   site is listed in $mydestination, or when it is listed in
   $inet_interfaces. This form is useful for replacing login names by
   Firstname.Lastname.
   - *@domain* mapped to...*address*:
   Every address in domain is replaced by address. This form has the lowest
   precedence.

In all the above forms, when address has the form @otherdomain, the result
is the same user in otherdomain.

ADDRESS EXTENSION: When table lookup fails, and the address localpart
contains the optional recipient delimiter (e.g., user+foo at domain), the
search is repeated for the unextended address (e.g. user at domain), and the
unmatched extension is propagated to the result of table lookup. The
matching order is: user+foo at domain, user at domain, user+foo, user, and @domain
.

Enjoy!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.gnhlug.org/mailman/private/gnhlug-discuss/attachments/20090121/8504308b/attachment.html 


More information about the gnhlug-discuss mailing list