head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC4:1.1.1.3.6.1
	PFIX-3-11-2:1.1.1.4
	netbsd-11-0-RC3:1.1.1.3
	netbsd-11-0-RC2:1.1.1.3
	netbsd-11-0-RC1:1.1.1.3
	perseant-exfatfs-base-20250801:1.1.1.3
	netbsd-11:1.1.1.3.0.6
	netbsd-11-base:1.1.1.3
	PFIX-3-10-1:1.1.1.3
	netbsd-10-1-RELEASE:1.1.1.3
	perseant-exfatfs-base-20240630:1.1.1.3
	perseant-exfatfs:1.1.1.3.0.4
	perseant-exfatfs-base:1.1.1.3
	netbsd-8-3-RELEASE:1.1.1.2
	netbsd-9-4-RELEASE:1.1.1.2.28.1
	netbsd-10-0-RELEASE:1.1.1.3
	netbsd-10-0-RC6:1.1.1.3
	netbsd-10-0-RC5:1.1.1.3
	netbsd-10-0-RC4:1.1.1.3
	netbsd-10-0-RC3:1.1.1.3
	netbsd-10-0-RC2:1.1.1.3
	PFIX-3-8-4:1.1.1.3
	netbsd-10-0-RC1:1.1.1.3
	netbsd-10:1.1.1.3.0.2
	netbsd-10-base:1.1.1.3
	PFIX-3-7-3:1.1.1.3
	netbsd-9-3-RELEASE:1.1.1.2
	cjep_sun2x-base1:1.1.1.2
	cjep_sun2x:1.1.1.2.0.34
	cjep_sun2x-base:1.1.1.2
	cjep_staticlib_x-base1:1.1.1.2
	netbsd-9-2-RELEASE:1.1.1.2
	cjep_staticlib_x:1.1.1.2.0.32
	cjep_staticlib_x-base:1.1.1.2
	netbsd-9-1-RELEASE:1.1.1.2
	PFIX-3-5-2:1.1.1.2
	phil-wifi-20200421:1.1.1.2
	phil-wifi-20200411:1.1.1.2
	is-mlppp:1.1.1.2.0.30
	is-mlppp-base:1.1.1.2
	phil-wifi-20200406:1.1.1.2
	netbsd-8-2-RELEASE:1.1.1.2
	PFIX-3-5-0:1.1.1.2
	netbsd-9-0-RELEASE:1.1.1.2
	netbsd-9-0-RC2:1.1.1.2
	netbsd-9-0-RC1:1.1.1.2
	phil-wifi-20191119:1.1.1.2
	netbsd-9:1.1.1.2.0.28
	netbsd-9-base:1.1.1.2
	phil-wifi-20190609:1.1.1.2
	netbsd-8-1-RELEASE:1.1.1.2
	netbsd-8-1-RC1:1.1.1.2
	pgoyette-compat-merge-20190127:1.1.1.2
	pgoyette-compat-20190127:1.1.1.2
	pgoyette-compat-20190118:1.1.1.2
	pgoyette-compat-1226:1.1.1.2
	pgoyette-compat-1126:1.1.1.2
	pgoyette-compat-1020:1.1.1.2
	pgoyette-compat-0930:1.1.1.2
	pgoyette-compat-0906:1.1.1.2
	netbsd-7-2-RELEASE:1.1.1.2
	pgoyette-compat-0728:1.1.1.2
	netbsd-8-0-RELEASE:1.1.1.2
	phil-wifi:1.1.1.2.0.26
	phil-wifi-base:1.1.1.2
	pgoyette-compat-0625:1.1.1.2
	netbsd-8-0-RC2:1.1.1.2
	pgoyette-compat-0521:1.1.1.2
	pgoyette-compat-0502:1.1.1.2
	pgoyette-compat-0422:1.1.1.2
	netbsd-8-0-RC1:1.1.1.2
	pgoyette-compat-0415:1.1.1.2
	pgoyette-compat-0407:1.1.1.2
	pgoyette-compat-0330:1.1.1.2
	pgoyette-compat-0322:1.1.1.2
	pgoyette-compat-0315:1.1.1.2
	netbsd-7-1-2-RELEASE:1.1.1.2
	pgoyette-compat:1.1.1.2.0.24
	pgoyette-compat-base:1.1.1.2
	netbsd-7-1-1-RELEASE:1.1.1.2
	matt-nb8-mediatek:1.1.1.2.0.22
	matt-nb8-mediatek-base:1.1.1.2
	perseant-stdc-iso10646:1.1.1.2.0.20
	perseant-stdc-iso10646-base:1.1.1.2
	netbsd-8:1.1.1.2.0.18
	netbsd-8-base:1.1.1.2
	prg-localcount2-base3:1.1.1.2
	prg-localcount2-base2:1.1.1.2
	prg-localcount2-base1:1.1.1.2
	prg-localcount2:1.1.1.2.0.16
	prg-localcount2-base:1.1.1.2
	pgoyette-localcount-20170426:1.1.1.2
	bouyer-socketcan-base1:1.1.1.2
	pgoyette-localcount-20170320:1.1.1.2
	netbsd-7-1:1.1.1.2.0.14
	netbsd-7-1-RELEASE:1.1.1.2
	netbsd-7-1-RC2:1.1.1.2
	PFIX-3-1-4:1.1.1.2
	netbsd-7-nhusb-base-20170116:1.1.1.2
	bouyer-socketcan:1.1.1.2.0.12
	bouyer-socketcan-base:1.1.1.2
	pgoyette-localcount-20170107:1.1.1.2
	netbsd-7-1-RC1:1.1.1.2
	pgoyette-localcount-20161104:1.1.1.2
	netbsd-7-0-2-RELEASE:1.1.1.2
	localcount-20160914:1.1.1.2
	netbsd-7-nhusb:1.1.1.2.0.10
	netbsd-7-nhusb-base:1.1.1.2
	pgoyette-localcount-20160806:1.1.1.2
	pgoyette-localcount-20160726:1.1.1.2
	pgoyette-localcount:1.1.1.2.0.8
	pgoyette-localcount-base:1.1.1.2
	netbsd-7-0-1-RELEASE:1.1.1.2
	netbsd-7-0:1.1.1.2.0.6
	netbsd-7-0-RELEASE:1.1.1.2
	PFIX-2-11-6:1.1.1.2
	netbsd-7-0-RC3:1.1.1.2
	netbsd-7-0-RC2:1.1.1.2
	netbsd-7-0-RC1:1.1.1.2
	PFIX-2-11-4:1.1.1.2
	PFIX-2-11-3:1.1.1.2
	netbsd-5-2-3-RELEASE:1.1.1.1.2.2
	netbsd-5-1-5-RELEASE:1.1.1.1.2.2
	netbsd-6-0-6-RELEASE:1.1.1.1
	netbsd-6-1-5-RELEASE:1.1.1.1
	netbsd-7:1.1.1.2.0.4
	netbsd-7-base:1.1.1.2
	PFIX-2-11-1:1.1.1.2
	yamt-pagecache-base9:1.1.1.2
	yamt-pagecache-tag8:1.1.1.1
	netbsd-6-1-4-RELEASE:1.1.1.1
	netbsd-6-0-5-RELEASE:1.1.1.1
	tls-earlyentropy:1.1.1.2.0.2
	tls-earlyentropy-base:1.1.1.2
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.2
	riastradh-drm2-base3:1.1.1.2
	PFIX-2-10-3:1.1.1.2
	netbsd-6-1-3-RELEASE:1.1.1.1
	netbsd-6-0-4-RELEASE:1.1.1.1
	netbsd-5-2-2-RELEASE:1.1.1.1.2.2
	netbsd-5-1-4-RELEASE:1.1.1.1.2.2
	netbsd-6-1-2-RELEASE:1.1.1.1
	netbsd-6-0-3-RELEASE:1.1.1.1
	PFIX-2-10-2:1.1.1.2
	netbsd-5-2-1-RELEASE:1.1.1.1.2.2
	netbsd-5-1-3-RELEASE:1.1.1.1.2.2
	PFIX-2-9-7:1.1.1.1
	netbsd-6-1-1-RELEASE:1.1.1.1
	riastradh-drm2-base2:1.1.1.1
	riastradh-drm2-base1:1.1.1.1
	riastradh-drm2:1.1.1.1.0.20
	riastradh-drm2-base:1.1.1.1
	netbsd-6-1:1.1.1.1.0.24
	netbsd-6-0-2-RELEASE:1.1.1.1
	netbsd-6-1-RELEASE:1.1.1.1
	netbsd-6-1-RC4:1.1.1.1
	netbsd-6-1-RC3:1.1.1.1
	agc-symver:1.1.1.1.0.22
	agc-symver-base:1.1.1.1
	netbsd-6-1-RC2:1.1.1.1
	netbsd-6-1-RC1:1.1.1.1
	yamt-pagecache-base8:1.1.1.1
	PFIX-2-9-5:1.1.1.1
	netbsd-5-2:1.1.1.1.2.2.0.6
	PFIX-2-8-13:1.1.1.1
	netbsd-6-0-1-RELEASE:1.1.1.1
	yamt-pagecache-base7:1.1.1.1
	netbsd-5-2-RELEASE:1.1.1.1.2.2
	netbsd-5-2-RC1:1.1.1.1.2.2
	matt-nb6-plus-nbase:1.1.1.1
	yamt-pagecache-base6:1.1.1.1
	netbsd-6-0:1.1.1.1.0.18
	netbsd-6-0-RELEASE:1.1.1.1
	netbsd-6-0-RC2:1.1.1.1
	tls-maxphys:1.1.1.1.0.16
	tls-maxphys-base:1.1.1.2
	matt-nb6-plus:1.1.1.1.0.14
	matt-nb6-plus-base:1.1.1.1
	netbsd-6-0-RC1:1.1.1.1
	PFIX-2-8-12:1.1.1.1
	PFIX-2-8-11:1.1.1.1
	yamt-pagecache-base5:1.1.1.1
	yamt-pagecache-base4:1.1.1.1
	PFIX-2-8-8:1.1.1.1
	netbsd-6:1.1.1.1.0.12
	netbsd-6-base:1.1.1.1
	netbsd-5-1-2-RELEASE:1.1.1.1.2.2
	netbsd-5-1-1-RELEASE:1.1.1.1.2.2
	yamt-pagecache-base3:1.1.1.1
	PFIX-2-8-7:1.1.1.1
	yamt-pagecache-base2:1.1.1.1
	yamt-pagecache:1.1.1.1.0.10
	yamt-pagecache-base:1.1.1.1
	PFIX-2-8-6:1.1.1.1
	PFIX-2-8-5:1.1.1.1
	PFIX-2-8-4:1.1.1.1
	cherry-xenmp:1.1.1.1.0.8
	cherry-xenmp-base:1.1.1.1
	PFIX-2-8-3:1.1.1.1
	PFIX-2-8-2:1.1.1.1
	PFIX-2-8-1:1.1.1.1
	bouyer-quota2-nbase:1.1.1.1
	bouyer-quota2:1.1.1.1.0.6
	bouyer-quota2-base:1.1.1.1
	matt-mips64-premerge-20101231:1.1.1.1
	matt-nb5-mips64-premerge-20101231:1.1.1.1.4.2
	matt-nb5-pq3:1.1.1.1.2.2.0.4
	matt-nb5-pq3-base:1.1.1.1.2.2
	PFIX-2-7-2:1.1.1.1
	netbsd-5-1:1.1.1.1.2.2.0.2
	netbsd-5-1-RELEASE:1.1.1.1.2.2
	netbsd-5-1-RC4:1.1.1.1.2.2
	matt-nb5-mips64-k15:1.1.1.1.4.2
	PFIX-2-7-1:1.1.1.1
	netbsd-5-1-RC3:1.1.1.1.2.2
	netbsd-5-1-RC2:1.1.1.1.2.2
	netbsd-5-1-RC1:1.1.1.1.2.2
	matt-nb5-mips64:1.1.1.1.0.4
	PFIX-2-6-6:1.1.1.1
	matt-premerge-20091211:1.1.1.1
	netbsd-5:1.1.1.1.0.2
	PFIX-2-6-5:1.1.1.1
	PFIX-2-6-2:1.1.1.1
	VENEMA:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2009.06.23.10.08.22;	author tron;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2009.06.23.10.08.22;	author tron;	state Exp;
branches
	1.1.1.1.2.1
	1.1.1.1.4.1
	1.1.1.1.10.1
	1.1.1.1.16.1;
next	1.1.1.2;

1.1.1.2
date	2013.09.25.19.06.20;	author tron;	state Exp;
branches
	1.1.1.2.28.1;
next	1.1.1.3;
commitid	WQnWePIKINywUQ6x;

1.1.1.3
date	2022.10.08.16.09.00;	author christos;	state Exp;
branches
	1.1.1.3.6.1;
next	1.1.1.4;
commitid	kRUbAM0nqDWDQVWD;

1.1.1.4
date	2026.05.09.18.39.09;	author christos;	state Exp;
branches;
next	;
commitid	mtbvlXzNqJaszaFG;

1.1.1.1.2.1
date	2009.06.23.10.08.22;	author snj;	state dead;
branches;
next	1.1.1.1.2.2;

1.1.1.1.2.2
date	2009.09.15.06.02.09;	author snj;	state Exp;
branches;
next	;

1.1.1.1.4.1
date	2009.06.23.10.08.22;	author matt;	state dead;
branches;
next	1.1.1.1.4.2;

1.1.1.1.4.2
date	2010.04.21.05.23.26;	author matt;	state Exp;
branches;
next	;

1.1.1.1.10.1
date	2014.05.22.14.08.01;	author yamt;	state Exp;
branches;
next	;
commitid	cuVqdlp1QcvUzxBx;

1.1.1.1.16.1
date	2014.08.19.23.59.40;	author tls;	state Exp;
branches;
next	;
commitid	jTnpym9Qu0o4R1Nx;

1.1.1.2.28.1
date	2023.12.25.12.54.32;	author martin;	state Exp;
branches;
next	;
commitid	yzNdlh5ioUjfxQRE;

1.1.1.3.6.1
date	2026.05.11.17.13.36;	author martin;	state Exp;
branches;
next	;
commitid	2QeqaJm8KrXk4qFG;


desc
@@


1.1
log
@Initial revision
@
text
@PPoossttffiixx VViirrttuuaall DDoommaaiinn HHoossttiinngg HHoowwttoo

-------------------------------------------------------------------------------

PPuurrppoossee ooff tthhiiss ddooccuummeenntt

This document requires Postfix version 2.0 or later.

This document gives an overview of how Postfix can be used for hosting multiple
Internet domains, both for final delivery on the machine itself and for the
purpose of forwarding to destinations elsewhere.

The text not only describes delivery mechanisms that are built into Postfix,
but also gives pointers for using non-Postfix mail delivery software.

The following topics are covered:

  * Canonical versus hosted versus other domains
  * Local files versus network databases
  * As simple as can be: shared domains, UNIX system accounts
  * Postfix virtual ALIAS example: separate domains, UNIX system accounts
  * Postfix virtual MAILBOX example: separate domains, non-UNIX accounts
  * Non-Postfix mailbox store: separate domains, non-UNIX accounts
  * Mail forwarding domains
  * Mailing lists
  * Autoreplies

CCaannoonniiccaall vveerrssuuss hhoosstteedd vveerrssuuss ootthheerr ddoommaaiinnss

Most Postfix systems are ffiinnaall ddeessttiinnaattiioonn for only a few domain names. These
include the hostnames and [the IP addresses] of the machine that Postfix runs
on, and sometimes also include the parent domain of the hostname. The remainder
of this document will refer to these domains as the canonical domains. They are
usually implemented with the Postfix local domain address class, as defined in
the ADDRESS_CLASS_README file.

Besides the canonical domains, Postfix can be configured to be ffiinnaall
ddeessttiinnaattiioonn for any number of additional domains. These domains are called
hosted, because they are not directly associated with the name of the machine
itself. Hosted domains are usually implemented with the virtual alias domain
address class and/or with the virtual mailbox domain address class, as defined
in the ADDRESS_CLASS_README file.

But wait! There is more. Postfix can be configured as a backup MX host for
other domains. In this case Postfix is nnoott tthhee ffiinnaall ddeessttiinnaattiioonn for those
domains. It merely queues the mail when the primary MX host is down, and
forwards the mail when the primary MX host becomes available. This function is
implemented with the relay domain address class, as defined in the
ADDRESS_CLASS_README file.

Finally, Postfix can be configured as a transit host for sending mail across
the internet. Obviously, Postfix is not final destination for such mail. This
function is available only for authorized clients and/or users, and is
implemented by the default domain address class, as defined in the
ADDRESS_CLASS_README file.

LLooccaall ffiilleess vveerrssuuss nneettwwoorrkk ddaattaabbaasseess

The examples in this text use table lookups from local files such as DBM or
Berkeley DB. These are easy to debug with the ppoossttmmaapp command:

    Example: postmap -q info@@example.com hash:/etc/postfix/virtual

See the documentation in LDAP_README, MYSQL_README and PGSQL_README for how to
replace local files by databases. The reader is strongly advised to make the
system work with local files before migrating to network databases, and to use
the ppoossttmmaapp command to verify that network database lookups produce the exact
same results as local file lookup.

    Example: postmap -q info@@example.com ldap:/etc/postfix/virtual.cf

AAss ssiimmppllee aass ccaann bbee:: sshhaarreedd ddoommaaiinnss,, UUNNIIXX ssyysstteemm aaccccoouunnttss

The simplest method to host an additional domain is to add the domain name to
the domains listed in the Postfix mydestination configuration parameter, and to
add the user names to the UNIX password file.

This approach makes no distinction between canonical and hosted domains. Each
username can receive mail in every domain.

In the examples we will use "example.com" as the domain that is being hosted on
the local Postfix machine.

    /etc/postfix/main.cf:
        mydestination = $myhostname localhost.$mydomain ... example.com

The limitations of this approach are:

  * A total lack of separation: mail for info@@my.host.name is delivered to the
    same UNIX system account as mail for info@@example.com.
  * With users in the UNIX password file, administration of large numbers of
    users becomes inconvenient.

The examples that follow provide solutions for both limitations.

PPoossttffiixx vviirrttuuaall AALLIIAASS eexxaammppllee:: sseeppaarraattee ddoommaaiinnss,, UUNNIIXX ssyysstteemm aaccccoouunnttss

With the approach described in this section, every hosted domain can have its
own info etc. email address. However, it still uses UNIX system accounts for
local mailbox deliveries.

With virtual alias domains, each hosted address is aliased to a local UNIX
system account or to a remote address. The example below shows how to use this
mechanism for the example.com domain.

     1 /etc/postfix/main.cf:
     2     virtual_alias_domains = example.com ...other hosted domains...
     3     virtual_alias_maps = hash:/etc/postfix/virtual
     4
     5 /etc/postfix/virtual:
     6     postmaster@@example.com postmaster
     7     info@@example.com       joe
     8     sales@@example.com      jane
     9     # Uncomment entry below to implement a catch-all address
    10     # @@example.com         jim
    11     ...virtual aliases for more domains...

