diff --git a/postfix/HISTORY b/postfix/HISTORY
index d85530405..a68d0a460 100644
--- a/postfix/HISTORY
+++ b/postfix/HISTORY
@@ -7500,9 +7500,6 @@ Open problems:
or maildir delivery that result in deferral rather than
bouncing mail.
- Low: don't do user@domain and @domain lookups in
- local_recipient_maps queries.
-
Low: after reorganizing configuration parameters, add flags
to all parameters whose value can be read from file.
@@ -7528,7 +7525,3 @@ Open problems:
Low: with quoted-printable, perhaps use =46rom instead of
>From.
-
- Low: make it easier to have local_recipient_maps turned on
- by default. This requires documentation of its existence
- with anything that replaces or extends local delivery.
diff --git a/postfix/README_FILES/SASL_README b/postfix/README_FILES/SASL_README
index 67508d3fc..73ebdd6d3 100644
--- a/postfix/README_FILES/SASL_README
+++ b/postfix/README_FILES/SASL_README
@@ -46,10 +46,11 @@ was contributed by Jason Hoos.
When receiving mail, Postfix logs the client-provided username,
authentication method, and sender address to the maillog file, and
optionally grants mail access via the permit_sasl_authenticated
-UCE restriction. SASL authentication information is not passed on
-via message headers or via SMTP. It is no-one's business what
-username and authentication method the poster was using in order
-to access the mail server.
+UCE restriction.
+
+SASL authentication information is not passed on via message headers
+or via SMTP. It is no-one's business what username and authentication
+method the poster was using in order to access the mail server.
When sending mail, Postfix looks up the server hostname or destination
domain (the address remote part) in a table, and if a username/password
diff --git a/postfix/conf/access b/postfix/conf/access
index 1d7e01e64..0b4a8ad63 100644
--- a/postfix/conf/access
+++ b/postfix/conf/access
@@ -129,7 +129,7 @@
# tion schemes.
#
# DUNNO Pretend that the lookup key was not found in this
-# table, to prevents Postfix from trying substrings
+# table. This prevents Postfix from trying substrings
# of the lookup key (such as a subdomain name, or a
# network address subnetwork).
#
diff --git a/postfix/conf/canonical b/postfix/conf/canonical
index 2ffb81e53..e140b0927 100644
--- a/postfix/conf/canonical
+++ b/postfix/conf/canonical
@@ -72,7 +72,7 @@
# user@domain is replaced by address. This form has
# the highest precedence.
#
-# This form useful to clean up addresses produced by
+# This is useful to clean up addresses produced by
# legacy mail systems. It can also be used to pro-
# duce Firstname.Lastname style addresses, but see
# below for a simpler solution.
diff --git a/postfix/conf/transport b/postfix/conf/transport
index 65be20410..c5c6cf8c6 100644
--- a/postfix/conf/transport
+++ b/postfix/conf/transport
@@ -88,133 +88,141 @@
# Note 1: the special pattern * represents any address (i.e.
# it functions as the wild-card pattern).
#
-# Note 2: the null recipient address is looked up as the
-# local mailer-daemon address (mailer-daemon@fully-quali-
-# fied-domain-name).
+# Note 2: the null recipient address is looked up as
+# $empty_address_recipient@$myhostname (default: mailer-dae-
+# mon@hostname).
#
# RESULT FORMAT
-# A null transport and null nexthop result means "do not
-# change": use the delivery transport and nexthop informa-
-# tion that would be used when the entire transport table
-# did not exist.
-#
-# A non-null transport field with a null nexthop field
-# resets the nexthop information to the recipient domain.
-#
-# A null transport field with non-null nexthop field does
-# not modify the transport information.
-#
-# TRANSPORT FIELD
-# The transport field specifies the name of a mail delivery
+# The transport field specifies the name of a mail delivery
# transport (the first name of a mail delivery service entry
# in the Postfix master.cf file).
#
-# When a null transport field is specified, Postfix uses one
-# of the following transports:
-#
-# $local_transport
-# The domain matches $mydestination or $inet_inter-
-# faces.
-#
-# $virtual_transport
-# The domain matches $virtual_mailbox_domains.
-#
-# $relay_transport
-# The domain matches $relay_transport.
-#
-# $default_transport
-# All other non-local, non-virtual destinations.
-#
-# NEXTHOP FIELD
-# The interpretation of the nexthop field is transport
+# The interpretation of the nexthop field is transport
# dependent. In the case of SMTP, specify host:service for a
-# non-default server port, and use [host] or [host]:port in
-# order to disable MX (mail exchanger) DNS lookups. The []
-# form can also be used with IP addresses instead of host-
+# non-default server port, and use [host] or [host]:port in
+# order to disable MX (mail exchanger) DNS lookups. The []
+# form can also be used with IP addresses instead of host-
# names.
#
+# A null transport and null nexthop result means "do not
+# change": use the delivery transport and nexthop informa-
+# tion that would be used when the entire transport table
+# did not exist.
+#
+# A non-null transport field with a null nexthop field
+# resets the nexthop information to the recipient domain.
+#
+# A null transport field with non-null nexthop field does
+# not modify the transport information.
+#
+# DEFAULT DELIVERY METHOD
+# When the recipient address or domain does not match a
+# transport table entry, Postfix uses one of the following
+# delivery methods, with the recipient domain as the default
+# nexthop.
+#
+# o The recipient domain matches $mydestination or
+# $inet_interfaces. The transport and optional nex-
+# thop are specified with $local_transport.
+#
+# o The recipient domain matches $virtual_mail-
+# box_domains. The transport and optional nexthop
+# are specified with $virtual_transport.
+#
+# o The recipient domain matches $relay_domains. The
+# transport and optional nexthop are specified with
+# $relay_transport. This overrides the nexthop infor-
+# mation that is specified with $relayhost.
+#
+# o All other destinations. the transport and optional
+# nexthop are specified with $relay_transport. This
+# overrides the nexthop information that is specified
+# with $relayhost.
+#
# EXAMPLES
-# In order to deliver internal mail directly, while using a
-# mail relay for all other mail, specify a null entry for
-# internal destinations (do not change the delivery trans-
-# port or the nexthop information) and specify a wildcard
-# for all other destinations. Note that for this trick to
-# work you should not specify a relayhost in the main.cf
-# file.
+# In order to deliver internal mail directly, while using a
+# mail relay for all other mail, specify a null entry for
+# internal destinations (do not change the delivery trans-
+# port or the nexthop information) and specify a wildcard
+# for all other destinations.
#
# my.domain :
# .my.domain :
# * smtp:outbound-relay.my.domain
#
-# In order to send mail for foo.org and its subdomains via
+# In order to send mail for foo.org and its subdomains via
# the uucp transport to the UUCP host named foo:
#
# foo.org uucp:foo
# .foo.org uucp:foo
#
-# When no nexthop host name is specified, the destination
-# domain name is used instead. For example, the following
-# directs mail for user@foo.org via the slow transport to a
-# mail exchanger for foo.org. The slow transport could be
-# something that runs at most one delivery process at a
+# When no nexthop host name is specified, the destination
+# domain name is used instead. For example, the following
+# directs mail for user@foo.org via the slow transport to a
+# mail exchanger for foo.org. The slow transport could be
+# something that runs at most one delivery process at a
# time:
#
# foo.org slow:
#
# When no transport is specified, Postfix uses the transport
# that matches the address domain class (see TRANSPORT FIELD
-# discussion above). The following sends all mail for
+# discussion above). The following sends all mail for
# foo.org and its subdomains to host gateway.foo.org:
#
# foo.org :[gateway.foo.org]
# .foo.org :[gateway.foo.org]
#
-# In the above example, the [] are used to suppress MX
-# lookups. The result would likely point to your local
+# In the above example, the [] are used to suppress MX
+# lookups. The result would likely point to your local
# machine.
#
-# In the case of delivery via SMTP, one may specify host-
+# In the case of delivery via SMTP, one may specify host-
# name:service instead of just a host:
#
# foo.org smtp:bar.org:2025
#
-# This directs mail for user@foo.org to host bar.org port
-# 2025. Instead of a numerical port a symbolic name may be
-# used. Specify [] around the hostname in order to disable
+# This directs mail for user@foo.org to host bar.org port
+# 2025. Instead of a numerical port a symbolic name may be
+# used. Specify [] around the hostname in order to disable
# MX lookups.
#
# The error mailer can be used to bounce mail:
#
-# .foo.org error:mail for *.foo.org is not deliv-
+# .foo.org error:mail for *.foo.org is not deliv-
# erable
#
-# This causes all mail for user@anything.foo.org to be
+# This causes all mail for user@anything.foo.org to be
# bounced.
#
# REGULAR EXPRESSION TABLES
-# This section describes how the table lookups change when
+# This section describes how the table lookups change when
# the table is given in the form of regular expressions. For
-# a description of regular expression lookup table syntax,
+# a description of regular expression lookup table syntax,
# see regexp_table(5) or pcre_table(5).
#
-# Each pattern is a regular expression that is applied to
+# Each pattern is a regular expression that is applied to
# the entire domain being looked up. Thus, some.domain.hier-
# archy is not broken up into parent domains.
#
-# Patterns are applied in the order as specified in the
-# table, until a pattern is found that matches the search
+# Patterns are applied in the order as specified in the
+# table, until a pattern is found that matches the search
# string.
#
-# Results are the same as with indexed file lookups, with
-# the additional feature that parenthesized substrings from
+# Results are the same as with indexed file lookups, with
+# the additional feature that parenthesized substrings from
# the pattern can be interpolated as $1, $2 and so on.
#
# CONFIGURATION PARAMETERS
-# The following main.cf parameters are especially relevant
-# to this topic. See the Postfix main.cf file for syntax
-# details and for default values. Use the postfix reload
+# The following main.cf parameters are especially relevant
+# to this topic. See the Postfix main.cf file for syntax
+# details and for default values. Use the postfix reload
# command after a configuration change.
#
+# empty_address_recipient
+# The address that is looked up instead of the null
+# sender address.
+#
# parent_domain_matches_subdomains
# List of Postfix features that use domain.tld pat-
# terns to match sub.domain.tld (as opposed to
diff --git a/postfix/conf/virtual b/postfix/conf/virtual
index 6fa76dfe1..6f7f05fc2 100644
--- a/postfix/conf/virtual
+++ b/postfix/conf/virtual
@@ -18,8 +18,8 @@
#
# The main applications of virtual aliasing are:
#
-# o To redirect mail from one address to one or more
-# other addresses.
+# o To redirect mail for one address to one or more
+# addresses.
#
# o To simulate virtual domains where all virtual
# addresses are aliased to non-virtual addresses.
@@ -49,56 +49,6 @@
# sions. In that case, the lookups are done in a slightly
# different way as described below.
#
-# SIMULATED VIRTUAL DOMAINS
-# Besides virtual aliases, the virtual alias table can also
-# be used to simulate virtual domains. With a simulated vir-
-# tual domain, all recipient addresses are aliased to non-
-# virtual addresses. These non-virtual addresses may be
-# either local or remote.
-#
-# Simulated virtual domains are not to be confused with the
-# true virtual domains that are implemented with the Postfix
-# virtual(8) mail delivery agent. With true virtual domains,
-# each recipient address can have its own mailbox.
-#
-# With a simulated virtual domain, the virtual domain has
-# its own user name space. Local (i.e. non-virtual) user-
-# names are not visible in a simulated virtual domain. In
-# particular, local aliases(5) and local mailing lists are
-# not visible as localname@simulated.domain.
-#
-# Support for a simulated virtual domain looks like:
-#
-# /etc/postfix/main.cf:
-# virtual_alias_maps = hash:/etc/postfix/virtual
-#
-# Note: some systems use dbm databases instead of hash.
-# See the output from postconf -m for available database
-# types.
-#
-# /etc/postfix/virtual:
-# simulated.domain anything (right-hand content does not matter)
-# postmaster@simulated.domain postmaster
-# user1@simulated.domain address1
-# user2@simulated.domain address2, address3
-#
-# The simulated.domain anything entry is required for a sim-
-# ulated virtual domain. Without this entry, mail will be
-# rejected with a "relay access denied" error condition.
-#
-# Do not list a simulated virtual domain name in the main.cf
-# mydestination configuration parameter.
-#
-# With a simulated virtual domain, the Postfix SMTP server
-# accepts mail for known-user@simulated.domain, and rejects
-# mail for unknown-user@simulated.domain as undeliverable.
-#
-# Instead of specifying the simulated virtual domain name
-# via the virtual_alias_maps table, you may also specify it
-# via the main.cf virtual_alias_domains configuration param-
-# eter. This latter parameter uses the same syntax as the
-# main.cf mydestination configuration parameter.
-#
# TABLE FORMAT
# The format of the virtual table is as follows, mappings
# being tried in the order as listed in this manual page:
@@ -151,6 +101,56 @@
# @domain. An unmatched address extension (+foo) is propa-
# gated to the result of table lookup.
#
+# SIMULATED VIRTUAL DOMAINS
+# Besides virtual aliases, the virtual alias table can also
+# be used to simulate virtual domains. With a simulated vir-
+# tual domain, all recipient addresses are aliased to non-
+# virtual addresses. These non-virtual addresses may be
+# either local or remote.
+#
+# Simulated virtual domains are not to be confused with the
+# true virtual domains that are implemented with the Postfix
+# virtual(8) mail delivery agent. With true virtual domains,
+# each recipient address can have its own mailbox.
+#
+# With a simulated virtual domain, the virtual domain has
+# its own user name space. Local (i.e. non-virtual) user-
+# names are not visible in a simulated virtual domain. In
+# particular, local aliases(5) and local mailing lists are
+# not visible as localname@simulated.domain.
+#
+# Support for a simulated virtual domain looks like:
+#
+# /etc/postfix/main.cf:
+# virtual_alias_maps = hash:/etc/postfix/virtual
+#
+# Note: some systems use dbm databases instead of hash.
+# See the output from postconf -m for available database
+# types.
+#
+# /etc/postfix/virtual:
+# simulated.domain anything (right-hand content does not matter)
+# postmaster@simulated.domain postmaster
+# user1@simulated.domain address1
+# user2@simulated.domain address2, address3
+#
+# The simulated.domain anything entry is required for a sim-
+# ulated virtual domain. Without this entry, mail will be
+# rejected with a "relay access denied" error condition.
+#
+# Do not list a simulated virtual domain name in the main.cf
+# mydestination configuration parameter.
+#
+# With a simulated virtual domain, the Postfix SMTP server
+# accepts mail for known-user@simulated.domain, and rejects
+# mail for unknown-user@simulated.domain as undeliverable.
+#
+# Instead of specifying the simulated virtual domain name
+# via the virtual_alias_maps table, you may also specify it
+# via the main.cf virtual_alias_domains configuration param-
+# eter. This latter parameter uses the same syntax as the
+# main.cf mydestination configuration parameter.
+#
# REGULAR EXPRESSION TABLES
# This section describes how the table lookups change when
# the table is given in the form of regular expressions. For
diff --git a/postfix/html/access.5.html b/postfix/html/access.5.html
index 71f575c84..5158b390c 100644
--- a/postfix/html/access.5.html
+++ b/postfix/html/access.5.html
@@ -130,7 +130,7 @@ ACCESS(5) ACCESS(5)
tion schemes.
DUNNO Pretend that the lookup key was not found in this
- table, to prevents Postfix from trying substrings
+ table. This prevents Postfix from trying substrings
of the lookup key (such as a subdomain name, or a
network address subnetwork).
diff --git a/postfix/html/canonical.5.html b/postfix/html/canonical.5.html
index d830aa05e..641f732fa 100644
--- a/postfix/html/canonical.5.html
+++ b/postfix/html/canonical.5.html
@@ -73,7 +73,7 @@ CANONICAL(5) CANONICAL(5)
user@domain is replaced by address. This form has
the highest precedence.
- This form useful to clean up addresses produced by
+ This is useful to clean up addresses produced by
legacy mail systems. It can also be used to pro-
duce Firstname.Lastname style addresses, but see
below for a simpler solution.
diff --git a/postfix/html/cleanup.8.html b/postfix/html/cleanup.8.html
index 1c7326f38..8efac446b 100644
--- a/postfix/html/cleanup.8.html
+++ b/postfix/html/cleanup.8.html
@@ -188,20 +188,24 @@ CLEANUP(8) CLEANUP(8)
Resource controls
duplicate_filter_limit
- Limit the number of envelope recipients that are
+ Limits the number of envelope recipients that are
remembered.
- header_size_limit
- Limit the amount of memory in bytes used to process
+ header_address_token_limit
+ Limits the number of address tokens used to process
a message header.
+ header_size_limit
+ Limits the amount of memory in bytes used to pro-
+ cess a message header.
+
in_flow_delay
Amount of time to pause before accepting a message,
- when the message arrival rate exceeds the message
+ when the message arrival rate exceeds the message
delivery rate.
extract_recipient_limit
- Limit the amount of recipients extracted from mes-
+ Limit the amount of recipients extracted from mes-
sage headers.
SEE ALSO
@@ -216,7 +220,7 @@ CLEANUP(8) CLEANUP(8)
/etc/postfix/virtual*, virtual mapping table
LICENSE
- The Secure Mailer license must be distributed with this
+ The Secure Mailer license must be distributed with this
software.
AUTHOR(S)
diff --git a/postfix/html/local.8.html b/postfix/html/local.8.html
index 076c8fe38..59d82ef1b 100644
--- a/postfix/html/local.8.html
+++ b/postfix/html/local.8.html
@@ -173,45 +173,47 @@ LOCAL(8) LOCAL(8)
SENDER The entire sender address.
The PATH environment variable is always reset to a system-
- dependent default path, and the TZ (time zone) environment
- variable is always passed on without change.
+ dependent default path, and environment variables whose
+ names are blessed by the export_environment configureation
+ parameter are exported unchanged.
The current working directory is the mail queue directory.
The local daemon prepends a "From sender time_stamp" enve-
- lope header to each message, prepends an X-Original-To:
- header with the recipient address as given to Postfix,
+ lope header to each message, prepends an X-Original-To:
+ header with the recipient address as given to Postfix,
prepends an optional Delivered-To: header with the recipi-
- ent envelope address, prepends a Return-Path: header with
+ ent envelope address, prepends a Return-Path: header with
the sender envelope address, and appends no empty line.
EXTERNAL FILE DELIVERY
- The delivery format depends on the destination filename
- syntax. The default is to use UNIX-style mailbox format.
- Specify a name ending in / for qmail-compatible maildir
+ The delivery format depends on the destination filename
+ syntax. The default is to use UNIX-style mailbox format.
+ Specify a name ending in / for qmail-compatible maildir
delivery.
- The allow_mail_to_files configuration parameter restricts
- delivery to external files. The default setting (alias,
+ The allow_mail_to_files configuration parameter restricts
+ delivery to external files. The default setting (alias,
forward) forbids file destinations in :include: files.
In the case of UNIX-style mailbox delivery, the local dae-
mon prepends a "From sender time_stamp" envelope header to
- each message, prepends an X-Original-To: header with the
- recipient address as given to Postfix, prepends an
- optional Delivered-To: header with the recipient envelope
- address, prepends a > character to lines beginning with
- "From ", and appends an empty line. The envelope sender
+ each message, prepends an X-Original-To: header with the
+ recipient address as given to Postfix, prepends an
+ optional Delivered-To: header with the recipient envelope
+ address, prepends a > character to lines beginning with
+ "From ", and appends an empty line. The envelope sender
address is available in the Return-Path: header. When the
- destination is a regular file, it is locked for exclusive
+ destination is a regular file, it is locked for exclusive
access while delivery is in progress. In case of problems,
an attempt is made to truncate a regular file to its orig-
inal length.
In the case of maildir delivery, the local daemon prepends
an optional Delivered-To: header with the envelope recipi-
- ent address. The envelope sender address is available in
- the Return-Path: header.
+ ent address, and prepends an X-Original-To: header with
+ the recipient address as given to Postfix. The envelope
+ sender address is available in the Return-Path: header.
ADDRESS EXTENSION
The optional recipient_delimiter configuration parameter
diff --git a/postfix/html/master.8.html b/postfix/html/master.8.html
index 211c6b148..512485ca7 100644
--- a/postfix/html/master.8.html
+++ b/postfix/html/master.8.html
@@ -5,7 +5,7 @@ MASTER(8) MASTER(8)
master - Postfix master process
SYNOPSIS
- master [-c config_dir] [-e exit_time] [-D] [-t] [-v]
+ master [-Dtv] [-c config_dir] [-e exit_time]
DESCRIPTION
The master daemon is the resident process that runs Post-
diff --git a/postfix/html/pcre_table.5.html b/postfix/html/pcre_table.5.html
index d74644c63..31da45f43 100644
--- a/postfix/html/pcre_table.5.html
+++ b/postfix/html/pcre_table.5.html
@@ -62,7 +62,7 @@ PCRE_TABLE(5) PCRE_TABLE(5)
m (default: off)
Toggles the PCRE_MULTILINE flag. When this flag is
- on, the ^ and $ metacharacters match immediately
+ on, the ^ and $ metacharacters match immediately
after and immediately before a newline character,
respectively, in addition to matching at the start
and end of the subject string.
diff --git a/postfix/html/pickup.8.html b/postfix/html/pickup.8.html
index dfd20d5d7..ba6056e8e 100644
--- a/postfix/html/pickup.8.html
+++ b/postfix/html/pickup.8.html
@@ -19,13 +19,13 @@ PICKUP(8) PICKUP(8)
world.
SECURITY
- The pickup daemon runs with superuser privileges so that
- it 1) can open a queue file with the rights of the submit-
- ting user and 2) can access the Postfix private IPC chan-
- nels. On the positive side, the program can run chrooted,
- opens no files for writing, is careful about what files it
- opens for reading, and does not actually touch any data
- that is sent to its public service endpoint.
+ The pickup daemon is moderately security sensitive. It
+ runs with fixed low privilege and can run in a chrooted
+ environment. However, the program reads files from poten-
+ tially hostile users. The pickup daemon opens no files
+ for writing, is careful about what files it opens for
+ reading, and does not actually touch any data that is sent
+ to its public service endpoint.
DIAGNOSTICS
Problems and transactions are logged to syslogd(8).
@@ -56,10 +56,6 @@ PICKUP(8) PICKUP(8)
Address to send a copy of each message that enters
the system.
- mail_owner
- The process privileges used while not opening a
- maildrop file.
-
queue_directory
Top-level directory of the Postfix queue.
@@ -70,7 +66,7 @@ PICKUP(8) PICKUP(8)
syslogd(8) system logging
LICENSE
- The Secure Mailer license must be distributed with this
+ The Secure Mailer license must be distributed with this
software.
AUTHOR(S)
diff --git a/postfix/html/postalias.1.html b/postfix/html/postalias.1.html
index 8f96b4cef..b19ca66ec 100644
--- a/postfix/html/postalias.1.html
+++ b/postfix/html/postalias.1.html
@@ -51,7 +51,7 @@ POSTALIAS(1) POSTALIAS(1)
-i Incremental mode. Read entries from standard input
and do not truncate an existing database. By
default, postalias creates a new database from the
- entries in file_name.
+ entries in file_name.
-n Don't include the terminating null character that
terminates lookup keys and values. By default,
@@ -113,7 +113,7 @@ POSTALIAS(1) POSTALIAS(1)
file_name
The name of the alias database source file when
- rebuilding a database.
+ creating a database.
DIAGNOSTICS
Problems are logged to the standard error stream. No out-
@@ -136,9 +136,9 @@ POSTALIAS(1) POSTALIAS(1)
to this program. See the Postfix main.cf file for syntax
details and for default values.
- efault_Bdatabase_type
- Default alias database type. On many UNIX systems,
- the default type is either dbm or hash.
+ default_database_type
+ Default database type. On many UNIX systems, the
+ default type is either dbm or hash.
berkeley_db_create_buffer_size
Amount of buffer memory to be used when creating a
diff --git a/postfix/html/postconf.1.html b/postfix/html/postconf.1.html
index 2fd3a7539..0367e4f51 100644
--- a/postfix/html/postconf.1.html
+++ b/postfix/html/postconf.1.html
@@ -11,7 +11,7 @@ POSTCONF(1) POSTCONF(1)
DESCRIPTION
The postconf command prints the actual value of parameter
- (all known parameters by default), one parameter per line,
+ (all known parameters by default) one parameter per line,
changes its value, or prints other information about the
Postfix mail system.
diff --git a/postfix/html/postfix.1.html b/postfix/html/postfix.1.html
index 2d2e98b3d..b2f1c1bbd 100644
--- a/postfix/html/postfix.1.html
+++ b/postfix/html/postfix.1.html
@@ -5,7 +5,7 @@ POSTFIX(1) POSTFIX(1)
postfix - Postfix control program
SYNOPSIS
- postfix [-c config_dir] [-D] [-v] command
+ postfix [-Dv] [-c config_dir] command
DESCRIPTION
This command is reserved for the superuser. To submit
@@ -67,11 +67,12 @@ POSTFIX(1) POSTFIX(1)
verbose.
ENVIRONMENT
- The postfix command sets the following environment vari-
- ables:
+ The postfix command exports the following environment
+ variables before executing the postfix-script file:
MAIL_CONFIG
- Directory with Postfix configuration files.
+ This is set when the -c command-line option is pre-
+ sent.
MAIL_VERBOSE
This is set when the -v command-line option is pre-
@@ -81,10 +82,8 @@ POSTFIX(1) POSTFIX(1)
This is set when the -D command-line option is pre-
sent.
-CONFIGURATION PARAMETERS
- The following main.cf configuration parameters are made
- available as process environment variables with the same
- names:
+ The following main.cf configuration parameters are
+ exported as environment variables with the same names:
command_directory
Directory with Postfix administrative commands.
@@ -111,14 +110,14 @@ POSTFIX(1) POSTFIX(1)
commands.
sendmail_path
- The full pathname for the Postfix sendmail command.
+ The full pathname for the Postfix sendmail command.
newaliases_path
- The full pathname for the Postfix newaliases com-
+ The full pathname for the Postfix newaliases com-
mand.
mailq_path
- The full pathname for the Postfix mailq command.
+ The full pathname for the Postfix mailq command.
manpage_directory
The directory for the Postfix on-line manual pages.
diff --git a/postfix/html/qmqpd.8.html b/postfix/html/qmqpd.8.html
index 37fc7294a..9c99eb526 100644
--- a/postfix/html/qmqpd.8.html
+++ b/postfix/html/qmqpd.8.html
@@ -96,7 +96,7 @@ QMQPD(8) QMQPD(8)
address information.
Tarpitting
- qmqpd_error_sleep_time
+ qmqpd_error_delay
Time to wait in seconds before informing the client
of a problem. This slows down run-away errors.
diff --git a/postfix/html/sendmail.1.html b/postfix/html/sendmail.1.html
index ba691f1eb..b96c79529 100644
--- a/postfix/html/sendmail.1.html
+++ b/postfix/html/sendmail.1.html
@@ -164,63 +164,64 @@ SENDMAIL(1) SENDMAIL(1)
-o7 (ignored)
-o8 (ignored)
- The message body type. Currently, Postfix imple-
- ments just-send-eight.
+ To send 8-bit or binary content, use an appropriate
+ MIME encapsulation and specify the appropriate -B
+ command-line option.
- -oi When reading a message from standard input, don't
- treat a line with only a . character as the end of
+ -oi When reading a message from standard input, don't
+ treat a line with only a . character as the end of
input.
-om (ignored)
- The sender is never eliminated from alias etc.
+ The sender is never eliminated from alias etc.
expansions.
-o x value (ignored)
- Set option x to value. Use the equivalent configu-
+ Set option x to value. Use the equivalent configu-
ration parameter in main.cf instead.
-r sender
Set the envelope sender address. This is the
address where delivery problems are sent to, unless
- the message contains an Errors-To: message header.
+ the message contains an Errors-To: message header.
- -q Attempt to deliver all queued mail. This is imple-
+ -q Attempt to deliver all queued mail. This is imple-
mented by executing the postqueue(1) command.
-qinterval (ignored)
- The interval between queue runs. Use the
+ The interval between queue runs. Use the
queue_run_delay configuration parameter instead.
-qRsite
- Schedule immediate delivery of all mail that is
+ Schedule immediate delivery of all mail that is
queued for the named site. This option accepts only
- site names that are eligible for the "fast flush"
- service, and is implemented by executing the
+ site names that are eligible for the "fast flush"
+ service, and is implemented by executing the
postqueue(1) command. See flush(8) for more infor-
mation about the "fast flush" service.
-qSsite
- This command is not implemented. Use the slower
+ This command is not implemented. Use the slower
sendmail -q command instead.
- -t Extract recipients from message headers. This
- requires that no recipients be specified on the
+ -t Extract recipients from message headers. This
+ requires that no recipients be specified on the
command line.
-v Enable verbose logging for debugging purposes. Mul-
- tiple -v options make the software increasingly
- verbose. For compatibility with mailx and other
- mail submission software, a single -v option pro-
+ tiple -v options make the software increasingly
+ verbose. For compatibility with mailx and other
+ mail submission software, a single -v option pro-
duces no output.
SECURITY
- By design, this program is not set-user (or group) id.
- However, it must handle data from untrusted users or
- untrusted machines. Thus, the usual precautions need to
+ By design, this program is not set-user (or group) id.
+ However, it must handle data from untrusted users or
+ untrusted machines. Thus, the usual precautions need to
be taken against malicious inputs.
DIAGNOSTICS
- Problems are logged to syslogd(8) and to the standard
+ Problems are logged to syslogd(8) and to the standard
error stream.
ENVIRONMENT
@@ -232,7 +233,7 @@ SENDMAIL(1) SENDMAIL(1)
MAIL_DEBUG
Enable debugging with an external command, as spec-
- ified with the debugger_command configuration
+ ified with the debugger_command configuration
parameter.
FILES
@@ -240,13 +241,13 @@ SENDMAIL(1) SENDMAIL(1)
/etc/postfix, configuration files
CONFIGURATION PARAMETERS
- See the Postfix main.cf file for syntax details and for
- default values. Use the postfix reload command after a
+ See the Postfix main.cf file for syntax details and for
+ default values. Use the postfix reload command after a
configuration change.
alias_database
- Default alias database(s) for newaliases. The
- default value for this parameter is system-spe-
+ Default alias database(s) for newaliases. The
+ default value for this parameter is system-spe-
cific.
bounce_size_limit
@@ -262,41 +263,41 @@ SENDMAIL(1) SENDMAIL(1)
initialized.
debug_peer_level
- Increment in verbose logging level when a remote
+ Increment in verbose logging level when a remote
host matches a pattern in the debug_peer_list
parameter.
debug_peer_list
- List of domain or network patterns. When a remote
- host matches a pattern, increase the verbose log-
- ging level by the amount specified in the
+ List of domain or network patterns. When a remote
+ host matches a pattern, increase the verbose log-
+ ging level by the amount specified in the
debug_peer_level parameter.
default_verp_delimiters
- The VERP delimiter characters that are used when
- the -V command line option is specified without
+ The VERP delimiter characters that are used when
+ the -V command line option is specified without
delimiter characters.
fast_flush_domains
List of domains that will receive "fast flush" ser-
- vice (default: all domains that this system is
- willing to relay mail to). This list specifies the
- domains that Postfix accepts in the SMTP ETRN
+ vice (default: all domains that this system is
+ willing to relay mail to). This list specifies the
+ domains that Postfix accepts in the SMTP ETRN
request and in the sendmail -qR command.
fork_attempts
- Number of attempts to fork() a process before giv-
+ Number of attempts to fork() a process before giv-
ing up.
fork_delay
- Delay in seconds between successive fork()
+ Delay in seconds between successive fork()
attempts.
hopcount_limit
Limit the number of Received: message headers.
mail_owner
- The owner of the mail queue and of most Postfix
+ The owner of the mail queue and of most Postfix
processes.
command_directory
@@ -306,16 +307,16 @@ SENDMAIL(1) SENDMAIL(1)
Directory with Postfix daemon programs.
queue_directory
- Top-level directory of the Postfix queue. This is
+ Top-level directory of the Postfix queue. This is
also the root directory of Postfix daemons that run
chrooted.
queue_run_delay
- The time between successive scans of the deferred
+ The time between successive scans of the deferred
queue.
verp_delimiter_filter
- The characters that Postfix accepts as VERP delim-
+ The characters that Postfix accepts as VERP delim-
iter characters.
SEE ALSO
@@ -331,7 +332,7 @@ SENDMAIL(1) SENDMAIL(1)
syslogd(8) system logging
LICENSE
- The Secure Mailer license must be distributed with this
+ The Secure Mailer license must be distributed with this
software.
AUTHOR(S)
diff --git a/postfix/html/transport.5.html b/postfix/html/transport.5.html
index 58543b893..a7f22bb5a 100644
--- a/postfix/html/transport.5.html
+++ b/postfix/html/transport.5.html
@@ -89,133 +89,141 @@ TRANSPORT(5) TRANSPORT(5)
Note 1: the special pattern * represents any address (i.e.
it functions as the wild-card pattern).
- Note 2: the null recipient address is looked up as the
- local mailer-daemon address (mailer-daemon@fully-quali-
- fied-domain-name).
+ Note 2: the null recipient address is looked up as
+ $empty_address_recipient@$myhostname (default: mailer-dae-
+ mon@hostname).
RESULT FORMAT
- A null transport and null nexthop result means "do not
- change": use the delivery transport and nexthop informa-
- tion that would be used when the entire transport table
- did not exist.
-
- A non-null transport field with a null nexthop field
- resets the nexthop information to the recipient domain.
-
- A null transport field with non-null nexthop field does
- not modify the transport information.
-
-TRANSPORT FIELD
- The transport field specifies the name of a mail delivery
+ The transport field specifies the name of a mail delivery
transport (the first name of a mail delivery service entry
in the Postfix master.cf file).
- When a null transport field is specified, Postfix uses one
- of the following transports:
-
- $local_transport
- The domain matches $mydestination or $inet_inter-
- faces.
-
- $virtual_transport
- The domain matches $virtual_mailbox_domains.
-
- $relay_transport
- The domain matches $relay_transport.
-
- $default_transport
- All other non-local, non-virtual destinations.
-
-NEXTHOP FIELD
- The interpretation of the nexthop field is transport
+ The interpretation of the nexthop field is transport
dependent. In the case of SMTP, specify host:service for a
- non-default server port, and use [host] or [host]:port in
- order to disable MX (mail exchanger) DNS lookups. The []
- form can also be used with IP addresses instead of host-
+ non-default server port, and use [host] or [host]:port in
+ order to disable MX (mail exchanger) DNS lookups. The []
+ form can also be used with IP addresses instead of host-
names.
+ A null transport and null nexthop result means "do not
+ change": use the delivery transport and nexthop informa-
+ tion that would be used when the entire transport table
+ did not exist.
+
+ A non-null transport field with a null nexthop field
+ resets the nexthop information to the recipient domain.
+
+ A null transport field with non-null nexthop field does
+ not modify the transport information.
+
+DEFAULT DELIVERY METHOD
+ When the recipient address or domain does not match a
+ transport table entry, Postfix uses one of the following
+ delivery methods, with the recipient domain as the default
+ nexthop.
+
+ o The recipient domain matches $mydestination or
+ $inet_interfaces. The transport and optional nex-
+ thop are specified with $local_transport.
+
+ o The recipient domain matches $virtual_mail-
+ box_domains. The transport and optional nexthop
+ are specified with $virtual_transport.
+
+ o The recipient domain matches $relay_domains. The
+ transport and optional nexthop are specified with
+ $relay_transport. This overrides the nexthop infor-
+ mation that is specified with $relayhost.
+
+ o All other destinations. the transport and optional
+ nexthop are specified with $relay_transport. This
+ overrides the nexthop information that is specified
+ with $relayhost.
+
EXAMPLES
- In order to deliver internal mail directly, while using a
- mail relay for all other mail, specify a null entry for
- internal destinations (do not change the delivery trans-
- port or the nexthop information) and specify a wildcard
- for all other destinations. Note that for this trick to
- work you should not specify a relayhost in the main.cf
- file.
+ In order to deliver internal mail directly, while using a
+ mail relay for all other mail, specify a null entry for
+ internal destinations (do not change the delivery trans-
+ port or the nexthop information) and specify a wildcard
+ for all other destinations.
my.domain :
.my.domain :
* smtp:outbound-relay.my.domain
- In order to send mail for foo.org and its subdomains via
+ In order to send mail for foo.org and its subdomains via
the uucp transport to the UUCP host named foo:
foo.org uucp:foo
.foo.org uucp:foo
- When no nexthop host name is specified, the destination
- domain name is used instead. For example, the following
- directs mail for user@foo.org via the slow transport to a
- mail exchanger for foo.org. The slow transport could be
- something that runs at most one delivery process at a
+ When no nexthop host name is specified, the destination
+ domain name is used instead. For example, the following
+ directs mail for user@foo.org via the slow transport to a
+ mail exchanger for foo.org. The slow transport could be
+ something that runs at most one delivery process at a
time:
foo.org slow:
When no transport is specified, Postfix uses the transport
that matches the address domain class (see TRANSPORT FIELD
- discussion above). The following sends all mail for
+ discussion above). The following sends all mail for
foo.org and its subdomains to host gateway.foo.org:
foo.org :[gateway.foo.org]
.foo.org :[gateway.foo.org]
- In the above example, the [] are used to suppress MX
- lookups. The result would likely point to your local
+ In the above example, the [] are used to suppress MX
+ lookups. The result would likely point to your local
machine.
- In the case of delivery via SMTP, one may specify host-
+ In the case of delivery via SMTP, one may specify host-
name:service instead of just a host:
foo.org smtp:bar.org:2025
- This directs mail for user@foo.org to host bar.org port
- 2025. Instead of a numerical port a symbolic name may be
- used. Specify [] around the hostname in order to disable
+ This directs mail for user@foo.org to host bar.org port
+ 2025. Instead of a numerical port a symbolic name may be
+ used. Specify [] around the hostname in order to disable
MX lookups.
The error mailer can be used to bounce mail:
- .foo.org error:mail for *.foo.org is not deliv-
+ .foo.org error:mail for *.foo.org is not deliv-
erable
- This causes all mail for user@anything.foo.org to be
+ This causes all mail for user@anything.foo.org to be
bounced.
REGULAR EXPRESSION TABLES
- This section describes how the table lookups change when
+ This section describes how the table lookups change when
the table is given in the form of regular expressions. For
- a description of regular expression lookup table syntax,
+ a description of regular expression lookup table syntax,
see regexp_table(5) or pcre_table(5).
- Each pattern is a regular expression that is applied to
+ Each pattern is a regular expression that is applied to
the entire domain being looked up. Thus, some.domain.hier-
archy is not broken up into parent domains.
- Patterns are applied in the order as specified in the
- table, until a pattern is found that matches the search
+ Patterns are applied in the order as specified in the
+ table, until a pattern is found that matches the search
string.
- Results are the same as with indexed file lookups, with
- the additional feature that parenthesized substrings from
+ Results are the same as with indexed file lookups, with
+ the additional feature that parenthesized substrings from
the pattern can be interpolated as $1, $2 and so on.
CONFIGURATION PARAMETERS
- The following main.cf parameters are especially relevant
- to this topic. See the Postfix main.cf file for syntax
- details and for default values. Use the postfix reload
+ The following main.cf parameters are especially relevant
+ to this topic. See the Postfix main.cf file for syntax
+ details and for default values. Use the postfix reload
command after a configuration change.
+ empty_address_recipient
+ The address that is looked up instead of the null
+ sender address.
+
parent_domain_matches_subdomains
List of Postfix features that use domain.tld pat-
terns to match sub.domain.tld (as opposed to
diff --git a/postfix/html/trivial-rewrite.8.html b/postfix/html/trivial-rewrite.8.html
index 508bfca2b..77f3e6447 100644
--- a/postfix/html/trivial-rewrite.8.html
+++ b/postfix/html/trivial-rewrite.8.html
@@ -30,8 +30,8 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
field of an entry in the master.cf file.
nexthop
- The host to send to. For local delivery this
- is an empty string.
+ The host to send to and optional delivery
+ method information.
recipient
The envelope recipient address that is
@@ -66,11 +66,16 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
command after a configuration change.
Miscellaneous
+ empty_address_recipient
+ The recipient that is substituted for the null
+ address.
+
inet_interfaces
- The network interfaces that this mail system
- receives mail on. This information is used to
- determine if user@[net.work.addr.ess] is local or
- remote.
+ The network interfaces that this mail system
+ receives mail on. This information is used to
+ determine if user@[net.work.addr.ess] is local or
+ remote. Mail for local users is given to the
+ $local_transport.
mydestination
List of domains that are given to the $local_trans-
diff --git a/postfix/html/virtual.5.html b/postfix/html/virtual.5.html
index fd7fe1b66..72463e287 100644
--- a/postfix/html/virtual.5.html
+++ b/postfix/html/virtual.5.html
@@ -19,8 +19,8 @@ VIRTUAL(5) VIRTUAL(5)
The main applications of virtual aliasing are:
- o To redirect mail from one address to one or more
- other addresses.
+ o To redirect mail for one address to one or more
+ addresses.
o To simulate virtual domains where all virtual
addresses are aliased to non-virtual addresses.
@@ -50,56 +50,6 @@ VIRTUAL(5) VIRTUAL(5)
sions. In that case, the lookups are done in a slightly
different way as described below.
-SIMULATED VIRTUAL DOMAINS
- Besides virtual aliases, the virtual alias table can also
- be used to simulate virtual domains. With a simulated vir-
- tual domain, all recipient addresses are aliased to non-
- virtual addresses. These non-virtual addresses may be
- either local or remote.
-
- Simulated virtual domains are not to be confused with the
- true virtual domains that are implemented with the Postfix
- virtual(8) mail delivery agent. With true virtual domains,
- each recipient address can have its own mailbox.
-
- With a simulated virtual domain, the virtual domain has
- its own user name space. Local (i.e. non-virtual) user-
- names are not visible in a simulated virtual domain. In
- particular, local aliases(5) and local mailing lists are
- not visible as localname@simulated.domain.
-
- Support for a simulated virtual domain looks like:
-
- /etc/postfix/main.cf:
- virtual_alias_maps = hash:/etc/postfix/virtual
-
- Note: some systems use dbm databases instead of hash.
- See the output from postconf -m for available database
- types.
-
- /etc/postfix/virtual:
- simulated.domain anything (right-hand content does not matter)
- postmaster@simulated.domain postmaster
- user1@simulated.domain address1
- user2@simulated.domain address2, address3
-
- The simulated.domain anything entry is required for a sim-
- ulated virtual domain. Without this entry, mail will be
- rejected with a "relay access denied" error condition.
-
- Do not list a simulated virtual domain name in the main.cf
- mydestination configuration parameter.
-
- With a simulated virtual domain, the Postfix SMTP server
- accepts mail for known-user@simulated.domain, and rejects
- mail for unknown-user@simulated.domain as undeliverable.
-
- Instead of specifying the simulated virtual domain name
- via the virtual_alias_maps table, you may also specify it
- via the main.cf virtual_alias_domains configuration param-
- eter. This latter parameter uses the same syntax as the
- main.cf mydestination configuration parameter.
-
TABLE FORMAT
The format of the virtual table is as follows, mappings
being tried in the order as listed in this manual page:
@@ -152,6 +102,56 @@ VIRTUAL(5) VIRTUAL(5)
@domain. An unmatched address extension (+foo) is propa-
gated to the result of table lookup.
+SIMULATED VIRTUAL DOMAINS
+ Besides virtual aliases, the virtual alias table can also
+ be used to simulate virtual domains. With a simulated vir-
+ tual domain, all recipient addresses are aliased to non-
+ virtual addresses. These non-virtual addresses may be
+ either local or remote.
+
+ Simulated virtual domains are not to be confused with the
+ true virtual domains that are implemented with the Postfix
+ virtual(8) mail delivery agent. With true virtual domains,
+ each recipient address can have its own mailbox.
+
+ With a simulated virtual domain, the virtual domain has
+ its own user name space. Local (i.e. non-virtual) user-
+ names are not visible in a simulated virtual domain. In
+ particular, local aliases(5) and local mailing lists are
+ not visible as localname@simulated.domain.
+
+ Support for a simulated virtual domain looks like:
+
+ /etc/postfix/main.cf:
+ virtual_alias_maps = hash:/etc/postfix/virtual
+
+ Note: some systems use dbm databases instead of hash.
+ See the output from postconf -m for available database
+ types.
+
+ /etc/postfix/virtual:
+ simulated.domain anything (right-hand content does not matter)
+ postmaster@simulated.domain postmaster
+ user1@simulated.domain address1
+ user2@simulated.domain address2, address3
+
+ The simulated.domain anything entry is required for a sim-
+ ulated virtual domain. Without this entry, mail will be
+ rejected with a "relay access denied" error condition.
+
+ Do not list a simulated virtual domain name in the main.cf
+ mydestination configuration parameter.
+
+ With a simulated virtual domain, the Postfix SMTP server
+ accepts mail for known-user@simulated.domain, and rejects
+ mail for unknown-user@simulated.domain as undeliverable.
+
+ Instead of specifying the simulated virtual domain name
+ via the virtual_alias_maps table, you may also specify it
+ via the main.cf virtual_alias_domains configuration param-
+ eter. This latter parameter uses the same syntax as the
+ main.cf mydestination configuration parameter.
+
REGULAR EXPRESSION TABLES
This section describes how the table lookups change when
the table is given in the form of regular expressions. For
diff --git a/postfix/html/virtual.8.html b/postfix/html/virtual.8.html
index 93e15fd6a..925526715 100644
--- a/postfix/html/virtual.8.html
+++ b/postfix/html/virtual.8.html
@@ -40,9 +40,11 @@ VIRTUAL(8) VIRTUAL(8)
The virtual delivery agent prepends a "From sender
time_stamp" envelope header to each message, prepends a
Delivered-To: message header with the envelope recipient
- address, prepends a Return-Path: message header with the
- envelope sender address, prepends a > character to lines
- beginning with "From ", and appends an empty line.
+ address, prepends an X-Original-To: header with the recip-
+ ient address as given to Postfix, prepends a Return-Path:
+ message header with the envelope sender address, prepends
+ a > character to lines beginning with "From ", and appends
+ an empty line.
The mailbox is locked for exclusive access while delivery
is in progress. In case of problems, an attempt is made to
diff --git a/postfix/man/man1/postalias.1 b/postfix/man/man1/postalias.1
index e7594fe49..e7fc82ef0 100644
--- a/postfix/man/man1/postalias.1
+++ b/postfix/man/man1/postalias.1
@@ -49,7 +49,7 @@ a map.
.IP \fB-i\fR
Incremental mode. Read entries from standard input and do not
truncate an existing database. By default, \fBpostalias\fR creates
-a new database from the entries in \fBfile_name\fR.
+a new database from the entries in \fIfile_name\fR.
.IP \fB-n\fR
Don't include the terminating null character that terminates lookup
keys and values. By default, Postfix does whatever is the default for
@@ -101,7 +101,7 @@ parameter.
The default value for this parameter depends on the host environment.
.RE
.IP \fIfile_name\fR
-The name of the alias database source file when rebuilding a database.
+The name of the alias database source file when creating a database.
.SH DIAGNOSTICS
.ad
.fi
@@ -129,8 +129,8 @@ Enable verbose logging for debugging purposes.
The following \fBmain.cf\fR parameters are especially relevant to
this program. See the Postfix \fBmain.cf\fR file for syntax details
and for default values.
-.IP \fdefault_Bdatabase_type\fR
-Default alias database type. On many UNIX systems, the default type
+.IP \fBdefault_database_type\fR
+Default database type. On many UNIX systems, the default type
is either \fBdbm\fR or \fBhash\fR.
.IP \fBberkeley_db_create_buffer_size\fR
Amount of buffer memory to be used when creating a Berkeley DB
diff --git a/postfix/man/man1/postconf.1 b/postfix/man/man1/postconf.1
index 8c0a4e339..74d20a49a 100644
--- a/postfix/man/man1/postconf.1
+++ b/postfix/man/man1/postconf.1
@@ -18,7 +18,7 @@ Postfix configuration utility
.ad
.fi
The \fBpostconf\fR command prints the actual value of
-\fIparameter\fR (all known parameters by default), one
+\fIparameter\fR (all known parameters by default) one
parameter per line, changes its value, or prints other
information about the Postfix mail system.
diff --git a/postfix/man/man1/postfix.1 b/postfix/man/man1/postfix.1
index 7e4ce0b95..9401d1273 100644
--- a/postfix/man/man1/postfix.1
+++ b/postfix/man/man1/postfix.1
@@ -9,8 +9,7 @@ Postfix control program
.na
.nf
.fi
-\fBpostfix\fR [\fB-c \fIconfig_dir\fR] [\fB-D\fR] [\fB-v\fR]
-\fIcommand\fR
+\fBpostfix\fR [\fB-Dv\fR] [\fB-c \fIconfig_dir\fR] \fIcommand\fR
.SH DESCRIPTION
.ad
.fi
@@ -67,21 +66,17 @@ options make the software increasingly verbose.
.nf
.ad
.fi
-The \fBpostfix\fR command sets the following environment
-variables:
+The \fBpostfix\fR command exports the following environment
+variables before executing the \fBpostfix-script\fR file:
.IP \fBMAIL_CONFIG\fR
-Directory with Postfix configuration files.
+This is set when the -c command-line option is present.
.IP \fBMAIL_VERBOSE\fR
This is set when the -v command-line option is present.
.IP \fBMAIL_DEBUG\fR
This is set when the -D command-line option is present.
-.SH CONFIGURATION PARAMETERS
-.na
-.nf
-.ad
-.fi
-The following \fBmain.cf\fR configuration parameters are made
-available as process environment variables with the same names:
+.PP
+The following \fBmain.cf\fR configuration parameters are
+exported as environment variables with the same names:
.IP \fBcommand_directory\fR
Directory with Postfix administrative commands.
.IP \fBdaemon_directory\fR
@@ -98,11 +93,11 @@ The owner of Postfix queue files and of most Postfix processes.
.IP \fBsetgid_group\fR
The group for mail submission and queue management commands.
.IP \fBsendmail_path
-The full pathname for the Postfix sendmail command.
+The full pathname for the Postfix \fBsendmail\fR command.
.IP \fBnewaliases_path
-The full pathname for the Postfix newaliases command.
+The full pathname for the Postfix \fBnewaliases\fR command.
.IP \fBmailq_path
-The full pathname for the Postfix mailq command.
+The full pathname for the Postfix \fBmailq\fR command.
.IP \fBmanpage_directory
The directory for the Postfix on-line manual pages.
.IP \fBsample_directory
diff --git a/postfix/man/man1/sendmail.1 b/postfix/man/man1/sendmail.1
index 44a714b47..785ded049 100644
--- a/postfix/man/man1/sendmail.1
+++ b/postfix/man/man1/sendmail.1
@@ -140,8 +140,8 @@ Non-default alias database. Specify \fIpathname\fR or
details.
.IP "\fB-o7\fR (ignored)"
.IP "\fB-o8\fR (ignored)"
-The message body type. Currently, Postfix implements
-\fBjust-send-eight\fR.
+To send 8-bit or binary content, use an appropriate MIME encapsulation
+and specify the appropriate \fB-B\fR command-line option.
.IP "\fB-oi\fR"
When reading a message from standard input, don\'t treat a line
with only a \fB.\fR character as the end of input.
diff --git a/postfix/man/man5/access.5 b/postfix/man/man5/access.5
index 54d9974da..12528f659 100644
--- a/postfix/man/man5/access.5
+++ b/postfix/man/man5/access.5
@@ -125,7 +125,7 @@ Accept the address etc. that matches the pattern.
An all-numerical result is treated as OK. This format is
generated by address-based relay authorization schemes.
.IP \fBDUNNO\fR
-Pretend that the lookup key was not found in this table, to
+Pretend that the lookup key was not found in this table. This
prevents Postfix from trying substrings of the lookup key
(such as a subdomain name, or a network address subnetwork).
.IP \fBHOLD\fR
diff --git a/postfix/man/man5/canonical.5 b/postfix/man/man5/canonical.5
index 9259187df..2b413caf5 100644
--- a/postfix/man/man5/canonical.5
+++ b/postfix/man/man5/canonical.5
@@ -71,7 +71,7 @@ listed below:
\fIuser\fR@\fIdomain\fR is replaced by \fIaddress\fR. This form
has the highest precedence.
.sp
-This form useful to clean up addresses produced by legacy mail systems.
+This is useful to clean up addresses produced by legacy mail systems.
It can also be used to produce \fIFirstname.Lastname\fR style
addresses, but see below for a simpler solution.
.IP "\fIuser address\fR"
diff --git a/postfix/man/man5/pcre_table.5 b/postfix/man/man5/pcre_table.5
index fbb076617..6293ed4a8 100644
--- a/postfix/man/man5/pcre_table.5
+++ b/postfix/man/man5/pcre_table.5
@@ -57,7 +57,7 @@ Toggles the case sensitivity flag. By default, matching is case
insensitive.
.IP "\fBm\fR (default: off)"
Toggles the PCRE_MULTILINE flag. When this flag is on, the \fB^\fR
-and \fb$\fR metacharacters match immediately after and immediately
+and \fB$\fR metacharacters match immediately after and immediately
before a newline character, respectively, in addition to
matching at the start and end of the subject string.
.IP "\fBs\fR (default: on)"
diff --git a/postfix/man/man5/transport.5 b/postfix/man/man5/transport.5
index c35b35420..f73bbb69d 100644
--- a/postfix/man/man5/transport.5
+++ b/postfix/man/man5/transport.5
@@ -59,6 +59,8 @@ such as \fBsmtp\fR or \fBlocal\fR. The \fInexthop\fR field
specifies where and how to deliver mail. More details are given
in section "RESULT FORMAT".
.SH TABLE LOOKUP
+.na
+.nf
.ad
.fi
With lookups from indexed files such as DB or DBM, or from networked
@@ -84,11 +86,23 @@ Otherwise, a domain name matches itself and its subdomains.
Note 1: the special pattern \fB*\fR represents any address (i.e. it
functions as the wild-card pattern).
-Note 2: the null recipient address is looked up as the local
-mailer-daemon address (mailer-daemon@fully-qualified-domain-name).
+Note 2: the null recipient address is looked up as
+\fB$empty_address_recipient\fR@\fB$myhostname\fR (default:
+mailer-daemon@hostname).
.SH RESULT FORMAT
+.na
+.nf
.ad
.fi
+The transport field specifies the name of a mail delivery transport
+(the first name of a mail delivery service entry in the Postfix
+\fBmaster.cf\fR file).
+
+The interpretation of the nexthop field is transport
+dependent. In the case of SMTP, specify \fIhost\fR:\fIservice\fR for a
+non-default server port, and use [\fIhost\fR] or [\fIhost\fR]:\fIport\fR
+in order to disable MX (mail exchanger) DNS lookups. The [] form
+can also be used with IP addresses instead of hostnames.
A null \fItransport\fR and null \fInexthop\fR result means "do
not change": use the delivery transport and nexthop information
@@ -99,31 +113,32 @@ resets the nexthop information to the recipient domain.
A null \fItransport\fR field with non-null \fInexthop\fR field
does not modify the transport information.
-.SH TRANSPORT FIELD
+.SH DEFAULT DELIVERY METHOD
+.na
+.nf
.ad
.fi
-The transport field specifies the name of a mail delivery transport
-(the first name of a mail delivery service entry in the Postfix
-\fBmaster.cf\fR file).
-
-When a null transport field is specified, Postfix uses one of the
-following transports:
-.IP \fB$local_transport\fR
-The domain matches \fB$mydestination\fR or \fB$inet_interfaces\fR.
-.IP \fB$virtual_transport\fR
-The domain matches \fB$virtual_mailbox_domains\fR.
-.IP \fB$relay_transport\fR
-The domain matches \fB$relay_transport\fR.
-.IP \fB$default_transport\fR
-All other non-local, non-virtual destinations.
-.SH NEXTHOP FIELD
-.ad
-.fi
-The interpretation of the nexthop field is transport
-dependent. In the case of SMTP, specify \fIhost\fR:\fIservice\fR for a
-non-default server port, and use [\fIhost\fR] or [\fIhost\fR]:\fIport\fR
-in order to disable MX (mail exchanger) DNS lookups. The [] form
-can also be used with IP addresses instead of hostnames.
+When the recipient address or domain does not match a transport
+table entry, Postfix uses one of the following delivery methods,
+with the recipient domain as the default nexthop.
+.IP \(bu
+The recipient domain matches \fB$mydestination\fR or
+\fB$inet_interfaces\fR. The transport and optional nexthop
+are specified with \fB$local_transport\fR.
+.IP \(bu
+The recipient domain matches \fB$virtual_mailbox_domains\fR.
+The transport and optional nexthop are specified with
+\fB$virtual_transport\fR.
+.IP \(bu
+The recipient domain matches \fB$relay_domains\fR. The
+transport and optional nexthop are specified with
+\fB$relay_transport\fR. This overrides the nexthop information
+that is specified with \fB$relayhost\fR.
+.IP \(bu
+All other destinations. the transport and optional nexthop are
+specified with \fB$relay_transport\fR.
+This overrides the nexthop information that is specified with
+\fB$relayhost\fR.
.SH EXAMPLES
.na
.nf
@@ -133,8 +148,7 @@ In order to deliver internal mail directly, while using a
mail relay for all other mail, specify a null entry for
internal destinations (do not change the delivery transport or
the nexthop information) and specify a wildcard for all other
-destinations. Note that for this trick to work you should
-not specify a \fBrelayhost\fR in the \fBmain.cf\fR file.
+destinations.
.ti +5
\fB\&my.domain :\fR
@@ -219,6 +233,8 @@ The following \fBmain.cf\fR parameters are especially relevant to
this topic. See the Postfix \fBmain.cf\fR file for syntax details
and for default values. Use the \fBpostfix reload\fR command after
a configuration change.
+.IP \fBempty_address_recipient\fR
+The address that is looked up instead of the null sender address.
.IP \fBparent_domain_matches_subdomains\fR
List of Postfix features that use \fIdomain.tld\fR patterns
to match \fIsub.domain.tld\fR (as opposed to
diff --git a/postfix/man/man5/virtual.5 b/postfix/man/man5/virtual.5
index 98d61140b..a9b493d3d 100644
--- a/postfix/man/man5/virtual.5
+++ b/postfix/man/man5/virtual.5
@@ -22,7 +22,7 @@ is recursive, and is done by the Postfix \fBcleanup\fR(8) daemon.
The main applications of virtual aliasing are:
.IP \(bu
-To redirect mail from one address to one or more other addresses.
+To redirect mail for one address to one or more addresses.
.IP \(bu
To simulate virtual domains where all virtual addresses are aliased
to non-virtual addresses.
@@ -49,6 +49,54 @@ or SQL, the same lookups are done as for ordinary indexed files.
Alternatively, the table can be provided as a regular-expression
map where patterns are given as regular expressions. In that case,
the lookups are done in a slightly different way as described below.
+.SH TABLE FORMAT
+.na
+.nf
+.ad
+.fi
+The format of the virtual table is as follows, mappings being
+tried in the order as listed in this manual page:
+.IP "\fIpattern result\fR"
+When \fIpattern\fR matches a mail address, replace it by the
+corresponding \fIresult\fR.
+.IP "blank lines and comments"
+Empty lines and whitespace-only lines are ignored, as
+are lines whose first non-whitespace character is a `#'.
+.IP "multi-line text"
+A logical line starts with non-whitespace text. A line that
+starts with whitespace continues a logical line.
+.PP
+With lookups from indexed files such as DB or DBM, or from networked
+tables such as NIS, LDAP or SQL, patterns are tried in the order as
+listed below:
+.IP "\fIuser\fR@\fIdomain address, address, ...\fR"
+Mail for \fIuser\fR@\fIdomain\fR is redirected to \fIaddress\fR.
+This form has the highest precedence.
+.IP "\fIuser address, address, ...\fR"
+Mail for \fIuser\fR@\fIsite\fR is redirected to \fIaddress\fR when
+\fIsite\fR is equal to $\fBmyorigin\fR, when \fIsite\fR is listed in
+$\fRmydestination\fR, or when it is listed in $\fIinet_interfaces\fR.
+.sp
+This functionality overlaps with functionality of the local
+\fIaliases\fR(5) database. The difference is that \fBvirtual\fR
+mapping can be applied to non-local addresses.
+.IP "@\fIdomain address, address, ...\fR"
+Mail for any user in \fIdomain\fR is redirected to \fIaddress\fR.
+This form has the lowest precedence.
+.PP
+In all the above forms, when \fIaddress\fR has the form
+@\fIotherdomain\fR, the result is the same user in \fIotherdomain\fR.
+This works for the first address in the expansion only.
+.SH ADDRESS EXTENSION
+.na
+.nf
+.fi
+.ad
+When a mail address localpart contains the optional recipient delimiter
+(e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes:
+\fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIuser+foo\fR,
+\fIuser\fR, and @\fIdomain\fR. An unmatched address extension
+(\fI+foo\fR) is propagated to the result of table lookup.
.SH SIMULATED VIRTUAL DOMAINS
.na
.nf
@@ -108,54 +156,6 @@ the \fBvirtual_alias_maps\fR table, you may also specify it via
the \fBmain.cf virtual_alias_domains\fR configuration parameter.
This latter parameter uses the same syntax as the \fBmain.cf
mydestination\fR configuration parameter.
-.SH TABLE FORMAT
-.na
-.nf
-.ad
-.fi
-The format of the virtual table is as follows, mappings being
-tried in the order as listed in this manual page:
-.IP "\fIpattern result\fR"
-When \fIpattern\fR matches a mail address, replace it by the
-corresponding \fIresult\fR.
-.IP "blank lines and comments"
-Empty lines and whitespace-only lines are ignored, as
-are lines whose first non-whitespace character is a `#'.
-.IP "multi-line text"
-A logical line starts with non-whitespace text. A line that
-starts with whitespace continues a logical line.
-.PP
-With lookups from indexed files such as DB or DBM, or from networked
-tables such as NIS, LDAP or SQL, patterns are tried in the order as
-listed below:
-.IP "\fIuser\fR@\fIdomain address, address, ...\fR"
-Mail for \fIuser\fR@\fIdomain\fR is redirected to \fIaddress\fR.
-This form has the highest precedence.
-.IP "\fIuser address, address, ...\fR"
-Mail for \fIuser\fR@\fIsite\fR is redirected to \fIaddress\fR when
-\fIsite\fR is equal to $\fBmyorigin\fR, when \fIsite\fR is listed in
-$\fRmydestination\fR, or when it is listed in $\fIinet_interfaces\fR.
-.sp
-This functionality overlaps with functionality of the local
-\fIaliases\fR(5) database. The difference is that \fBvirtual\fR
-mapping can be applied to non-local addresses.
-.IP "@\fIdomain address, address, ...\fR"
-Mail for any user in \fIdomain\fR is redirected to \fIaddress\fR.
-This form has the lowest precedence.
-.PP
-In all the above forms, when \fIaddress\fR has the form
-@\fIotherdomain\fR, the result is the same user in \fIotherdomain\fR.
-This works for the first address in the expansion only.
-.SH ADDRESS EXTENSION
-.na
-.nf
-.fi
-.ad
-When a mail address localpart contains the optional recipient delimiter
-(e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes:
-\fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIuser+foo\fR,
-\fIuser\fR, and @\fIdomain\fR. An unmatched address extension
-(\fI+foo\fR) is propagated to the result of table lookup.
.SH REGULAR EXPRESSION TABLES
.na
.nf
diff --git a/postfix/man/man8/cleanup.8 b/postfix/man/man8/cleanup.8
index 6f5e8f747..0e6e0cdc2 100644
--- a/postfix/man/man8/cleanup.8
+++ b/postfix/man/man8/cleanup.8
@@ -164,9 +164,11 @@ Address mapping lookup table for envelope recipient addresses.
.ad
.fi
.IP \fBduplicate_filter_limit\fR
-Limit the number of envelope recipients that are remembered.
+Limits the number of envelope recipients that are remembered.
+.IP \fBheader_address_token_limit\fR
+Limits the number of address tokens used to process a message header.
.IP \fBheader_size_limit\fR
-Limit the amount of memory in bytes used to process a message header.
+Limits the amount of memory in bytes used to process a message header.
.IP \fBin_flow_delay\fR
Amount of time to pause before accepting a message, when the
message arrival rate exceeds the message delivery rate.
diff --git a/postfix/man/man8/local.8 b/postfix/man/man8/local.8
index 9f85c78d0..4fc4cc8ac 100644
--- a/postfix/man/man8/local.8
+++ b/postfix/man/man8/local.8
@@ -185,8 +185,9 @@ The entire recipient address.
The entire sender address.
.PP
The \fBPATH\fR environment variable is always reset to a
-system-dependent default path, and the \fBTZ\fR (time zone)
-environment variable is always passed on without change.
+system-dependent default path, and environment variables
+whose names are blessed by the \fBexport_environment\fR
+configureation parameter are exported unchanged.
The current working directory is the mail queue directory.
@@ -228,7 +229,10 @@ is made to truncate a regular file to its original length.
In the case of \fBmaildir\fR delivery, the local daemon prepends
an optional
-\fBDelivered-To:\fR header with the envelope recipient address.
+\fBDelivered-To:\fR header with the envelope recipient address, and
+prepends an
+\fBX-Original-To:\fR header with the recipient address as given to
+Postfix.
The envelope sender address is available in the \fBReturn-Path:\fR
header.
.SH ADDRESS EXTENSION
diff --git a/postfix/man/man8/master.8 b/postfix/man/man8/master.8
index b1379e199..ced98fe7c 100644
--- a/postfix/man/man8/master.8
+++ b/postfix/man/man8/master.8
@@ -9,8 +9,8 @@ Postfix master process
.na
.nf
.fi
-\fBmaster\fR [\fB-c \fIconfig_dir\fR] [\fB-e \fIexit_time\fR]
-[\fB-D\fR] [\fB-t\fR] [\fB-v\fR]
+\fBmaster\fR [\fB-Dtv\fR] [\fB-c \fIconfig_dir\fR]
+[\fB-e \fIexit_time\fR]
.SH DESCRIPTION
.ad
.fi
diff --git a/postfix/man/man8/pickup.8 b/postfix/man/man8/pickup.8
index bcc1b43cd..199e03055 100644
--- a/postfix/man/man8/pickup.8
+++ b/postfix/man/man8/pickup.8
@@ -29,13 +29,12 @@ None. The \fBpickup\fR daemon does not interact with the outside world.
.nf
.ad
.fi
-The \fBpickup\fR daemon runs with superuser privileges so that it
-1) can open a queue file with the rights of the submitting user
-and 2) can access the Postfix private IPC channels.
-On the positive side, the program can run chrooted, opens no files
-for writing, is careful about what files it opens for reading, and
-does not actually touch any data that is sent to its public service
-endpoint.
+The \fBpickup\fR daemon is moderately security sensitive. It runs
+with fixed low privilege and can run in a chrooted environment.
+However, the program reads files from potentially hostile users.
+The \fBpickup\fR daemon opens no files for writing, is careful about
+what files it opens for reading, and does not actually touch any data
+that is sent to its public service endpoint.
.SH DIAGNOSTICS
.ad
.fi
@@ -67,8 +66,6 @@ a Postfix transport table.
.fi
.IP \fBalways_bcc\fR
Address to send a copy of each message that enters the system.
-.IP \fBmail_owner\fR
-The process privileges used while not opening a \fBmaildrop\fR file.
.IP \fBqueue_directory\fR
Top-level directory of the Postfix queue.
.SH SEE ALSO
diff --git a/postfix/man/man8/qmqpd.8 b/postfix/man/man8/qmqpd.8
index f2b0c31a4..b608249fa 100644
--- a/postfix/man/man8/qmqpd.8
+++ b/postfix/man/man8/qmqpd.8
@@ -95,7 +95,7 @@ storage for sender and recipient address information.
.SH Tarpitting
.ad
.fi
-.IP \fBqmqpd_error_sleep_time\fR
+.IP \fBqmqpd_error_delay\fR
Time to wait in seconds before informing the client of
a problem. This slows down run-away errors.
.SH SEE ALSO
diff --git a/postfix/man/man8/trivial-rewrite.8 b/postfix/man/man8/trivial-rewrite.8
index b299a9c96..ce170c760 100644
--- a/postfix/man/man8/trivial-rewrite.8
+++ b/postfix/man/man8/trivial-rewrite.8
@@ -28,7 +28,7 @@ Resolve an address to a (\fItransport\fR, \fInexthop\fR,
The delivery agent to use. This is the first field of an entry
in the \fBmaster.cf\fR file.
.IP \fInexthop\fR
-The host to send to. For local delivery this is an empty string.
+The host to send to and optional delivery method information.
.IP \fIrecipient\fR
The envelope recipient address that is passed on to \fInexthop\fR.
.PP
@@ -72,18 +72,21 @@ a configuration change.
.SH Miscellaneous
.ad
.fi
+.IP \fBempty_address_recipient\fR
+The recipient that is substituted for the null address.
.IP \fBinet_interfaces\fR
The network interfaces that this mail system receives mail on.
This information is used to determine if
\fIuser\fR@[\fInet.work.addr.ess\fR] is local or remote.
+Mail for local users is given to the \fB$local_transport\fR.
.IP \fBmydestination\fR
List of domains that are given to the \fB$local_transport\fR.
-.IP \fBvirtual_alias_domains\fT
+.IP \fBvirtual_alias_domains\fR
List of simulated virtual domains (domains with all recipients
aliased to some other local or remote domain).
-.IP \fBvirtual_mailbox_domains\fT
+.IP \fBvirtual_mailbox_domains\fR
List of domains that are given to the \fB$virtual_transport\fR.
-.IP \fBrelay_domains\fT
+.IP \fBrelay_domains\fR
List of domains that are given to the \fB$relay_transport\fR.
.IP \fBresolve_unquoted_address\fR
When resolving an address, do not quote the address localpart as
diff --git a/postfix/man/man8/virtual.8 b/postfix/man/man8/virtual.8
index 802764920..f74a6d228 100644
--- a/postfix/man/man8/virtual.8
+++ b/postfix/man/man8/virtual.8
@@ -49,7 +49,10 @@ messages in one textfile.
The \fBvirtual\fR delivery agent prepends a "\fBFrom \fIsender
time_stamp\fR" envelope header to each message, prepends a
\fBDelivered-To:\fR message header with the envelope recipient
-address, prepends a \fBReturn-Path:\fR message header with the
+address,
+prepends an \fBX-Original-To:\fR header with the recipient address as
+given to Postfix,
+prepends a \fBReturn-Path:\fR message header with the
envelope sender address, prepends a \fB>\fR character to lines
beginning with "\fBFrom \fR", and appends an empty line.
diff --git a/postfix/proto/access b/postfix/proto/access
index d9e0d3680..eef4a4bf1 100644
--- a/postfix/proto/access
+++ b/postfix/proto/access
@@ -109,7 +109,7 @@
# An all-numerical result is treated as OK. This format is
# generated by address-based relay authorization schemes.
# .IP \fBDUNNO\fR
-# Pretend that the lookup key was not found in this table, to
+# Pretend that the lookup key was not found in this table. This
# prevents Postfix from trying substrings of the lookup key
# (such as a subdomain name, or a network address subnetwork).
# .IP \fBHOLD\fR
diff --git a/postfix/proto/canonical b/postfix/proto/canonical
index afc29f3cb..3c0e8427a 100644
--- a/postfix/proto/canonical
+++ b/postfix/proto/canonical
@@ -63,7 +63,7 @@
# \fIuser\fR@\fIdomain\fR is replaced by \fIaddress\fR. This form
# has the highest precedence.
# .sp
-# This form useful to clean up addresses produced by legacy mail systems.
+# This is useful to clean up addresses produced by legacy mail systems.
# It can also be used to produce \fIFirstname.Lastname\fR style
# addresses, but see below for a simpler solution.
# .IP "\fIuser address\fR"
diff --git a/postfix/proto/pcre_table b/postfix/proto/pcre_table
index 97c0f4e85..c8512c70c 100644
--- a/postfix/proto/pcre_table
+++ b/postfix/proto/pcre_table
@@ -51,7 +51,7 @@
# insensitive.
# .IP "\fBm\fR (default: off)"
# Toggles the PCRE_MULTILINE flag. When this flag is on, the \fB^\fR
-# and \fb$\fR metacharacters match immediately after and immediately
+# and \fB$\fR metacharacters match immediately after and immediately
# before a newline character, respectively, in addition to
# matching at the start and end of the subject string.
# .IP "\fBs\fR (default: on)"
diff --git a/postfix/proto/transport b/postfix/proto/transport
index c8634c45b..95cf09aa1 100644
--- a/postfix/proto/transport
+++ b/postfix/proto/transport
@@ -6,9 +6,9 @@
# SYNOPSIS
# \fBpostmap /etc/postfix/transport\fR
#
-# \fBpostmap -q "\fIstring\fB" /etc/postfix/transport\fR
+# \fBpostmap -q "\fIstring\fB" /etc/postfix/transport\fR
#
-# \fBpostmap -q - /etc/postfix/transport <\fIinputfile\fR
+# \fBpostmap -q - /etc/postfix/transport <\fIinputfile\fR
# DESCRIPTION
# The optional \fBtransport\fR table specifies a mapping from email
# addresses to message delivery transports and/or relay hosts. The
@@ -50,7 +50,7 @@
# such as \fBsmtp\fR or \fBlocal\fR. The \fInexthop\fR field
# specifies where and how to deliver mail. More details are given
# in section "RESULT FORMAT".
-# .SH TABLE LOOKUP
+# TABLE LOOKUP
# .ad
# .fi
# With lookups from indexed files such as DB or DBM, or from networked
@@ -76,11 +76,21 @@
# Note 1: the special pattern \fB*\fR represents any address (i.e. it
# functions as the wild-card pattern).
#
-# Note 2: the null recipient address is looked up as the local
-# mailer-daemon address (mailer-daemon@fully-qualified-domain-name).
-# .SH RESULT FORMAT
+# Note 2: the null recipient address is looked up as
+# \fB$empty_address_recipient\fR@\fB$myhostname\fR (default:
+# mailer-daemon@hostname).
+# RESULT FORMAT
# .ad
# .fi
+# The transport field specifies the name of a mail delivery transport
+# (the first name of a mail delivery service entry in the Postfix
+# \fBmaster.cf\fR file).
+#
+# The interpretation of the nexthop field is transport
+# dependent. In the case of SMTP, specify \fIhost\fR:\fIservice\fR for a
+# non-default server port, and use [\fIhost\fR] or [\fIhost\fR]:\fIport\fR
+# in order to disable MX (mail exchanger) DNS lookups. The [] form
+# can also be used with IP addresses instead of hostnames.
#
# A null \fItransport\fR and null \fInexthop\fR result means "do
# not change": use the delivery transport and nexthop information
@@ -91,31 +101,30 @@
#
# A null \fItransport\fR field with non-null \fInexthop\fR field
# does not modify the transport information.
-# .SH TRANSPORT FIELD
+# DEFAULT DELIVERY METHOD
# .ad
# .fi
-# The transport field specifies the name of a mail delivery transport
-# (the first name of a mail delivery service entry in the Postfix
-# \fBmaster.cf\fR file).
-#
-# When a null transport field is specified, Postfix uses one of the
-# following transports:
-# .IP \fB$local_transport\fR
-# The domain matches \fB$mydestination\fR or \fB$inet_interfaces\fR.
-# .IP \fB$virtual_transport\fR
-# The domain matches \fB$virtual_mailbox_domains\fR.
-# .IP \fB$relay_transport\fR
-# The domain matches \fB$relay_transport\fR.
-# .IP \fB$default_transport\fR
-# All other non-local, non-virtual destinations.
-# .SH NEXTHOP FIELD
-# .ad
-# .fi
-# The interpretation of the nexthop field is transport
-# dependent. In the case of SMTP, specify \fIhost\fR:\fIservice\fR for a
-# non-default server port, and use [\fIhost\fR] or [\fIhost\fR]:\fIport\fR
-# in order to disable MX (mail exchanger) DNS lookups. The [] form
-# can also be used with IP addresses instead of hostnames.
+# When the recipient address or domain does not match a transport
+# table entry, Postfix uses one of the following delivery methods,
+# with the recipient domain as the default nexthop.
+# .IP \(bu
+# The recipient domain matches \fB$mydestination\fR or
+# \fB$inet_interfaces\fR. The transport and optional nexthop
+# are specified with \fB$local_transport\fR.
+# .IP \(bu
+# The recipient domain matches \fB$virtual_mailbox_domains\fR.
+# The transport and optional nexthop are specified with
+# \fB$virtual_transport\fR.
+# .IP \(bu
+# The recipient domain matches \fB$relay_domains\fR. The
+# transport and optional nexthop are specified with
+# \fB$relay_transport\fR. This overrides the nexthop information
+# that is specified with \fB$relayhost\fR.
+# .IP \(bu
+# All other destinations. the transport and optional nexthop are
+# specified with \fB$relay_transport\fR.
+# This overrides the nexthop information that is specified with
+# \fB$relayhost\fR.
# EXAMPLES
# .ad
# .fi
@@ -123,8 +132,7 @@
# mail relay for all other mail, specify a null entry for
# internal destinations (do not change the delivery transport or
# the nexthop information) and specify a wildcard for all other
-# destinations. Note that for this trick to work you should
-# not specify a \fBrelayhost\fR in the \fBmain.cf\fR file.
+# destinations.
#
# .ti +5
# \fB\&my.domain :\fR
@@ -205,6 +213,8 @@
# this topic. See the Postfix \fBmain.cf\fR file for syntax details
# and for default values. Use the \fBpostfix reload\fR command after
# a configuration change.
+# .IP \fBempty_address_recipient\fR
+# The address that is looked up instead of the null sender address.
# .IP \fBparent_domain_matches_subdomains\fR
# List of Postfix features that use \fIdomain.tld\fR patterns
# to match \fIsub.domain.tld\fR (as opposed to
diff --git a/postfix/proto/virtual b/postfix/proto/virtual
index 0b5eaf374..f82d18740 100644
--- a/postfix/proto/virtual
+++ b/postfix/proto/virtual
@@ -16,7 +16,7 @@
#
# The main applications of virtual aliasing are:
# .IP \(bu
-# To redirect mail from one address to one or more other addresses.
+# To redirect mail for one address to one or more addresses.
# .IP \(bu
# To simulate virtual domains where all virtual addresses are aliased
# to non-virtual addresses.
@@ -43,6 +43,50 @@
# Alternatively, the table can be provided as a regular-expression
# map where patterns are given as regular expressions. In that case,
# the lookups are done in a slightly different way as described below.
+# TABLE FORMAT
+# .ad
+# .fi
+# The format of the virtual table is as follows, mappings being
+# tried in the order as listed in this manual page:
+# .IP "\fIpattern result\fR"
+# When \fIpattern\fR matches a mail address, replace it by the
+# corresponding \fIresult\fR.
+# .IP "blank lines and comments"
+# Empty lines and whitespace-only lines are ignored, as
+# are lines whose first non-whitespace character is a `#'.
+# .IP "multi-line text"
+# A logical line starts with non-whitespace text. A line that
+# starts with whitespace continues a logical line.
+# .PP
+# With lookups from indexed files such as DB or DBM, or from networked
+# tables such as NIS, LDAP or SQL, patterns are tried in the order as
+# listed below:
+# .IP "\fIuser\fR@\fIdomain address, address, ...\fR"
+# Mail for \fIuser\fR@\fIdomain\fR is redirected to \fIaddress\fR.
+# This form has the highest precedence.
+# .IP "\fIuser address, address, ...\fR"
+# Mail for \fIuser\fR@\fIsite\fR is redirected to \fIaddress\fR when
+# \fIsite\fR is equal to $\fBmyorigin\fR, when \fIsite\fR is listed in
+# $\fRmydestination\fR, or when it is listed in $\fIinet_interfaces\fR.
+# .sp
+# This functionality overlaps with functionality of the local
+# \fIaliases\fR(5) database. The difference is that \fBvirtual\fR
+# mapping can be applied to non-local addresses.
+# .IP "@\fIdomain address, address, ...\fR"
+# Mail for any user in \fIdomain\fR is redirected to \fIaddress\fR.
+# This form has the lowest precedence.
+# .PP
+# In all the above forms, when \fIaddress\fR has the form
+# @\fIotherdomain\fR, the result is the same user in \fIotherdomain\fR.
+# This works for the first address in the expansion only.
+# ADDRESS EXTENSION
+# .fi
+# .ad
+# When a mail address localpart contains the optional recipient delimiter
+# (e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes:
+# \fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIuser+foo\fR,
+# \fIuser\fR, and @\fIdomain\fR. An unmatched address extension
+# (\fI+foo\fR) is propagated to the result of table lookup.
# SIMULATED VIRTUAL DOMAINS
# .ad
# .fi
@@ -100,50 +144,6 @@
# the \fBmain.cf virtual_alias_domains\fR configuration parameter.
# This latter parameter uses the same syntax as the \fBmain.cf
# mydestination\fR configuration parameter.
-# TABLE FORMAT
-# .ad
-# .fi
-# The format of the virtual table is as follows, mappings being
-# tried in the order as listed in this manual page:
-# .IP "\fIpattern result\fR"
-# When \fIpattern\fR matches a mail address, replace it by the
-# corresponding \fIresult\fR.
-# .IP "blank lines and comments"
-# Empty lines and whitespace-only lines are ignored, as
-# are lines whose first non-whitespace character is a `#'.
-# .IP "multi-line text"
-# A logical line starts with non-whitespace text. A line that
-# starts with whitespace continues a logical line.
-# .PP
-# With lookups from indexed files such as DB or DBM, or from networked
-# tables such as NIS, LDAP or SQL, patterns are tried in the order as
-# listed below:
-# .IP "\fIuser\fR@\fIdomain address, address, ...\fR"
-# Mail for \fIuser\fR@\fIdomain\fR is redirected to \fIaddress\fR.
-# This form has the highest precedence.
-# .IP "\fIuser address, address, ...\fR"
-# Mail for \fIuser\fR@\fIsite\fR is redirected to \fIaddress\fR when
-# \fIsite\fR is equal to $\fBmyorigin\fR, when \fIsite\fR is listed in
-# $\fRmydestination\fR, or when it is listed in $\fIinet_interfaces\fR.
-# .sp
-# This functionality overlaps with functionality of the local
-# \fIaliases\fR(5) database. The difference is that \fBvirtual\fR
-# mapping can be applied to non-local addresses.
-# .IP "@\fIdomain address, address, ...\fR"
-# Mail for any user in \fIdomain\fR is redirected to \fIaddress\fR.
-# This form has the lowest precedence.
-# .PP
-# In all the above forms, when \fIaddress\fR has the form
-# @\fIotherdomain\fR, the result is the same user in \fIotherdomain\fR.
-# This works for the first address in the expansion only.
-# ADDRESS EXTENSION
-# .fi
-# .ad
-# When a mail address localpart contains the optional recipient delimiter
-# (e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes:
-# \fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIuser+foo\fR,
-# \fIuser\fR, and @\fIdomain\fR. An unmatched address extension
-# (\fI+foo\fR) is propagated to the result of table lookup.
# REGULAR EXPRESSION TABLES
# .ad
# .fi
diff --git a/postfix/src/cleanup/cleanup.c b/postfix/src/cleanup/cleanup.c
index 1dd7f9881..7207298e7 100644
--- a/postfix/src/cleanup/cleanup.c
+++ b/postfix/src/cleanup/cleanup.c
@@ -150,9 +150,11 @@
/* .ad
/* .fi
/* .IP \fBduplicate_filter_limit\fR
-/* Limit the number of envelope recipients that are remembered.
+/* Limits the number of envelope recipients that are remembered.
+/* .IP \fBheader_address_token_limit\fR
+/* Limits the number of address tokens used to process a message header.
/* .IP \fBheader_size_limit\fR
-/* Limit the amount of memory in bytes used to process a message header.
+/* Limits the amount of memory in bytes used to process a message header.
/* .IP \fBin_flow_delay\fR
/* Amount of time to pause before accepting a message, when the
/* message arrival rate exceeds the message delivery rate.
diff --git a/postfix/src/global/Makefile.in b/postfix/src/global/Makefile.in
index 5a5a430eb..b9c37aa01 100644
--- a/postfix/src/global/Makefile.in
+++ b/postfix/src/global/Makefile.in
@@ -306,8 +306,7 @@ rewrite_clnt_test: rewrite_clnt rewrite_clnt.in rewrite_clnt.ref
diff - rewrite_clnt.tmp
rm -f rewrite_clnt.tmp
-# Requires: Postfix, root, myorigin=$myhostname, relayhost=$mydomain,
-# no transport map
+# Requires: Postfix, root, relayhost=$mydomain, no transport map
resolve_clnt_test: resolve_clnt resolve_clnt.in resolve_clnt.ref
sed -e "s/MYDOMAIN/`postconf -h mydomain`/g" \
diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h
index 3dc150f1e..8e65ad4e8 100644
--- a/postfix/src/global/mail_version.h
+++ b/postfix/src/global/mail_version.h
@@ -20,7 +20,7 @@
* Patches change the patchlevel and the release date. Snapshots change the
* release date only, unless they include the same bugfix as a patch release.
*/
-#define MAIL_RELEASE_DATE "20021217"
+#define MAIL_RELEASE_DATE "20021218"
#define VAR_MAIL_VERSION "mail_version"
#define DEF_MAIL_VERSION "1.1.12-" MAIL_RELEASE_DATE
diff --git a/postfix/src/local/local.c b/postfix/src/local/local.c
index ac6c0ca70..be2a07aec 100644
--- a/postfix/src/local/local.c
+++ b/postfix/src/local/local.c
@@ -171,8 +171,9 @@
/* The entire sender address.
/* .PP
/* The \fBPATH\fR environment variable is always reset to a
-/* system-dependent default path, and the \fBTZ\fR (time zone)
-/* environment variable is always passed on without change.
+/* system-dependent default path, and environment variables
+/* whose names are blessed by the \fBexport_environment\fR
+/* configureation parameter are exported unchanged.
/*
/* The current working directory is the mail queue directory.
/*
@@ -212,7 +213,10 @@
/*
/* In the case of \fBmaildir\fR delivery, the local daemon prepends
/* an optional
-/* \fBDelivered-To:\fR header with the envelope recipient address.
+/* \fBDelivered-To:\fR header with the envelope recipient address, and
+/* prepends an
+/* \fBX-Original-To:\fR header with the recipient address as given to
+/* Postfix.
/* The envelope sender address is available in the \fBReturn-Path:\fR
/* header.
/* ADDRESS EXTENSION
diff --git a/postfix/src/master/master.c b/postfix/src/master/master.c
index 9071f34e7..e4b29c6e9 100644
--- a/postfix/src/master/master.c
+++ b/postfix/src/master/master.c
@@ -5,8 +5,8 @@
/* Postfix master process
/* SYNOPSIS
/* .fi
-/* \fBmaster\fR [\fB-c \fIconfig_dir\fR] [\fB-e \fIexit_time\fR]
-/* [\fB-D\fR] [\fB-t\fR] [\fB-v\fR]
+/* \fBmaster\fR [\fB-Dtv\fR] [\fB-c \fIconfig_dir\fR]
+/* [\fB-e \fIexit_time\fR]
/* DESCRIPTION
/* The \fBmaster\fR daemon is the resident process that runs Postfix
/* daemons on demand: daemons to send or receive messages via the
diff --git a/postfix/src/pickup/pickup.c b/postfix/src/pickup/pickup.c
index 40e1ab714..b8f697b28 100644
--- a/postfix/src/pickup/pickup.c
+++ b/postfix/src/pickup/pickup.c
@@ -19,13 +19,12 @@
/* SECURITY
/* .ad
/* .fi
-/* The \fBpickup\fR daemon runs with superuser privileges so that it
-/* 1) can open a queue file with the rights of the submitting user
-/* and 2) can access the Postfix private IPC channels.
-/* On the positive side, the program can run chrooted, opens no files
-/* for writing, is careful about what files it opens for reading, and
-/* does not actually touch any data that is sent to its public service
-/* endpoint.
+/* The \fBpickup\fR daemon is moderately security sensitive. It runs
+/* with fixed low privilege and can run in a chrooted environment.
+/* However, the program reads files from potentially hostile users.
+/* The \fBpickup\fR daemon opens no files for writing, is careful about
+/* what files it opens for reading, and does not actually touch any data
+/* that is sent to its public service endpoint.
/* DIAGNOSTICS
/* Problems and transactions are logged to \fBsyslogd\fR(8).
/* BUGS
@@ -51,8 +50,6 @@
/* .fi
/* .IP \fBalways_bcc\fR
/* Address to send a copy of each message that enters the system.
-/* .IP \fBmail_owner\fR
-/* The process privileges used while not opening a \fBmaildrop\fR file.
/* .IP \fBqueue_directory\fR
/* Top-level directory of the Postfix queue.
/* SEE ALSO
diff --git a/postfix/src/postalias/postalias.c b/postfix/src/postalias/postalias.c
index 72c2588b5..cadb61a7f 100644
--- a/postfix/src/postalias/postalias.c
+++ b/postfix/src/postalias/postalias.c
@@ -43,7 +43,7 @@
/* .IP \fB-i\fR
/* Incremental mode. Read entries from standard input and do not
/* truncate an existing database. By default, \fBpostalias\fR creates
-/* a new database from the entries in \fBfile_name\fR.
+/* a new database from the entries in \fIfile_name\fR.
/* .IP \fB-n\fR
/* Don't include the terminating null character that terminates lookup
/* keys and values. By default, Postfix does whatever is the default for
@@ -95,7 +95,7 @@
/* The default value for this parameter depends on the host environment.
/* .RE
/* .IP \fIfile_name\fR
-/* The name of the alias database source file when rebuilding a database.
+/* The name of the alias database source file when creating a database.
/* DIAGNOSTICS
/* Problems are logged to the standard error stream. No output means
/* no problems were detected. Duplicate entries are skipped and are
@@ -117,8 +117,8 @@
/* The following \fBmain.cf\fR parameters are especially relevant to
/* this program. See the Postfix \fBmain.cf\fR file for syntax details
/* and for default values.
-/* .IP \fdefault_Bdatabase_type\fR
-/* Default alias database type. On many UNIX systems, the default type
+/* .IP \fBdefault_database_type\fR
+/* Default database type. On many UNIX systems, the default type
/* is either \fBdbm\fR or \fBhash\fR.
/* .IP \fBberkeley_db_create_buffer_size\fR
/* Amount of buffer memory to be used when creating a Berkeley DB
diff --git a/postfix/src/postconf/postconf.c b/postfix/src/postconf/postconf.c
index 6854a57eb..662c66b1d 100644
--- a/postfix/src/postconf/postconf.c
+++ b/postfix/src/postconf/postconf.c
@@ -12,7 +12,7 @@
/* [\fIparameter=value ...\fR]
/* DESCRIPTION
/* The \fBpostconf\fR command prints the actual value of
-/* \fIparameter\fR (all known parameters by default), one
+/* \fIparameter\fR (all known parameters by default) one
/* parameter per line, changes its value, or prints other
/* information about the Postfix mail system.
/*
diff --git a/postfix/src/postfix/postfix.c b/postfix/src/postfix/postfix.c
index 91ac5be64..5912b7bf0 100644
--- a/postfix/src/postfix/postfix.c
+++ b/postfix/src/postfix/postfix.c
@@ -5,8 +5,7 @@
/* Postfix control program
/* SYNOPSIS
/* .fi
-/* \fBpostfix\fR [\fB-c \fIconfig_dir\fR] [\fB-D\fR] [\fB-v\fR]
-/* \fIcommand\fR
+/* \fBpostfix\fR [\fB-Dv\fR] [\fB-c \fIconfig_dir\fR] \fIcommand\fR
/* DESCRIPTION
/* This command is reserved for the superuser. To submit mail,
/* use the Postfix \fBsendmail\fR command.
@@ -59,19 +58,17 @@
/* ENVIRONMENT
/* .ad
/* .fi
-/* The \fBpostfix\fR command sets the following environment
-/* variables:
+/* The \fBpostfix\fR command exports the following environment
+/* variables before executing the \fBpostfix-script\fR file:
/* .IP \fBMAIL_CONFIG\fR
-/* Directory with Postfix configuration files.
+/* This is set when the -c command-line option is present.
/* .IP \fBMAIL_VERBOSE\fR
/* This is set when the -v command-line option is present.
/* .IP \fBMAIL_DEBUG\fR
/* This is set when the -D command-line option is present.
-/* CONFIGURATION PARAMETERS
-/* .ad
-/* .fi
-/* The following \fBmain.cf\fR configuration parameters are made
-/* available as process environment variables with the same names:
+/* .PP
+/* The following \fBmain.cf\fR configuration parameters are
+/* exported as environment variables with the same names:
/* .IP \fBcommand_directory\fR
/* Directory with Postfix administrative commands.
/* .IP \fBdaemon_directory\fR
@@ -88,11 +85,11 @@
/* .IP \fBsetgid_group\fR
/* The group for mail submission and queue management commands.
/* .IP \fBsendmail_path
-/* The full pathname for the Postfix sendmail command.
+/* The full pathname for the Postfix \fBsendmail\fR command.
/* .IP \fBnewaliases_path
-/* The full pathname for the Postfix newaliases command.
+/* The full pathname for the Postfix \fBnewaliases\fR command.
/* .IP \fBmailq_path
-/* The full pathname for the Postfix mailq command.
+/* The full pathname for the Postfix \fBmailq\fR command.
/* .IP \fBmanpage_directory
/* The directory for the Postfix on-line manual pages.
/* .IP \fBsample_directory
diff --git a/postfix/src/qmqpd/qmqpd.c b/postfix/src/qmqpd/qmqpd.c
index 96dda4d4f..34ebb91c1 100644
--- a/postfix/src/qmqpd/qmqpd.c
+++ b/postfix/src/qmqpd/qmqpd.c
@@ -81,7 +81,7 @@
/* .SH Tarpitting
/* .ad
/* .fi
-/* .IP \fBqmqpd_error_sleep_time\fR
+/* .IP \fBqmqpd_error_delay\fR
/* Time to wait in seconds before informing the client of
/* a problem. This slows down run-away errors.
/* SEE ALSO
diff --git a/postfix/src/sendmail/sendmail.c b/postfix/src/sendmail/sendmail.c
index f2fa7218d..954bd0717 100644
--- a/postfix/src/sendmail/sendmail.c
+++ b/postfix/src/sendmail/sendmail.c
@@ -134,8 +134,8 @@
/* details.
/* .IP "\fB-o7\fR (ignored)"
/* .IP "\fB-o8\fR (ignored)"
-/* The message body type. Currently, Postfix implements
-/* \fBjust-send-eight\fR.
+/* To send 8-bit or binary content, use an appropriate MIME encapsulation
+/* and specify the appropriate \fB-B\fR command-line option.
/* .IP "\fB-oi\fR"
/* When reading a message from standard input, don\'t treat a line
/* with only a \fB.\fR character as the end of input.
@@ -385,10 +385,12 @@ static void enqueue(const int flags, const char *encoding, const char *sender,
* to use login names at all.
*/
if (sender != 0) {
+ VSTRING_RESET(buf);
+ VSTRING_TERMINATE(buf);
tree = tok822_parse(sender);
for (naddr = 0, tp = tree; tp != 0; tp = tp->next)
- if (tp->type == TOK822_ADDR)
- naddr++, tok822_internalize(buf, tp->head, TOK822_STR_DEFL);
+ if (tp->type == TOK822_ADDR && naddr++ == 0)
+ tok822_internalize(buf, tp->head, TOK822_STR_DEFL);
tok822_free_tree(tree);
saved_sender = mystrdup(STR(buf));
if (naddr > 1)
@@ -431,7 +433,8 @@ static void enqueue(const int flags, const char *encoding, const char *sender,
rec_fputs(dst, REC_TYPE_FULL, full_name);
rec_fputs(dst, REC_TYPE_FROM, saved_sender);
if (verp_delims && *saved_sender == 0)
- msg_fatal("-V option requires non-null sender address");
+ msg_fatal_status(EX_USAGE,
+ "-V option requires non-null sender address");
if (encoding)
rec_fprintf(dst, REC_TYPE_ATTR, "%s=%s", MAIL_ATTR_ENCODING, encoding);
if (verp_delims)
@@ -756,7 +759,7 @@ int main(int argc, char **argv)
} else if (optarg[0] == 'R') {
site_to_flush = optarg + 1;
if (*site_to_flush == 0)
- msg_fatal("specify: -qRsitename");
+ msg_fatal_status(EX_USAGE, "specify: -qRsitename");
} else {
msg_fatal_status(EX_USAGE, "-q%c is not implemented",
optarg[0]);
@@ -784,13 +787,14 @@ int main(int argc, char **argv)
* Look for conflicting options and arguments.
*/
if (extract_recipients && mode != SM_MODE_ENQUEUE)
- msg_fatal("-t can be used only in delivery mode");
+ msg_fatal_status(EX_USAGE, "-t can be used only in delivery mode");
if (site_to_flush && mode != SM_MODE_ENQUEUE)
- msg_fatal("-qR can be used only in delivery mode");
+ msg_fatal_status(EX_USAGE, "-qR can be used only in delivery mode");
if (extract_recipients && argv[OPTIND])
- msg_fatal("cannot handle command-line recipients with -t");
+ msg_fatal_status(EX_USAGE,
+ "cannot handle command-line recipients with -t");
/*
* Start processing. Everything is delegated to external commands.
@@ -805,7 +809,7 @@ int main(int argc, char **argv)
exit(0);
}
if (argv[OPTIND])
- msg_fatal("flush site requires no recipient");
+ msg_fatal_status(EX_USAGE, "flush site requires no recipient");
ext_argv = argv_alloc(2);
argv_add(ext_argv, "postqueue", "-s", site_to_flush, (char *) 0);
for (n = 0; n < msg_verbose; n++)
@@ -816,7 +820,8 @@ int main(int argc, char **argv)
break;
case SM_MODE_MAILQ:
if (argv[OPTIND])
- msg_fatal("display queue mode requires no recipient");
+ msg_fatal_status(EX_USAGE,
+ "display queue mode requires no recipient");
ext_argv = argv_alloc(2);
argv_add(ext_argv, "postqueue", "-p", (char *) 0);
for (n = 0; n < msg_verbose; n++)
@@ -826,7 +831,8 @@ int main(int argc, char **argv)
/* NOTREACHED */
case SM_MODE_FLUSHQ:
if (argv[OPTIND])
- msg_fatal("flush queue mode requires no recipient");
+ msg_fatal_status(EX_USAGE,
+ "flush queue mode requires no recipient");
ext_argv = argv_alloc(2);
argv_add(ext_argv, "postqueue", "-f", (char *) 0);
for (n = 0; n < msg_verbose; n++)
@@ -836,7 +842,7 @@ int main(int argc, char **argv)
/* NOTREACHED */
case SM_MODE_DAEMON:
if (argv[OPTIND])
- msg_fatal("daemon mode requires no recipient");
+ msg_fatal_status(EX_USAGE, "daemon mode requires no recipient");
ext_argv = argv_alloc(2);
argv_add(ext_argv, "postfix", (char *) 0);
for (n = 0; n < msg_verbose; n++)
@@ -849,7 +855,8 @@ int main(int argc, char **argv)
break;
case SM_MODE_NEWALIAS:
if (argv[OPTIND])
- msg_fatal("alias initialization mode requires no recipient");
+ msg_fatal_status(EX_USAGE,
+ "alias initialization mode requires no recipient");
if (*var_alias_db_map == 0)
return (0);
ext_argv = argv_alloc(2);
@@ -862,7 +869,8 @@ int main(int argc, char **argv)
/* NOTREACHED */
case SM_MODE_USER:
if (argv[OPTIND])
- msg_fatal("stand-alone mode requires no recipient");
+ msg_fatal_status(EX_USAGE,
+ "stand-alone mode requires no recipient");
ext_argv = argv_alloc(2);
argv_add(ext_argv, "smtpd", "-S", (char *) 0);
for (n = 0; n < msg_verbose; n++)
diff --git a/postfix/src/trivial-rewrite/Makefile.in b/postfix/src/trivial-rewrite/Makefile.in
index 36d30660e..e8d9bc217 100644
--- a/postfix/src/trivial-rewrite/Makefile.in
+++ b/postfix/src/trivial-rewrite/Makefile.in
@@ -76,7 +76,6 @@ resolve.o: ../../include/mail_params.h
resolve.o: ../../include/mail_proto.h
resolve.o: ../../include/iostuff.h
resolve.o: ../../include/attr.h
-resolve.o: ../../include/mail_addr.h
resolve.o: ../../include/rewrite_clnt.h
resolve.o: ../../include/resolve_local.h
resolve.o: ../../include/mail_conf.h
@@ -152,6 +151,7 @@ trivial-rewrite.o: ../../include/mail_conf.h
trivial-rewrite.o: ../../include/resolve_clnt.h
trivial-rewrite.o: ../../include/rewrite_clnt.h
trivial-rewrite.o: ../../include/tok822.h
+trivial-rewrite.o: ../../include/mail_addr.h
trivial-rewrite.o: ../../include/mail_server.h
trivial-rewrite.o: trivial-rewrite.h
trivial-rewrite.o: transport.h
diff --git a/postfix/src/trivial-rewrite/resolve.c b/postfix/src/trivial-rewrite/resolve.c
index 53fdd5b30..abcf25ca8 100644
--- a/postfix/src/trivial-rewrite/resolve.c
+++ b/postfix/src/trivial-rewrite/resolve.c
@@ -69,7 +69,6 @@
#include
#include
-#include
#include
#include
#include
@@ -320,8 +319,9 @@ void resolve_addr(char *addr, VSTRING *channel, VSTRING *nexthop,
tok822_free(tree->head);
tree->head = 0;
}
+ /* XXX must be localpart only, not user@domain form. */
if (tree->head == 0)
- tree->head = tok822_scan(MAIL_ADDR_MAIL_DAEMON, &tree->tail);
+ tree->head = tok822_scan(var_empty_addr, &tree->tail);
/*
* We're done. There are no domains left to strip off the address,
diff --git a/postfix/src/trivial-rewrite/trivial-rewrite.c b/postfix/src/trivial-rewrite/trivial-rewrite.c
index 2a7f0233f..d52e372dd 100644
--- a/postfix/src/trivial-rewrite/trivial-rewrite.c
+++ b/postfix/src/trivial-rewrite/trivial-rewrite.c
@@ -22,7 +22,7 @@
/* The delivery agent to use. This is the first field of an entry
/* in the \fBmaster.cf\fR file.
/* .IP \fInexthop\fR
-/* The host to send to. For local delivery this is an empty string.
+/* The host to send to and optional delivery method information.
/* .IP \fIrecipient\fR
/* The envelope recipient address that is passed on to \fInexthop\fR.
/* .PP
@@ -56,18 +56,21 @@
/* .SH Miscellaneous
/* .ad
/* .fi
+/* .IP \fBempty_address_recipient\fR
+/* The recipient that is substituted for the null address.
/* .IP \fBinet_interfaces\fR
/* The network interfaces that this mail system receives mail on.
/* This information is used to determine if
/* \fIuser\fR@[\fInet.work.addr.ess\fR] is local or remote.
+/* Mail for local users is given to the \fB$local_transport\fR.
/* .IP \fBmydestination\fR
/* List of domains that are given to the \fB$local_transport\fR.
-/* .IP \fBvirtual_alias_domains\fT
+/* .IP \fBvirtual_alias_domains\fR
/* List of simulated virtual domains (domains with all recipients
/* aliased to some other local or remote domain).
-/* .IP \fBvirtual_mailbox_domains\fT
+/* .IP \fBvirtual_mailbox_domains\fR
/* List of domains that are given to the \fB$virtual_transport\fR.
-/* .IP \fBrelay_domains\fT
+/* .IP \fBrelay_domains\fR
/* List of domains that are given to the \fB$relay_transport\fR.
/* .IP \fBresolve_unquoted_address\fR
/* When resolving an address, do not quote the address localpart as
@@ -176,6 +179,7 @@
#include
#include
#include
+#include
/* Multi server skeleton. */
@@ -206,6 +210,7 @@ char *var_virt_alias_doms;
char *var_virt_mailbox_doms;
char *var_relocated_maps;
char *var_def_transport;
+char *var_empty_addr;
/* rewrite_service - read request and send reply */
@@ -281,6 +286,7 @@ int main(int argc, char **argv)
VAR_VIRT_TRANSPORT, DEF_VIRT_TRANSPORT, &var_virt_transport, 1, 0,
VAR_RELAY_TRANSPORT, DEF_RELAY_TRANSPORT, &var_relay_transport, 1, 0,
VAR_RELOCATED_MAPS, DEF_RELOCATED_MAPS, &var_relocated_maps, 0, 0,
+ VAR_EMPTY_ADDR, DEF_EMPTY_ADDR, &var_empty_addr, 1, 0,
0,
};
static CONFIG_BOOL_TABLE bool_table[] = {
diff --git a/postfix/src/virtual/virtual.c b/postfix/src/virtual/virtual.c
index 40767955d..0ae16d2e7 100644
--- a/postfix/src/virtual/virtual.c
+++ b/postfix/src/virtual/virtual.c
@@ -39,7 +39,10 @@
/* The \fBvirtual\fR delivery agent prepends a "\fBFrom \fIsender
/* time_stamp\fR" envelope header to each message, prepends a
/* \fBDelivered-To:\fR message header with the envelope recipient
-/* address, prepends a \fBReturn-Path:\fR message header with the
+/* address,
+/* prepends an \fBX-Original-To:\fR header with the recipient address as
+/* given to Postfix,
+/* prepends a \fBReturn-Path:\fR message header with the
/* envelope sender address, prepends a \fB>\fR character to lines
/* beginning with "\fBFrom \fR", and appends an empty line.
/*
@@ -223,7 +226,7 @@
/* The \fBmaildir\fR structure appears in the \fBqmail\fR system
/* by Daniel Bernstein.
/* SEE ALSO
-/* regexp_table(5) POSIX regular expression table format
+/* regexp_table(5) POSIX regular expression table format
/* pcre_table(5) Perl Compatible Regular Expression table format
/* bounce(8) non-delivery status reports
/* syslogd(8) system logging