Notes:

  * Line 2: the virtual_alias_domains setting tells Postfix that example.com is
    a so-called virtual alias domain. If you omit this setting then Postfix
    will reject mail (relay access denied) or will not be able to deliver it
    (mail for example.com loops back to myself).

    NEVER list a virtual alias domain name as a mydestination domain!

  * Lines 3-8: the /etc/postfix/virtual file contains the virtual aliases. With
    the example above, mail for postmaster@@example.com goes to the local
    postmaster, while mail for info@@example.com goes to the UNIX account joe,
    and mail for sales@@example.com goes to the UNIX account jane. Mail for all
    other addresses in example.com is rejected with the error message "User
    unknown".

  * Line 10: the commented out entry (text after #) shows how one would
    implement a catch-all virtual alias that receives mail for every
    example.com address not listed in the virtual alias file. This is not
    without risk. Spammers nowadays try to send mail from (or mail to) every
    possible name that they can think of. A catch-all mailbox is likely to
    receive many spam messages, and many bounces for spam messages that were
    sent in the name of anything@@example.com.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

Note: virtual aliases can resolve to a local address or to a remote address, or
both. They don't have to resolve to UNIX system accounts on your machine.

More details about the virtual alias file are given in the virtual(5) manual
page, including multiple addresses on the right-hand side.

Virtual aliasing solves one problem: it allows each domain to have its own info
mail address. But there still is one drawback: each virtual address is aliased
to a UNIX system account. As you add more virtual addresses you also add more
UNIX system accounts. The next section eliminates this problem.

PPoossttffiixx vviirrttuuaall MMAAIILLBBOOXX eexxaammppllee:: sseeppaarraattee ddoommaaiinnss,, nnoonn--UUNNIIXX aaccccoouunnttss

As a system hosts more and more domains and users, it becomes less desirable to
give every user their own UNIX system account.

With the Postfix virtual(8) mailbox delivery agent, every recipient address can
have its own virtual mailbox. Unlike virtual alias domains, virtual mailbox
domains do not need the clumsy translation from each recipient addresses into a
different address, and owners of a virtual mailbox address do not need to have
a UNIX system account.

The Postfix virtual(8) mailbox delivery agent looks up the user mailbox
pathname, uid and gid via separate tables that are searched with the
recipient's mail address. Maildir style delivery is turned on by terminating
the mailbox pathname with "/".

If you find the idea of multiple tables bothersome, remember that you can
migrate the information (once it works), to an SQL database. If you take that
route, be sure to review the "local files versus databases" section at the top
of this document.

Here is an example of a virtual mailbox domain "example.com":

     1 /etc/postfix/main.cf:
     2     virtual_mailbox_domains = example.com ...more domains...
     3     virtual_mailbox_base = /var/mail/vhosts
     4     virtual_mailbox_maps = hash:/etc/postfix/vmailbox
     5     virtual_minimum_uid = 100
     6     virtual_uid_maps = static:5000
     7     virtual_gid_maps = static:5000
     8     virtual_alias_maps = hash:/etc/postfix/virtual
     9
    10 /etc/postfix/vmailbox:
    11     info@@example.com    example.com/info
    12     sales@@example.com   example.com/sales/
    13     # Comment out the entry below to implement a catch-all.
    14     # @@example.com      example.com/catchall
    15     ...virtual mailboxes for more domains...
    16
    17 /etc/postfix/virtual:
    18     postmaster@@example.com postmaster

Notes:

  * Line 2: The virtual_mailbox_domains setting tells Postfix that example.com
    is a so-called virtual mailbox domain. If you omit this setting then
    Postfix will reject mail (relay access denied) or will not be able to
    deliver it (mail for example.com loops back to myself).

    NEVER list a virtual MAILBOX domain name as a mydestination domain!

    NEVER list a virtual MAILBOX domain name as a virtual ALIAS domain!

  * Line 3: The virtual_mailbox_base parameter specifies a prefix for all
    virtual mailbox pathnames. This is a safety mechanism in case someone makes
    a mistake. It prevents mail from being delivered all over the file system.

  * Lines 4, 10-15: The virtual_mailbox_maps parameter specifies the lookup
    table with mailbox (or maildir) pathnames, indexed by the virtual mail
    address. In this example, mail for info@@example.com goes to the mailbox at
    /var/mail/vhosts/example.com/info while mail for sales@@example.com goes to
    the maildir located at /var/mail/vhosts/example.com/sales/.

  * Line 5: The virtual_minimum_uid specifies a lower bound on the mailbox or
    maildir owner's UID. This is a safety mechanism in case someone makes a
    mistake. It prevents mail from being written to sensitive files.

  * Lines 6, 7: The virtual_uid_maps and virtual_gid_maps parameters specify
    that all the virtual mailboxes are owned by a fixed uid and gid 5000. If
    this is not what you want, specify lookup tables that are searched by the
    recipient's mail address.

  * Line 14: The commented out entry (text after #) shows how one would
    implement a catch-all virtual mailbox address. Be prepared to receive a lot
    of spam, as well as bounced spam that was sent in the name of
    anything@@example.com.

    NEVER put a virtual MAILBOX wild-card in the virtual ALIAS file!!

  * Lines 8, 17, 18: As you see, it is possible to mix virtual aliases with
    virtual mailboxes. We use this feature to redirect mail for example.com's
    postmaster address to the local postmaster. You can use the same mechanism
    to redirect an address to a remote address.

  * Line 18: This example assumes that in main.cf, $myorigin is listed under
    the mydestination parameter setting. If that is not the case, specify an
    explicit domain name on the right-hand side of the virtual alias table
    entries or else mail will go to the wrong domain.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, execute "ppoossttmmaapp //eettcc//ppoossttffiixx//vvmmaaiillbbooxx" after changing the vmailbox file,
and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

Note: mail delivery happens with the recipient's UID/GID privileges specified
with virtual_uid_maps and virtual_gid_maps. Postfix 2.0 and earlier will not
create mailDIRs in world-writable parent directories; you must create them in
advance before you can use them. Postfix may be able to create mailBOX files by
itself, depending on parent directory write permissions, but it is safer to
create mailBOX files ahead of time.

More details about the virtual mailbox delivery agent are given in the virtual
(8) manual page.

NNoonn--PPoossttffiixx mmaaiillbbooxx ssttoorree:: sseeppaarraattee ddoommaaiinnss,, nnoonn--UUNNIIXX aaccccoouunnttss

This is a variation on the Postfix virtual mailbox example. Again, every hosted
address can have its own mailbox.

While non-Postfix software is being used for final delivery, some Postfix
concepts are still needed in order to glue everything together. For additional
background on this glue you may want to take a look at the virtual mailbox
domain class as defined in the ADDRESS_CLASS_README file.

The text in this section describes what things should look like from Postfix's
point of view. See CYRUS_README or MAILDROP_README for specific information
about Cyrus or about Courier maildrop.

Here is an example for a hosted domain example.com that delivers to a non-
Postfix delivery agent:

     1 /etc/postfix/main.cf:
     2     virtual_transport = ...see below...
     3     virtual_mailbox_domains = example.com ...more domains...
     4     virtual_mailbox_maps = hash:/etc/postfix/vmailbox
     5     virtual_alias_maps = hash:/etc/postfix/virtual
     6
     7 /etc/postfix/vmailbox:
     8     info@@example.com    whatever
     9     sales@@example.com   whatever
    10     # Comment out the entry below to implement a catch-all.
    11     # Configure the mailbox store to accept all addresses.
    12     # @@example.com      whatever
    13     ...virtual mailboxes for more domains...
    14
    15 /etc/postfix/virtual:
    16     postmaster@@example.com postmaster

Notes:

  * Line 2: With delivery to a non-Postfix mailbox store for hosted domains,
    the virtual_transport parameter usually specifies the Postfix LMTP client,
    or the name of a master.cf entry that executes non-Postfix software via the
    pipe delivery agent. Typical examples (use only one):

        virtual_transport = lmtp:unix:/path/name (uses UNIX-domain socket)
        virtual_transport = lmtp:hostname:port   (uses TCP socket)
        virtual_transport = maildrop:            (uses pipe(8) to command)

    Postfix comes ready with support for LMTP. And an example maildrop delivery
    method is already defined in the default Postfix master.cf file. See the
    MAILDROP_README document for more details.

  * Line 3: The virtual_mailbox_domains setting tells Postfix that example.com
    is delivered via the virtual_transport that was discussed in the previous
    paragraph. If you omit this virtual_mailbox_domains setting then Postfix
    will either reject mail (relay access denied) or will not be able to
    deliver it (mail for example.com loops back to myself).

    NEVER list a virtual MAILBOX domain name as a mydestination domain!

    NEVER list a virtual MAILBOX domain name as a virtual ALIAS domain!

  * Lines 4, 7-13: The virtual_mailbox_maps parameter specifies the lookup
    table with all valid recipient addresses. The lookup result value is
    ignored by Postfix. In the above example, info@@example.com and
    sales@@example.com are listed as valid addresses; other mail for example.com
    is rejected with "User unknown" by the Postfix SMTP server. It's left up to
    the non-Postfix delivery agent to reject non-existent recipients from local
    submission or from local alias expansion. If you intend to use LDAP, MySQL
    or PgSQL instead of local files, be sure to review the "local files versus
    databases" section at the top of this document!

  * Line 12: The commented out entry (text after #) shows how one would inform
    Postfix of the existence of a catch-all address. Again, the lookup result
    is ignored by Postfix.

    NEVER put a virtual MAILBOX wild-card in the virtual ALIAS file!!

    Note: if you specify a wildcard in virtual_mailbox_maps, then you still
    need to configure the non-Postfix mailbox store to receive mail for any
    address in that domain.

  * Lines 5, 15, 16: As you see above, it is possible to mix virtual aliases
    with virtual mailboxes. We use this feature to redirect mail for
    example.com's postmaster address to the local postmaster. You can use the
    same mechanism to redirect any addresses to a local or remote address.

  * Line 16: This example assumes that in main.cf, $myorigin is listed under
    the mydestination parameter setting. If that is not the case, specify an
    explicit domain name on the right-hand side of the virtual alias table
    entries or else mail will go to the wrong domain.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, execute "ppoossttmmaapp //eettcc//ppoossttffiixx//vvmmaaiillbbooxx" after changing the vmailbox file,
and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

MMaaiill ffoorrwwaarrddiinngg ddoommaaiinnss

Some providers host domains that have no (or only a few) local mailboxes. The
main purpose of these domains is to forward mail elsewhere. The following
example shows how to set up example.com as a mail forwarding domain:

     1 /etc/postfix/main.cf:
     2     virtual_alias_domains = example.com ...other hosted domains...
     3     virtual_alias_maps = hash:/etc/postfix/virtual
     4
     5 /etc/postfix/virtual:
     6     postmaster@@example.com postmaster
     7     joe@@example.com        joe@@somewhere
     8     jane@@example.com       jane@@somewhere-else
     9     # Uncomment entry below to implement a catch-all address
    10     # @@example.com         jim@@yet-another-site
    11     ...virtual aliases for more domains...

Notes:

  * Line 2: The virtual_alias_domains setting tells Postfix that example.com is
    a so-called virtual alias domain. If you omit this setting then Postfix
    will reject mail (relay access denied) or will not be able to deliver it
    (mail for example.com loops back to myself).

    NEVER list a virtual alias domain name as a mydestination domain!

  * Lines 3-11: The /etc/postfix/virtual file contains the virtual aliases.
    With the example above, mail for postmaster@@example.com goes to the local
    postmaster, while mail for joe@@example.com goes to the remote address
    joe@@somewhere, and mail for jane@@example.com goes to the remote address
    jane@@somewhere-else. Mail for all other addresses in example.com is
    rejected with the error message "User unknown".

  * Line 10: The commented out entry (text after #) shows how one would
    implement a catch-all virtual alias that receives mail for every
    example.com address not listed in the virtual alias file. This is not
    without risk. Spammers nowadays try to send mail from (or mail to) every
    possible name that they can think of. A catch-all mailbox is likely to
    receive many spam messages, and many bounces for spam messages that were
    sent in the name of anything@@example.com.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

More details about the virtual alias file are given in the virtual(5) manual
page, including multiple addresses on the right-hand side.

MMaaiilliinngg lliissttss

The examples that were given above already show how to direct mail for virtual
postmaster addresses to a local postmaster. You can use the same method to
direct mail for any address to a local or remote address.

There is one major limitation: virtual aliases and virtual mailboxes can't
directly deliver to mailing list managers such as majordomo. The solution is to
set up virtual aliases that direct virtual addresses to the local delivery
agent:

    /etc/postfix/main.cf:
        virtual_alias_maps = hash:/etc/postfix/virtual

    /etc/postfix/virtual:
        listname-request@@example.com listname-request
        listname@@example.com         listname
        owner-listname@@example.com   owner-listname

    /etc/aliases:
        listname: "|/some/where/majordomo/wrapper ..."
        owner-listname: ...
        listname-request: ...

This example assumes that in main.cf, $myorigin is listed under the
mydestination parameter setting. If that is not the case, specify an explicit
domain name on the right-hand side of the virtual alias table entries or else
mail will go to the wrong domain.

More information about the Postfix local delivery agent can be found in the
local(8) manual page.

Why does this example use a clumsy virtual alias instead of a more elegant
transport mapping? The reason is that mail for the virtual mailing list would
be rejected with "User unknown". In order to make the transport mapping work
one would still need a bunch of virtual alias or virtual mailbox table entries.

  * In case of a virtual alias domain, there would need to be one identity
    mapping from each mailing list address to itself.
  * In case of a virtual mailbox domain, there would need to be a dummy mailbox
    for each mailing list address.

AAuuttoorreepplliieess

In order to set up an autoreply for virtual recipients while still delivering
mail as normal, set up a rule in a virtual alias table:

    /etc/postfix/main.cf:
        virtual_alias_maps = hash:/etc/postfix/virtual

    /etc/postfix/virtual:
        user@@domain.tld user@@domain.tld, user@@domain.tld@@autoreply.mydomain.tld

This delivers mail to the recipient, and sends a copy of the mail to the
address that produces automatic replies. The address can be serviced on a
different machine, or it can be serviced locally by setting up a transport map
entry that pipes all mail for autoreply.mydomain.tld into some script that
sends an automatic reply back to the sender.

DO NOT list autoreply.mydomain.tld in mydestination!

    /etc/postfix/main.cf:
        transport_maps = hash:/etc/postfix/transport

    /etc/postfix/transport:
        autoreply.mydomain.tld  autoreply:

    /etc/postfix/master.cf:
        # =============================================================
        # service type  private unpriv  chroot  wakeup  maxproc command
        #               (yes)   (yes)   (yes)   (never) (100)
        # =============================================================
        autoreply unix  -       n       n       -       -       pipe
            flags= user=nobody argv=/path/to/autoreply $sender $mailbox

This invokes /path/to/autoreply with the sender address and the user@@domain.tld
recipient address on the command line.

For more information, see the pipe(8) manual page, and the comments in the
Postfix master.cf file.

@


1.1.1.1
log
@Import Postfix 2.6.2.
@
text
@@


1.1.1.1.16.1
log
@Rebase to HEAD as of a few days ago.
@
text
@d262 1
a262 4
address can have its own mailbox. However, most parameters that control the
virtual(8) delivery agent are no longer applicable: only
virtual_mailbox_domains and virtual_mailbox_maps stay in effect. These
parameters are needed to reject mail for unknown recipients.
@


1.1.1.1.10.1
log
@sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")
@
text
@d262 1
a262 4
address can have its own mailbox. However, most parameters that control the
virtual(8) delivery agent are no longer applicable: only
virtual_mailbox_domains and virtual_mailbox_maps stay in effect. These
parameters are needed to reject mail for unknown recipients.
@


1.1.1.2
log
@Import Postfix 2.10.2. Major changes since version 2.9.* are:
- Separation of relay policy (with smtpd_relay_restrictions) from spam policy
  (with smtpd_{client, helo, sender, recipient}_restrictions), which makes
  accidental open relay configuration less likely. The default is backwards
  compatible.
- HAproxy load-balancer support for postscreen(8) and smtpd(8). The nginx
  proxy was already supported by Postfix 2.9 smtpd(8), using XCLIENT commands.
- Support for the TLSv1 and TLSv2 protocols, as well as support to turn them
  off if needed for inter-operability.
- Laptop-friendly configuration. By default, Postfix now uses UNIX-domain
  sockets instead of FIFOs, and thus avoids MTIME file system updates on an
  idle mail system.
- Revised postconf(1) command. The "-x" option expands $name in a parameter
  value (both main.cf and master.cf); the "-o name=value" option overrides
  a main.cf parameter setting; and postconf(1) now warns about a $name that
  has no name=value setting.
- Sendmail-style "socketmap" lookup tables.
@
text
@d262 1
a262 4
address can have its own mailbox. However, most parameters that control the
virtual(8) delivery agent are no longer applicable: only
virtual_mailbox_domains and virtual_mailbox_maps stay in effect. These
parameters are needed to reject mail for unknown recipients.
@


1.1.1.2.28.1
log
@Pull up the following, requeste by kim in ticket #1779:

	external/ibm-public/postfix/dist/README_FILES/BDAT_README up to 1.1.1.2
	external/ibm-public/postfix/dist/README_FILES/MAILLOG_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/POSTSCREEN_3_5_README up to 1.1.1.1
	external/ibm-public/postfix/dist/html/BDAT_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/html/MAILLOG_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/makedefs.1.html up to 1.1.1.3
	external/ibm-public/postfix/dist/html/postlogd.8.html up to 1.1.1.3
	external/ibm-public/postfix/dist/html/POSTSCREEN_3_5_README.html up to 1.1.1.2
	external/ibm-public/postfix/dist/html/postfix-doc.css up to 1.1.1.1
	external/ibm-public/postfix/dist/man/man1/makedefs.1 up to 1.3
	external/ibm-public/postfix/dist/man/man8/postlogd.8 up to 1.3
	external/ibm-public/postfix/dist/mantools/missing-proxy-read-maps up to 1.1.1.3
	external/ibm-public/postfix/dist/mantools/spelldiff up to 1.1.1.1
	external/ibm-public/postfix/dist/mantools/check-double-cc up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/check-double-install-proto-text up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/check-double-proto-html up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/comment.c up to 1.2
	external/ibm-public/postfix/dist/mantools/check-postfix-files up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/check-spell-cc up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/check-spell-install-proto-text up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/check-spell-proto-html up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/deroff up to 1.1.1.1
	external/ibm-public/postfix/dist/mantools/find-double up to 1.1.1.1
	external/ibm-public/postfix/dist/mantools/check-double-history up to 1.1.1.1
	external/ibm-public/postfix/dist/mantools/check-spell-history up to 1.1.1.1
	external/ibm-public/postfix/dist/mantools/check-table-proto up to 1.1.1.1
	external/ibm-public/postfix/dist/proto/BDAT_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/MAILLOG_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/POSTSCREEN_3_5_README.html up to 1.1.1.2
	external/ibm-public/postfix/dist/proto/stop.double-cc up to 1.1.1.2
	external/ibm-public/postfix/dist/proto/stop.double-install-proto-text up to 1.1.1.1
	external/ibm-public/postfix/dist/proto/stop.double-proto-html up to 1.1.1.2
	external/ibm-public/postfix/dist/proto/stop.spell-cc up to 1.1.1.2
	external/ibm-public/postfix/dist/proto/stop.spell-proto-html up to 1.1.1.2
	external/ibm-public/postfix/dist/proto/stop.double-history up to 1.1.1.1
	external/ibm-public/postfix/dist/proto/stop.spell-history up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/bounce_notify_util_tester.c up to 1.2
	external/ibm-public/postfix/dist/src/bounce/logfile-no-msgid-no-eoh-event up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/logfile-no-msgid-with-eoh-event up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/logfile-with-msgid-no-eoh-event up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/logfile-with-msgid-with-eoh-event up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/logfile-with-msgid-with-filter up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/logfile-with-msgid-with-long-line up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/msgfile-no-msgid-no-eoh-event up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/msgfile-no-msgid-with-eoh-event up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/msgfile-with-msgid-no-eoh-event up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/msgfile-with-msgid-with-eoh-event up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/obs_template_test.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/msgfile-with-msgid-with-filter up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/msgfile-with-msgid-with-long-line up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/no-msgid-no-eoh-event-no-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/no-msgid-no-eoh-event-with-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/no-msgid-with-eoh-event-no-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/no-msgid-with-eoh-event-with-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/with-msgid-no-eoh-event-no-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/with-msgid-no-eoh-event-with-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/with-msgid-with-eoh-event-no-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/with-msgid-with-eoh-event-with-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/with-msgid-with-filter-no-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/with-msgid-with-filter-with-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/with-msgid-with-long-line-no-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/bounce/with-msgid-with-long-line-with-thread.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in13e up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in13f up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in13g up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in13h up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in13i up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref13e up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref13f up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref13g up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref13h up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref13i up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/test-queue-file13e up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/test-queue-file13f up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/test-queue-file13g up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/test-queue-file13h up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/test-queue-file13i up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in17a up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in17b up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in17c up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in17d up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in17e up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in17f up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.in17g up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17a1 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17a2 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17b1 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17b2 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17c1 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17c2 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17d1 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17d2 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17e1 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17e2 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17f1 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17f2 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17g1 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref17g2 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/cleanup/test-queue-file17 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/dns/dns_str_resflags.c up to 1.3
	external/ibm-public/postfix/dist/src/dns/dns_sec.c up to 1.2
	external/ibm-public/postfix/dist/src/global/header_body_checks_strip.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/info_log_addr_form.c up to 1.2
	external/ibm-public/postfix/dist/src/global/info_log_addr_form.h up to 1.2
	external/ibm-public/postfix/dist/src/global/mail_addr_crunch.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/mail_addr_crunch.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/mail_addr_find.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/map_search.c up to 1.4
	external/ibm-public/postfix/dist/src/global/map_search.h up to 1.2
	external/ibm-public/postfix/dist/src/global/mail_addr_find.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/mail_addr_form.c up to 1.2
	external/ibm-public/postfix/dist/src/global/mail_addr_form.h up to 1.2
	external/ibm-public/postfix/dist/src/global/mail_addr_map.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/maillog_client.c up to 1.3
	external/ibm-public/postfix/dist/src/global/maillog_client.h up to 1.2
	external/ibm-public/postfix/dist/src/global/map_search.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/global/normalize_mailhost_addr.c up to 1.3
	external/ibm-public/postfix/dist/src/global/normalize_mailhost_addr.h up to 1.2
	external/ibm-public/postfix/dist/src/global/off_cvt.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/off_cvt.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/quote_822_local.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/global/quote_822_local.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/global/quote_flags.c up to 1.2
	external/ibm-public/postfix/dist/src/global/reject_deliver_request.c up to 1.2
	external/ibm-public/postfix/dist/src/global/compat_level.c up to 1.3
	external/ibm-public/postfix/dist/src/global/compat_level.h up to 1.3
	external/ibm-public/postfix/dist/src/global/test_main.c up to 1.2
	external/ibm-public/postfix/dist/src/global/compat_level_convert.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/compat_level_convert.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/compat_level_expand.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/compat_level_expand.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/config_known_tcp_ports.c up to 1.2
	external/ibm-public/postfix/dist/src/global/config_known_tcp_ports.h up to 1.2
	external/ibm-public/postfix/dist/src/global/config_known_tcp_ports.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/delivered_hdr.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/hfrom_format.c up to 1.2
	external/ibm-public/postfix/dist/src/global/hfrom_format.h up to 1.2
	external/ibm-public/postfix/dist/src/global/hfrom_format.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/login_sender_match.c up to 1.2
	external/ibm-public/postfix/dist/src/global/login_sender_match.h up to 1.2
	external/ibm-public/postfix/dist/src/global/login_sender_match.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/global/sasl_mech_filter.c up to 1.2
	external/ibm-public/postfix/dist/src/global/sasl_mech_filter.h up to 1.2
	external/ibm-public/postfix/dist/src/global/test_main.h up to 1.2
	external/ibm-public/postfix/dist/src/master/dgram_server.c up to 1.3
	external/ibm-public/postfix/dist/src/postconf/extract_cfg.sh up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postconf/test64.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postconf/test65.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postconf/test66.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postconf/test67.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postconf/test68.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postconf/test69.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postconf/test70.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postconf/test71.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postmap/file_test.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postmap/file_test.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postmap/quote_test.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postmap/quote_test.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postmap/lmdb_abb up to 1.1.1.1
	external/ibm-public/postfix/dist/src/postmap/lmdb_abb.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/smtp/smtp_misc.c up to 1.2
	external/ibm-public/postfix/dist/src/smtp/smtp_map11.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/smtpd/smtpd_addr_valid.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtpd/smtpd_addr_valid.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/tls/bad-back-to-back-keys.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/bad-back-to-back-keys.pem.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/bad-ec-cert-before-key.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/bad-ec-cert-before-key.pem.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/bad-key-cert-mismatch.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/bad-key-cert-mismatch.pem.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/bad-rsa-key-last.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/bad-rsa-key-last.pem.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/ecca-cert.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/ecca-pkey.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/ecee-cert.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/ecee-pkey.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/ecroot-cert.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/ecroot-pkey.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/good-mixed-keyfirst.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/good-mixed-keyfirst.pem.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/good-mixed-keylast.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/good-mixed-keylast.pem.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/good-mixed-keymiddle.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/good-mixed-keymiddle.pem.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/goodchains.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/goodchains.pem.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/mkcert.sh up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/rsaca-cert.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/rsaca-pkey.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/rsaee-cert.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/rsaee-pkey.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/rsaroot-cert.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/rsaroot-pkey.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/tls_proxy_client_misc.c up to 1.4
	external/ibm-public/postfix/dist/src/tls/tls_proxy_client_print.c up to 1.4
	external/ibm-public/postfix/dist/src/tls/tls_proxy_client_scan.c up to 1.4
	external/ibm-public/postfix/dist/src/tls/tls_proxy_context_print.c up to 1.3
	external/ibm-public/postfix/dist/src/tls/tls_proxy_context_scan.c up to 1.3
	external/ibm-public/postfix/dist/src/tls/tls_proxy_server_print.c up to 1.3
	external/ibm-public/postfix/dist/src/tls/tls_proxy_server_scan.c up to 1.3
	external/ibm-public/postfix/dist/src/tls/warn-mixed-multi-key.pem up to 1.1.1.1
	external/ibm-public/postfix/dist/src/tls/warn-mixed-multi-key.pem.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/trivial-rewrite/transport.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/trivial-rewrite/transport.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/mkmap_db.c up to 1.2
	external/ibm-public/postfix/dist/src/util/mkmap.h up to 1.2
	external/ibm-public/postfix/dist/src/util/argv_attr.h up to 1.3
	external/ibm-public/postfix/dist/src/util/argv_attr_print.c up to 1.3
	external/ibm-public/postfix/dist/src/util/argv_attr_scan.c up to 1.3
	external/ibm-public/postfix/dist/src/util/byte_mask.c up to 1.2
	external/ibm-public/postfix/dist/src/util/byte_mask.h up to 1.2
	external/ibm-public/postfix/dist/src/util/byte_mask.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/byte_mask.ref0 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/byte_mask.ref1 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/byte_mask.ref2 up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_file.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_cidr_file.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/logwriter.c up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_cidr_file.map up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_cidr_file.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_inline_file.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_pcre_file.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_pcre_file.map up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_pcre_file.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_pipe_test.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_pipe_test.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_random.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_random_file.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_regexp_file.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_regexp_file.map up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_regexp_file.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_static_file.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_thash.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_thash.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_union_test.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_union_test.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/logwriter.h up to 1.2
	external/ibm-public/postfix/dist/src/util/miss_endif_cidr.map up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/miss_endif_cidr.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/miss_endif_pcre.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/miss_endif_re.map up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/miss_endif_regexp.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/msg_logger.c up to 1.3
	external/ibm-public/postfix/dist/src/util/msg_logger.h up to 1.2
	external/ibm-public/postfix/dist/src/util/split_qnameval.c up to 1.2
	external/ibm-public/postfix/dist/src/util/unix_dgram_connect.c up to 1.3
	external/ibm-public/postfix/dist/src/util/unix_dgram_listen.c up to 1.3
	external/ibm-public/postfix/dist/src/util/vbuf_print_test.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/vbuf_print_test.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/vstream_test.in up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/vstream_test.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/vstring_test.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/sane_strtol.c up to 1.2
	external/ibm-public/postfix/dist/src/util/argv_split_at.c up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_stream.c up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_inline_cidr.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_inline_pcre.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_inline_regexp.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/dict_stream.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/find_inet.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/hash_fnv.c up to 1.3
	external/ibm-public/postfix/dist/src/util/hash_fnv.h up to 1.3
	external/ibm-public/postfix/dist/src/util/known_tcp_ports.c up to 1.2
	external/ibm-public/postfix/dist/src/util/known_tcp_ports.h up to 1.2
	external/ibm-public/postfix/dist/src/util/known_tcp_ports.ref up to 1.1.1.1
	external/ibm-public/postfix/dist/src/util/ldseed.c up to 1.2
	external/ibm-public/postfix/dist/src/util/ldseed.h up to 1.2
	external/ibm-public/postfix/dist/src/util/mystrtok.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/sane_strtol.h up to 1.2
	external/ibm-public/postfix/dist/src/util/inet_addr_sizes.c up to 1.2
	external/ibm-public/postfix/dist/src/util/inet_addr_sizes.h up to 1.2
	external/ibm-public/postfix/dist/src/util/inet_prefix_top.c up to 1.2
	external/ibm-public/postfix/dist/src/util/inet_prefix_top.h up to 1.2
	external/ibm-public/postfix/dist/src/util/mkmap_cdb.c up to 1.2
	external/ibm-public/postfix/dist/src/util/mkmap_dbm.c up to 1.2
	external/ibm-public/postfix/dist/src/util/mkmap_fail.c up to 1.2
	external/ibm-public/postfix/dist/src/util/mkmap_lmdb.c up to 1.2
	external/ibm-public/postfix/dist/src/util/mkmap_open.c up to 1.2
	external/ibm-public/postfix/dist/src/util/mkmap_sdbm.c up to 1.2
	external/ibm-public/postfix/dist/src/postlogd/Makefile.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/postlogd/postlogd.c up to 1.3
	external/ibm-public/postfix/dist/RELEASE_NOTES-3.1 up to 1.1.1.1
	external/ibm-public/postfix/dist/RELEASE_NOTES-3.2 up to 1.1.1.1
	external/ibm-public/postfix/dist/RELEASE_NOTES-3.3 up to 1.1.1.1
	external/ibm-public/postfix/dist/RELEASE_NOTES-3.4 up to 1.1.1.1
	external/ibm-public/postfix/dist/RELEASE_NOTES-3.5 up to 1.1.1.1
	external/ibm-public/postfix/dist/RELEASE_NOTES-3.6 up to 1.1.1.1
	external/ibm-public/postfix/dist/WISHLIST       up to 1.1.1.2
	external/ibm-public/postfix/dist/RELEASE_NOTES-3.7 up to 1.1.1.1
	external/ibm-public/postfix/dist/README_FILES/CYRUS_README delete
	external/ibm-public/postfix/dist/src/global/mkmap.h delete
	external/ibm-public/postfix/dist/src/global/mkmap_cdb.c delete
	external/ibm-public/postfix/dist/src/global/mkmap_db.c delete
	external/ibm-public/postfix/dist/src/global/mkmap_dbm.c delete
	external/ibm-public/postfix/dist/src/global/mkmap_fail.c delete
	external/ibm-public/postfix/dist/src/global/mkmap_lmdb.c delete
	external/ibm-public/postfix/dist/src/global/mkmap_open.c delete
	external/ibm-public/postfix/dist/src/global/mkmap_sdbm.c delete
	external/ibm-public/postfix/dist/src/smtp/map11_map delete
	external/ibm-public/postfix/dist/src/tls/tls_proxy_print.c delete
	external/ibm-public/postfix/dist/src/tls/tls_proxy_scan.c delete
	external/ibm-public/postfix/dist/src/util/percentm.c delete
	external/ibm-public/postfix/dist/src/util/percentm.h delete
	external/ibm-public/postfix/Makefile.inc        up to 1.31 (+patch)
	external/ibm-public/postfix/dist/AAAREADME      up to 1.1.1.4
	external/ibm-public/postfix/dist/HISTORY        up to 1.1.1.29
	external/ibm-public/postfix/dist/INSTALL        up to 1.1.1.9
	external/ibm-public/postfix/dist/LICENSE        up to 1.1.1.2
	external/ibm-public/postfix/dist/Makefile       up to 1.1.1.3
	external/ibm-public/postfix/dist/Makefile.in    up to 1.1.1.10
	external/ibm-public/postfix/dist/Makefile.init  up to 1.1.1.3
	external/ibm-public/postfix/dist/RELEASE_NOTES  up to 1.1.1.17
	external/ibm-public/postfix/dist/TLS_ACKNOWLEDGEMENTS up to 1.1.1.2
	external/ibm-public/postfix/dist/TLS_CHANGES    up to 1.1.1.2
	external/ibm-public/postfix/dist/TLS_LICENSE    up to 1.1.1.2
	external/ibm-public/postfix/dist/US_PATENT_6321267 up to 1.1.1.2
	external/ibm-public/postfix/dist/makedefs       up to 1.16
	external/ibm-public/postfix/dist/postfix-env.sh up to 1.1.1.2
	external/ibm-public/postfix/dist/postfix-install up to 1.8
	external/ibm-public/postfix/dist/README_FILES/AAAREADME up to 1.1.1.6
	external/ibm-public/postfix/dist/README_FILES/ADDRESS_CLASS_README up to 1.1.1.2
	external/ibm-public/postfix/dist/README_FILES/ADDRESS_REWRITING_README up to 1.1.1.5
	external/ibm-public/postfix/dist/README_FILES/ADDRESS_VERIFICATION_README up to 1.10
	external/ibm-public/postfix/dist/README_FILES/BACKSCATTER_README up to 1.1.1.5
	external/ibm-public/postfix/dist/README_FILES/BASIC_CONFIGURATION_README up to 1.1.1.6
	external/ibm-public/postfix/dist/README_FILES/BUILTIN_FILTER_README up to 1.1.1.3
	external/ibm-public/postfix/dist/README_FILES/COMPATIBILITY_README up to 1.1.1.3
	external/ibm-public/postfix/dist/README_FILES/CONNECTION_CACHE_README up to 1.1.1.5
	external/ibm-public/postfix/dist/README_FILES/DATABASE_README up to 1.1.1.9
	external/ibm-public/postfix/dist/README_FILES/DB_README up to 1.1.1.3
	external/ibm-public/postfix/dist/README_FILES/DEBUG_README up to 1.1.1.5
	external/ibm-public/postfix/dist/README_FILES/FILTER_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/FORWARD_SECRECY_README up to 1.1.1.5
	external/ibm-public/postfix/dist/README_FILES/INSTALL up to 1.10
	external/ibm-public/postfix/dist/README_FILES/IPV6_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/LDAP_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/LINUX_README up to 1.1.1.3
	external/ibm-public/postfix/dist/README_FILES/LMDB_README up to 1.1.1.3
	external/ibm-public/postfix/dist/README_FILES/MILTER_README up to 1.1.1.9
	external/ibm-public/postfix/dist/README_FILES/MULTI_INSTANCE_README up to 1.1.1.7
	external/ibm-public/postfix/dist/README_FILES/MYSQL_README up to 1.1.1.5
	external/ibm-public/postfix/dist/README_FILES/OVERVIEW up to 1.1.1.5
	external/ibm-public/postfix/dist/README_FILES/PCRE_README up to 1.1.1.3
	external/ibm-public/postfix/dist/README_FILES/PGSQL_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/POSTSCREEN_README up to 1.1.1.7
	external/ibm-public/postfix/dist/README_FILES/QSHAPE_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/RELEASE_NOTES up to 1.1.1.17
	external/ibm-public/postfix/dist/README_FILES/SASL_README up to 1.1.1.11
	external/ibm-public/postfix/dist/README_FILES/SCHEDULER_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/SMTPD_ACCESS_README up to 1.1.1.6
	external/ibm-public/postfix/dist/README_FILES/SMTPD_POLICY_README up to 1.1.1.7
	external/ibm-public/postfix/dist/README_FILES/SMTPD_PROXY_README up to 1.1.1.6
	external/ibm-public/postfix/dist/README_FILES/SMTPUTF8_README up to 1.1.1.3
	external/ibm-public/postfix/dist/README_FILES/SOHO_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/SQLITE_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/STANDARD_CONFIGURATION_README up to 1.1.1.6
	external/ibm-public/postfix/dist/README_FILES/STRESS_README up to 1.1.1.6
	external/ibm-public/postfix/dist/README_FILES/TLS_LEGACY_README up to 1.1.1.3
	external/ibm-public/postfix/dist/README_FILES/TLS_README up to 1.14
	external/ibm-public/postfix/dist/README_FILES/TUNING_README up to 1.1.1.5
	external/ibm-public/postfix/dist/README_FILES/VIRTUAL_README up to 1.1.1.3
	external/ibm-public/postfix/dist/README_FILES/XCLIENT_README up to 1.1.1.4
	external/ibm-public/postfix/dist/conf/LICENSE   up to 1.1.1.2
	external/ibm-public/postfix/dist/conf/TLS_LICENSE up to 1.1.1.2
	external/ibm-public/postfix/dist/conf/access    up to 1.1.1.8
	external/ibm-public/postfix/dist/conf/aliases   up to 1.1.1.5
	external/ibm-public/postfix/dist/conf/canonical up to 1.1.1.5
	external/ibm-public/postfix/dist/conf/generic   up to 1.1.1.4
	external/ibm-public/postfix/dist/conf/header_checks up to 1.1.1.6
	external/ibm-public/postfix/dist/conf/main.cf   up to 1.10
	external/ibm-public/postfix/dist/conf/master.cf up to 1.11
	external/ibm-public/postfix/dist/conf/post-install up to 1.4
	external/ibm-public/postfix/dist/conf/postfix-files up to 1.9
	external/ibm-public/postfix/dist/conf/postfix-script up to 1.4
	external/ibm-public/postfix/dist/conf/postfix-tls-script up to 1.5
	external/ibm-public/postfix/dist/conf/postmulti-script up to 1.3
	external/ibm-public/postfix/dist/conf/relocated up to 1.1.1.3
	external/ibm-public/postfix/dist/conf/transport up to 1.1.1.5
	external/ibm-public/postfix/dist/conf/virtual   up to 1.1.1.6
	external/ibm-public/postfix/dist/html/ADDRESS_CLASS_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/html/ADDRESS_REWRITING_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/ADDRESS_VERIFICATION_README.html up to 1.11
	external/ibm-public/postfix/dist/html/BACKSCATTER_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/BASIC_CONFIGURATION_README.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/BUILTIN_FILTER_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/CDB_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/COMPATIBILITY_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/CONNECTION_CACHE_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/CONTENT_INSPECTION_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/html/DATABASE_README.html up to 1.1.1.10
	external/ibm-public/postfix/dist/html/DB_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/DEBUG_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/DSN_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/html/ETRN_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/FILTER_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/FORWARD_SECRECY_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/INSTALL.html up to 1.10
	external/ibm-public/postfix/dist/html/IPV6_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/LDAP_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/LINUX_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/LMDB_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/LOCAL_RECIPIENT_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/html/MAILDROP_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/MEMCACHE_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/html/MILTER_README.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/MULTI_INSTANCE_README.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/MYSQL_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/html/NFS_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/html/OVERVIEW.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/PACKAGE_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/PCRE_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/PGSQL_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/POSTSCREEN_README.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/QSHAPE_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/RESTRICTION_CLASS_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/SASL_README.html up to 1.1.1.11
	external/ibm-public/postfix/dist/html/SCHEDULER_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/SMTPD_ACCESS_README.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/SMTPD_POLICY_README.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/SMTPD_PROXY_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/SMTPUTF8_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/SOHO_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/SQLITE_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/STANDARD_CONFIGURATION_README.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/STRESS_README.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/TLS_LEGACY_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/TLS_README.html up to 1.15
	external/ibm-public/postfix/dist/html/TUNING_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/UUCP_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/VERP_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/VIRTUAL_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/XCLIENT_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/XFORWARD_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/access.5.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/aliases.5.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/anvil.8.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/bounce.5.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/bounce.8.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/canonical.5.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/cidr_table.5.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/cleanup.8.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/defer.8.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/discard.8.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/dnsblog.8.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/error.8.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/flush.8.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/generic.5.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/header_checks.5.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/index.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/ldap_table.5.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/lmdb_table.5.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/lmtp.8.html up to 1.1.1.12
	external/ibm-public/postfix/dist/html/local.8.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/mailq.1.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/master.5.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/master.8.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/memcache_table.5.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/mysql_table.5.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/newaliases.1.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/nisplus_table.5.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/oqmgr.8.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/pcre_table.5.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/pgsql_table.5.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/pickup.8.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/pipe.8.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/postalias.1.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/postcat.1.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/postconf.1.html up to 1.1.1.11
	external/ibm-public/postfix/dist/html/postconf.5.html up to 1.19
	external/ibm-public/postfix/dist/html/postdrop.1.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/postfix-manuals.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/postfix-tls.1.html up to 1.1.1.3
	external/ibm-public/postfix/dist/html/postfix-wrapper.5.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/postfix.1.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/postkick.1.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/postlock.1.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/postlog.1.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/postmap.1.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/postmulti.1.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/postqueue.1.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/postscreen.8.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/postsuper.1.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/posttls-finger.1.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/proxymap.8.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/qmgr.8.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/qmqp-sink.1.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/qmqp-source.1.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/qmqpd.8.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/qshape.1.html up to 1.1.1.4
	external/ibm-public/postfix/dist/html/regexp_table.5.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/relocated.5.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/scache.8.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/sendmail.1.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/showq.8.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/smtp-sink.1.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/smtp-source.1.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/smtp.8.html up to 1.1.1.12
	external/ibm-public/postfix/dist/html/smtpd.8.html up to 1.1.1.13
	external/ibm-public/postfix/dist/html/socketmap_table.5.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/spawn.8.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/sqlite_table.5.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/tcp_table.5.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/tlsmgr.8.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/tlsproxy.8.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/trace.8.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/transport.5.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/trivial-rewrite.8.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/verify.8.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/virtual.5.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/virtual.8.html up to 1.1.1.7
	external/ibm-public/postfix/dist/man/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/man/man1/postalias.1 up to 1.4
	external/ibm-public/postfix/dist/man/man1/postcat.1 up to 1.4
	external/ibm-public/postfix/dist/man/man1/postconf.1 up to 1.4
	external/ibm-public/postfix/dist/man/man1/postdrop.1 up to 1.4
	external/ibm-public/postfix/dist/man/man1/postfix-tls.1 up to 1.3
	external/ibm-public/postfix/dist/man/man1/postfix.1 up to 1.6
	external/ibm-public/postfix/dist/man/man1/postkick.1 up to 1.3
	external/ibm-public/postfix/dist/man/man1/postlock.1 up to 1.3
	external/ibm-public/postfix/dist/man/man1/postlog.1 up to 1.5
	external/ibm-public/postfix/dist/man/man1/postmap.1 up to 1.4
	external/ibm-public/postfix/dist/man/man1/postmulti.1 up to 1.4
	external/ibm-public/postfix/dist/man/man1/postqueue.1 up to 1.5
	external/ibm-public/postfix/dist/man/man1/postsuper.1 up to 1.4
	external/ibm-public/postfix/dist/man/man1/posttls-finger.1 up to 1.5
	external/ibm-public/postfix/dist/man/man1/sendmail.1 up to 1.4
	external/ibm-public/postfix/dist/man/man1/smtp-sink.1 up to 1.3
	external/ibm-public/postfix/dist/man/man5/access.5 up to 1.4
	external/ibm-public/postfix/dist/man/man5/aliases.5 up to 1.5
	external/ibm-public/postfix/dist/man/man5/canonical.5 up to 1.4
	external/ibm-public/postfix/dist/man/man5/cidr_table.5 up to 1.5
	external/ibm-public/postfix/dist/man/man5/generic.5 up to 1.4
	external/ibm-public/postfix/dist/man/man5/header_checks.5 up to 1.3
	external/ibm-public/postfix/dist/man/man5/ldap_table.5 up to 1.5
	external/ibm-public/postfix/dist/man/man5/lmdb_table.5 up to 1.3
	external/ibm-public/postfix/dist/man/man5/master.5 up to 1.4
	external/ibm-public/postfix/dist/man/man5/mysql_table.5 up to 1.5
	external/ibm-public/postfix/dist/man/man5/pcre_table.5 up to 1.4
	external/ibm-public/postfix/dist/man/man5/pgsql_table.5 up to 1.5
	external/ibm-public/postfix/dist/man/man5/postconf.5 up to 1.19
	external/ibm-public/postfix/dist/man/man5/regexp_table.5 up to 1.4
	external/ibm-public/postfix/dist/man/man5/relocated.5 up to 1.3
	external/ibm-public/postfix/dist/man/man5/socketmap_table.5 up to 1.3
	external/ibm-public/postfix/dist/man/man5/sqlite_table.5 up to 1.4
	external/ibm-public/postfix/dist/man/man5/tcp_table.5 up to 1.3
	external/ibm-public/postfix/dist/man/man5/transport.5 up to 1.4
	external/ibm-public/postfix/dist/man/man5/virtual.5 up to 1.5
	external/ibm-public/postfix/dist/man/man8/anvil.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/bounce.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/cleanup.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/discard.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/dnsblog.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/error.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/flush.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/local.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/master.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/oqmgr.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/pickup.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/pipe.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/postscreen.8 up to 1.5
	external/ibm-public/postfix/dist/man/man8/proxymap.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/qmgr.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/qmqpd.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/scache.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/showq.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/smtp.8 up to 1.5
	external/ibm-public/postfix/dist/man/man8/smtpd.8 up to 1.5
	external/ibm-public/postfix/dist/man/man8/spawn.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/tlsmgr.8 up to 1.3
	external/ibm-public/postfix/dist/man/man8/tlsproxy.8 up to 1.5
	external/ibm-public/postfix/dist/man/man8/trivial-rewrite.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/verify.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/virtual.8 up to 1.4
	external/ibm-public/postfix/dist/mantools/ccformat up to 1.1.1.3
	external/ibm-public/postfix/dist/mantools/check-postlink up to 1.1.1.3
	external/ibm-public/postfix/dist/mantools/fixman up to 1.1.1.3
	external/ibm-public/postfix/dist/mantools/make-relnotes up to 1.1.1.3
	external/ibm-public/postfix/dist/mantools/make_soho_readme up to 1.1.1.4
	external/ibm-public/postfix/dist/mantools/makemanidx up to 1.1.1.4
	external/ibm-public/postfix/dist/mantools/man2html up to 1.1.1.5
	external/ibm-public/postfix/dist/mantools/manlint up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/manspell up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/postconf2man up to 1.1.1.5
	external/ibm-public/postfix/dist/mantools/postlink up to 1.1.1.13
	external/ibm-public/postfix/dist/mantools/readme2html up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/spell up to 1.1.1.3
	external/ibm-public/postfix/dist/mantools/srctoman up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/ADDRESS_CLASS_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/ADDRESS_REWRITING_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/ADDRESS_VERIFICATION_README.html up to 1.11
	external/ibm-public/postfix/dist/proto/BACKSCATTER_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/BASIC_CONFIGURATION_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/BUILTIN_FILTER_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/CDB_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/COMPATIBILITY_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/CONNECTION_CACHE_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/CONTENT_INSPECTION_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/DATABASE_README.html up to 1.1.1.10
	external/ibm-public/postfix/dist/proto/DB_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/DEBUG_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/DSN_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/ETRN_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/FILTER_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/FORWARD_SECRECY_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/INSTALL.html up to 1.10
	external/ibm-public/postfix/dist/proto/IPV6_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/LDAP_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/LINUX_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/LMDB_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/LOCAL_RECIPIENT_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/MAILDROP_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/MEMCACHE_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/MILTER_README.html up to 1.1.1.9
	external/ibm-public/postfix/dist/proto/MULTI_INSTANCE_README.html up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/MYSQL_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/proto/NFS_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/OVERVIEW.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/PACKAGE_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/PCRE_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/PGSQL_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/POSTSCREEN_README.html up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/QSHAPE_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/RESTRICTION_CLASS_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/SASL_README.html up to 1.1.1.11
	external/ibm-public/postfix/dist/proto/SCHEDULER_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/SMTPD_ACCESS_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/SMTPD_POLICY_README.html up to 1.1.1.7
	external/ibm-public/postfix/dist/proto/SMTPD_PROXY_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/SMTPUTF8_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/SQLITE_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/STANDARD_CONFIGURATION_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/STRESS_README.html up to 1.1.1.7
	external/ibm-public/postfix/dist/proto/TLS_LEGACY_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/TLS_README.html up to 1.14
	external/ibm-public/postfix/dist/proto/TUNING_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/UUCP_README.html up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/VERP_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/VIRTUAL_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/XCLIENT_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/XFORWARD_README.html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/access   up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/aliases  up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/canonical up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/cidr_table up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/generic  up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/header_checks up to 1.1.1.7
	external/ibm-public/postfix/dist/proto/ldap_table up to 1.1.1.7
	external/ibm-public/postfix/dist/proto/lmdb_table up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/master   up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/mysql_table up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/pcre_table up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/pgsql_table up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/postconf.html.prolog up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/postconf.man.prolog up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/postconf.proto up to 1.19
	external/ibm-public/postfix/dist/proto/regexp_table up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/relocated up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/socketmap_table up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/sqlite_table up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/stop     up to 1.1.1.7
	external/ibm-public/postfix/dist/proto/tcp_table up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/transport up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/virtual  up to 1.1.1.6
	external/ibm-public/postfix/dist/src/anvil/Makefile.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/anvil/anvil.c up to 1.4
	external/ibm-public/postfix/dist/src/bounce/2template_test.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/bounce/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/bounce/bounce.c up to 1.4
	external/ibm-public/postfix/dist/src/bounce/bounce_notify_util.c up to 1.4
	external/ibm-public/postfix/dist/src/bounce/bounce_service.h up to 1.3
	external/ibm-public/postfix/dist/src/bounce/bounce_template.c up to 1.4
	external/ibm-public/postfix/dist/src/bounce/bounce_template.h up to 1.3
	external/ibm-public/postfix/dist/src/bounce/bounce_templates.c up to 1.3
	external/ibm-public/postfix/dist/src/bounce/template_test.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/cleanup/Makefile.in up to 1.1.1.9
	external/ibm-public/postfix/dist/src/cleanup/cleanup.c up to 1.8
	external/ibm-public/postfix/dist/src/cleanup/cleanup.h up to 1.10
	external/ibm-public/postfix/dist/src/cleanup/cleanup_addr.c up to 1.3
	external/ibm-public/postfix/dist/src/cleanup/cleanup_api.c up to 1.4
	external/ibm-public/postfix/dist/src/cleanup/cleanup_body_edit.c up to 1.3
	external/ibm-public/postfix/dist/src/cleanup/cleanup_envelope.c up to 1.5
	external/ibm-public/postfix/dist/src/cleanup/cleanup_init.c up to 1.7
	external/ibm-public/postfix/dist/src/cleanup/cleanup_map11.c up to 1.3
	external/ibm-public/postfix/dist/src/cleanup/cleanup_map1n.c up to 1.4
	external/ibm-public/postfix/dist/src/cleanup/cleanup_message.c up to 1.4
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.c up to 1.5
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref13c up to 1.1.1.2
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.ref13d up to 1.1.1.2
	external/ibm-public/postfix/dist/src/cleanup/cleanup_out.c up to 1.3
	external/ibm-public/postfix/dist/src/cleanup/cleanup_out_recipient.c up to 1.4
	external/ibm-public/postfix/dist/src/cleanup/cleanup_region.c up to 1.3
	external/ibm-public/postfix/dist/src/cleanup/cleanup_state.c up to 1.4
	external/ibm-public/postfix/dist/src/discard/Makefile.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/discard/discard.c up to 1.3
	external/ibm-public/postfix/dist/src/dns/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/dns/dns.h  up to 1.6
	external/ibm-public/postfix/dist/src/dns/dns_lookup.c up to 1.8
	external/ibm-public/postfix/dist/src/dns/dns_rr.c up to 1.3
	external/ibm-public/postfix/dist/src/dns/dns_rr_eq_sa.c up to 1.3
	external/ibm-public/postfix/dist/src/dns/dns_rr_eq_sa.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/dns/dns_rr_eq_sa.ref up to 1.1.1.5
	external/ibm-public/postfix/dist/src/dns/dns_rr_to_pa.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/dns/dns_rr_to_sa.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/dns/dns_sa_to_rr.c up to 1.3
	external/ibm-public/postfix/dist/src/dns/dns_sa_to_rr.ref up to 1.1.1.5
	external/ibm-public/postfix/dist/src/dns/dns_strrecord.c up to 1.3
	external/ibm-public/postfix/dist/src/dns/dns_strtype.c up to 1.2
	external/ibm-public/postfix/dist/src/dns/dnsbl_ttl_127.0.0.1_bind_ncache.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/dns/dnsbl_ttl_127.0.0.1_bind_plain.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/dns/dnsbl_ttl_127.0.0.2_bind_plain.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/dns/error.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/dns/mxonly_test.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/dns/no-a.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/dns/no-aaaa.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/dns/no-mx.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/dns/nullmx_test.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/dns/nxdomain_test.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/dns/test_dns_lookup.c up to 1.3
	external/ibm-public/postfix/dist/src/dnsblog/Makefile.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/dnsblog/dnsblog.c up to 1.4
	external/ibm-public/postfix/dist/src/error/Makefile.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/error/error.c up to 1.3
	external/ibm-public/postfix/dist/src/flush/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/flush/flush.c up to 1.4
	external/ibm-public/postfix/dist/src/fsstone/Makefile.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/global/Makefile.in up to 1.1.1.10
	external/ibm-public/postfix/dist/src/global/abounce.c up to 1.3
	external/ibm-public/postfix/dist/src/global/anvil_clnt.c up to 1.4
	external/ibm-public/postfix/dist/src/global/anvil_clnt.h up to 1.3
	external/ibm-public/postfix/dist/src/global/been_here.c up to 1.4
	external/ibm-public/postfix/dist/src/global/been_here.h up to 1.3
	external/ibm-public/postfix/dist/src/global/bounce.c up to 1.3
	external/ibm-public/postfix/dist/src/global/bounce_log.c up to 1.3
	external/ibm-public/postfix/dist/src/global/cleanup_strerror.c up to 1.2
	external/ibm-public/postfix/dist/src/global/cleanup_user.h up to 1.3
	external/ibm-public/postfix/dist/src/global/clnt_stream.c up to 1.4
	external/ibm-public/postfix/dist/src/global/clnt_stream.h up to 1.2
	external/ibm-public/postfix/dist/src/global/db_common.c up to 1.3
	external/ibm-public/postfix/dist/src/global/debug_peer.c up to 1.3
	external/ibm-public/postfix/dist/src/global/defer.c up to 1.3
	external/ibm-public/postfix/dist/src/global/deliver_pass.c up to 1.3
	external/ibm-public/postfix/dist/src/global/deliver_request.c up to 1.3
	external/ibm-public/postfix/dist/src/global/deliver_request.h up to 1.3
	external/ibm-public/postfix/dist/src/global/delivered_hdr.c up to 1.3
	external/ibm-public/postfix/dist/src/global/dict_ldap.c up to 1.5
	external/ibm-public/postfix/dist/src/global/dict_memcache.c up to 1.3
	external/ibm-public/postfix/dist/src/global/dict_mysql.c up to 1.4
	external/ibm-public/postfix/dist/src/global/dict_pgsql.c up to 1.4
	external/ibm-public/postfix/dist/src/global/dict_proxy.c up to 1.3
	external/ibm-public/postfix/dist/src/global/dict_proxy.h up to 1.3
	external/ibm-public/postfix/dist/src/global/dict_sqlite.c up to 1.4
	external/ibm-public/postfix/dist/src/global/dsb_scan.c up to 1.3
	external/ibm-public/postfix/dist/src/global/dsb_scan.h up to 1.2
	external/ibm-public/postfix/dist/src/global/dsn_print.c up to 1.3
	external/ibm-public/postfix/dist/src/global/dsn_print.h up to 1.2
	external/ibm-public/postfix/dist/src/global/dynamicmaps.c up to 1.4
	external/ibm-public/postfix/dist/src/global/ehlo_mask.c up to 1.3
	external/ibm-public/postfix/dist/src/global/ehlo_mask.h up to 1.3
	external/ibm-public/postfix/dist/src/global/flush_clnt.c up to 1.3
	external/ibm-public/postfix/dist/src/global/haproxy_srvr.c up to 1.3
	external/ibm-public/postfix/dist/src/global/haproxy_srvr.h up to 1.2
	external/ibm-public/postfix/dist/src/global/header_body_checks.c up to 1.3
	external/ibm-public/postfix/dist/src/global/header_body_checks.h up to 1.3
	external/ibm-public/postfix/dist/src/global/log_adhoc.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_addr_crunch.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_addr_crunch.h up to 1.2
	external/ibm-public/postfix/dist/src/global/mail_addr_find.c up to 1.4
	external/ibm-public/postfix/dist/src/global/mail_addr_find.h up to 1.2
	external/ibm-public/postfix/dist/src/global/mail_addr_map.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_addr_map.h up to 1.2
	external/ibm-public/postfix/dist/src/global/mail_command_client.c up to 1.4
	external/ibm-public/postfix/dist/src/global/mail_conf.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_conf.h up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_conf_int.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_conf_long.c up to 1.2
	external/ibm-public/postfix/dist/src/global/mail_conf_nint.c up to 1.2
	external/ibm-public/postfix/dist/src/global/mail_conf_time.c up to 1.4
	external/ibm-public/postfix/dist/src/global/mail_copy.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_dict.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_error.c up to 1.2
	external/ibm-public/postfix/dist/src/global/mail_params.c up to 1.5
	external/ibm-public/postfix/dist/src/global/mail_params.h up to 1.19
	external/ibm-public/postfix/dist/src/global/mail_parm_split.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_proto.h up to 1.5
	external/ibm-public/postfix/dist/src/global/mail_queue.h up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_stream.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_task.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_version.h up to 1.6
	external/ibm-public/postfix/dist/src/global/maps.c up to 1.4
	external/ibm-public/postfix/dist/src/global/maps.h up to 1.2
	external/ibm-public/postfix/dist/src/global/maps.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/global/memcache_proto.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mime_state.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mkmap_proxy.c up to 1.2
	external/ibm-public/postfix/dist/src/global/msg_stats.h up to 1.2
	external/ibm-public/postfix/dist/src/global/msg_stats_print.c up to 1.3
	external/ibm-public/postfix/dist/src/global/msg_stats_scan.c up to 1.3
	external/ibm-public/postfix/dist/src/global/namadr_list.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/global/namadr_list.ref up to 1.1.1.5
	external/ibm-public/postfix/dist/src/global/off_cvt.c up to 1.2
	external/ibm-public/postfix/dist/src/global/opened.c up to 1.2
	external/ibm-public/postfix/dist/src/global/post_mail.c up to 1.4
	external/ibm-public/postfix/dist/src/global/post_mail.h up to 1.3
	external/ibm-public/postfix/dist/src/global/quote_822_local.c up to 1.3
	external/ibm-public/postfix/dist/src/global/quote_822_local.h up to 1.2
	external/ibm-public/postfix/dist/src/global/quote_flags.h up to 1.2
	external/ibm-public/postfix/dist/src/global/rcpt_buf.c up to 1.4
	external/ibm-public/postfix/dist/src/global/rcpt_buf.h up to 1.2
	external/ibm-public/postfix/dist/src/global/rcpt_print.c up to 1.3
	external/ibm-public/postfix/dist/src/global/rcpt_print.h up to 1.2
	external/ibm-public/postfix/dist/src/global/rec_type.h up to 1.3
	external/ibm-public/postfix/dist/src/global/record.c up to 1.4
	external/ibm-public/postfix/dist/src/global/resolve_clnt.c up to 1.4
	external/ibm-public/postfix/dist/src/global/resolve_clnt.h up to 1.2
	external/ibm-public/postfix/dist/src/global/rewrite_clnt.c up to 1.3
	external/ibm-public/postfix/dist/src/global/scache.h up to 1.3
	external/ibm-public/postfix/dist/src/global/scache_clnt.c up to 1.3
	external/ibm-public/postfix/dist/src/global/sent.c up to 1.3
	external/ibm-public/postfix/dist/src/global/server_acl.c up to 1.3
	external/ibm-public/postfix/dist/src/global/server_acl.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/global/server_acl.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/global/smtp_reply_footer.c up to 1.3
	external/ibm-public/postfix/dist/src/global/smtp_stream.c up to 1.5
	external/ibm-public/postfix/dist/src/global/smtp_stream.h up to 1.4
	external/ibm-public/postfix/dist/src/global/smtputf8.h up to 1.3
	external/ibm-public/postfix/dist/src/global/split_addr.c up to 1.3
	external/ibm-public/postfix/dist/src/global/split_addr.h up to 1.2
	external/ibm-public/postfix/dist/src/global/strip_addr.c up to 1.4
	external/ibm-public/postfix/dist/src/global/strip_addr.h up to 1.2
	external/ibm-public/postfix/dist/src/global/strip_addr.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/global/trace.c up to 1.3
	external/ibm-public/postfix/dist/src/global/uxtext.c up to 1.3
	external/ibm-public/postfix/dist/src/global/verify.c up to 1.4
	external/ibm-public/postfix/dist/src/global/verify_clnt.c up to 1.3
	external/ibm-public/postfix/dist/src/global/verify_sender_addr.c up to 1.4
	external/ibm-public/postfix/dist/src/global/xtext.c up to 1.3
	external/ibm-public/postfix/dist/src/local/Makefile.in up to 1.1.1.8
	external/ibm-public/postfix/dist/src/local/alias.c up to 1.3
	external/ibm-public/postfix/dist/src/local/forward.c up to 1.4
	external/ibm-public/postfix/dist/src/local/local.c up to 1.4
	external/ibm-public/postfix/dist/src/local/local_expand.c up to 1.3
	external/ibm-public/postfix/dist/src/local/mailbox.c up to 1.4
	external/ibm-public/postfix/dist/src/local/unknown.c up to 1.8
	external/ibm-public/postfix/dist/src/master/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/src/master/event_server.c up to 1.4
	external/ibm-public/postfix/dist/src/master/mail_server.h up to 1.4
	external/ibm-public/postfix/dist/src/master/master.c up to 1.4
	external/ibm-public/postfix/dist/src/master/master.h up to 1.2
	external/ibm-public/postfix/dist/src/master/master_conf.c up to 1.2
	external/ibm-public/postfix/dist/src/master/master_ent.c up to 1.4
	external/ibm-public/postfix/dist/src/master/master_listen.c up to 1.2
	external/ibm-public/postfix/dist/src/master/master_monitor.c up to 1.3
	external/ibm-public/postfix/dist/src/master/master_proto.h up to 1.2
	external/ibm-public/postfix/dist/src/master/master_sig.c up to 1.3
	external/ibm-public/postfix/dist/src/master/master_spawn.c up to 1.3
	external/ibm-public/postfix/dist/src/master/master_vars.c up to 1.3
	external/ibm-public/postfix/dist/src/master/master_wakeup.c up to 1.3
	external/ibm-public/postfix/dist/src/master/multi_server.c up to 1.4
	external/ibm-public/postfix/dist/src/master/single_server.c up to 1.4
	external/ibm-public/postfix/dist/src/master/trigger_server.c up to 1.4
	external/ibm-public/postfix/dist/src/milter/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/milter/milter.c up to 1.5
	external/ibm-public/postfix/dist/src/milter/milter.h up to 1.4
	external/ibm-public/postfix/dist/src/milter/milter8.c up to 1.5
	external/ibm-public/postfix/dist/src/milter/milter_macros.c up to 1.3
	external/ibm-public/postfix/dist/src/milter/test-milter.c up to 1.3
	external/ibm-public/postfix/dist/src/oqmgr/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/oqmgr/qmgr.c up to 1.3
	external/ibm-public/postfix/dist/src/oqmgr/qmgr.h up to 1.3
	external/ibm-public/postfix/dist/src/oqmgr/qmgr_active.c up to 1.3
	external/ibm-public/postfix/dist/src/oqmgr/qmgr_deliver.c up to 1.3
	external/ibm-public/postfix/dist/src/oqmgr/qmgr_entry.c up to 1.3
	external/ibm-public/postfix/dist/src/oqmgr/qmgr_error.c up to 1.2
	external/ibm-public/postfix/dist/src/oqmgr/qmgr_feedback.c up to 1.2
	external/ibm-public/postfix/dist/src/oqmgr/qmgr_message.c up to 1.4
	external/ibm-public/postfix/dist/src/pickup/Makefile.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/pickup/pickup.c up to 1.4
	external/ibm-public/postfix/dist/src/pipe/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/pipe/pipe.c up to 1.4
	external/ibm-public/postfix/dist/src/postalias/Makefile.in up to 1.1.1.6
	external/ibm-public/postfix/dist/src/postalias/fail_test.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postalias/fail_test.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postalias/postalias.c up to 1.5
	external/ibm-public/postfix/dist/src/postcat/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/postcat/postcat.c up to 1.4
	external/ibm-public/postfix/dist/src/postconf/Makefile.in up to 1.1.1.11
	external/ibm-public/postfix/dist/src/postconf/extract.awk up to 1.1.1.6
	external/ibm-public/postfix/dist/src/postconf/install_vars.h up to 1.2
	external/ibm-public/postfix/dist/src/postconf/postconf.c up to 1.4
	external/ibm-public/postfix/dist/src/postconf/postconf.h up to 1.4
	external/ibm-public/postfix/dist/src/postconf/postconf_builtin.c up to 1.4
	external/ibm-public/postfix/dist/src/postconf/postconf_dbms.c up to 1.5
	external/ibm-public/postfix/dist/src/postconf/postconf_edit.c up to 1.3
	external/ibm-public/postfix/dist/src/postconf/postconf_lookup.c up to 1.4
	external/ibm-public/postfix/dist/src/postconf/postconf_main.c up to 1.4
	external/ibm-public/postfix/dist/src/postconf/postconf_master.c up to 1.8
	external/ibm-public/postfix/dist/src/postconf/postconf_misc.c up to 1.3
	external/ibm-public/postfix/dist/src/postconf/postconf_user.c up to 1.4
	external/ibm-public/postfix/dist/src/postconf/test28.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/postconf/test29.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/postconf/test34.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postconf/test35.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postconf/test40.ref up to 1.1.1.4
	external/ibm-public/postfix/dist/src/postconf/test41.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postconf/test42.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postconf/test43.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postconf/test44.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postconf/test58.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/postconf/test59.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/postdrop/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/postdrop/postdrop.c up to 1.4
	external/ibm-public/postfix/dist/src/postfix/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/postfix/postfix.c up to 1.6
	external/ibm-public/postfix/dist/src/postkick/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/postkick/postkick.c up to 1.4
	external/ibm-public/postfix/dist/src/postlock/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/postlock/postlock.c up to 1.4
	external/ibm-public/postfix/dist/src/postlog/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/postlog/postlog.c up to 1.5
	external/ibm-public/postfix/dist/src/postmap/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/src/postmap/fail_test.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postmap/fail_test.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postmap/postmap.c up to 1.5
	external/ibm-public/postfix/dist/src/postmulti/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/postmulti/postmulti.c up to 1.4
	external/ibm-public/postfix/dist/src/postqueue/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/postqueue/postqueue.c up to 1.5
	external/ibm-public/postfix/dist/src/postqueue/showq_compat.c up to 1.4
	external/ibm-public/postfix/dist/src/postqueue/showq_json.c up to 1.4
	external/ibm-public/postfix/dist/src/postscreen/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/src/postscreen/postscreen.c up to 1.5
	external/ibm-public/postfix/dist/src/postscreen/postscreen.h up to 1.4
	external/ibm-public/postfix/dist/src/postscreen/postscreen_dnsbl.c up to 1.4
	external/ibm-public/postfix/dist/src/postscreen/postscreen_early.c up to 1.4
	external/ibm-public/postfix/dist/src/postscreen/postscreen_endpt.c up to 1.4
	external/ibm-public/postfix/dist/src/postscreen/postscreen_haproxy.c up to 1.3
	external/ibm-public/postfix/dist/src/postscreen/postscreen_haproxy.h up to 1.2
	external/ibm-public/postfix/dist/src/postscreen/postscreen_misc.c up to 1.4
	external/ibm-public/postfix/dist/src/postscreen/postscreen_send.c up to 1.3
	external/ibm-public/postfix/dist/src/postscreen/postscreen_smtpd.c up to 1.5
	external/ibm-public/postfix/dist/src/postscreen/postscreen_starttls.c up to 1.4
	external/ibm-public/postfix/dist/src/postscreen/postscreen_state.c up to 1.4
	external/ibm-public/postfix/dist/src/postscreen/postscreen_tests.c up to 1.4
	external/ibm-public/postfix/dist/src/postsuper/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/postsuper/postsuper.c up to 1.4
	external/ibm-public/postfix/dist/src/posttls-finger/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/posttls-finger/posttls-finger.c up to 1.5
	external/ibm-public/postfix/dist/src/proxymap/Makefile.in up to 1.1.1.6
	external/ibm-public/postfix/dist/src/proxymap/proxymap.c up to 1.4
	external/ibm-public/postfix/dist/src/qmgr/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/qmgr/qmgr.c up to 1.3
	external/ibm-public/postfix/dist/src/qmgr/qmgr.h up to 1.3
	external/ibm-public/postfix/dist/src/qmgr/qmgr_active.c up to 1.3
	external/ibm-public/postfix/dist/src/qmgr/qmgr_deliver.c up to 1.3
	external/ibm-public/postfix/dist/src/qmgr/qmgr_entry.c up to 1.3
	external/ibm-public/postfix/dist/src/qmgr/qmgr_error.c up to 1.2
	external/ibm-public/postfix/dist/src/qmgr/qmgr_feedback.c up to 1.2
	external/ibm-public/postfix/dist/src/qmgr/qmgr_message.c up to 1.4
	external/ibm-public/postfix/dist/src/qmqpd/Makefile.in up to 1.1.1.6
	external/ibm-public/postfix/dist/src/qmqpd/qmqpd.c up to 1.4
	external/ibm-public/postfix/dist/src/qmqpd/qmqpd_peer.c up to 1.3
	external/ibm-public/postfix/dist/src/scache/Makefile.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/scache/scache.c up to 1.4
	external/ibm-public/postfix/dist/src/sendmail/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/sendmail/sendmail.c up to 1.4
	external/ibm-public/postfix/dist/src/showq/Makefile.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/showq/showq.c up to 1.5
	external/ibm-public/postfix/dist/src/smtp/Makefile.in up to 1.1.1.10
	external/ibm-public/postfix/dist/src/smtp/lmtp_params.c up to 1.5
	external/ibm-public/postfix/dist/src/smtp/smtp.c up to 1.13
	external/ibm-public/postfix/dist/src/smtp/smtp.h up to 1.5
	external/ibm-public/postfix/dist/src/smtp/smtp_addr.c up to 1.5
	external/ibm-public/postfix/dist/src/smtp/smtp_addr.h up to 1.3
	external/ibm-public/postfix/dist/src/smtp/smtp_chat.c up to 1.4
	external/ibm-public/postfix/dist/src/smtp/smtp_connect.c up to 1.5
	external/ibm-public/postfix/dist/src/smtp/smtp_key.c up to 1.3
	external/ibm-public/postfix/dist/src/smtp/smtp_map11.c up to 1.3
	external/ibm-public/postfix/dist/src/smtp/smtp_map11.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtp/smtp_params.c up to 1.5
	external/ibm-public/postfix/dist/src/smtp/smtp_proto.c up to 1.5
	external/ibm-public/postfix/dist/src/smtp/smtp_rcpt.c up to 1.3
	external/ibm-public/postfix/dist/src/smtp/smtp_reuse.c up to 1.4
	external/ibm-public/postfix/dist/src/smtp/smtp_sasl_auth_cache.c up to 1.3
	external/ibm-public/postfix/dist/src/smtp/smtp_sasl_glue.c up to 1.3
	external/ibm-public/postfix/dist/src/smtp/smtp_sasl_proto.c up to 1.3
	external/ibm-public/postfix/dist/src/smtp/smtp_session.c up to 1.5
	external/ibm-public/postfix/dist/src/smtp/smtp_state.c up to 1.3
	external/ibm-public/postfix/dist/src/smtp/smtp_tls_policy.c up to 1.4
	external/ibm-public/postfix/dist/src/smtp/smtp_trouble.c up to 1.3
	external/ibm-public/postfix/dist/src/smtpd/Makefile.in up to 1.1.1.11
	external/ibm-public/postfix/dist/src/smtpd/pfilter.c up to 1.2 (+patch)
	external/ibm-public/postfix/dist/src/smtpd/smtpd.c up to 1.20
	external/ibm-public/postfix/dist/src/smtpd/smtpd.h up to 1.5
	external/ibm-public/postfix/dist/src/smtpd/smtpd_acl.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtpd/smtpd_acl.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtpd/smtpd_chat.c up to 1.4
	external/ibm-public/postfix/dist/src/smtpd/smtpd_chat.h up to 1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check.c up to 1.6
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check.h up to 1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check.in2 up to 1.1.1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check.in3 up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check.ref up to 1.1.1.5
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check.ref2 up to 1.1.1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check_backup.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check_backup.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check_dsn.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check_dsn.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtpd/smtpd_dns_filter.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtpd/smtpd_dnswl.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/smtpd/smtpd_dnswl.ref up to 1.1.1.4
	external/ibm-public/postfix/dist/src/smtpd/smtpd_error.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtpd/smtpd_error.ref up to 1.1.1.4
	external/ibm-public/postfix/dist/src/smtpd/smtpd_exp.in up to 1.1.1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_exp.ref up to 1.1.1.5
	external/ibm-public/postfix/dist/src/smtpd/smtpd_expand.h up to 1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_haproxy.c up to 1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_milter.c up to 1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_nullmx.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtpd/smtpd_nullmx.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/smtpd/smtpd_peer.c up to 1.5
	external/ibm-public/postfix/dist/src/smtpd/smtpd_proxy.c up to 1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_resolve.c up to 1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_resolve.h up to 1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_sasl_glue.c up to 1.5
	external/ibm-public/postfix/dist/src/smtpd/smtpd_sasl_proto.c up to 1.3
	external/ibm-public/postfix/dist/src/smtpd/smtpd_server.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/smtpd/smtpd_server.ref up to 1.1.1.4
	external/ibm-public/postfix/dist/src/smtpd/smtpd_state.c up to 1.2
	external/ibm-public/postfix/dist/src/smtpstone/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/smtpstone/smtp-sink.c up to 1.3
	external/ibm-public/postfix/dist/src/smtpstone/smtp-source.c up to 1.3
	external/ibm-public/postfix/dist/src/spawn/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/spawn/spawn.c up to 1.4
	external/ibm-public/postfix/dist/src/tls/Makefile.in up to 1.1.1.10
	external/ibm-public/postfix/dist/src/tls/tls.h  up to 1.5
	external/ibm-public/postfix/dist/src/tls/tls_bio_ops.c up to 1.1.1.6
	external/ibm-public/postfix/dist/src/tls/tls_certkey.c up to 1.4
	external/ibm-public/postfix/dist/src/tls/tls_client.c up to 1.13
	external/ibm-public/postfix/dist/src/tls/tls_dane.c up to 1.5
	external/ibm-public/postfix/dist/src/tls/tls_dh.c up to 1.5
	external/ibm-public/postfix/dist/src/tls/tls_fprint.c up to 1.4
	external/ibm-public/postfix/dist/src/tls/tls_mgr.c up to 1.4
	external/ibm-public/postfix/dist/src/tls/tls_misc.c up to 1.5
	external/ibm-public/postfix/dist/src/tls/tls_proxy.h up to 1.4
	external/ibm-public/postfix/dist/src/tls/tls_proxy_clnt.c up to 1.4
	external/ibm-public/postfix/dist/src/tls/tls_rsa.c up to 1.4
	external/ibm-public/postfix/dist/src/tls/tls_scache.c up to 1.4
	external/ibm-public/postfix/dist/src/tls/tls_server.c up to 1.12
	external/ibm-public/postfix/dist/src/tls/tls_session.c up to 1.3
	external/ibm-public/postfix/dist/src/tls/tls_verify.c up to 1.4
	external/ibm-public/postfix/dist/src/tlsmgr/Makefile.in up to 1.1.1.6
	external/ibm-public/postfix/dist/src/tlsmgr/tlsmgr.c up to 1.4
	external/ibm-public/postfix/dist/src/tlsproxy/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy.c up to 1.6
	external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy.h up to 1.2
	external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy_state.c up to 1.3
	external/ibm-public/postfix/dist/src/trivial-rewrite/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/trivial-rewrite/resolve.c up to 1.4
	external/ibm-public/postfix/dist/src/trivial-rewrite/rewrite.c up to 1.3
	external/ibm-public/postfix/dist/src/trivial-rewrite/transport.c up to 1.4
	external/ibm-public/postfix/dist/src/trivial-rewrite/trivial-rewrite.c up to 1.4
	external/ibm-public/postfix/dist/src/trivial-rewrite/trivial-rewrite.h up to 1.3
	external/ibm-public/postfix/dist/src/util/Makefile.in up to 1.1.1.11
	external/ibm-public/postfix/dist/src/util/allascii.c up to 1.3
	external/ibm-public/postfix/dist/src/util/alldig.c up to 1.2
	external/ibm-public/postfix/dist/src/util/argv.c up to 1.4
	external/ibm-public/postfix/dist/src/util/argv.h up to 1.4
	external/ibm-public/postfix/dist/src/util/attr.h up to 1.5
	external/ibm-public/postfix/dist/src/util/attr_clnt.c up to 1.3
	external/ibm-public/postfix/dist/src/util/attr_clnt.h up to 1.3
	external/ibm-public/postfix/dist/src/util/attr_print0.c up to 1.3
	external/ibm-public/postfix/dist/src/util/attr_print64.c up to 1.3
	external/ibm-public/postfix/dist/src/util/attr_print_plain.c up to 1.3
	external/ibm-public/postfix/dist/src/util/attr_scan0.c up to 1.3
	external/ibm-public/postfix/dist/src/util/attr_scan0.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/util/attr_scan64.c up to 1.3
	external/ibm-public/postfix/dist/src/util/attr_scan64.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/util/attr_scan_plain.c up to 1.3
	external/ibm-public/postfix/dist/src/util/attr_scan_plain.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/util/auto_clnt.c up to 1.4
	external/ibm-public/postfix/dist/src/util/auto_clnt.h up to 1.2
	external/ibm-public/postfix/dist/src/util/base32_code.h up to 1.3
	external/ibm-public/postfix/dist/src/util/base64_code.h up to 1.3
	external/ibm-public/postfix/dist/src/util/binhash.c up to 1.3
	external/ibm-public/postfix/dist/src/util/binhash.h up to 1.3
	external/ibm-public/postfix/dist/src/util/casefold.c up to 1.3
	external/ibm-public/postfix/dist/src/util/check_arg.h up to 1.3
	external/ibm-public/postfix/dist/src/util/cidr_match.c up to 1.4
	external/ibm-public/postfix/dist/src/util/cidr_match.h up to 1.2
	external/ibm-public/postfix/dist/src/util/clean_env.c up to 1.3
	external/ibm-public/postfix/dist/src/util/clean_env.h up to 1.2
	external/ibm-public/postfix/dist/src/util/connect.h up to 1.2
	external/ibm-public/postfix/dist/src/util/dict.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict.h up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_alloc.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_cache.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_cdb.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_cdb.h up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_cidr.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_cidr.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/dict_cidr.map up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/dict_cidr.ref up to 1.1.1.4
	external/ibm-public/postfix/dist/src/util/dict_db.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_db.h up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_dbm.h up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_fail.c up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_fail.h up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_inline.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_lmdb.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_lmdb.h up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_open.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_pcre.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_pcre.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/dict_pcre.map up to 1.1.1.3
	external/ibm-public/postfix/dist/src/util/dict_pcre.ref up to 1.1.1.4
	external/ibm-public/postfix/dist/src/util/dict_random.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_random.h up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_regexp.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_regexp.map up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/dict_regexp.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/util/dict_sdbm.h up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_static.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_thash.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_thash.map up to 1.1.1.3
	external/ibm-public/postfix/dist/src/util/dict_union.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_utf8.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_utf8_test.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/dup2_pass_on_exec.c up to 1.2
	external/ibm-public/postfix/dist/src/util/edit_file.c up to 1.4
	external/ibm-public/postfix/dist/src/util/edit_file.h up to 1.3
	external/ibm-public/postfix/dist/src/util/extpar.c up to 1.4
	external/ibm-public/postfix/dist/src/util/find_inet.c up to 1.3
	external/ibm-public/postfix/dist/src/util/gccw.c up to 1.2
	external/ibm-public/postfix/dist/src/util/hex_code.c up to 1.3
	external/ibm-public/postfix/dist/src/util/hex_code.h up to 1.4
	external/ibm-public/postfix/dist/src/util/hex_quote.c up to 1.2
	external/ibm-public/postfix/dist/src/util/host_port.h up to 1.3
	external/ibm-public/postfix/dist/src/util/htable.c up to 1.4
	external/ibm-public/postfix/dist/src/util/inet_addr_host.c up to 1.3
	external/ibm-public/postfix/dist/src/util/inet_addr_list.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/inet_addr_list.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/inet_connect.c up to 1.3
	external/ibm-public/postfix/dist/src/util/inet_listen.c up to 1.3
	external/ibm-public/postfix/dist/src/util/inet_proto.c up to 1.4
	external/ibm-public/postfix/dist/src/util/inet_proto.h up to 1.2
	external/ibm-public/postfix/dist/src/util/killme_after.c up to 1.2
	external/ibm-public/postfix/dist/src/util/listen.h up to 1.3
	external/ibm-public/postfix/dist/src/util/load_lib.c up to 1.3
	external/ibm-public/postfix/dist/src/util/lstat_as.h up to 1.3
	external/ibm-public/postfix/dist/src/util/mac_expand.c up to 1.4
	external/ibm-public/postfix/dist/src/util/mac_expand.h up to 1.4
	external/ibm-public/postfix/dist/src/util/mac_expand.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/util/mac_expand.ref up to 1.1.1.4
	external/ibm-public/postfix/dist/src/util/mac_parse.h up to 1.3
	external/ibm-public/postfix/dist/src/util/make_dirs.c up to 1.2
	external/ibm-public/postfix/dist/src/util/match_list.c up to 1.3
	external/ibm-public/postfix/dist/src/util/match_ops.c up to 1.3
	external/ibm-public/postfix/dist/src/util/midna_domain.c up to 1.4
	external/ibm-public/postfix/dist/src/util/midna_domain.h up to 1.4
	external/ibm-public/postfix/dist/src/util/midna_domain_test.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/msg_output.c up to 1.4
	external/ibm-public/postfix/dist/src/util/msg_output.h up to 1.3
	external/ibm-public/postfix/dist/src/util/msg_syslog.c up to 1.2
	external/ibm-public/postfix/dist/src/util/msg_syslog.h up to 1.3
	external/ibm-public/postfix/dist/src/util/mvect.c up to 1.3
	external/ibm-public/postfix/dist/src/util/myaddrinfo.c up to 1.3
	external/ibm-public/postfix/dist/src/util/myaddrinfo.h up to 1.3
	external/ibm-public/postfix/dist/src/util/myaddrinfo.ref up to 1.1.1.5
	external/ibm-public/postfix/dist/src/util/myaddrinfo4.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/myflock.c up to 1.3
	external/ibm-public/postfix/dist/src/util/myflock.h up to 1.3
	external/ibm-public/postfix/dist/src/util/mymalloc.c up to 1.4
	external/ibm-public/postfix/dist/src/util/mymalloc.h up to 1.4
	external/ibm-public/postfix/dist/src/util/mystrtok.c up to 1.4
	external/ibm-public/postfix/dist/src/util/name_mask.c up to 1.3
	external/ibm-public/postfix/dist/src/util/nbbio.c up to 1.3
	external/ibm-public/postfix/dist/src/util/netstring.c up to 1.3
	external/ibm-public/postfix/dist/src/util/peekfd.c up to 1.3
	external/ibm-public/postfix/dist/src/util/printable.c up to 1.3
	external/ibm-public/postfix/dist/src/util/recv_pass_attr.c up to 1.3
	external/ibm-public/postfix/dist/src/util/sane_fsops.h up to 1.3
	external/ibm-public/postfix/dist/src/util/sane_link.c up to 1.2
	external/ibm-public/postfix/dist/src/util/sane_rename.c up to 1.2
	external/ibm-public/postfix/dist/src/util/sane_socketpair.h up to 1.3
	external/ibm-public/postfix/dist/src/util/slmdb.c up to 1.4
	external/ibm-public/postfix/dist/src/util/sock_addr.c up to 1.3
	external/ibm-public/postfix/dist/src/util/sock_addr.h up to 1.2
	external/ibm-public/postfix/dist/src/util/split_nameval.c up to 1.2
	external/ibm-public/postfix/dist/src/util/stat_as.h up to 1.3
	external/ibm-public/postfix/dist/src/util/stringops.h up to 1.5
	external/ibm-public/postfix/dist/src/util/sys_compat.c up to 1.3
	external/ibm-public/postfix/dist/src/util/sys_defs.h up to 1.14
	external/ibm-public/postfix/dist/src/util/timed_wait.h up to 1.3
	external/ibm-public/postfix/dist/src/util/unix_pass_fd_fix.c up to 1.2
	external/ibm-public/postfix/dist/src/util/unix_send_fd.c up to 1.8
	external/ibm-public/postfix/dist/src/util/unsafe.c up to 1.2
	external/ibm-public/postfix/dist/src/util/valid_hostname.c up to 1.3
	external/ibm-public/postfix/dist/src/util/valid_hostname.h up to 1.2
	external/ibm-public/postfix/dist/src/util/vbuf.c up to 1.3
	external/ibm-public/postfix/dist/src/util/vbuf_print.c up to 1.4
	external/ibm-public/postfix/dist/src/util/vstream.c up to 1.4
	external/ibm-public/postfix/dist/src/util/vstream.h up to 1.4
	external/ibm-public/postfix/dist/src/util/vstream_tweak.c up to 1.3
	external/ibm-public/postfix/dist/src/util/vstring.c up to 1.4
	external/ibm-public/postfix/dist/src/util/vstring.h up to 1.4
	external/ibm-public/postfix/dist/src/util/vstring_vstream.c up to 1.2
	external/ibm-public/postfix/dist/src/util/vstring_vstream.h up to 1.3
	external/ibm-public/postfix/dist/src/util/watchdog.c up to 1.3
	external/ibm-public/postfix/dist/src/verify/Makefile.in up to 1.1.1.6
	external/ibm-public/postfix/dist/src/verify/verify.c up to 1.4
	external/ibm-public/postfix/dist/src/virtual/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/virtual/mailbox.c up to 1.3
	external/ibm-public/postfix/dist/src/virtual/virtual.c up to 1.4
	external/ibm-public/postfix/dist/src/xsasl/Makefile.in up to 1.1.1.4
	external/ibm-public/postfix/dist/src/xsasl/xsasl.h up to 1.3
	external/ibm-public/postfix/dist/src/xsasl/xsasl_cyrus_client.c up to 1.3
	external/ibm-public/postfix/dist/src/xsasl/xsasl_cyrus_server.c up to 1.4
	external/ibm-public/postfix/dist/src/xsasl/xsasl_dovecot_server.c up to 1.4
	external/ibm-public/postfix/dist/src/xsasl/xsasl_saslc_client.c up to 1.2
	external/ibm-public/postfix/dist/src/xsasl/xsasl_server.c up to 1.2
	external/ibm-public/postfix/lib/dns/Makefile    up to 1.4
	external/ibm-public/postfix/lib/global/Makefile up to 1.10
	external/ibm-public/postfix/lib/masterlib/Makefile up to 1.3
	external/ibm-public/postfix/lib/milter/Makefile up to 1.2
	external/ibm-public/postfix/lib/tls/Makefile    up to 1.4
	external/ibm-public/postfix/lib/util/Makefile   up to 1.11
	external/ibm-public/postfix/lib/xsasl/Makefile  up to 1.3
	external/ibm-public/postfix/libexec/smtp/Makefile up to 1.4
	external/ibm-public/postfix/libexec/smtpd/Makefile up to 1.9 (+patch)
	external/ibm-public/postfix/libexec/tlsproxy/Makefile up to 1.2
	external/ibm-public/postfix/sbin/postconf/Makefile up to 1.9
	doc/3RDPARTY					(apply patch)

Update Postfix to 3.8.4.
@
text
@d30 6
a35 6
Most Postfix systems are the ffiinnaall ddeessttiinnaattiioonn for only a few domain names.
These include the hostnames and [the IP addresses] of the machine that Postfix
runs on, and sometimes also include the parent domain of the hostname. The
remainder of this document will refer to these domains as the canonical
domains. They are usually implemented with the Postfix local domain address
class, as defined in the ADDRESS_CLASS_README file.
d37 1
a37 1
Besides the canonical domains, Postfix can be configured to be the ffiinnaall
d52 2
a53 2
the internet. Obviously, Postfix is not the final destination for such mail.
This function is available only for authorized clients and/or users, and is
@


1.1.1.3
log
@Import Postfix-3.7.3 (previous version was 3.5.2)

This is the Postfix 3.7 (stable) release.

The stable Postfix release is called postfix-3.7.x where 3=major
release number, 7=minor release number, x=patchlevel.  The stable
release never changes except for patches that address bugs or
emergencies. Patches change the patchlevel and the release date.

New features are developed in snapshot releases. These are called
postfix-3.8-yyyymmdd where yyyymmdd is the release date (yyyy=year,
mm=month, dd=day).  Patches are never issued for snapshot releases;
instead, a new snapshot is released.

The mail_release_date configuration parameter (format: yyyymmdd)
specifies the release date of a stable release or snapshot release.

If you upgrade from Postfix 3.5 or earlier, read RELEASE_NOTES-3.6
before proceeding.

License change
---------------

This software is distributed with a dual license: in addition to the
historical IBM Public License 1.0, it is now also distributed with the
more recent Eclipse Public License 2.0. Recipients can choose to take
the software under the license of their choice. Those who are more
comfortable with the IPL can continue with that license.

Bugfix for messages not delivered after "warning: Unexpected record type 'X'
============================================================================

Due to a bug introduced in Postfix 3.7.0, a message could falsely
be flagged as corrupt with "warning: Unexpected record type 'X'".

Such messages were moved to the "corrupt" queue directory, where
they may still be found. See below for instructions to deal with
these falsely flagged messages.

This could happen for messages with 5000 or more recipients, or
with fewer recipients on a busy mail server. The problem was first
reported by Frank Brendel, reproduced by John Alex.

A file in the "corrupt" queue directory may be inspected with the
command "postcat /var/spool/postfix/corrupt/<filename>. If delivery
of the file is still desired, the file can be moved back to
/var/spool/postfix/incoming after updating Postfix and executing
"postfix reload".

Major changes - configuration
-----------------------------

[Feature 20210605] Support to inline the content of small cidr:,
pcre:, and regexp: tables in Postfix parameter values.

Example:

    smtpd_forbidden_commands =
	CONNECT GET POST regexp:{{/^[^A-Z]/ Thrash}}

This is the new smtpd_forbidden_commands default value. It will
immediately disconnect a remote SMTP client when a command does not
start with a letter (a-z or A-Z).

The basic syntax is:

/etc/postfix/main.cf:
    parameter = .. map-type:{ { rule-1 }, { rule-2 } .. } ..

/etc/postfix/master.cf:
    .. -o { parameter = .. map-type:{ { rule-1 }, { rule-2 } .. } .. } ..

where map-type is one of cidr, pcre, or regexp.

Postfix ignores whitespace after '{' and before '}', and writes each
rule as one text line to a nameless in-memory file:

in-memory file:
    rule-1
    rule-2
    ..

Postfix parses the result as if it is a file in /etc/postfix.

Note: if a rule contains $, specify $$ to keep Postfix from trying
to do $name expansion as it evaluates the parameter value.

Major changes - lmdb support
----------------------------

[Feature 20210605] Overhauled the LMDB client's error handling, and
added integration tests for future-proofing. There are no visible
changes in documented behavior.

Major changes - logging
-----------------------

[Feature 20210815] To make the maillog_file feature more useful,
the postlog(1) command is now set-gid postdrop, so that unprivileged
programs can use it to write logging through the postlogd(8) daemon.
This required hardening the postlog(1) command against privilege
escalation attacks. DO NOT turn on the set-gid bit with older
postlog(1) implementations.

Major changes - pcre2 support
-----------------------------

[Feature 20211127] Support for the pcre2 library (the legacy pcre
library is no longer maintained). The Postfix build procedure
automatically detects if the pcre2 library is installed, and if it
is unavailable, the Postfix build procedure will detect if the
legacy pcre library is installed. See PCRE_README if you need to
build Postfix with a specific library.

Visible differences: some error messages may have a different text,
and the 'X' pattern flag is no longer supported with pcre2.

Major changes - security
------------------------

[Feature 20220102] Postfix programs now randomize the initial state
of in-memory hash tables, to defend against hash collision attacks
involving a large number of attacker-chosen lookup keys. Presently,
the only known opportunity for such attacks involves remote SMTP
client IPv6 addresses in the anvil(8) service. The attack would
require making hundreds of short-lived connections per second from
thousands of different IP addresses, because the anvil(8) service
drops inactive counters after 100s. Other in-memory hash tables
with attacker-chosen lookup keys are by design limited in size. The
fix is cheap, and therefore implemented for all Postfix in-memory
hash tables. Problem reported by Pascal Junod.

[Feature 20211030] The postqueue command now sanitizes non-printable
characters (such as newlines) in strings before they are formatted
as json or as legacy output. These outputs are piped into other
programs that are run by administrative users. This closes a
hypothetical opportunity for privilege escalation.

[Feature 20210815] Updated defense against remote clients or servers
that 'trickle' SMTP or LMTP traffic, based on per-request deadlines
and minimum data rates.

Per-request deadlines:

The new {smtpd,smtp,lmtp}_per_request_deadline parameters replace
{smtpd,smtp,lmtp}_per_record_deadline, with backwards compatible
default settings. This defense is enabled by default in the Postfix
SMTP server in case of overload.

The new smtpd_per_record_deadline parameter limits the combined
time for the Postfix SMTP server to receive a request and to send
a response, while the new {smtp,lmtp}_per_record_deadline parameters
limit the combined time for the Postfix SMTP or LMTP client to send
a request and to receive a response.

Minimum data rates:

The new smtpd_min_data_rate parameter enforces a minimum plaintext
data transfer rate for DATA and BDAT requests, but only when
smtpd_per_record_deadline is enabled. After a read operation transfers
N plaintext bytes (possibly after TLS decryption), and after the
DATA or BDAT request deadline is decreased by the elapsed time of
that read operation, the DATA or BDAT request deadline is increased
by N/smtpd_min_data_rate seconds. However, the deadline is never
increased beyond the smtpd_timeout value. The default minimum data
rate is 500 (bytes/second) but is still subject to change.

The new {smtp,lmtp}_min_data_rate parameters enforce the corresponding
minimum DATA transfer rates for the Postfix SMTP and LMTP client.

Major changes - tls support
---------------------------

[Cleanup 20220121] The new tlsproxy_client_security_level parameter
replaces tlsproxy_client_level, and the new tlsproxy_client_policy_maps
parameter replaces tlsproxy_client_policy. This is for consistent
parameter naming (tlsproxy_client_xxx corresponds to smtp_tls_xxx).
This change was made with backwards-compatible default settings.

[Feature 20210926] Postfix was updated to support OpenSSL 3.0.0 API
features, and to work around OpenSSL 3.0.0 bit-rot (avoid using
deprecated API features).

Other code health
-----------------

[typos] Typo fixes by raf.

[pre-release checks] Added pre-release checks to detect a) new typos
in documentation and source-code comments, b) missing entries in
the postfix-files file (some documentation would not be installed),
c) missing rules in the postlink script (some text would not have
a hyperlink in documentation), and d) missing map-based $parameter
names in the proxy_read_maps default value (the proxymap daemon
would not automatically authorize some proxied maps).

[memory stream] Improved support for memory-based streams made it
possible to inline small cidr:, pcre:, and regexp: maps in Postfix
parameter values, and to eliminate some ad-hoc code that converted
tlsproxy(8) protocol data to or from serialized form.

*************************************************************************

This is the Postfix 3.6 (stable) release.

The stable Postfix release is called postfix-3.6.x where 3=major
release number, 6=minor release number, x=patchlevel. The stable
release never changes except for patches that address bugs or
emergencies. Patches change the patchlevel and the release date.

New features are developed in snapshot releases. These are called
postfix-3.7-yyyymmdd where yyyymmdd is the release date (yyyy=year,
mm=month, dd=day). Patches are never issued for snapshot releases;
instead, a new snapshot is released.

The mail_release_date configuration parameter (format: yyyymmdd)
specifies the release date of a stable release or snapshot release.

If you upgrade from Postfix 3.4 or earlier, read RELEASE_NOTES-3.5
before proceeding.

License change
---------------

This software is distributed with a dual license: in addition to the
historical IBM Public License 1.0, it is now also distributed with the
more recent Eclipse Public License 2.0. Recipients can choose to take
the software under the license of their choice. Those who are more
comfortable with the IPL can continue with that license.

Major changes - internal protocol identification
------------------------------------------------

[Incompat 20200920] Internal protocols have changed. You need to
"postfix stop" before updating, or before backing out to an earlier
release, otherwise long-running daemons (pickup, qmgr, verify, tlsproxy,
postscreen) may fail to communicate with the rest of Postfix, causing
mail delivery delays until Postfix is restarted.

This change does not affect message files in Postfix queue directories,
only the communication between running Postfix programs.

With this change, every Postfix internal service, including the postdrop
command, announces the name of its protocol before doing any other I/O.
Every Postfix client program, including the Postfix sendmail command,
will verify that the protocol name matches what it is supposed to be.

The purpose of this change is to produce better error messages, for
example, when someone configures the discard daemon as a bounce
service in master.cf, or vice versa.

This change may break third-party programs that implement a
Postfix-internal protocol such as qpsmtpd. Such programs have never
been supported. Fortunately, this will be an easy fix: look at the
first data from the cleanup daemon: if it is a protocol announcement,
you're talking to Postfix 3.6 or later. That's the only real change.

Major changes - tls
-------------------

[Incompat 20200705] The minimum supported OpenSSL version is 1.1.1,
which will reach the end of life by 2023-09-11. Postfix 3.6 is
expected to reach the end of support in 2025. Until then, Postfix
will be updated as needed for compatibility with OpenSSL.

The default fingerprint digest has changed from md5 to sha256 (Postfix
3.6 with compatibility_level >= 3.6). With a lower compatibility_level
setting, Postfix defaults to using md5, and logs a warning when a Postfix
configuration specifies no explicit digest type.

Export-grade Diffie-Hellman key exchange is no longer supported,
and the tlsproxy_tls_dh512_param_file parameter is ignored,

[Feature 20200906] The tlstype.pl helper script by Viktor Dukhovni
reports TLS information per message delivery. This processes output
from the collate.pl script. See auxiliary/collate/README.tlstype and
auxiliary/collate/tlstype.pl.

Major changes - compatibility level
-----------------------------------

[Feature 20210109] Starting with Postfix version 3.6, the compatibility
level is "3.6". In future Postfix releases, the compatibility level will
be the Postfix version that introduced the last incompatible change. The
level is formatted as 'major.minor.patch', where 'patch' is usually
omitted and defaults to zero. Earlier compatibility levels are 0, 1 and 2.

This also introduces main.cf and master.cf support for the <=level,
<level, and other operators to compare compatibility levels. With the
standard <=, <, etc. operators, compatibility level 3.10 would be less
than 3.9, which is undesirable.

Major changes - services(5) override
------------------------------------

[Feature 20210418] Postfix no longer uses the services(5) database
to look up the TCP ports for SMTP and LMTP services. Instead, this
information is configured with the new known_tcp_ports configuration
parameter (default: lmtp=24, smtp=25, smtps=submissions=465,
submission=587). When a service is not specified in known_tcp_ports,
Postfix will still query the services(5) database.

Major changes - local_login_sender_maps
---------------------------------------

[Feature 20201025] Fine-grained control over the envelope sender address
for submission with the Postfix sendmail (or postdrop) commands.

The local_login_sender_maps parameter (default: static:*) specifies
a list of lookup tables that are searched by the UNIX login name, and
that return a list of allowed envelope sender patterns separated by
space or comma. The default is backwards-compatible: every user may
specify any sender envelope address.

This feature is enforced by the postdrop command. When no UNIX login
name is available, the postdrop command will prepend "uid:" to the
numerical UID and use that instead.

This feature ignores address extensions in the user-specified
envelope sender address.

Besides the special pattern "*" which allows any sender address,
there are "<>" which matches an empty sender address, and the
"@@domain" wildcard pattern. More information about those can be found
in the postconf(5) manpage.

Example:

/etc/postfix/main.cf:
    # Allow root and postfix full control, anyone else can only
    # send mail as themselves. Use "uid:" followed by the numerical
    # UID when the UID has no entry in the UNIX password file.
    local_login_sender_maps =
        inline:{ { root = *}, { postfix = * } },
        pcre:/etc/postfix/login_senders

/etc/postfix/login_senders:
   # Allow both the bare username and the user@@domain forms.
    /(.+)/ $1 $1@@example.com

Major changes - order of relay and recipient restrictions
---------------------------------------------------------

[Incompat 20210131] With smtpd_relay_before_recipient_restrictions=yes,
the Postfix SMTP server will evaluate smtpd_relay_restrictions before
smtpd_recipient_restrictions. This is the default behavior with
compatibility_level >= 3.6.

This change makes the implemented behavior consistent with existing
documentation. There is a backwards-compatibility warning that allows
users to freeze historical behavior. See COMPATIBILITY_README for
details.

Major changes - respectful logging
----------------------------------

[Feature 20210220] Postfix version 3.6 deprecates terminology
that implies white is better than black. Instead, Postfix prefers
'allowlist', 'denylist', and variations on those words. This change
affects Postfix documentation, and postscreen parameters and logging.

To keep the old postscreen logging set "respectful_logging = no"
in main.cf.

Noel Jones assisted with the initial transition.

Changes in documentation
------------------------

Postfix documentation was updated to use 'allowlist', 'denylist', etc.
These documentation changes do not affect Postfix behavior.

Changes in parameter names
--------------------------

The following postscreen parameters replace names that contain 'blacklist'
or 'whitelist':

    postscreen_allowlist_interfaces
    postscreen_denylist_action
    postscreen_dnsbl_allowlist_threshold

These new parameters have backwards-compatible default settings
that support the old parameter names, so that the name change should
not affect Postfix behavior. This means that existing management tools
that use the old parameter names should keep working as before.

This compatibility safety net may break when some management tools
use the new parameter names, and some use the old names, such that
different tools will disagree on how Postfix works.

Changes in logging
------------------

The following logging replaces forms that contain 'blacklist' or
'whitelist':

    postfix/postscreen[pid]: ALLOWLIST VETO [address]:port
    postfix/postscreen[pid]: ALLOWLISTED [address]:port
    postfix/postscreen[pid]: DENYLISTED [address]:port

To avoid breaking logfile analysis tools, Postfix keeps logging the old
forms by default, as long as the compatibility_level parameter setting
is less than 3.6, and the respectful_logging parameter is not explicitly
configured. As a reminder, Postfix will log the following:

    postfix/postscreen[pid]: Using backwards-compatible default setting
        respectful_logging=no for client [address]:port

To keep logging the old form, make the setting "respectful_logging =
no" permanent in main.cf, for example:

    # postconf "respectful_logging = no"
    # postfix reload

To stop the reminder, configure the respectful_logging parameter to
"yes" or "no", or configure "compatibility_level = 3.6".

Major changes - threaded bounces
--------------------------------

[Feature 20201205] Support for threaded bounces. This allows mail
readers to present a non-delivery, delayed delivery, or successful
delivery notification in the same email thread as the original
message.

Unfortunately, this also makes it easy for users to mistakenly delete
the whole email thread (all related messages), instead of deleting
only the delivery status notification.

To enable, specify "enable_threaded_bounces = yes".

Other changes - smtpd_sasl_mechanism_list
-----------------------------------------

[Feature 20200906] The smtpd_sasl_mechanism_list parameter (default:
!external, static:rest) prevents confusing errors when a SASL backend
announces EXTERNAL support which Postfix does not support.

Other changes - delivery logging
--------------------------------

[Incompat 20200531] Postfix delivery agents now log an explicit record
when delegating delivery to a different Postfix delivery agent.

For example, with "best_mx_transport = local", an SMTP delivery
agent will now log when a recipient will be delivered locally. This
makes the delegating delivery agent visible, where it would otherwise
have remained invisible, which would complicate troubleshooting.

  postfix/smtp[pid]: queueid: passing <recipient> to transport=local

This will usually be followed by logging for an actual delivery:

  postfix/local[pid]: queueid: to=<recipient>, relay=local, ...

Other examples: the local delivery agent will log a record that it
defers mailbox delivery through mailbox_transport or through
fallback_transport.

Other changes - error logging
-----------------------------

[Incompat 20200531] Postfix programs will now log "Application error"
instead of "Success" or "Unknown error: 0" when an operation fails with
errno == 0, i.e., the error originates from non-kernel code.

Other changes - dns lookups
---------------------------

[Feature 20200509] The threadsafe resolver API (res_nxxx() calls)
is now the default, not because the API is threadsafe, but because
this is the API where new features are being added.

To build old style, build with:

    make makefiles CCARGS="-DNO_RES_NCALLS..."

This is the default for systems that are known not to support the
threadsafe resolver API.
@
text
@d30 6
a35 6
Most Postfix systems are the ffiinnaall ddeessttiinnaattiioonn for only a few domain names.
These include the hostnames and [the IP addresses] of the machine that Postfix
runs on, and sometimes also include the parent domain of the hostname. The
remainder of this document will refer to these domains as the canonical
domains. They are usually implemented with the Postfix local domain address
class, as defined in the ADDRESS_CLASS_README file.
d37 1
a37 1
Besides the canonical domains, Postfix can be configured to be the ffiinnaall
d52 2
a53 2
the internet. Obviously, Postfix is not the final destination for such mail.
This function is available only for authorized clients and/or users, and is
@


1.1.1.3.6.1
log
@Pull up the following, requested by christos in ticket #283:

	external/ibm-public/postfix//dist/README_FILES/NON_BERKELEYDB_README up to
	external/ibm-public/postfix//dist/README_FILES/REQUIRETLS_README up to
	external/ibm-public/postfix//dist/conf/postfix-non-bdb-script up to
	external/ibm-public/postfix//dist/html/NON_BERKELEYDB_README.html up to
	external/ibm-public/postfix//dist/html/REQUIRETLS_README.html up to
	external/ibm-public/postfix//dist/html/nbdb_reindexd.8.html up to
	external/ibm-public/postfix//dist/html/postfix-non-bdb.1.html up to
	external/ibm-public/postfix//dist/man/man1/postfix-non-bdb.1 up to
	external/ibm-public/postfix//dist/man/man8/nbdb_reindexd.8 up to
	external/ibm-public/postfix//dist/mantools/check-proxy-type-table up to
	external/ibm-public/postfix//dist/proto/NON_BERKELEYDB_README.html up to
	external/ibm-public/postfix//dist/proto/REQUIRETLS_README.html up to
	external/ibm-public/postfix//dist/src/cleanup/cleanup_message_test.c up to
	external/ibm-public/postfix//dist/src/global/ehlo_mask_test.c up to
	external/ibm-public/postfix//dist/src/global/nbdb_clnt.c up to
	external/ibm-public/postfix//dist/src/global/allowed_prefix.c up to
	external/ibm-public/postfix//dist/src/global/allowed_prefix.h up to
	external/ibm-public/postfix//dist/src/global/allowed_prefix_test.c up to
	external/ibm-public/postfix//dist/src/global/dict_sqlite_test.c up to
	external/ibm-public/postfix//dist/src/global/haproxy_srvr_test.c up to
	external/ibm-public/postfix//dist/src/global/login_sender_match_test.c up to
	external/ibm-public/postfix//dist/src/global/nbdb_clnt.h up to
	external/ibm-public/postfix//dist/src/global/nbdb_redirect.c up to
	external/ibm-public/postfix//dist/src/global/nbdb_redirect.h up to
	external/ibm-public/postfix//dist/src/global/nbdb_redirect_test.c up to
	external/ibm-public/postfix//dist/src/global/nbdb_surrogate.c up to
	external/ibm-public/postfix//dist/src/global/nbdb_surrogate.h up to
	external/ibm-public/postfix//dist/src/global/nbdb_surrogate_test.c up to
	external/ibm-public/postfix//dist/src/global/nbdb_util.c up to
	external/ibm-public/postfix//dist/src/global/nbdb_util.h up to
	external/ibm-public/postfix//dist/src/global/nbdb_util_test.c up to
	external/ibm-public/postfix//dist/src/global/pol_stats.c up to
	external/ibm-public/postfix//dist/src/global/pol_stats.h up to
	external/ibm-public/postfix//dist/src/global/pol_stats_test.c up to
	external/ibm-public/postfix//dist/src/postalias/mode_conflict_test.in up to
	external/ibm-public/postfix//dist/src/postalias/mode_conflict_test.ref up to
	external/ibm-public/postfix//dist/src/postconf/test77-main.cf up to
	external/ibm-public/postfix//dist/src/postconf/test77.ref up to
	external/ibm-public/postfix//dist/src/postconf/test78.ref up to
	external/ibm-public/postfix//dist/src/postconf/test79.ref up to
	external/ibm-public/postfix//dist/src/postconf/test80.ref up to
	external/ibm-public/postfix//dist/src/postconf/test81.ref up to
	external/ibm-public/postfix//dist/src/postconf/test82.ref up to
	external/ibm-public/postfix//dist/src/postconf/test83.ref up to
	external/ibm-public/postfix//dist/src/postconf/test84.ref up to
	external/ibm-public/postfix//dist/src/postconf/test85.ref up to
	external/ibm-public/postfix//dist/src/postconf/test86.ref up to
	external/ibm-public/postfix//dist/src/postconf/test87.ref up to
	external/ibm-public/postfix//dist/src/postconf/test91.ref up to
	external/ibm-public/postfix//dist/src/postmap/mode_conflict_test.in up to
	external/ibm-public/postfix//dist/src/postmap/mode_conflict_test.ref up to
	external/ibm-public/postfix//dist/src/postmulti/fake_strcmp.c up to
	external/ibm-public/postfix//dist/src/smtp/smtp_reqtls_policy.c up to
	external/ibm-public/postfix//dist/src/smtp/smtp_reqtls_policy.h up to
	external/ibm-public/postfix//dist/src/smtp/smtp_reqtls_policy_test.c up to
	external/ibm-public/postfix//dist/src/smtp/smtp_tls_policy_test.c up to
	external/ibm-public/postfix//dist/src/smtpd/smtpd_peer_test.c up to
	external/ibm-public/postfix//dist/src/util/dict_union_test.c up to
	external/ibm-public/postfix//dist/src/util/hash_fnv_test.c up to
	external/ibm-public/postfix//dist/src/util/mac_midna.h up to
	external/ibm-public/postfix//dist/src/util/normalize_v4mapped_addr.c up to
	external/ibm-public/postfix//dist/src/util/dict_debug.h up to
	external/ibm-public/postfix//dist/src/util/dict_debug_test.ref up to
	external/ibm-public/postfix//dist/src/util/dict_debug_test.sh up to
	external/ibm-public/postfix//dist/src/util/dict_pipe_test.c up to
	external/ibm-public/postfix//dist/src/util/mac_midna.c up to
	external/ibm-public/postfix//dist/src/util/normalize_v4mapped_addr.h up to
	external/ibm-public/postfix//dist/src/util/normalize_v4mapped_addr_test.c up to
	external/ibm-public/postfix//dist/src/util/ossl_digest.c up to
	external/ibm-public/postfix//dist/src/util/ossl_digest.h up to
	external/ibm-public/postfix//dist/src/util/ossl_digest_test.c up to
	external/ibm-public/postfix//dist/src/util/wrap_stat.c up to
	external/ibm-public/postfix//dist/src/util/wrap_stat.h up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/Makefile.in up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_index_as.c up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_index_as.h up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_index_as_test.c up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_process.c up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_process.h up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_process_test.c up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_reindexd.c up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_reindexd.h up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_safe.c up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_safe.h up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_safe_test.c up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_sniffer.c up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_sniffer.h up to
	external/ibm-public/postfix//dist/src/nbdb_reindexd/nbdb_sniffer_test.c up to
	external/ibm-public/postfix//dist/src/testing/Makefile.in up to
	external/ibm-public/postfix//dist/src/testing/dict_test_helper.c up to
	external/ibm-public/postfix//dist/src/testing/dict_test_helper.h up to
	external/ibm-public/postfix//dist/src/testing/mock_dict.c up to
	external/ibm-public/postfix//dist/src/testing/mock_dict.h up to
	external/ibm-public/postfix//dist/src/testing/mock_open_as.c up to
	external/ibm-public/postfix//dist/src/testing/mock_open_as.h up to
	external/ibm-public/postfix//dist/src/testing/mock_spawn_command.c up to
	external/ibm-public/postfix//dist/src/testing/mock_spawn_command.h up to
	external/ibm-public/postfix//dist/src/testing/mock_stat.c up to
	external/ibm-public/postfix//dist/src/testing/mock_stat.h up to
	external/ibm-public/postfix//dist/src/testing/msg_capture.c up to
	external/ibm-public/postfix//dist/src/testing/msg_capture.h up to
	external/ibm-public/postfix//dist/src/testing/nosleep.c up to
	external/ibm-public/postfix//dist/TESTING       up to
	external/ibm-public/postfix//dist/RELEASE_NOTES-3.10 up to
	external/ibm-public/postfix//dist/src/global/ehlo_mask.in delete
	external/ibm-public/postfix//dist/src/global/ehlo_mask.ref delete
	external/ibm-public/postfix//dist/src/util/dict_pipe_test.in delete
	external/ibm-public/postfix//dist/src/util/dict_pipe_test.ref delete
	external/ibm-public/postfix//dist/src/util/dict_union_test.in delete
	external/ibm-public/postfix//dist/src/util/dict_union_test.ref delete
	external/ibm-public/postfix/Makefile.inc        up to 1.32
	external/ibm-public/postfix/dist/HISTORY        up to 1.1.1.31
	external/ibm-public/postfix/dist/INSTALL        up to 1.1.1.11
	external/ibm-public/postfix/dist/Makefile.in    up to 1.1.1.12
	external/ibm-public/postfix/dist/RELEASE_NOTES  up to 1.1.1.19
	external/ibm-public/postfix/dist/makedefs       up to 1.18
	external/ibm-public/postfix/dist/README_FILES/AAAREADME up to 1.1.1.8
	external/ibm-public/postfix/dist/README_FILES/CDB_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/COMPATIBILITY_README up to 1.1.1.5
	external/ibm-public/postfix/dist/README_FILES/DATABASE_README up to 1.1.1.11
	external/ibm-public/postfix/dist/README_FILES/DEPRECATION_README up to 1.1.1.2
	external/ibm-public/postfix/dist/README_FILES/INSTALL up to 1.12
	external/ibm-public/postfix/dist/README_FILES/MULTI_INSTANCE_README up to 1.1.1.8
	external/ibm-public/postfix/dist/README_FILES/MYSQL_README up to 1.1.1.7
	external/ibm-public/postfix/dist/README_FILES/OVERVIEW up to 1.1.1.7
	external/ibm-public/postfix/dist/README_FILES/RELEASE_NOTES up to 1.1.1.19
	external/ibm-public/postfix/dist/README_FILES/SASL_README up to 1.1.1.13
	external/ibm-public/postfix/dist/README_FILES/SMTPUTF8_README up to 1.1.1.5
	external/ibm-public/postfix/dist/README_FILES/SOHO_README up to 1.1.1.6
	external/ibm-public/postfix/dist/README_FILES/STANDARD_CONFIGURATION_README up to 1.1.1.8
	external/ibm-public/postfix/dist/README_FILES/TLSRPT_README up to 1.1.1.2
	external/ibm-public/postfix/dist/README_FILES/UUCP_README up to 1.1.1.3
	external/ibm-public/postfix/dist/README_FILES/VIRTUAL_README up to 1.1.1.4
	external/ibm-public/postfix/dist/README_FILES/XCLIENT_README up to 1.1.1.5
	external/ibm-public/postfix/dist/conf/access    up to 1.1.1.10
	external/ibm-public/postfix/dist/conf/aliases   up to 1.1.1.7
	external/ibm-public/postfix/dist/conf/canonical up to 1.1.1.7
	external/ibm-public/postfix/dist/conf/generic   up to 1.1.1.6
	external/ibm-public/postfix/dist/conf/main.cf   up to 1.12
	external/ibm-public/postfix/dist/conf/postfix-files up to 1.11
	external/ibm-public/postfix/dist/conf/postfix-script up to 1.6
	external/ibm-public/postfix/dist/conf/postfix-tls-script up to 1.6
	external/ibm-public/postfix/dist/conf/relocated up to 1.1.1.5
	external/ibm-public/postfix/dist/conf/transport up to 1.1.1.6
	external/ibm-public/postfix/dist/conf/virtual   up to 1.1.1.8
	external/ibm-public/postfix/dist/html/CDB_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/COMPATIBILITY_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/DATABASE_README.html up to 1.1.1.12
	external/ibm-public/postfix/dist/html/DEPRECATION_README.html up to 1.1.1.2
	external/ibm-public/postfix/dist/html/INSTALL.html up to 1.12
	external/ibm-public/postfix/dist/html/MULTI_INSTANCE_README.html up to 1.1.1.11
	external/ibm-public/postfix/dist/html/MYSQL_README.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/Makefile.in up to 1.1.1.9
	external/ibm-public/postfix/dist/html/OVERVIEW.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/SASL_README.html up to 1.1.1.13
	external/ibm-public/postfix/dist/html/SMTPUTF8_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/SOHO_README.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/STANDARD_CONFIGURATION_README.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/TLSRPT_README.html up to 1.1.1.2
	external/ibm-public/postfix/dist/html/UUCP_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/VIRTUAL_README.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/XCLIENT_README.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/access.5.html up to 1.1.1.11
	external/ibm-public/postfix/dist/html/aliases.5.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/bounce.8.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/canonical.5.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/cidr_table.5.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/cleanup.8.html up to 1.1.1.11
	external/ibm-public/postfix/dist/html/defer.8.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/discard.8.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/error.8.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/generic.5.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/index.html up to 1.1.1.10
	external/ibm-public/postfix/dist/html/ldap_table.5.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/lmdb_table.5.html up to 1.1.1.6
	external/ibm-public/postfix/dist/html/lmtp.8.html up to 1.1.1.14
	external/ibm-public/postfix/dist/html/mailq.1.html up to 1.1.1.10
	external/ibm-public/postfix/dist/html/makedefs.1.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/memcache_table.5.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/mongodb_table.5.html up to 1.1.1.2
	external/ibm-public/postfix/dist/html/mysql_table.5.html up to 1.1.1.10
	external/ibm-public/postfix/dist/html/newaliases.1.html up to 1.1.1.10
	external/ibm-public/postfix/dist/html/nisplus_table.5.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/oqmgr.8.html up to 1.1.1.11
	external/ibm-public/postfix/dist/html/pcre_table.5.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/pgsql_table.5.html up to 1.1.1.10
	external/ibm-public/postfix/dist/html/postalias.1.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/postconf.1.html up to 1.1.1.13
	external/ibm-public/postfix/dist/html/postconf.5.html up to 1.22
	external/ibm-public/postfix/dist/html/postdrop.1.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/postfix-manuals.html up to 1.1.1.10
	external/ibm-public/postfix/dist/html/postfix-tls.1.html up to 1.1.1.5
	external/ibm-public/postfix/dist/html/postfix.1.html up to 1.1.1.11
	external/ibm-public/postfix/dist/html/postlog.1.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/postmap.1.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/postmulti.1.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/postqueue.1.html up to 1.1.1.11
	external/ibm-public/postfix/dist/html/postscreen.8.html up to 1.1.1.10
	external/ibm-public/postfix/dist/html/posttls-finger.1.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/proxymap.8.html up to 1.1.1.10
	external/ibm-public/postfix/dist/html/qmgr.8.html up to 1.1.1.11
	external/ibm-public/postfix/dist/html/regexp_table.5.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/relocated.5.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/sendmail.1.html up to 1.1.1.10
	external/ibm-public/postfix/dist/html/smtp.8.html up to 1.1.1.14
	external/ibm-public/postfix/dist/html/smtpd.8.html up to 1.1.1.15
	external/ibm-public/postfix/dist/html/socketmap_table.5.html up to 1.1.1.7
	external/ibm-public/postfix/dist/html/sqlite_table.5.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/tcp_table.5.html up to 1.1.1.8
	external/ibm-public/postfix/dist/html/trace.8.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/transport.5.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/virtual.5.html up to 1.1.1.9
	external/ibm-public/postfix/dist/html/virtual.8.html up to 1.1.1.9
	external/ibm-public/postfix/dist/man/Makefile.in up to 1.1.1.9
	external/ibm-public/postfix/dist/man/man1/makedefs.1 up to 1.5
	external/ibm-public/postfix/dist/man/man1/postalias.1 up to 1.5
	external/ibm-public/postfix/dist/man/man1/postconf.1 up to 1.6
	external/ibm-public/postfix/dist/man/man1/postdrop.1 up to 1.6
	external/ibm-public/postfix/dist/man/man1/postfix-tls.1 up to 1.4
	external/ibm-public/postfix/dist/man/man1/postfix.1 up to 1.8
	external/ibm-public/postfix/dist/man/man1/postlog.1 up to 1.7
	external/ibm-public/postfix/dist/man/man1/postmap.1 up to 1.5
	external/ibm-public/postfix/dist/man/man1/postmulti.1 up to 1.5
	external/ibm-public/postfix/dist/man/man1/postqueue.1 up to 1.6
	external/ibm-public/postfix/dist/man/man1/posttls-finger.1 up to 1.7
	external/ibm-public/postfix/dist/man/man1/sendmail.1 up to 1.6
	external/ibm-public/postfix/dist/man/man5/access.5 up to 1.6
	external/ibm-public/postfix/dist/man/man5/aliases.5 up to 1.7
	external/ibm-public/postfix/dist/man/man5/canonical.5 up to 1.6
	external/ibm-public/postfix/dist/man/man5/cidr_table.5 up to 1.7
	external/ibm-public/postfix/dist/man/man5/generic.5 up to 1.6
	external/ibm-public/postfix/dist/man/man5/ldap_table.5 up to 1.7
	external/ibm-public/postfix/dist/man/man5/lmdb_table.5 up to 1.4
	external/ibm-public/postfix/dist/man/man5/memcache_table.5 up to 1.3
	external/ibm-public/postfix/dist/man/man5/mongodb_table.5 up to 1.3
	external/ibm-public/postfix/dist/man/man5/mysql_table.5 up to 1.7
	external/ibm-public/postfix/dist/man/man5/nisplus_table.5 up to 1.3
	external/ibm-public/postfix/dist/man/man5/pcre_table.5 up to 1.6
	external/ibm-public/postfix/dist/man/man5/pgsql_table.5 up to 1.7
	external/ibm-public/postfix/dist/man/man5/postconf.5 up to 1.21
	external/ibm-public/postfix/dist/man/man5/regexp_table.5 up to 1.6
	external/ibm-public/postfix/dist/man/man5/relocated.5 up to 1.5
	external/ibm-public/postfix/dist/man/man5/socketmap_table.5 up to 1.5
	external/ibm-public/postfix/dist/man/man5/sqlite_table.5 up to 1.5
	external/ibm-public/postfix/dist/man/man5/tcp_table.5 up to 1.4
	external/ibm-public/postfix/dist/man/man5/transport.5 up to 1.5
	external/ibm-public/postfix/dist/man/man5/virtual.5 up to 1.7
	external/ibm-public/postfix/dist/man/man8/bounce.8 up to 1.6
	external/ibm-public/postfix/dist/man/man8/cleanup.8 up to 1.6
	external/ibm-public/postfix/dist/man/man8/discard.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/error.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/oqmgr.8 up to 1.4
	external/ibm-public/postfix/dist/man/man8/postscreen.8 up to 1.7
	external/ibm-public/postfix/dist/man/man8/proxymap.8 up to 1.5
	external/ibm-public/postfix/dist/man/man8/qmgr.8 up to 1.5
	external/ibm-public/postfix/dist/man/man8/smtp.8 up to 1.7
	external/ibm-public/postfix/dist/man/man8/smtpd.8 up to 1.7
	external/ibm-public/postfix/dist/man/man8/virtual.8 up to 1.5
	external/ibm-public/postfix/dist/mantools/check-postconf-unimplemented up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/check-spell-history up to 1.1.1.2
	external/ibm-public/postfix/dist/mantools/check-spell-proto-html up to 1.1.1.3
	external/ibm-public/postfix/dist/mantools/dehtml up to 1.1.1.3
	external/ibm-public/postfix/dist/mantools/postconf2man up to 1.1.1.7
	external/ibm-public/postfix/dist/mantools/postlink up to 1.1.1.15
	external/ibm-public/postfix/dist/mantools/srctoman up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/CDB_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/COMPATIBILITY_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/DATABASE_README.html up to 1.1.1.12
	external/ibm-public/postfix/dist/proto/DEPRECATION_README.html up to 1.1.1.2
	external/ibm-public/postfix/dist/proto/INSTALL.html up to 1.12
	external/ibm-public/postfix/dist/proto/MULTI_INSTANCE_README.html up to 1.1.1.10
	external/ibm-public/postfix/dist/proto/MYSQL_README.html up to 1.1.1.7
	external/ibm-public/postfix/dist/proto/Makefile.in up to 1.1.1.9
	external/ibm-public/postfix/dist/proto/OVERVIEW.html up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/SASL_README.html up to 1.1.1.13
	external/ibm-public/postfix/dist/proto/SMTPUTF8_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/STANDARD_CONFIGURATION_README.html up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/TLSRPT_README.html up to 1.1.1.2
	external/ibm-public/postfix/dist/proto/UUCP_README.html up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/VIRTUAL_README.html up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/XCLIENT_README.html up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/access   up to 1.1.1.10
	external/ibm-public/postfix/dist/proto/aliases  up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/canonical up to 1.1.1.7
	external/ibm-public/postfix/dist/proto/cidr_table up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/generic  up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/index.html up to 1.1.1.2
	external/ibm-public/postfix/dist/proto/ldap_table up to 1.1.1.9
	external/ibm-public/postfix/dist/proto/lmdb_table up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/memcache_table up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/mongodb_table up to 1.1.1.2
	external/ibm-public/postfix/dist/proto/mysql_table up to 1.1.1.10
	external/ibm-public/postfix/dist/proto/nisplus_table up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/pcre_table up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/pgsql_table up to 1.1.1.10
	external/ibm-public/postfix/dist/proto/postconf.html.prolog up to 1.1.1.7
	external/ibm-public/postfix/dist/proto/postconf.man.prolog up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/postconf.proto up to 1.21
	external/ibm-public/postfix/dist/proto/regexp_table up to 1.1.1.8
	external/ibm-public/postfix/dist/proto/relocated up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/socketmap_table up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/sqlite_table up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/stop     up to 1.1.1.9
	external/ibm-public/postfix/dist/proto/stop.double-cc up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/stop.double-history up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/stop.double-install-proto-text up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/stop.double-proto-html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/stop.spell-cc up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/stop.spell-history up to 1.1.1.3
	external/ibm-public/postfix/dist/proto/stop.spell-proto-html up to 1.1.1.4
	external/ibm-public/postfix/dist/proto/tcp_table up to 1.1.1.5
	external/ibm-public/postfix/dist/proto/transport up to 1.1.1.6
	external/ibm-public/postfix/dist/proto/virtual  up to 1.1.1.8
	external/ibm-public/postfix/dist/src/bounce/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/src/bounce/bounce.c up to 1.6
	external/ibm-public/postfix/dist/src/bounce/bounce_notify_service.c up to 1.4
	external/ibm-public/postfix/dist/src/bounce/bounce_notify_util.c up to 1.6
	external/ibm-public/postfix/dist/src/bounce/bounce_notify_verp.c up to 1.4
	external/ibm-public/postfix/dist/src/bounce/bounce_one_service.c up to 1.4
	external/ibm-public/postfix/dist/src/bounce/bounce_trace_service.c up to 1.4
	external/ibm-public/postfix/dist/src/bounce/bounce_warn_service.c up to 1.4
	external/ibm-public/postfix/dist/src/cleanup/Makefile.in up to 1.1.1.11
	external/ibm-public/postfix/dist/src/cleanup/cleanup.c up to 1.10
	external/ibm-public/postfix/dist/src/cleanup/cleanup.h up to 1.12
	external/ibm-public/postfix/dist/src/cleanup/cleanup_api.c up to 1.6
	external/ibm-public/postfix/dist/src/cleanup/cleanup_bounce.c up to 1.4
	external/ibm-public/postfix/dist/src/cleanup/cleanup_init.c up to 1.9
	external/ibm-public/postfix/dist/src/cleanup/cleanup_message.c up to 1.6
	external/ibm-public/postfix/dist/src/cleanup/cleanup_milter.c up to 1.7
	external/ibm-public/postfix/dist/src/cleanup/cleanup_out_recipient.c up to 1.6
	external/ibm-public/postfix/dist/src/cleanup/cleanup_state.c up to 1.6
	external/ibm-public/postfix/dist/src/discard/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/discard/discard.c up to 1.4
	external/ibm-public/postfix/dist/src/dns/dns.h  up to 1.8
	external/ibm-public/postfix/dist/src/dns/dns_lookup.c up to 1.10
	external/ibm-public/postfix/dist/src/error/Makefile.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/error/error.c up to 1.4
	external/ibm-public/postfix/dist/src/global/Makefile.in up to 1.1.1.12
	external/ibm-public/postfix/dist/src/global/abounce.c up to 1.5
	external/ibm-public/postfix/dist/src/global/ascii_header_text.c up to 1.3
	external/ibm-public/postfix/dist/src/global/ascii_header_text.h up to 1.3
	external/ibm-public/postfix/dist/src/global/bounce.c up to 1.5
	external/ibm-public/postfix/dist/src/global/bounce.h up to 1.3
	external/ibm-public/postfix/dist/src/global/cleanup_strflags.c up to 1.3
	external/ibm-public/postfix/dist/src/global/cleanup_user.h up to 1.5
	external/ibm-public/postfix/dist/src/global/config_known_tcp_ports.c up to 1.3
	external/ibm-public/postfix/dist/src/global/data_redirect.c up to 1.3
	external/ibm-public/postfix/dist/src/global/defer.c up to 1.5
	external/ibm-public/postfix/dist/src/global/defer.h up to 1.3
	external/ibm-public/postfix/dist/src/global/deliver_pass.c up to 1.5
	external/ibm-public/postfix/dist/src/global/dict_ldap.c up to 1.7
	external/ibm-public/postfix/dist/src/global/dict_memcache.c up to 1.4
	external/ibm-public/postfix/dist/src/global/dict_mongodb.c up to 1.3
	external/ibm-public/postfix/dist/src/global/dict_mysql.c up to 1.6
	external/ibm-public/postfix/dist/src/global/dict_pgsql.c up to 1.6
	external/ibm-public/postfix/dist/src/global/dict_proxy.c up to 1.4
	external/ibm-public/postfix/dist/src/global/dict_sqlite.c up to 1.6
	external/ibm-public/postfix/dist/src/global/dict_sqlite.h up to 1.2
	external/ibm-public/postfix/dist/src/global/dsn_util.c up to 1.2
	external/ibm-public/postfix/dist/src/global/ehlo_mask.c up to 1.4
	external/ibm-public/postfix/dist/src/global/ehlo_mask.h up to 1.4
	external/ibm-public/postfix/dist/src/global/haproxy_srvr.c up to 1.5
	external/ibm-public/postfix/dist/src/global/haproxy_srvr.h up to 1.3
	external/ibm-public/postfix/dist/src/global/header_opts.c up to 1.4
	external/ibm-public/postfix/dist/src/global/header_opts.h up to 1.4
	external/ibm-public/postfix/dist/src/global/log_adhoc.c up to 1.4
	external/ibm-public/postfix/dist/src/global/log_adhoc.h up to 1.2
	external/ibm-public/postfix/dist/src/global/login_sender_match.c up to 1.3
	external/ibm-public/postfix/dist/src/global/mail_conf.c up to 1.5
	external/ibm-public/postfix/dist/src/global/mail_conf.h up to 1.4
	external/ibm-public/postfix/dist/src/global/mail_params.c up to 1.7
	external/ibm-public/postfix/dist/src/global/mail_params.h up to 1.21
	external/ibm-public/postfix/dist/src/global/mail_proto.h up to 1.7
	external/ibm-public/postfix/dist/src/global/mail_version.h up to 1.8
	external/ibm-public/postfix/dist/src/global/maps.c up to 1.6
	external/ibm-public/postfix/dist/src/global/mime_garb3.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/global/mime_state.c up to 1.4
	external/ibm-public/postfix/dist/src/global/mime_state.h up to 1.2
	external/ibm-public/postfix/dist/src/global/mynetworks.c up to 1.3
	external/ibm-public/postfix/dist/src/global/namadr_list.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/global/namadr_list.ref up to 1.1.1.6
	external/ibm-public/postfix/dist/src/global/own_inet_addr.c up to 1.3
	external/ibm-public/postfix/dist/src/global/pipe_command.c up to 1.3
	external/ibm-public/postfix/dist/src/global/post_mail.c up to 1.6
	external/ibm-public/postfix/dist/src/global/rec_type.h up to 1.5
	external/ibm-public/postfix/dist/src/global/reject_deliver_request.c up to 1.3
	external/ibm-public/postfix/dist/src/global/rfc2047_code.c up to 1.3
	external/ibm-public/postfix/dist/src/global/rfc2047_code.h up to 1.3
	external/ibm-public/postfix/dist/src/global/sendopts.c up to 1.3
	external/ibm-public/postfix/dist/src/global/sent.c up to 1.4
	external/ibm-public/postfix/dist/src/global/sent.h up to 1.3
	external/ibm-public/postfix/dist/src/global/server_acl.c up to 1.5
	external/ibm-public/postfix/dist/src/global/trace.c up to 1.4
	external/ibm-public/postfix/dist/src/global/trace.h up to 1.2
	external/ibm-public/postfix/dist/src/global/verify.c up to 1.5
	external/ibm-public/postfix/dist/src/global/verify.h up to 1.2
	external/ibm-public/postfix/dist/src/local/Makefile.in up to 1.1.1.10
	external/ibm-public/postfix/dist/src/local/forward.c up to 1.6
	external/ibm-public/postfix/dist/src/local/local.c up to 1.6
	external/ibm-public/postfix/dist/src/local/local.h up to 1.4
	external/ibm-public/postfix/dist/src/master/Makefile.in up to 1.1.1.9
	external/ibm-public/postfix/dist/src/master/event_server.c up to 1.5
	external/ibm-public/postfix/dist/src/master/multi_server.c up to 1.5
	external/ibm-public/postfix/dist/src/milter/milter8.c up to 1.7
	external/ibm-public/postfix/dist/src/milter/test-milter.c up to 1.5
	external/ibm-public/postfix/dist/src/oqmgr/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/src/oqmgr/qmgr.c up to 1.4
	external/ibm-public/postfix/dist/src/oqmgr/qmgr_bounce.c up to 1.2
	external/ibm-public/postfix/dist/src/oqmgr/qmgr_defer.c up to 1.2
	external/ibm-public/postfix/dist/src/oqmgr/qmgr_message.c up to 1.6
	external/ibm-public/postfix/dist/src/pipe/Makefile.in up to 1.1.1.6
	external/ibm-public/postfix/dist/src/pipe/pipe.c up to 1.6
	external/ibm-public/postfix/dist/src/postalias/Makefile.in up to 1.1.1.8
	external/ibm-public/postfix/dist/src/postalias/postalias.c up to 1.7
	external/ibm-public/postfix/dist/src/postcat/postcat.c up to 1.6
	external/ibm-public/postfix/dist/src/postconf/Makefile.in up to 1.1.1.13
	external/ibm-public/postfix/dist/src/postconf/extract.awk up to 1.1.1.7
	external/ibm-public/postfix/dist/src/postconf/postconf.c up to 1.6
	external/ibm-public/postfix/dist/src/postconf/postconf.h up to 1.6
	external/ibm-public/postfix/dist/src/postconf/postconf_builtin.c up to 1.5
	external/ibm-public/postfix/dist/src/postconf/postconf_dbms.c up to 1.7
	external/ibm-public/postfix/dist/src/postconf/postconf_edit.c up to 1.4
	external/ibm-public/postfix/dist/src/postconf/postconf_lookup.c up to 1.5
	external/ibm-public/postfix/dist/src/postconf/postconf_main.c up to 1.5
	external/ibm-public/postfix/dist/src/postconf/postconf_master.c up to 1.9
	external/ibm-public/postfix/dist/src/postconf/postconf_unused.c up to 1.3
	external/ibm-public/postfix/dist/src/postconf/postconf_user.c up to 1.6
	external/ibm-public/postfix/dist/src/postconf/test18.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postconf/test2.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postconf/test28.ref up to 1.1.1.4
	external/ibm-public/postfix/dist/src/postconf/test29.ref up to 1.1.1.5
	external/ibm-public/postfix/dist/src/postconf/test57.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postconf/test59.ref up to 1.1.1.4
	external/ibm-public/postfix/dist/src/postconf/test67.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/postconf/test76.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/postdrop/postdrop.c up to 1.6
	external/ibm-public/postfix/dist/src/postfix/postfix.c up to 1.8
	external/ibm-public/postfix/dist/src/postlog/postlog.c up to 1.7
	external/ibm-public/postfix/dist/src/postmap/Makefile.in up to 1.1.1.9
	external/ibm-public/postfix/dist/src/postmap/postmap.c up to 1.7
	external/ibm-public/postfix/dist/src/postmulti/Makefile.in up to 1.1.1.6
	external/ibm-public/postfix/dist/src/postmulti/postmulti.c up to 1.5
	external/ibm-public/postfix/dist/src/postqueue/postqueue.c up to 1.6
	external/ibm-public/postfix/dist/src/postqueue/showq_compat.c up to 1.5
	external/ibm-public/postfix/dist/src/postqueue/showq_json.c up to 1.6
	external/ibm-public/postfix/dist/src/postscreen/postscreen.c up to 1.7
	external/ibm-public/postfix/dist/src/postscreen/postscreen_endpt.c up to 1.6
	external/ibm-public/postfix/dist/src/posttls-finger/posttls-finger.c up to 1.7
	external/ibm-public/postfix/dist/src/proxymap/Makefile.in up to 1.1.1.8
	external/ibm-public/postfix/dist/src/proxymap/proxymap.c up to 1.6
	external/ibm-public/postfix/dist/src/qmgr/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/src/qmgr/qmgr.c up to 1.5
	external/ibm-public/postfix/dist/src/qmgr/qmgr_bounce.c up to 1.2
	external/ibm-public/postfix/dist/src/qmgr/qmgr_defer.c up to 1.2
	external/ibm-public/postfix/dist/src/qmgr/qmgr_message.c up to 1.6
	external/ibm-public/postfix/dist/src/sendmail/Makefile.in up to 1.1.1.6
	external/ibm-public/postfix/dist/src/sendmail/sendmail.c up to 1.6
	external/ibm-public/postfix/dist/src/showq/showq.c up to 1.6
	external/ibm-public/postfix/dist/src/smtp/Makefile.in up to 1.1.1.12
	external/ibm-public/postfix/dist/src/smtp/lmtp_params.c up to 1.7
	external/ibm-public/postfix/dist/src/smtp/smtp.c up to 1.15
	external/ibm-public/postfix/dist/src/smtp/smtp.h up to 1.7
	external/ibm-public/postfix/dist/src/smtp/smtp_connect.c up to 1.7
	external/ibm-public/postfix/dist/src/smtp/smtp_key.c up to 1.4
	external/ibm-public/postfix/dist/src/smtp/smtp_params.c up to 1.7
	external/ibm-public/postfix/dist/src/smtp/smtp_proto.c up to 1.7
	external/ibm-public/postfix/dist/src/smtp/smtp_rcpt.c up to 1.4
	external/ibm-public/postfix/dist/src/smtp/smtp_state.c up to 1.5
	external/ibm-public/postfix/dist/src/smtp/smtp_tls_policy.c up to 1.6
	external/ibm-public/postfix/dist/src/smtp/smtp_tlsrpt.c up to 1.3
	external/ibm-public/postfix/dist/src/smtp/smtp_trouble.c up to 1.4
	external/ibm-public/postfix/dist/src/smtpd/Makefile.in up to 1.1.1.13
	external/ibm-public/postfix/dist/src/smtpd/smtpd.c up to 1.22
	external/ibm-public/postfix/dist/src/smtpd/smtpd.h up to 1.7
	external/ibm-public/postfix/dist/src/smtpd/smtpd_chat.c up to 1.5
	external/ibm-public/postfix/dist/src/smtpd/smtpd_check.c up to 1.8
	external/ibm-public/postfix/dist/src/smtpd/smtpd_haproxy.c up to 1.4
	external/ibm-public/postfix/dist/src/smtpd/smtpd_peer.c up to 1.6
	external/ibm-public/postfix/dist/src/smtpd/smtpd_proxy.c up to 1.4
	external/ibm-public/postfix/dist/src/smtpd/smtpd_proxy.h up to 1.2
	external/ibm-public/postfix/dist/src/tls/Makefile.in up to 1.1.1.12
	external/ibm-public/postfix/dist/src/tls/tls.h  up to 1.7
	external/ibm-public/postfix/dist/src/tls/tls_client.c up to 1.15
	external/ibm-public/postfix/dist/src/tls/tls_dane.c up to 1.7
	external/ibm-public/postfix/dist/src/tls/tls_dane.sh up to 1.1.1.2
	external/ibm-public/postfix/dist/src/tls/tls_dh.c up to 1.7
	external/ibm-public/postfix/dist/src/tls/tls_misc.c up to 1.7
	external/ibm-public/postfix/dist/src/tls/tls_prng_file.c up to 1.3
	external/ibm-public/postfix/dist/src/tls/tls_proxy.h up to 1.6
	external/ibm-public/postfix/dist/src/tls/tls_proxy_client_misc.c up to 1.5
	external/ibm-public/postfix/dist/src/tls/tls_proxy_client_print.c up to 1.6
	external/ibm-public/postfix/dist/src/tls/tls_proxy_client_scan.c up to 1.6
	external/ibm-public/postfix/dist/src/tls/tls_server.c up to 1.14
	external/ibm-public/postfix/dist/src/tls/tls_verify.c up to 1.6
	external/ibm-public/postfix/dist/src/tls/tlsrpt_wrapper.c up to 1.3
	external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy.c up to 1.8
	external/ibm-public/postfix/dist/src/tlsproxy/tlsproxy_state.c up to 1.4
	external/ibm-public/postfix/dist/src/trivial-rewrite/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/src/trivial-rewrite/resolve.c up to 1.6
	external/ibm-public/postfix/dist/src/trivial-rewrite/trivial-rewrite.c up to 1.6
	external/ibm-public/postfix/dist/src/util/Makefile.in up to 1.1.1.13
	external/ibm-public/postfix/dist/src/util/alldig.c up to 1.4
	external/ibm-public/postfix/dist/src/util/argv.c up to 1.6
	external/ibm-public/postfix/dist/src/util/argv.h up to 1.6
	external/ibm-public/postfix/dist/src/util/dict.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict.h up to 1.7
	external/ibm-public/postfix/dist/src/util/dict_alloc.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_cache.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_cache.h up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_cdb.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_cidr.c up to 1.6
	external/ibm-public/postfix/dist/src/util/dict_db.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_dbm.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_debug.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_env.c up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_fail.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_inline.c up to 1.6
	external/ibm-public/postfix/dist/src/util/dict_lmdb.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_ni.c up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_nis.c up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_nisplus.c up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_open.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_pcre.c up to 1.6
	external/ibm-public/postfix/dist/src/util/dict_pipe.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_random.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_regexp.c up to 1.6
	external/ibm-public/postfix/dist/src/util/dict_sdbm.c up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_seq.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/dict_sockmap.c up to 1.7
	external/ibm-public/postfix/dist/src/util/dict_static.c up to 1.5
	external/ibm-public/postfix/dist/src/util/dict_surrogate.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_tcp.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_test.c up to 1.3
	external/ibm-public/postfix/dist/src/util/dict_thash.c up to 1.6
	external/ibm-public/postfix/dist/src/util/dict_union.c up to 1.4
	external/ibm-public/postfix/dist/src/util/dict_unix.c up to 1.2
	external/ibm-public/postfix/dist/src/util/dict_utf8_test.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/hash_fnv.c up to 1.5
	external/ibm-public/postfix/dist/src/util/hex_code.c up to 1.5
	external/ibm-public/postfix/dist/src/util/hex_code.h up to 1.6
	external/ibm-public/postfix/dist/src/util/htable.c up to 1.5
	external/ibm-public/postfix/dist/src/util/inet_addr_list.c up to 1.3
	external/ibm-public/postfix/dist/src/util/inet_prefix_top.c up to 1.4
	external/ibm-public/postfix/dist/src/util/inet_proto.c up to 1.5
	external/ibm-public/postfix/dist/src/util/mac_expand.c up to 1.5
	external/ibm-public/postfix/dist/src/util/mac_expand.h up to 1.6
	external/ibm-public/postfix/dist/src/util/mac_expand.in up to 1.1.1.5
	external/ibm-public/postfix/dist/src/util/mac_expand.ref up to 1.1.1.5
	external/ibm-public/postfix/dist/src/util/match_list.c up to 1.4
	external/ibm-public/postfix/dist/src/util/midna_domain.c up to 1.6
	external/ibm-public/postfix/dist/src/util/mkmap_open.c up to 1.3
	external/ibm-public/postfix/dist/src/util/msg_vstream.c up to 1.2
	external/ibm-public/postfix/dist/src/util/myaddrinfo.c up to 1.4
	external/ibm-public/postfix/dist/src/util/myaddrinfo.h up to 1.5
	external/ibm-public/postfix/dist/src/util/myaddrinfo.ref up to 1.1.1.6
	external/ibm-public/postfix/dist/src/util/myaddrinfo.ref2 up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/myaddrinfo4.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/util/myaddrinfo4.ref2 up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/myflock.c up to 1.4
	external/ibm-public/postfix/dist/src/util/name_mask.c up to 1.5
	external/ibm-public/postfix/dist/src/util/name_mask.h up to 1.2
	external/ibm-public/postfix/dist/src/util/name_mask.ref5 up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/name_mask.ref6 up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/netstring.c up to 1.5
	external/ibm-public/postfix/dist/src/util/normalize_ws.c up to 1.3
	external/ibm-public/postfix/dist/src/util/open_as.c up to 1.2
	external/ibm-public/postfix/dist/src/util/open_as.h up to 1.2
	external/ibm-public/postfix/dist/src/util/quote_for_json.c up to 1.3
	external/ibm-public/postfix/dist/src/util/sane_sockaddr_to_hostaddr.c up to 1.3
	external/ibm-public/postfix/dist/src/util/spawn_command.c up to 1.4
	external/ibm-public/postfix/dist/src/util/spawn_command.h up to 1.3
	external/ibm-public/postfix/dist/src/util/stringops.h up to 1.7
	external/ibm-public/postfix/dist/src/util/sys_defs.h up to 1.16
	external/ibm-public/postfix/dist/src/util/unescape.ref up to 1.1.1.3
	external/ibm-public/postfix/dist/src/util/vbuf_print.c up to 1.6
	external/ibm-public/postfix/dist/src/util/vbuf_print_test.in up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/vbuf_print_test.ref up to 1.1.1.2
	external/ibm-public/postfix/dist/src/util/vstream.c up to 1.6
	external/ibm-public/postfix/dist/src/util/vstream.h up to 1.5
	external/ibm-public/postfix/dist/src/util/vstring.c up to 1.5
	external/ibm-public/postfix/dist/src/util/vstring_vstream.c up to 1.3
	external/ibm-public/postfix/dist/src/verify/verify.c up to 1.6
	external/ibm-public/postfix/dist/src/virtual/Makefile.in up to 1.1.1.7
	external/ibm-public/postfix/dist/src/virtual/virtual.c up to 1.5
	external/ibm-public/postfix/dist/src/virtual/virtual.h up to 1.2
	external/ibm-public/postfix/dist/src/xsasl/xsasl_dovecot_server.c up to 1.6
	external/ibm-public/postfix/lib/global/Makefile up to 1.12
	external/ibm-public/postfix/lib/util/Makefile   up to 1.13
	external/ibm-public/postfix/libexec/smtp/Makefile up to 1.5
	doc/3RDPARTY						(manually edited)

Import Postfix 3.11.2.
@
text
@d25 2
a26 1
  * Hosted mailing list domains
d59 2
a60 2
The examples in this text use table lookups from local files such as lmdb:,
cdb:, hash:, or dbm:. These are easy to debug with the ppoossttmmaapp command:
d62 1
a62 1
    Example: postmap -q info@@example.com /etc/postfix/virtual
d64 5
a68 14
The above example assumes that the database is configured in main.cf as
$default_database_type:/etc/postfix/virtual. Otherwise, use the command
instead:

    Example: postmap -q info@@example.com type:/etc/postfix/virtual

and specify the explicit type that this table uses in main.cf.

You can replace local file lookups with networked (LDAP, SQL etc.) lookups. See
the documentation in LDAP_README, MYSQL_README, PGSQL_README, etc., for
examples. The reader is strongly advised to make Postfix work with local files
before migrating to network databases, and to use the ppoossttmmaapp command to verify
that network database lookups produce the exact same results as local file
lookup.
d108 1
a108 1
     3     virtual_alias_maps = lmdb:/etc/postfix/virtual
a141 2
Instead of lmdb:, some systems use cdb:, hash:, or dbm:.

d143 1
a143 7
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vviirrttuuaall" to specify an explicit type.

The default indexed file type is configured with the default_database_type
parameter. To list available explicit types, execute the command "ppoossttccoonnff --mm".

Execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.
d182 1
a182 1
     4     virtual_mailbox_maps = lmdb:/etc/postfix/vmailbox
d186 1
a186 1
     8     virtual_alias_maps = lmdb:/etc/postfix/virtual
a244 2
Instead of lmdb:, some systems use cdb:, hash:, or dbm:.

d246 2
a247 11
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vviirrttuuaall" to specify an explicit type.

The default indexed file type is configured with the default_database_type
parameter. To list available explicit types, execute the command "ppoossttccoonnff --mm".

Execute "ppoossttmmaapp //eettcc//ppoossttffiixx//vvmmaaiillbbooxx" after changing the vmailbox file, to
(re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//ppoossttffiixx//
vvmmaaiillbbooxx" to specify an explicit type.

Execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.
d282 2
a283 2
     4     virtual_mailbox_maps = lmdb:/etc/postfix/vmailbox
     5     virtual_alias_maps = lmdb:/etc/postfix/virtual
a350 2
Instead of lmdb:, some systems use cdb:, hash:, or dbm:.

d352 2
a353 11
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vviirrttuuaall" to specify an explicit type.

The default indexed file type is configured with the default_database_type
parameter. To list available explicit types, execute the command "ppoossttccoonnff --mm".

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vvmmaaiillbbooxx" after changing the vmailbox
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vvmmaaiillbbooxx" to specify an explicit type.

Execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.
d363 1
a363 1
     3     virtual_alias_maps = lmdb:/etc/postfix/virtual
a396 2
Instead of lmdb:, some systems use cdb:, hash:, or dbm:.

d398 1
a398 7
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vviirrttuuaall" to specify an explicit type.

The default indexed file type is configured with the default_database_type
parameter. To list available explicit types, execute the command "ppoossttccoonnff --mm".

Execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.
d403 1
a403 6
HHoosstteedd mmaaiilliinngg lliisstt ddoommaaiinnss

Note: this section presents a historical approach to run a mailing list based
on local aliases(5). This approach may still be useful for small mailing lists
that are managed by hand or with the software like Majordomo. For a more
contemporary and more scalable approach, see GNU Mailman.
d415 1
a415 2
        virtual_alias_maps = lmdb:/etc/postfix/virtual
        virtual_mailbox_domains = example.com
a420 1
        postmaster@@example.com       postmaster
a426 9
Instead of lmdb:, some systems use cdb:, hash:, or dbm:.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vviirrttuuaall" to specify an explicit type.

The default indexed file type is configured with the default_database_type
parameter. To list available explicit types, execute the command "ppoossttccoonnff --mm".

d440 43
a482 4
  * In the case of a virtual alias DOMAIN, there would need to be an identity
    mapping from each mailing list address to an address in a different domain.
  * In the case of a virtual mailbox DOMAIN, there would need to be a dummy
    virtual_mailbox_maps for each mailing list address.
@


1.1.1.4
log
@Import postfix 3.11.2 (previous was 3.10.1)

Changes in 3.11.2

Bugfix (defect introduced: Postfix 3.11): the proxymap(8) daemon
dereferenced an uninitialized pointer after a request protocol
error. This daemon is not exposed to local or remote users. Found
by Claude Opus 4.6.

Bugfix (defect introduced: 20260309) a change, to set the service_name
default value to "amnesiac", violated a test that parameter names
in postconf output must match 1:1 with parameter names in the
postlink script.

Changes in 3.11.1

Bugfix (defect introduced: 20260219): alias_maps errors when
default_database_type was not set in main.cf. Fix by Michael Tokarev.

Bugfix (defect introduced: Postfix 3.0): buffer over-read when
Postfix is configured with an enhanced status code not followed by
other text. For example, "5.7.2" without text after the three-number
code, in an access(5) table, header or body checks, or with "$rbl_code
$rbl_text" in rbl_reply_maps or default_rbl_reply. These are all
uncommon configurations. Problem reported by Kamil Frankowicz.

Bugfix (defect introduced: Postfix 3.3): null pointer in nbdb_reindexd(8)
because the "service_name" value was not propagated. Report by
Michael Tokarev.

During Postfix start-up, avoid a spurious error message from
nbdb_reindexd(8), when non_bdb_migration_level disables automatic
re-indexing.

Changes in 3.11.0

Postfix stable release 3.11.0 is available. Postfix 3.7 - 3.10 were
updated a few weeks ago; after that, Postfix 3.7 will no longer be
updated.

The main changes are below. See the RELEASE_NOTES file for further details.

Berkeley DB migration:

Some (Linux) distributions are removing support for BerkeleyDB
databases (In Postfix, this means we lose support for the hash:
and btree: lookup tables). See NON_BERKELEYDB_README for manual
and partially automatic migration from btree: to lmdb:, and from
hash: to lmdb: or cdb:.

The loss of BerkeleyDB affects Mailman versions that want to execute
commands like "postmap hash:/path/to/file" when a mailing list is
added or removed. Postfix provides a way to redirect such commands
to a supported database type.

You don't have to wait until BerkeleyDB support is removed. It can
make sense to migrate while BerkeleyDB support is still available
(mainly, less downtime).

Changes in TLS support:

Default TLS security. The Postfix SMTP client smtp_tls_security_level
default value is "may" if Postfix was built with TLS support, and
the compatibility_level is 3.11 or higher.

Support for the RFC 8689 "REQUIRETLS" verb in ESMTP. This requires
that every SMTP (and LMTP) server in the forward path is strongly
authenticated with DANE, STS, or equivalent, and that every server
announces REQUIRETLS support.

See REQUIRETLS_README for suggestions to carefully enforce REQUIRETLS
without causing massive mail delivery problems.

Logging the TLS security level. This shows the desired and actual
TLS security level enforcement status and, if a message requests
REQUIRETLS, the REQUIRETLS policy enforcement status. For a list
of examples see smtp_log_tls_feature_status

Workaround for an interface mismatch between the Postfix SMTP client
and MTA-STS policy plugins. This introduces a new parameter
smtp_tls_enforce_sts_mx_patterns (default: "yes"). The MTA-STS
plugin configuration needs to enable TLSRPT support, so that it
forwards STS policy attributes to Postfix. Both postfix-tlspol and
postfix-mta-sts-resolver have been updated accordingly.

With this, the Postfix SMTP client will connect to an MX host only
if its name matches any STS policy MX host pattern, and will match
a server certificate against the MX hostname. Otherwise, the old
behavior stays in effect: connect to any MX host listed in DNS,
and match a server certificate against any STS policy MX host
pattern.

Post-quantum cryptography support. With OpenSSL 3.5 and later,
change the tls_eecdh_auto_curves default value to avoid problems
with network infrastructure that mishandles TLS hello messages
larger than one (Ethernet) TCP segment. This problem is more
generally known as "protocol ossification".

Miscellaneous changes:

Deprecation of obsolete parameters. Postfix programs log a warning
that these parameters will be removed. See DEPRECATION_README for
a list of deprecated parameters.

JSON output support with "postconf -j|-jM|-jF|-jP", "postalias
-jq|-js", "postmap -jq|-js", and "postmulti -jl". No support is
planned for JSON input support.

Milter support: improved Milter error handling for messages that
arrive over a long-lived SMTP connection, by changing the default
milter_default_action from "tempfail" to the new "shutdown" action
(i.e. disconnect the remote SMTP client). This was already back-ported
to earlier stable releases.

For more changes in the 3.10 branch see:
https://www.postfix.org/announcements.html
@
text
@d25 2
a26 1
  * Hosted mailing list domains
d59 2
a60 2
The examples in this text use table lookups from local files such as lmdb:,
cdb:, hash:, or dbm:. These are easy to debug with the ppoossttmmaapp command:
d62 1
a62 1
    Example: postmap -q info@@example.com /etc/postfix/virtual
d64 5
a68 14
The above example assumes that the database is configured in main.cf as
$default_database_type:/etc/postfix/virtual. Otherwise, use the command
instead:

    Example: postmap -q info@@example.com type:/etc/postfix/virtual

and specify the explicit type that this table uses in main.cf.

You can replace local file lookups with networked (LDAP, SQL etc.) lookups. See
the documentation in LDAP_README, MYSQL_README, PGSQL_README, etc., for
examples. The reader is strongly advised to make Postfix work with local files
before migrating to network databases, and to use the ppoossttmmaapp command to verify
that network database lookups produce the exact same results as local file
lookup.
d108 1
a108 1
     3     virtual_alias_maps = lmdb:/etc/postfix/virtual
a141 2
Instead of lmdb:, some systems use cdb:, hash:, or dbm:.

d143 1
a143 7
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vviirrttuuaall" to specify an explicit type.

The default indexed file type is configured with the default_database_type
parameter. To list available explicit types, execute the command "ppoossttccoonnff --mm".

Execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.
d182 1
a182 1
     4     virtual_mailbox_maps = lmdb:/etc/postfix/vmailbox
d186 1
a186 1
     8     virtual_alias_maps = lmdb:/etc/postfix/virtual
a244 2
Instead of lmdb:, some systems use cdb:, hash:, or dbm:.

d246 2
a247 11
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vviirrttuuaall" to specify an explicit type.

The default indexed file type is configured with the default_database_type
parameter. To list available explicit types, execute the command "ppoossttccoonnff --mm".

Execute "ppoossttmmaapp //eettcc//ppoossttffiixx//vvmmaaiillbbooxx" after changing the vmailbox file, to
(re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//ppoossttffiixx//
vvmmaaiillbbooxx" to specify an explicit type.

Execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.
d282 2
a283 2
     4     virtual_mailbox_maps = lmdb:/etc/postfix/vmailbox
     5     virtual_alias_maps = lmdb:/etc/postfix/virtual
a350 2
Instead of lmdb:, some systems use cdb:, hash:, or dbm:.

d352 2
a353 11
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vviirrttuuaall" to specify an explicit type.

The default indexed file type is configured with the default_database_type
parameter. To list available explicit types, execute the command "ppoossttccoonnff --mm".

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vvmmaaiillbbooxx" after changing the vmailbox
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vvmmaaiillbbooxx" to specify an explicit type.

Execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.
d363 1
a363 1
     3     virtual_alias_maps = lmdb:/etc/postfix/virtual
a396 2
Instead of lmdb:, some systems use cdb:, hash:, or dbm:.

d398 1
a398 7
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vviirrttuuaall" to specify an explicit type.

The default indexed file type is configured with the default_database_type
parameter. To list available explicit types, execute the command "ppoossttccoonnff --mm".

Execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.
d403 1
a403 6
HHoosstteedd mmaaiilliinngg lliisstt ddoommaaiinnss

Note: this section presents a historical approach to run a mailing list based
on local aliases(5). This approach may still be useful for small mailing lists
that are managed by hand or with the software like Majordomo. For a more
contemporary and more scalable approach, see GNU Mailman.
d415 1
a415 2
        virtual_alias_maps = lmdb:/etc/postfix/virtual
        virtual_mailbox_domains = example.com
a420 1
        postmaster@@example.com       postmaster
a426 9
Instead of lmdb:, some systems use cdb:, hash:, or dbm:.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, to (re)build a default-type indexed file. Execute "ppoossttmmaapp ttyyppee:://eettcc//
ppoossttffiixx//vviirrttuuaall" to specify an explicit type.

The default indexed file type is configured with the default_database_type
parameter. To list available explicit types, execute the command "ppoossttccoonnff --mm".

d440 43
a482 4
  * In the case of a virtual alias DOMAIN, there would need to be an identity
    mapping from each mailing list address to an address in a different domain.
  * In the case of a virtual mailbox DOMAIN, there would need to be a dummy
    virtual_mailbox_maps for each mailing list address.
@


1.1.1.1.4.1
log
@file VIRTUAL_README was added on branch matt-nb5-mips64 on 2010-04-21 05:23:26 +0000
@
text
@d1 480
@


1.1.1.1.4.2
log
@sync to netbsd-5
@
text
@a0 480
PPoossttffiixx VViirrttuuaall DDoommaaiinn HHoossttiinngg HHoowwttoo

-------------------------------------------------------------------------------

PPuurrppoossee ooff tthhiiss ddooccuummeenntt

This document requires Postfix version 2.0 or later.

This document gives an overview of how Postfix can be used for hosting multiple
Internet domains, both for final delivery on the machine itself and for the
purpose of forwarding to destinations elsewhere.

The text not only describes delivery mechanisms that are built into Postfix,
but also gives pointers for using non-Postfix mail delivery software.

The following topics are covered:

  * Canonical versus hosted versus other domains
  * Local files versus network databases
  * As simple as can be: shared domains, UNIX system accounts
  * Postfix virtual ALIAS example: separate domains, UNIX system accounts
  * Postfix virtual MAILBOX example: separate domains, non-UNIX accounts
  * Non-Postfix mailbox store: separate domains, non-UNIX accounts
  * Mail forwarding domains
  * Mailing lists
  * Autoreplies

CCaannoonniiccaall vveerrssuuss hhoosstteedd vveerrssuuss ootthheerr ddoommaaiinnss

Most Postfix systems are ffiinnaall ddeessttiinnaattiioonn for only a few domain names. These
include the hostnames and [the IP addresses] of the machine that Postfix runs
on, and sometimes also include the parent domain of the hostname. The remainder
of this document will refer to these domains as the canonical domains. They are
usually implemented with the Postfix local domain address class, as defined in
the ADDRESS_CLASS_README file.

Besides the canonical domains, Postfix can be configured to be ffiinnaall
ddeessttiinnaattiioonn for any number of additional domains. These domains are called
hosted, because they are not directly associated with the name of the machine
itself. Hosted domains are usually implemented with the virtual alias domain
address class and/or with the virtual mailbox domain address class, as defined
in the ADDRESS_CLASS_README file.

But wait! There is more. Postfix can be configured as a backup MX host for
other domains. In this case Postfix is nnoott tthhee ffiinnaall ddeessttiinnaattiioonn for those
domains. It merely queues the mail when the primary MX host is down, and
forwards the mail when the primary MX host becomes available. This function is
implemented with the relay domain address class, as defined in the
ADDRESS_CLASS_README file.

Finally, Postfix can be configured as a transit host for sending mail across
the internet. Obviously, Postfix is not final destination for such mail. This
function is available only for authorized clients and/or users, and is
implemented by the default domain address class, as defined in the
ADDRESS_CLASS_README file.

LLooccaall ffiilleess vveerrssuuss nneettwwoorrkk ddaattaabbaasseess

The examples in this text use table lookups from local files such as DBM or
Berkeley DB. These are easy to debug with the ppoossttmmaapp command:

    Example: postmap -q info@@example.com hash:/etc/postfix/virtual

See the documentation in LDAP_README, MYSQL_README and PGSQL_README for how to
replace local files by databases. The reader is strongly advised to make the
system work with local files before migrating to network databases, and to use
the ppoossttmmaapp command to verify that network database lookups produce the exact
same results as local file lookup.

    Example: postmap -q info@@example.com ldap:/etc/postfix/virtual.cf

AAss ssiimmppllee aass ccaann bbee:: sshhaarreedd ddoommaaiinnss,, UUNNIIXX ssyysstteemm aaccccoouunnttss

The simplest method to host an additional domain is to add the domain name to
the domains listed in the Postfix mydestination configuration parameter, and to
add the user names to the UNIX password file.

This approach makes no distinction between canonical and hosted domains. Each
username can receive mail in every domain.

In the examples we will use "example.com" as the domain that is being hosted on
the local Postfix machine.

    /etc/postfix/main.cf:
        mydestination = $myhostname localhost.$mydomain ... example.com

The limitations of this approach are:

  * A total lack of separation: mail for info@@my.host.name is delivered to the
    same UNIX system account as mail for info@@example.com.
  * With users in the UNIX password file, administration of large numbers of
    users becomes inconvenient.

The examples that follow provide solutions for both limitations.

PPoossttffiixx vviirrttuuaall AALLIIAASS eexxaammppllee:: sseeppaarraattee ddoommaaiinnss,, UUNNIIXX ssyysstteemm aaccccoouunnttss

With the approach described in this section, every hosted domain can have its
own info etc. email address. However, it still uses UNIX system accounts for
local mailbox deliveries.

With virtual alias domains, each hosted address is aliased to a local UNIX
system account or to a remote address. The example below shows how to use this
mechanism for the example.com domain.

     1 /etc/postfix/main.cf:
     2     virtual_alias_domains = example.com ...other hosted domains...
     3     virtual_alias_maps = hash:/etc/postfix/virtual
     4
     5 /etc/postfix/virtual:
     6     postmaster@@example.com postmaster
     7     info@@example.com       joe
     8     sales@@example.com      jane
     9     # Uncomment entry below to implement a catch-all address
    10     # @@example.com         jim
    11     ...virtual aliases for more domains...

Notes:

  * Line 2: the virtual_alias_domains setting tells Postfix that example.com is
    a so-called virtual alias domain. If you omit this setting then Postfix
    will reject mail (relay access denied) or will not be able to deliver it
    (mail for example.com loops back to myself).

    NEVER list a virtual alias domain name as a mydestination domain!

  * Lines 3-8: the /etc/postfix/virtual file contains the virtual aliases. With
    the example above, mail for postmaster@@example.com goes to the local
    postmaster, while mail for info@@example.com goes to the UNIX account joe,
    and mail for sales@@example.com goes to the UNIX account jane. Mail for all
    other addresses in example.com is rejected with the error message "User
    unknown".

  * Line 10: the commented out entry (text after #) shows how one would
    implement a catch-all virtual alias that receives mail for every
    example.com address not listed in the virtual alias file. This is not
    without risk. Spammers nowadays try to send mail from (or mail to) every
    possible name that they can think of. A catch-all mailbox is likely to
    receive many spam messages, and many bounces for spam messages that were
    sent in the name of anything@@example.com.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

Note: virtual aliases can resolve to a local address or to a remote address, or
both. They don't have to resolve to UNIX system accounts on your machine.

More details about the virtual alias file are given in the virtual(5) manual
page, including multiple addresses on the right-hand side.

Virtual aliasing solves one problem: it allows each domain to have its own info
mail address. But there still is one drawback: each virtual address is aliased
to a UNIX system account. As you add more virtual addresses you also add more
UNIX system accounts. The next section eliminates this problem.

PPoossttffiixx vviirrttuuaall MMAAIILLBBOOXX eexxaammppllee:: sseeppaarraattee ddoommaaiinnss,, nnoonn--UUNNIIXX aaccccoouunnttss

As a system hosts more and more domains and users, it becomes less desirable to
give every user their own UNIX system account.

With the Postfix virtual(8) mailbox delivery agent, every recipient address can
have its own virtual mailbox. Unlike virtual alias domains, virtual mailbox
domains do not need the clumsy translation from each recipient addresses into a
different address, and owners of a virtual mailbox address do not need to have
a UNIX system account.

The Postfix virtual(8) mailbox delivery agent looks up the user mailbox
pathname, uid and gid via separate tables that are searched with the
recipient's mail address. Maildir style delivery is turned on by terminating
the mailbox pathname with "/".

If you find the idea of multiple tables bothersome, remember that you can
migrate the information (once it works), to an SQL database. If you take that
route, be sure to review the "local files versus databases" section at the top
of this document.

Here is an example of a virtual mailbox domain "example.com":

     1 /etc/postfix/main.cf:
     2     virtual_mailbox_domains = example.com ...more domains...
     3     virtual_mailbox_base = /var/mail/vhosts
     4     virtual_mailbox_maps = hash:/etc/postfix/vmailbox
     5     virtual_minimum_uid = 100
     6     virtual_uid_maps = static:5000
     7     virtual_gid_maps = static:5000
     8     virtual_alias_maps = hash:/etc/postfix/virtual
     9
    10 /etc/postfix/vmailbox:
    11     info@@example.com    example.com/info
    12     sales@@example.com   example.com/sales/
    13     # Comment out the entry below to implement a catch-all.
    14     # @@example.com      example.com/catchall
    15     ...virtual mailboxes for more domains...
    16
    17 /etc/postfix/virtual:
    18     postmaster@@example.com postmaster

Notes:

  * Line 2: The virtual_mailbox_domains setting tells Postfix that example.com
    is a so-called virtual mailbox domain. If you omit this setting then
    Postfix will reject mail (relay access denied) or will not be able to
    deliver it (mail for example.com loops back to myself).

    NEVER list a virtual MAILBOX domain name as a mydestination domain!

    NEVER list a virtual MAILBOX domain name as a virtual ALIAS domain!

  * Line 3: The virtual_mailbox_base parameter specifies a prefix for all
    virtual mailbox pathnames. This is a safety mechanism in case someone makes
    a mistake. It prevents mail from being delivered all over the file system.

  * Lines 4, 10-15: The virtual_mailbox_maps parameter specifies the lookup
    table with mailbox (or maildir) pathnames, indexed by the virtual mail
    address. In this example, mail for info@@example.com goes to the mailbox at
    /var/mail/vhosts/example.com/info while mail for sales@@example.com goes to
    the maildir located at /var/mail/vhosts/example.com/sales/.

  * Line 5: The virtual_minimum_uid specifies a lower bound on the mailbox or
    maildir owner's UID. This is a safety mechanism in case someone makes a
    mistake. It prevents mail from being written to sensitive files.

  * Lines 6, 7: The virtual_uid_maps and virtual_gid_maps parameters specify
    that all the virtual mailboxes are owned by a fixed uid and gid 5000. If
    this is not what you want, specify lookup tables that are searched by the
    recipient's mail address.

  * Line 14: The commented out entry (text after #) shows how one would
    implement a catch-all virtual mailbox address. Be prepared to receive a lot
    of spam, as well as bounced spam that was sent in the name of
    anything@@example.com.

    NEVER put a virtual MAILBOX wild-card in the virtual ALIAS file!!

  * Lines 8, 17, 18: As you see, it is possible to mix virtual aliases with
    virtual mailboxes. We use this feature to redirect mail for example.com's
    postmaster address to the local postmaster. You can use the same mechanism
    to redirect an address to a remote address.

  * Line 18: This example assumes that in main.cf, $myorigin is listed under
    the mydestination parameter setting. If that is not the case, specify an
    explicit domain name on the right-hand side of the virtual alias table
    entries or else mail will go to the wrong domain.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, execute "ppoossttmmaapp //eettcc//ppoossttffiixx//vvmmaaiillbbooxx" after changing the vmailbox file,
and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

Note: mail delivery happens with the recipient's UID/GID privileges specified
with virtual_uid_maps and virtual_gid_maps. Postfix 2.0 and earlier will not
create mailDIRs in world-writable parent directories; you must create them in
advance before you can use them. Postfix may be able to create mailBOX files by
itself, depending on parent directory write permissions, but it is safer to
create mailBOX files ahead of time.

More details about the virtual mailbox delivery agent are given in the virtual
(8) manual page.

NNoonn--PPoossttffiixx mmaaiillbbooxx ssttoorree:: sseeppaarraattee ddoommaaiinnss,, nnoonn--UUNNIIXX aaccccoouunnttss

This is a variation on the Postfix virtual mailbox example. Again, every hosted
address can have its own mailbox.

While non-Postfix software is being used for final delivery, some Postfix
concepts are still needed in order to glue everything together. For additional
background on this glue you may want to take a look at the virtual mailbox
domain class as defined in the ADDRESS_CLASS_README file.

The text in this section describes what things should look like from Postfix's
point of view. See CYRUS_README or MAILDROP_README for specific information
about Cyrus or about Courier maildrop.

Here is an example for a hosted domain example.com that delivers to a non-
Postfix delivery agent:

     1 /etc/postfix/main.cf:
     2     virtual_transport = ...see below...
     3     virtual_mailbox_domains = example.com ...more domains...
     4     virtual_mailbox_maps = hash:/etc/postfix/vmailbox
     5     virtual_alias_maps = hash:/etc/postfix/virtual
     6
     7 /etc/postfix/vmailbox:
     8     info@@example.com    whatever
     9     sales@@example.com   whatever
    10     # Comment out the entry below to implement a catch-all.
    11     # Configure the mailbox store to accept all addresses.
    12     # @@example.com      whatever
    13     ...virtual mailboxes for more domains...
    14
    15 /etc/postfix/virtual:
    16     postmaster@@example.com postmaster

Notes:

  * Line 2: With delivery to a non-Postfix mailbox store for hosted domains,
    the virtual_transport parameter usually specifies the Postfix LMTP client,
    or the name of a master.cf entry that executes non-Postfix software via the
    pipe delivery agent. Typical examples (use only one):

        virtual_transport = lmtp:unix:/path/name (uses UNIX-domain socket)
        virtual_transport = lmtp:hostname:port   (uses TCP socket)
        virtual_transport = maildrop:            (uses pipe(8) to command)

    Postfix comes ready with support for LMTP. And an example maildrop delivery
    method is already defined in the default Postfix master.cf file. See the
    MAILDROP_README document for more details.

  * Line 3: The virtual_mailbox_domains setting tells Postfix that example.com
    is delivered via the virtual_transport that was discussed in the previous
    paragraph. If you omit this virtual_mailbox_domains setting then Postfix
    will either reject mail (relay access denied) or will not be able to
    deliver it (mail for example.com loops back to myself).

    NEVER list a virtual MAILBOX domain name as a mydestination domain!

    NEVER list a virtual MAILBOX domain name as a virtual ALIAS domain!

  * Lines 4, 7-13: The virtual_mailbox_maps parameter specifies the lookup
    table with all valid recipient addresses. The lookup result value is
    ignored by Postfix. In the above example, info@@example.com and
    sales@@example.com are listed as valid addresses; other mail for example.com
    is rejected with "User unknown" by the Postfix SMTP server. It's left up to
    the non-Postfix delivery agent to reject non-existent recipients from local
    submission or from local alias expansion. If you intend to use LDAP, MySQL
    or PgSQL instead of local files, be sure to review the "local files versus
    databases" section at the top of this document!

  * Line 12: The commented out entry (text after #) shows how one would inform
    Postfix of the existence of a catch-all address. Again, the lookup result
    is ignored by Postfix.

    NEVER put a virtual MAILBOX wild-card in the virtual ALIAS file!!

    Note: if you specify a wildcard in virtual_mailbox_maps, then you still
    need to configure the non-Postfix mailbox store to receive mail for any
    address in that domain.

  * Lines 5, 15, 16: As you see above, it is possible to mix virtual aliases
    with virtual mailboxes. We use this feature to redirect mail for
    example.com's postmaster address to the local postmaster. You can use the
    same mechanism to redirect any addresses to a local or remote address.

  * Line 16: This example assumes that in main.cf, $myorigin is listed under
    the mydestination parameter setting. If that is not the case, specify an
    explicit domain name on the right-hand side of the virtual alias table
    entries or else mail will go to the wrong domain.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, execute "ppoossttmmaapp //eettcc//ppoossttffiixx//vvmmaaiillbbooxx" after changing the vmailbox file,
and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

MMaaiill ffoorrwwaarrddiinngg ddoommaaiinnss

Some providers host domains that have no (or only a few) local mailboxes. The
main purpose of these domains is to forward mail elsewhere. The following
example shows how to set up example.com as a mail forwarding domain:

     1 /etc/postfix/main.cf:
     2     virtual_alias_domains = example.com ...other hosted domains...
     3     virtual_alias_maps = hash:/etc/postfix/virtual
     4
     5 /etc/postfix/virtual:
     6     postmaster@@example.com postmaster
     7     joe@@example.com        joe@@somewhere
     8     jane@@example.com       jane@@somewhere-else
     9     # Uncomment entry below to implement a catch-all address
    10     # @@example.com         jim@@yet-another-site
    11     ...virtual aliases for more domains...

Notes:

  * Line 2: The virtual_alias_domains setting tells Postfix that example.com is
    a so-called virtual alias domain. If you omit this setting then Postfix
    will reject mail (relay access denied) or will not be able to deliver it
    (mail for example.com loops back to myself).

    NEVER list a virtual alias domain name as a mydestination domain!

  * Lines 3-11: The /etc/postfix/virtual file contains the virtual aliases.
    With the example above, mail for postmaster@@example.com goes to the local
    postmaster, while mail for joe@@example.com goes to the remote address
    joe@@somewhere, and mail for jane@@example.com goes to the remote address
    jane@@somewhere-else. Mail for all other addresses in example.com is
    rejected with the error message "User unknown".

  * Line 10: The commented out entry (text after #) shows how one would
    implement a catch-all virtual alias that receives mail for every
    example.com address not listed in the virtual alias file. This is not
    without risk. Spammers nowadays try to send mail from (or mail to) every
    possible name that they can think of. A catch-all mailbox is likely to
    receive many spam messages, and many bounces for spam messages that were
    sent in the name of anything@@example.com.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

More details about the virtual alias file are given in the virtual(5) manual
page, including multiple addresses on the right-hand side.

MMaaiilliinngg lliissttss

The examples that were given above already show how to direct mail for virtual
postmaster addresses to a local postmaster. You can use the same method to
direct mail for any address to a local or remote address.

There is one major limitation: virtual aliases and virtual mailboxes can't
directly deliver to mailing list managers such as majordomo. The solution is to
set up virtual aliases that direct virtual addresses to the local delivery
agent:

    /etc/postfix/main.cf:
        virtual_alias_maps = hash:/etc/postfix/virtual

    /etc/postfix/virtual:
        listname-request@@example.com listname-request
        listname@@example.com         listname
        owner-listname@@example.com   owner-listname

    /etc/aliases:
        listname: "|/some/where/majordomo/wrapper ..."
        owner-listname: ...
        listname-request: ...

This example assumes that in main.cf, $myorigin is listed under the
mydestination parameter setting. If that is not the case, specify an explicit
domain name on the right-hand side of the virtual alias table entries or else
mail will go to the wrong domain.

More information about the Postfix local delivery agent can be found in the
local(8) manual page.

Why does this example use a clumsy virtual alias instead of a more elegant
transport mapping? The reason is that mail for the virtual mailing list would
be rejected with "User unknown". In order to make the transport mapping work
one would still need a bunch of virtual alias or virtual mailbox table entries.

  * In case of a virtual alias domain, there would need to be one identity
    mapping from each mailing list address to itself.
  * In case of a virtual mailbox domain, there would need to be a dummy mailbox
    for each mailing list address.

AAuuttoorreepplliieess

In order to set up an autoreply for virtual recipients while still delivering
mail as normal, set up a rule in a virtual alias table:

    /etc/postfix/main.cf:
        virtual_alias_maps = hash:/etc/postfix/virtual

    /etc/postfix/virtual:
        user@@domain.tld user@@domain.tld, user@@domain.tld@@autoreply.mydomain.tld

This delivers mail to the recipient, and sends a copy of the mail to the
address that produces automatic replies. The address can be serviced on a
different machine, or it can be serviced locally by setting up a transport map
entry that pipes all mail for autoreply.mydomain.tld into some script that
sends an automatic reply back to the sender.

DO NOT list autoreply.mydomain.tld in mydestination!

    /etc/postfix/main.cf:
        transport_maps = hash:/etc/postfix/transport

    /etc/postfix/transport:
        autoreply.mydomain.tld  autoreply:

    /etc/postfix/master.cf:
        # =============================================================
        # service type  private unpriv  chroot  wakeup  maxproc command
        #               (yes)   (yes)   (yes)   (never) (100)
        # =============================================================
        autoreply unix  -       n       n       -       -       pipe
            flags= user=nobody argv=/path/to/autoreply $sender $mailbox

This invokes /path/to/autoreply with the sender address and the user@@domain.tld
recipient address on the command line.

For more information, see the pipe(8) manual page, and the comments in the
Postfix master.cf file.

@


1.1.1.1.2.1
log
@file VIRTUAL_README was added on branch netbsd-5 on 2009-09-15 06:02:09 +0000
@
text
@d1 480
@


1.1.1.1.2.2
log
@Apply patch (requested by tron in ticket #944):
Update Postfix to 2.6.5.
@
text
@a0 480
PPoossttffiixx VViirrttuuaall DDoommaaiinn HHoossttiinngg HHoowwttoo

-------------------------------------------------------------------------------

PPuurrppoossee ooff tthhiiss ddooccuummeenntt

This document requires Postfix version 2.0 or later.

This document gives an overview of how Postfix can be used for hosting multiple
Internet domains, both for final delivery on the machine itself and for the
purpose of forwarding to destinations elsewhere.

The text not only describes delivery mechanisms that are built into Postfix,
but also gives pointers for using non-Postfix mail delivery software.

The following topics are covered:

  * Canonical versus hosted versus other domains
  * Local files versus network databases
  * As simple as can be: shared domains, UNIX system accounts
  * Postfix virtual ALIAS example: separate domains, UNIX system accounts
  * Postfix virtual MAILBOX example: separate domains, non-UNIX accounts
  * Non-Postfix mailbox store: separate domains, non-UNIX accounts
  * Mail forwarding domains
  * Mailing lists
  * Autoreplies

CCaannoonniiccaall vveerrssuuss hhoosstteedd vveerrssuuss ootthheerr ddoommaaiinnss

Most Postfix systems are ffiinnaall ddeessttiinnaattiioonn for only a few domain names. These
include the hostnames and [the IP addresses] of the machine that Postfix runs
on, and sometimes also include the parent domain of the hostname. The remainder
of this document will refer to these domains as the canonical domains. They are
usually implemented with the Postfix local domain address class, as defined in
the ADDRESS_CLASS_README file.

Besides the canonical domains, Postfix can be configured to be ffiinnaall
ddeessttiinnaattiioonn for any number of additional domains. These domains are called
hosted, because they are not directly associated with the name of the machine
itself. Hosted domains are usually implemented with the virtual alias domain
address class and/or with the virtual mailbox domain address class, as defined
in the ADDRESS_CLASS_README file.

But wait! There is more. Postfix can be configured as a backup MX host for
other domains. In this case Postfix is nnoott tthhee ffiinnaall ddeessttiinnaattiioonn for those
domains. It merely queues the mail when the primary MX host is down, and
forwards the mail when the primary MX host becomes available. This function is
implemented with the relay domain address class, as defined in the
ADDRESS_CLASS_README file.

Finally, Postfix can be configured as a transit host for sending mail across
the internet. Obviously, Postfix is not final destination for such mail. This
function is available only for authorized clients and/or users, and is
implemented by the default domain address class, as defined in the
ADDRESS_CLASS_README file.

LLooccaall ffiilleess vveerrssuuss nneettwwoorrkk ddaattaabbaasseess

The examples in this text use table lookups from local files such as DBM or
Berkeley DB. These are easy to debug with the ppoossttmmaapp command:

    Example: postmap -q info@@example.com hash:/etc/postfix/virtual

See the documentation in LDAP_README, MYSQL_README and PGSQL_README for how to
replace local files by databases. The reader is strongly advised to make the
system work with local files before migrating to network databases, and to use
the ppoossttmmaapp command to verify that network database lookups produce the exact
same results as local file lookup.

    Example: postmap -q info@@example.com ldap:/etc/postfix/virtual.cf

AAss ssiimmppllee aass ccaann bbee:: sshhaarreedd ddoommaaiinnss,, UUNNIIXX ssyysstteemm aaccccoouunnttss

The simplest method to host an additional domain is to add the domain name to
the domains listed in the Postfix mydestination configuration parameter, and to
add the user names to the UNIX password file.

This approach makes no distinction between canonical and hosted domains. Each
username can receive mail in every domain.

In the examples we will use "example.com" as the domain that is being hosted on
the local Postfix machine.

    /etc/postfix/main.cf:
        mydestination = $myhostname localhost.$mydomain ... example.com

The limitations of this approach are:

  * A total lack of separation: mail for info@@my.host.name is delivered to the
    same UNIX system account as mail for info@@example.com.
  * With users in the UNIX password file, administration of large numbers of
    users becomes inconvenient.

The examples that follow provide solutions for both limitations.

PPoossttffiixx vviirrttuuaall AALLIIAASS eexxaammppllee:: sseeppaarraattee ddoommaaiinnss,, UUNNIIXX ssyysstteemm aaccccoouunnttss

With the approach described in this section, every hosted domain can have its
own info etc. email address. However, it still uses UNIX system accounts for
local mailbox deliveries.

With virtual alias domains, each hosted address is aliased to a local UNIX
system account or to a remote address. The example below shows how to use this
mechanism for the example.com domain.

     1 /etc/postfix/main.cf:
     2     virtual_alias_domains = example.com ...other hosted domains...
     3     virtual_alias_maps = hash:/etc/postfix/virtual
     4
     5 /etc/postfix/virtual:
     6     postmaster@@example.com postmaster
     7     info@@example.com       joe
     8     sales@@example.com      jane
     9     # Uncomment entry below to implement a catch-all address
    10     # @@example.com         jim
    11     ...virtual aliases for more domains...

Notes:

  * Line 2: the virtual_alias_domains setting tells Postfix that example.com is
    a so-called virtual alias domain. If you omit this setting then Postfix
    will reject mail (relay access denied) or will not be able to deliver it
    (mail for example.com loops back to myself).

    NEVER list a virtual alias domain name as a mydestination domain!

  * Lines 3-8: the /etc/postfix/virtual file contains the virtual aliases. With
    the example above, mail for postmaster@@example.com goes to the local
    postmaster, while mail for info@@example.com goes to the UNIX account joe,
    and mail for sales@@example.com goes to the UNIX account jane. Mail for all
    other addresses in example.com is rejected with the error message "User
    unknown".

  * Line 10: the commented out entry (text after #) shows how one would
    implement a catch-all virtual alias that receives mail for every
    example.com address not listed in the virtual alias file. This is not
    without risk. Spammers nowadays try to send mail from (or mail to) every
    possible name that they can think of. A catch-all mailbox is likely to
    receive many spam messages, and many bounces for spam messages that were
    sent in the name of anything@@example.com.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

Note: virtual aliases can resolve to a local address or to a remote address, or
both. They don't have to resolve to UNIX system accounts on your machine.

More details about the virtual alias file are given in the virtual(5) manual
page, including multiple addresses on the right-hand side.

Virtual aliasing solves one problem: it allows each domain to have its own info
mail address. But there still is one drawback: each virtual address is aliased
to a UNIX system account. As you add more virtual addresses you also add more
UNIX system accounts. The next section eliminates this problem.

PPoossttffiixx vviirrttuuaall MMAAIILLBBOOXX eexxaammppllee:: sseeppaarraattee ddoommaaiinnss,, nnoonn--UUNNIIXX aaccccoouunnttss

As a system hosts more and more domains and users, it becomes less desirable to
give every user their own UNIX system account.

With the Postfix virtual(8) mailbox delivery agent, every recipient address can
have its own virtual mailbox. Unlike virtual alias domains, virtual mailbox
domains do not need the clumsy translation from each recipient addresses into a
different address, and owners of a virtual mailbox address do not need to have
a UNIX system account.

The Postfix virtual(8) mailbox delivery agent looks up the user mailbox
pathname, uid and gid via separate tables that are searched with the
recipient's mail address. Maildir style delivery is turned on by terminating
the mailbox pathname with "/".

If you find the idea of multiple tables bothersome, remember that you can
migrate the information (once it works), to an SQL database. If you take that
route, be sure to review the "local files versus databases" section at the top
of this document.

Here is an example of a virtual mailbox domain "example.com":

     1 /etc/postfix/main.cf:
     2     virtual_mailbox_domains = example.com ...more domains...
     3     virtual_mailbox_base = /var/mail/vhosts
     4     virtual_mailbox_maps = hash:/etc/postfix/vmailbox
     5     virtual_minimum_uid = 100
     6     virtual_uid_maps = static:5000
     7     virtual_gid_maps = static:5000
     8     virtual_alias_maps = hash:/etc/postfix/virtual
     9
    10 /etc/postfix/vmailbox:
    11     info@@example.com    example.com/info
    12     sales@@example.com   example.com/sales/
    13     # Comment out the entry below to implement a catch-all.
    14     # @@example.com      example.com/catchall
    15     ...virtual mailboxes for more domains...
    16
    17 /etc/postfix/virtual:
    18     postmaster@@example.com postmaster

Notes:

  * Line 2: The virtual_mailbox_domains setting tells Postfix that example.com
    is a so-called virtual mailbox domain. If you omit this setting then
    Postfix will reject mail (relay access denied) or will not be able to
    deliver it (mail for example.com loops back to myself).

    NEVER list a virtual MAILBOX domain name as a mydestination domain!

    NEVER list a virtual MAILBOX domain name as a virtual ALIAS domain!

  * Line 3: The virtual_mailbox_base parameter specifies a prefix for all
    virtual mailbox pathnames. This is a safety mechanism in case someone makes
    a mistake. It prevents mail from being delivered all over the file system.

  * Lines 4, 10-15: The virtual_mailbox_maps parameter specifies the lookup
    table with mailbox (or maildir) pathnames, indexed by the virtual mail
    address. In this example, mail for info@@example.com goes to the mailbox at
    /var/mail/vhosts/example.com/info while mail for sales@@example.com goes to
    the maildir located at /var/mail/vhosts/example.com/sales/.

  * Line 5: The virtual_minimum_uid specifies a lower bound on the mailbox or
    maildir owner's UID. This is a safety mechanism in case someone makes a
    mistake. It prevents mail from being written to sensitive files.

  * Lines 6, 7: The virtual_uid_maps and virtual_gid_maps parameters specify
    that all the virtual mailboxes are owned by a fixed uid and gid 5000. If
    this is not what you want, specify lookup tables that are searched by the
    recipient's mail address.

  * Line 14: The commented out entry (text after #) shows how one would
    implement a catch-all virtual mailbox address. Be prepared to receive a lot
    of spam, as well as bounced spam that was sent in the name of
    anything@@example.com.

    NEVER put a virtual MAILBOX wild-card in the virtual ALIAS file!!

  * Lines 8, 17, 18: As you see, it is possible to mix virtual aliases with
    virtual mailboxes. We use this feature to redirect mail for example.com's
    postmaster address to the local postmaster. You can use the same mechanism
    to redirect an address to a remote address.

  * Line 18: This example assumes that in main.cf, $myorigin is listed under
    the mydestination parameter setting. If that is not the case, specify an
    explicit domain name on the right-hand side of the virtual alias table
    entries or else mail will go to the wrong domain.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, execute "ppoossttmmaapp //eettcc//ppoossttffiixx//vvmmaaiillbbooxx" after changing the vmailbox file,
and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

Note: mail delivery happens with the recipient's UID/GID privileges specified
with virtual_uid_maps and virtual_gid_maps. Postfix 2.0 and earlier will not
create mailDIRs in world-writable parent directories; you must create them in
advance before you can use them. Postfix may be able to create mailBOX files by
itself, depending on parent directory write permissions, but it is safer to
create mailBOX files ahead of time.

More details about the virtual mailbox delivery agent are given in the virtual
(8) manual page.

NNoonn--PPoossttffiixx mmaaiillbbooxx ssttoorree:: sseeppaarraattee ddoommaaiinnss,, nnoonn--UUNNIIXX aaccccoouunnttss

This is a variation on the Postfix virtual mailbox example. Again, every hosted
address can have its own mailbox.

While non-Postfix software is being used for final delivery, some Postfix
concepts are still needed in order to glue everything together. For additional
background on this glue you may want to take a look at the virtual mailbox
domain class as defined in the ADDRESS_CLASS_README file.

The text in this section describes what things should look like from Postfix's
point of view. See CYRUS_README or MAILDROP_README for specific information
about Cyrus or about Courier maildrop.

Here is an example for a hosted domain example.com that delivers to a non-
Postfix delivery agent:

     1 /etc/postfix/main.cf:
     2     virtual_transport = ...see below...
     3     virtual_mailbox_domains = example.com ...more domains...
     4     virtual_mailbox_maps = hash:/etc/postfix/vmailbox
     5     virtual_alias_maps = hash:/etc/postfix/virtual
     6
     7 /etc/postfix/vmailbox:
     8     info@@example.com    whatever
     9     sales@@example.com   whatever
    10     # Comment out the entry below to implement a catch-all.
    11     # Configure the mailbox store to accept all addresses.
    12     # @@example.com      whatever
    13     ...virtual mailboxes for more domains...
    14
    15 /etc/postfix/virtual:
    16     postmaster@@example.com postmaster

Notes:

  * Line 2: With delivery to a non-Postfix mailbox store for hosted domains,
    the virtual_transport parameter usually specifies the Postfix LMTP client,
    or the name of a master.cf entry that executes non-Postfix software via the
    pipe delivery agent. Typical examples (use only one):

        virtual_transport = lmtp:unix:/path/name (uses UNIX-domain socket)
        virtual_transport = lmtp:hostname:port   (uses TCP socket)
        virtual_transport = maildrop:            (uses pipe(8) to command)

    Postfix comes ready with support for LMTP. And an example maildrop delivery
    method is already defined in the default Postfix master.cf file. See the
    MAILDROP_README document for more details.

  * Line 3: The virtual_mailbox_domains setting tells Postfix that example.com
    is delivered via the virtual_transport that was discussed in the previous
    paragraph. If you omit this virtual_mailbox_domains setting then Postfix
    will either reject mail (relay access denied) or will not be able to
    deliver it (mail for example.com loops back to myself).

    NEVER list a virtual MAILBOX domain name as a mydestination domain!

    NEVER list a virtual MAILBOX domain name as a virtual ALIAS domain!

  * Lines 4, 7-13: The virtual_mailbox_maps parameter specifies the lookup
    table with all valid recipient addresses. The lookup result value is
    ignored by Postfix. In the above example, info@@example.com and
    sales@@example.com are listed as valid addresses; other mail for example.com
    is rejected with "User unknown" by the Postfix SMTP server. It's left up to
    the non-Postfix delivery agent to reject non-existent recipients from local
    submission or from local alias expansion. If you intend to use LDAP, MySQL
    or PgSQL instead of local files, be sure to review the "local files versus
    databases" section at the top of this document!

  * Line 12: The commented out entry (text after #) shows how one would inform
    Postfix of the existence of a catch-all address. Again, the lookup result
    is ignored by Postfix.

    NEVER put a virtual MAILBOX wild-card in the virtual ALIAS file!!

    Note: if you specify a wildcard in virtual_mailbox_maps, then you still
    need to configure the non-Postfix mailbox store to receive mail for any
    address in that domain.

  * Lines 5, 15, 16: As you see above, it is possible to mix virtual aliases
    with virtual mailboxes. We use this feature to redirect mail for
    example.com's postmaster address to the local postmaster. You can use the
    same mechanism to redirect any addresses to a local or remote address.

  * Line 16: This example assumes that in main.cf, $myorigin is listed under
    the mydestination parameter setting. If that is not the case, specify an
    explicit domain name on the right-hand side of the virtual alias table
    entries or else mail will go to the wrong domain.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, execute "ppoossttmmaapp //eettcc//ppoossttffiixx//vvmmaaiillbbooxx" after changing the vmailbox file,
and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

MMaaiill ffoorrwwaarrddiinngg ddoommaaiinnss

Some providers host domains that have no (or only a few) local mailboxes. The
main purpose of these domains is to forward mail elsewhere. The following
example shows how to set up example.com as a mail forwarding domain:

     1 /etc/postfix/main.cf:
     2     virtual_alias_domains = example.com ...other hosted domains...
     3     virtual_alias_maps = hash:/etc/postfix/virtual
     4
     5 /etc/postfix/virtual:
     6     postmaster@@example.com postmaster
     7     joe@@example.com        joe@@somewhere
     8     jane@@example.com       jane@@somewhere-else
     9     # Uncomment entry below to implement a catch-all address
    10     # @@example.com         jim@@yet-another-site
    11     ...virtual aliases for more domains...

Notes:

  * Line 2: The virtual_alias_domains setting tells Postfix that example.com is
    a so-called virtual alias domain. If you omit this setting then Postfix
    will reject mail (relay access denied) or will not be able to deliver it
    (mail for example.com loops back to myself).

    NEVER list a virtual alias domain name as a mydestination domain!

  * Lines 3-11: The /etc/postfix/virtual file contains the virtual aliases.
    With the example above, mail for postmaster@@example.com goes to the local
    postmaster, while mail for joe@@example.com goes to the remote address
    joe@@somewhere, and mail for jane@@example.com goes to the remote address
    jane@@somewhere-else. Mail for all other addresses in example.com is
    rejected with the error message "User unknown".

  * Line 10: The commented out entry (text after #) shows how one would
    implement a catch-all virtual alias that receives mail for every
    example.com address not listed in the virtual alias file. This is not
    without risk. Spammers nowadays try to send mail from (or mail to) every
    possible name that they can think of. A catch-all mailbox is likely to
    receive many spam messages, and many bounces for spam messages that were
    sent in the name of anything@@example.com.

Execute the command "ppoossttmmaapp //eettcc//ppoossttffiixx//vviirrttuuaall" after changing the virtual
file, and execute the command "ppoossttffiixx rreellooaadd" after changing the main.cf file.

More details about the virtual alias file are given in the virtual(5) manual
page, including multiple addresses on the right-hand side.

MMaaiilliinngg lliissttss

The examples that were given above already show how to direct mail for virtual
postmaster addresses to a local postmaster. You can use the same method to
direct mail for any address to a local or remote address.

There is one major limitation: virtual aliases and virtual mailboxes can't
directly deliver to mailing list managers such as majordomo. The solution is to
set up virtual aliases that direct virtual addresses to the local delivery
agent:

    /etc/postfix/main.cf:
        virtual_alias_maps = hash:/etc/postfix/virtual

    /etc/postfix/virtual:
        listname-request@@example.com listname-request
        listname@@example.com         listname
        owner-listname@@example.com   owner-listname

    /etc/aliases:
        listname: "|/some/where/majordomo/wrapper ..."
        owner-listname: ...
        listname-request: ...

This example assumes that in main.cf, $myorigin is listed under the
mydestination parameter setting. If that is not the case, specify an explicit
domain name on the right-hand side of the virtual alias table entries or else
mail will go to the wrong domain.

More information about the Postfix local delivery agent can be found in the
local(8) manual page.

Why does this example use a clumsy virtual alias instead of a more elegant
transport mapping? The reason is that mail for the virtual mailing list would
be rejected with "User unknown". In order to make the transport mapping work
one would still need a bunch of virtual alias or virtual mailbox table entries.

  * In case of a virtual alias domain, there would need to be one identity
    mapping from each mailing list address to itself.
  * In case of a virtual mailbox domain, there would need to be a dummy mailbox
    for each mailing list address.

AAuuttoorreepplliieess

In order to set up an autoreply for virtual recipients while still delivering
mail as normal, set up a rule in a virtual alias table:

    /etc/postfix/main.cf:
        virtual_alias_maps = hash:/etc/postfix/virtual

    /etc/postfix/virtual:
        user@@domain.tld user@@domain.tld, user@@domain.tld@@autoreply.mydomain.tld

This delivers mail to the recipient, and sends a copy of the mail to the
address that produces automatic replies. The address can be serviced on a
different machine, or it can be serviced locally by setting up a transport map
entry that pipes all mail for autoreply.mydomain.tld into some script that
sends an automatic reply back to the sender.

DO NOT list autoreply.mydomain.tld in mydestination!

    /etc/postfix/main.cf:
        transport_maps = hash:/etc/postfix/transport

    /etc/postfix/transport:
        autoreply.mydomain.tld  autoreply:

    /etc/postfix/master.cf:
        # =============================================================
        # service type  private unpriv  chroot  wakeup  maxproc command
        #               (yes)   (yes)   (yes)   (never) (100)
        # =============================================================
        autoreply unix  -       n       n       -       -       pipe
            flags= user=nobody argv=/path/to/autoreply $sender $mailbox

This invokes /path/to/autoreply with the sender address and the user@@domain.tld
recipient address on the command line.

For more information, see the pipe(8) manual page, and the comments in the
Postfix master.cf file.

@


