2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-29 13:18:12 +00:00

postfix-2.3-20060103

This commit is contained in:
Wietse Venema 2006-01-03 00:00:00 -05:00 committed by Viktor Dukhovni
parent 790bb6870f
commit 84bb8a5455
32 changed files with 520 additions and 389 deletions

View File

@ -11702,6 +11702,31 @@ Apologies for any names omitted.
smtp_dot_quit_workaround_threshold_time parameter. Files:
smtp/smtp_proto.c, smtp/smtp.c.
Feature: mailbox_transport_maps and fallback_transport_maps
to search delivery transports by recipient name. Files:
local/mailbox.c, local/unknown.c.
Feature: the master daemon now logs a warning when all
servers are busy that may accept remote connections, and
suggests to either increase the process count or to reduce
the service time per client. Files: master/master_ent.c,
master/master_avail.c.
20051231
Bugfix: the anvil server would terminate after "max_idle"
seconds, even when this was less than the anvil_rate_time_unit
interval. File: anvil/anvil.c.
20060102
Deleted the 20051229 dot-quit bug workaround. Automatically
deferring delivery created "no delivery" and "repeated
delivery" problems; and automatically turning off pipelining
for delayed mail was a bad workaround for a bad workaround.
The administrator still has the option to turn off pipelining
by hand if loss of mail is a concern.
Open problems:
"postsuper -r" no longer resets the message arrival time,

View File

@ -100,7 +100,7 @@ The content filter can be a simple shell script like this:
5
6 # Localize these. The -G option does nothing before Postfix 2.3.
7 INSPECT_DIR=/var/spool/filter
8 SENDMAIL="/usr/sbin/sendmail -G -i"
8 SENDMAIL="/usr/sbin/sendmail -G -i" # NEVER NEVER NEVER use "-t" here.
9
10 # Exit codes from <sysexits.h>
11 EX_TEMPFAIL=75
@ -132,6 +132,9 @@ Notes:
* Line 8: The -i option says don't stop reading input when a line contains
"." only.
* Line 8: NEVER NEVER NEVER use the "-t" command-line option here. It will
mis-deliver mail, like sending mailing list mail back to the mailing list.
* Line 21: The idea is to first capture the message to file and then run the
content through a third-party content filter program.
@ -335,9 +338,10 @@ the Postfix master.cf file:
time.
* With "-o smtp_send_xforward_command=yes", the scan transport will try to
forward the original client name and IP address to the after-filter smtpd
process, so that filtered mail is logged with the real client name IP
address. See smtp(8) and XFORWARD_README for more information.
forward the original client name and IP address through the content filter
to the after-filter smtpd process, so that filtered mail is logged with the
real client name IP address. See smtp(8) and XFORWARD_README for more
information.
AAddvvaanncceedd ccoonntteenntt ffiilltteerr:: rruunnnniinngg tthhee ccoonntteenntt ffiilltteerr

View File

@ -17,19 +17,13 @@ Incompatibility with Postfix 2.1 and earlier
If you upgrade from Postfix 2.1 or earlier, read RELEASE_NOTES-2.2
before proceeding.
Incompatibility with snapshot 20051228
Incompatibility with snapshot 20060103
======================================
New workaround to limit the number of repeated deliveries with
servers or firewalls that mis-implement DOT+QUIT command pipelining.
After one documented case of lost mail, as of 20050929 Postfix is
more paranoid about malformed SMTP server replies. Unfortuately
this results in repeated deliveries with other broken systems. To
limit the number of repeated deliveries, the SMTP client no longer
pipelines the DOT+QUIT commands when mail is queued longer than the
time specified with the smtp_dot_quit_workaround_threshold_time
parameter (default: 3000s). More details are in the postconf(5)
manual.
The Postfix SMTP/LMTP client no longer defers mail when it receives
a malformed SMTP server reply in a session with command pipelining.
When helpful warnings are enabled, it will suggest that command
pipelining be disabled for the affected destination.
Major changes with snapshot 20051222
====================================

View File

@ -42,6 +42,8 @@
# Revision 1.4 2001/01/15 09:36:35 emma
# add note it was successfully tested on Debian sid
#
# 20060101 /lib64 support by Keith Owens.
#
CP="cp -p"
@ -62,6 +64,7 @@ POSTFIX_DIR=${POSTFIX_DIR-/var/spool/postfix}
cd ${POSTFIX_DIR}
mkdir -p etc lib usr/lib/zoneinfo
test -d /lib64 && mkdir -p lib64
# find localtime (SuSE 5.3 does not have /etc/localtime)
lt=/etc/localtime
@ -79,5 +82,10 @@ ln -s -f /etc/localtime usr/lib/zoneinfo
cond_copy '/lib/libnss_*.so*' lib
cond_copy '/lib/libresolv.so*' lib
cond_copy '/lib/libdb.so*' lib
if test -d /lib64; then
cond_copy '/lib64/libnss_*.so*' lib64
cond_copy '/lib64/libresolv.so*' lib64
cond_copy '/lib64/libdb.so*' lib64
fi
postfix reload

View File

@ -252,7 +252,7 @@ document for an introduction to the Postfix architecture. </p>
5
6 # Localize these. The -G option does nothing before Postfix 2.3.
7 INSPECT_DIR=/var/spool/filter
8 SENDMAIL="/usr/sbin/sendmail -G -i"
8 SENDMAIL="/usr/sbin/sendmail -G -i" # NEVER NEVER NEVER use "-t" here.
9
10 # Exit codes from &lt;sysexits.h&gt;
11 EX_TEMPFAIL=75
@ -288,6 +288,10 @@ otherwise it disables address rewriting of message headers. </p>
<li> <p> Line 8: The -i option says don't stop reading input when
a line contains "." only. </p>
<li> <p> Line 8: NEVER NEVER NEVER use the "-t" command-line option
here. It will mis-deliver mail, like sending mailing list mail back
to the mailing list. </p>
<li> <p> Line 21: The idea is to first capture the message to
file and then run the content through a third-party content filter
program. </p>
@ -348,7 +352,7 @@ is supposed to store its temporary files. </p>
with the <a href="pipe.8.html">pipe(8)</a> delivery agent. </p>
<pre>
/etc/postfix/master.cf:
/etc/postfix/<a href="master.5.html">master.cf</a>:
# =============================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
@ -364,11 +368,11 @@ up a lot of system resources, so you don't want to have too much
of it running at the same time. </p>
<li> <p> To turn on content filtering for mail arriving via SMTP
only, append "-o <a href="postconf.5.html#content_filter">content_filter</a>=filter:dummy" to the master.cf
only, append "-o <a href="postconf.5.html#content_filter">content_filter</a>=filter:dummy" to the <a href="master.5.html">master.cf</a>
entry that defines the Postfix SMTP server: </p>
<pre>
/etc/postfix/master.cf:
/etc/postfix/<a href="master.5.html">master.cf</a>:
# =============================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
@ -423,7 +427,7 @@ for filtered mail. </p>
<p> To turn off "simple" content filtering: </p>
<ul> <li> <p> Edit the master.cf file, remove the "-o
<ul> <li> <p> Edit the <a href="master.5.html">master.cf</a> file, remove the "-o
<a href="postconf.5.html#content_filter">content_filter</a>=filter:dummy" text from the entry that defines the
Postfix SMTP server. </p>
@ -562,11 +566,11 @@ performance loss. </p>
<h3>Advanced content filter: requesting that all mail is filtered</h3>
<p> To enable the advanced content filter method for all mail,
specify in main.cf: </p>
specify in <a href="postconf.5.html">main.cf</a>: </p>
<blockquote>
<pre>
/etc/postfix/main.cf:
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
<a href="postconf.5.html#content_filter">content_filter</a> = scan:localhost:10025
<a href="postconf.5.html#receive_override_options">receive_override_options</a> = <a href="postconf.5.html#no_address_mappings">no_address_mappings</a>
</pre>
@ -599,12 +603,12 @@ filter</h3>
<p> In this example, "scan" is an instance of the Postfix SMTP
client with slightly different configuration parameters. This is
how one would set up the service in the Postfix master.cf file:
how one would set up the service in the Postfix <a href="master.5.html">master.cf</a> file:
</p>
<blockquote>
<pre>
/etc/postfix/master.cf:
/etc/postfix/<a href="master.5.html">master.cf</a>:
# =============================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
@ -623,7 +627,8 @@ gobble up a lot of system resources, so you don't want to have too
much of it running at the same time. </p>
<li> <p> With "-o <a href="postconf.5.html#smtp_send_xforward_command">smtp_send_xforward_command</a>=yes", the scan transport
will try to forward the original client name and IP address to the
will try to forward the original client name and IP address
through the content filter to the
after-filter smtpd process, so that filtered mail is logged with
the real client name IP address. See <a href="smtp.8.html">smtp(8)</a> and <a href="XFORWARD_README.html">XFORWARD_README</a>
for more information. </p>
@ -638,7 +643,7 @@ up to 10 content filtering processes on localhost port 10025: </p>
<blockquote>
<pre>
/etc/postfix/master.cf:
/etc/postfix/<a href="master.5.html">master.cf</a>:
# ===================================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
@ -676,7 +681,7 @@ that injects mail back into Postfix. </p>
<blockquote>
<pre>
/etc/postfix/master.cf:
/etc/postfix/<a href="master.5.html">master.cf</a>:
# ===================================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
@ -698,16 +703,16 @@ that injects mail back into Postfix. </p>
<li> <p> Note: do not use spaces around the "=" or "," characters. </p>
<li> <p> Note: the SMTP server must not have a smaller process
limit than the "filter" master.cf entry. </p>
limit than the "filter" <a href="master.5.html">master.cf</a> entry. </p>
<li> <p> The "-o <a href="postconf.5.html#content_filter">content_filter</a>=" overrides main.cf settings, and
<li> <p> The "-o <a href="postconf.5.html#content_filter">content_filter</a>=" overrides <a href="postconf.5.html">main.cf</a> settings, and
requests no content filtering for mail from the content filter.
This is required or else mail will stay in the content filtering
loop. </p>
<li> <p> The "-o <a href="postconf.5.html#receive_override_options">receive_override_options</a>" overrides main.cf
<li> <p> The "-o <a href="postconf.5.html#receive_override_options">receive_override_options</a>" overrides <a href="postconf.5.html">main.cf</a>
settings. It is complementary to the options that are specified in
main.cf: </p>
<a href="postconf.5.html">main.cf</a>: </p>
<ul>
@ -726,7 +731,7 @@ main.cf: </p>
</p>
<li> <p> The "-o smtpd_xxx_restrictions" and "-o <a href="postconf.5.html#mynetworks">mynetworks</a>=127.0.0.0/8"
override main.cf settings. They turn off junk mail controls that
override <a href="postconf.5.html">main.cf</a> settings. They turn off junk mail controls that
would only waste time here.
<li> <p> With "-o <a href="postconf.5.html#smtpd_authorized_xforward_hosts">smtpd_authorized_xforward_hosts</a>=127.0.0.0/8",
@ -757,13 +762,13 @@ Postfix instances will be covered in a future version. </p>
<p> To turn off "advanced" content filtering: </p>
<ul> <li> <p> Delete or comment out the two following main.cf lines.
<ul> <li> <p> Delete or comment out the two following <a href="postconf.5.html">main.cf</a> lines.
The other changes made for advanced content filtering have no effect
when content filtering is turned off. </p>
<blockquote>
<pre>
/etc/postfix/main.cf:
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
<a href="postconf.5.html#content_filter">content_filter</a> = scan:localhost:10025
<a href="postconf.5.html#receive_override_options">receive_override_options</a> = <a href="postconf.5.html#no_address_mappings">no_address_mappings</a>
</pre>
@ -779,7 +784,7 @@ filter information from existing queue files. </p>
<h2><a name="remote_only">Filtering mail from outside users only</a></h2>
<p> The easiest approach is to configure ONE Postfix instance with
multiple SMTP server IP addresses in master.cf: </p>
multiple SMTP server IP addresses in <a href="master.5.html">master.cf</a>: </p>
<ul>
@ -787,7 +792,7 @@ multiple SMTP server IP addresses in master.cf: </p>
with content filtering turned off. </p>
<pre>
/etc/postfix.master.cf:
/etc/postfix.<a href="master.5.html">master.cf</a>:
# ==================================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
@ -802,7 +807,7 @@ with content filtering turned off. </p>
content filtering turned on. </p>
<pre>
/etc/postfix.master.cf:
/etc/postfix.<a href="master.5.html">master.cf</a>:
# =================================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
@ -817,19 +822,19 @@ content filtering turned on. </p>
<p> After this, you can follow the same procedure as outlined in
the "advanced" or "simple" content filtering examples above, except
that you must not specify "<a href="postconf.5.html#content_filter">content_filter</a>" or "<a href="postconf.5.html#receive_override_options">receive_override_options</a>"
in the main.cf file. </p>
in the <a href="postconf.5.html">main.cf</a> file. </p>
<h2><a name="domain_dependent">Different filters for different
domains</a></h2>
<p> If you are an MX service provider and want to apply different
content filters for different domains, you can configure ONE Postfix
instance with multiple SMTP server IP addresses in master.cf. Each
instance with multiple SMTP server IP addresses in <a href="master.5.html">master.cf</a>. Each
address provides a different content filter service. </p>
<blockquote>
<pre>
/etc/postfix.master.cf:
/etc/postfix.<a href="master.5.html">master.cf</a>:
# =================================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
@ -849,7 +854,7 @@ address provides a different content filter service. </p>
<p> After this, you can follow the same procedure as outlined in
the "advanced" or "simple" content filtering examples above, except
that you must not specify "<a href="postconf.5.html#content_filter">content_filter</a>" or "<a href="postconf.5.html#receive_override_options">receive_override_options</a>"
in the main.cf file. </p>
in the <a href="postconf.5.html">main.cf</a> file. </p>
<p> Set up MX records in the DNS that route each domain to the
proper SMTP server instance. </p>
@ -892,7 +897,7 @@ loop. </p>
<ul>
<li> <p> FILTER actions from smtpd access maps and header/body_checks
take precedence over filters specified with the main.cf <a href="postconf.5.html#content_filter">content_filter</a>
take precedence over filters specified with the <a href="postconf.5.html">main.cf</a> <a href="postconf.5.html#content_filter">content_filter</a>
parameter. </p>
<li> <p> If a message triggers more than one filter action, only

View File

@ -151,7 +151,7 @@ ANVIL(8) ANVIL(8)
explicitly limit them.
<b>CONFIGURATION PARAMETERS</b>
On low-traffic mail systems, changes to <b>main.cf</b> are picked
On low-traffic mail systems, changes to <a href="postconf.5.html"><b>main.cf</b></a> are picked
up automatically as <a href="anvil.8.html"><b>anvil</b>(8)</a> processes run for only a lim-
ited amount of time. On other mail systems, use the com-
mand "<b>postfix reload</b>" to speed up a change.
@ -168,8 +168,8 @@ ANVIL(8) ANVIL(8)
limiting server logs peak usage information.
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
The default location of the Postfix main.cf and
master.cf configuration files.
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
<a href="master.5.html">master.cf</a> configuration files.
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
How much time a Postfix daemon process may take to

View File

@ -105,20 +105,22 @@ LOCAL(8) LOCAL(8)
<b>maildir</b> delivery.
Mailbox delivery can be delegated to an external command
specified with the <b><a href="postconf.5.html#mailbox_command">mailbox_command</a></b> configuration parame-
ter. The command executes with the privileges of the
recipient user (exceptions: secondary groups are not
enabled; in case of delivery as root, the command executes
with the privileges of <b><a href="postconf.5.html#default_privs">default_privs</a></b>).
specified with the <b><a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a></b> and <b><a href="postconf.5.html#mailbox_command">mailbox_com</a>-</b>
<b><a href="postconf.5.html#mailbox_command">mand</a></b> configuration parameters. The command executes with
the privileges of the recipient user (exceptions: sec-
ondary groups are not enabled; in case of delivery as
root, the command executes with the privileges of
<b><a href="postconf.5.html#default_privs">default_privs</a></b>).
Mailbox delivery can be delegated to alternative message
transports specified in the <b>master.cf</b> file. The <b><a href="postconf.5.html#mailbox_transport">mail</a>-</b>
<b><a href="postconf.5.html#mailbox_transport">box_transport</a></b> configuration parameter specifies a message
transport that is to be used for all local recipients,
regardless of whether they are found in the UNIX passwd
database. The <b><a href="postconf.5.html#fallback_transport">fallback_transport</a></b> parameter specifies a
message transport for recipients that are not found in the
UNIX passwd database.
Mailbox delivery can be delegated to alternative message
transports specified in the <a href="master.5.html"><b>master.cf</b></a> file. The <b><a href="postconf.5.html#mailbox_transport_maps">mail</a>-</b>
<b><a href="postconf.5.html#mailbox_transport_maps">box_transport_maps</a></b> and <b><a href="postconf.5.html#mailbox_transport">mailbox_transport</a></b> configuration
parameters specify an optional message transport that is
to be used for all local recipients, regardless of whether
they are found in the UNIX passwd database. The <b><a href="postconf.5.html#fallback_transport_maps">fall</a>-</b>
<b><a href="postconf.5.html#fallback_transport_maps">back_transport_maps</a></b> and <b><a href="postconf.5.html#fallback_transport">fallback_transport</a></b> parameters
specify an optional message transport for recipients that
are not found in the <a href="aliases.5.html">aliases(5)</a> or UNIX passwd database.
In the case of UNIX-style mailbox delivery, the <a href="local.8.html"><b>local</b>(8)</a>
daemon prepends a "<b>From</b> <i>sender time</i><b>_</b><i>stamp</i>" envelope header
@ -351,7 +353,7 @@ LOCAL(8) LOCAL(8)
broken by the use of the <b>Delivered-To:</b> message header.
<b>CONFIGURATION PARAMETERS</b>
Changes to <b>main.cf</b> are picked up automatically, as
Changes to <a href="postconf.5.html"><b>main.cf</b></a> are picked up automatically, as
<a href="local.8.html"><b>local</b>(8)</a> processes run for only a limited amount of time.
Use the command "<b>postfix reload</b>" to speed up a change.
@ -388,9 +390,10 @@ LOCAL(8) LOCAL(8)
<b>DELIVERY METHOD CONTROLS</b>
The precedence of <a href="local.8.html"><b>local</b>(8)</a> delivery methods from high to
low is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>, <a href="postconf.5.html#mailbox_command_maps">mail</a>-
<a href="postconf.5.html#mailbox_command_maps">box_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>,
<a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>.
low is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>,
<a href="postconf.5.html#mailbox_transport">mailbox_transport</a>, <a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>,
<a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>, fallback_trans-
port_maps, <a href="postconf.5.html#fallback_transport">fallback_transport</a>, and <a href="postconf.5.html#luser_relay">luser_relay</a>.
<b><a href="postconf.5.html#alias_maps">alias_maps</a> (see 'postconf -d' output)</b>
The alias databases that are used for <a href="local.8.html"><b>local</b>(8)</a>
@ -401,33 +404,45 @@ LOCAL(8) LOCAL(8)
a .forward file with user-specified delivery meth-
ods.
<b><a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a> (empty)</b>
Optional lookup tables with per-recipient message
delivery transports to use for <a href="local.8.html"><b>local</b>(8)</a> mailbox
delivery, whether or not the recipients are found
in the UNIX passwd database.
<b><a href="postconf.5.html#mailbox_transport">mailbox_transport</a> (empty)</b>
Optional message delivery transport that the
<a href="local.8.html"><b>local</b>(8)</a> delivery agent should use for mailbox
delivery to all local recipients, whether or not
Optional message delivery transport that the
<a href="local.8.html"><b>local</b>(8)</a> delivery agent should use for mailbox
delivery to all local recipients, whether or not
they are found in the UNIX passwd database.
<b><a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a> (empty)</b>
Optional lookup tables with per-recipient external
Optional lookup tables with per-recipient external
commands to use for <a href="local.8.html"><b>local</b>(8)</a> mailbox delivery.
<b><a href="postconf.5.html#mailbox_command">mailbox_command</a> (empty)</b>
Optional external command that the <a href="local.8.html"><b>local</b>(8)</a> deliv-
Optional external command that the <a href="local.8.html"><b>local</b>(8)</a> deliv-
ery agent should use for mailbox delivery.
<b><a href="postconf.5.html#home_mailbox">home_mailbox</a> (empty)</b>
Optional pathname of a mailbox file relative to a
Optional pathname of a mailbox file relative to a
<a href="local.8.html"><b>local</b>(8)</a> user's home directory.
<b><a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a> (see 'postconf -d' output)</b>
The directory where <a href="local.8.html"><b>local</b>(8)</a> UNIX-style mailboxes
The directory where <a href="local.8.html"><b>local</b>(8)</a> UNIX-style mailboxes
are kept.
<b><a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a> (empty)</b>
Optional lookup tables with per-recipient message
delivery transports for recipients that the
<a href="local.8.html"><b>local</b>(8)</a> delivery agent could not find in the
<a href="aliases.5.html"><b>aliases</b>(5)</a> or UNIX password database.
<b><a href="postconf.5.html#fallback_transport">fallback_transport</a> (empty)</b>
Optional message delivery transport that the
<a href="local.8.html"><b>local</b>(8)</a> delivery agent should use for names that
are not found in the <a href="aliases.5.html"><b>aliases</b>(5)</a> database or in the
UNIX passwd database.
are not found in the <a href="aliases.5.html"><b>aliases</b>(5)</a> or UNIX password
database.
<b><a href="postconf.5.html#luser_relay">luser_relay</a> (empty)</b>
Optional catch-all destination for unknown <a href="local.8.html"><b>local</b>(8)</a>
@ -492,8 +507,8 @@ LOCAL(8) LOCAL(8)
<b><a href="postconf.5.html#command_expansion_filter">command_expansion_filter</a> (see 'postconf -d' output)</b>
Restrict the characters that the <a href="local.8.html"><b>local</b>(8)</a> delivery
agent allows in $name expansions of $mailbox_com-
mand.
agent allows in $name expansions of $<a href="postconf.5.html#mailbox_command">mailbox_com</a>-
<a href="postconf.5.html#mailbox_command">mand</a>.
<b><a href="postconf.5.html#default_privs">default_privs</a> (nobody)</b>
The default rights used by the <a href="local.8.html"><b>local</b>(8)</a> delivery
@ -513,8 +528,8 @@ LOCAL(8) LOCAL(8)
<b>MISCELLANEOUS CONTROLS</b>
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
The default location of the Postfix main.cf and
master.cf configuration files.
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
<a href="master.5.html">master.cf</a> configuration files.
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
How much time a Postfix daemon process may take to

View File

@ -1004,7 +1004,7 @@ the Postfix SMTP client returns such mail as undeliverable.
Specify, for example, "<a href="postconf.5.html#best_mx_transport">best_mx_transport</a> = local" to pass the mail
from the SMTP client to the <a href="local.8.html">local(8)</a> delivery agent. You can specify
any message delivery "transport" or "transport:nexthop" that is
defined in the master.cf file. See the <a href="transport.5.html">transport(5)</a> manual page
defined in the <a href="master.5.html">master.cf</a> file. See the <a href="transport.5.html">transport(5)</a> manual page
for the syntax and meaning of "transport" or "transport:nexthop".
</p>
@ -1030,7 +1030,7 @@ notification with the UNIX command "<a href="postconf.5.html#biff">biff</a> y".
<p>
For compatibility reasons this feature is on by default. On systems
with lots of interactive users, the <a href="postconf.5.html#biff">biff</a> service can be a performance
drain. Specify "<a href="postconf.5.html#biff">biff</a> = no" in main.cf to disable.
drain. Specify "<a href="postconf.5.html#biff">biff</a> = no" in <a href="postconf.5.html">main.cf</a> to disable.
</p>
@ -1355,7 +1355,7 @@ global <a href="postconf.5.html#ipc_timeout">ipc_timeout</a> parameter as well.
<DT><b><a name="config_directory">config_directory</a>
(default: see "postconf -d" output)</b></DT><DD>
<p> The default location of the Postfix main.cf and master.cf
<p> The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a>
configuration files. This can be overruled via the following
mechanisms: </p>
@ -1371,7 +1371,7 @@ and commands). </p>
<p> With Postfix command that run with set-gid privileges, a
<a href="postconf.5.html#config_directory">config_directory</a> override requires either root privileges, or it
requires that the directory is listed with the <a href="postconf.5.html#alternate_config_directories">alternate_config_directories</a>
parameter in the default main.cf file. </p>
parameter in the default <a href="postconf.5.html">main.cf</a> file. </p>
</DD>
@ -1714,7 +1714,7 @@ PRIVILEGED USER OR THE POSTFIX OWNER</b>.
<p>
The default maximal number of Postfix child processes that provide
a given service. This limit can be overruled for specific services
in the master.cf file.
in the <a href="master.5.html">master.cf</a> file.
</p>
@ -1876,7 +1876,7 @@ table.
<p>
Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
is the name of a mail delivery transport defined in master.cf.
is the name of a mail delivery transport defined in <a href="master.5.html">master.cf</a>.
The <i>:nexthop</i> part is optional. For more details see the
<a href="transport.5.html">transport(5)</a> manual page.
</p>
@ -1945,7 +1945,7 @@ This feature is available in Postfix 2.0 and later.
The names of message delivery transports that should not deliver mail
unless someone issues "<b>sendmail -q</b>" or equivalent. Specify zero
or more names of mail delivery transports names that appear in the
first field of master.cf.
first field of <a href="master.5.html">master.cf</a>.
</p>
<p>
@ -2339,9 +2339,9 @@ is unavailable. </p>
<ul>
<li> In main.cf specify "<a href="postconf.5.html#relay_transport">relay_transport</a> = relay",
<li> In <a href="postconf.5.html">main.cf</a> specify "<a href="postconf.5.html#relay_transport">relay_transport</a> = relay",
<li> In master.cf specify "-o <a href="postconf.5.html#fallback_relay">fallback_relay</a> =" (i.e., empty) at
<li> In <a href="master.5.html">master.cf</a> specify "-o <a href="postconf.5.html#fallback_relay">fallback_relay</a> =" (i.e., empty) at
the end of the <tt>relay</tt> entry.
<li> In transport maps, specify "relay:<i>nexthop...</i>"
@ -2362,9 +2362,31 @@ for destinations that it is MX host for.
<p>
Optional message delivery transport that the <a href="local.8.html">local(8)</a> delivery
agent should use for names that are not found in the <a href="aliases.5.html">aliases(5)</a>
database or in the UNIX passwd database.
or UNIX password database.
</p>
<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>. </p>
</DD>
<DT><b><a name="fallback_transport_maps">fallback_transport_maps</a>
(default: empty)</b></DT><DD>
<p> Optional lookup tables with per-recipient message delivery
transports for recipients that the <a href="local.8.html">local(8)</a> delivery agent could
not find in the <a href="aliases.5.html">aliases(5)</a> or UNIX password database. </p>
<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>. </p>
<p> This feature is available in Postfix 2.3 and later. </p>
</DD>
@ -2684,12 +2706,10 @@ home directory.
Specify a pathname ending in "/" for qmail-style delivery.
</p>
<p>
The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low is:
aliases, .forward files, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>, <a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>,
<a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a>
and <a href="postconf.5.html#luser_relay">luser_relay</a>.
</p>
<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>. </p>
<p>
Examples:
@ -2832,7 +2852,7 @@ for IPv6. </p>
<p>
A better solution for multi-homed firewalls is to leave <a href="postconf.5.html#inet_interfaces">inet_interfaces</a>
at the default value and instead use explicit IP addresses in
the master.cf SMTP server definitions. This preserves the SMTP client's
the <a href="master.5.html">master.cf</a> SMTP server definitions. This preserves the SMTP client's
loop detection, by ensuring that each side of the firewall knows that the
other IP address is still the same host. Setting $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> to a
single IPv4 and/or IPV6 address is primarily useful with virtual
@ -3196,7 +3216,7 @@ configuration parameter. See there for details. </p>
<p> The maximal number of parallel deliveries to the same destination
via the lmtp message delivery transport. This limit is enforced by
the queue manager. The message delivery transport name is the first
field in the entry in the master.cf file. </p>
field in the entry in the <a href="master.5.html">master.cf</a> file. </p>
</DD>
@ -3207,7 +3227,7 @@ field in the entry in the master.cf file. </p>
<p> The maximal number of recipients per delivery via the lmtp
message delivery transport. This limit is enforced by the queue
manager. The message delivery transport name is the first field in
the entry in the master.cf file. </p>
the entry in the <a href="master.5.html">master.cf</a> file. </p>
<p> Setting this parameter to a value of 1 changes the meaning of
<a href="postconf.5.html#lmtp_destination_concurrency_limit">lmtp_destination_concurrency_limit</a> from concurrency per domain into
@ -3253,15 +3273,6 @@ discard LHLO keywords selectively. </p>
</ul>
</DD>
<DT><b><a name="lmtp_dot_quit_workaround_threshold_time">lmtp_dot_quit_workaround_threshold_time</a>
(default: 3000s)</b></DT><DD>
<p> The LMTP-specific version of the <a href="postconf.5.html#smtp_dot_quit_workaround_threshold_time">smtp_dot_quit_workaround_threshold_time</a>
configuration parameter. See there for details. </p>
</DD>
<DT><b><a name="lmtp_enforce_tls">lmtp_enforce_tls</a>
@ -3310,13 +3321,13 @@ The default value is the machine hostname. Specify a hostname or
</p>
<p>
This information can be specified in the main.cf file for all LMTP
clients, or it can be specified in the master.cf file for a specific
This information can be specified in the <a href="postconf.5.html">main.cf</a> file for all LMTP
clients, or it can be specified in the <a href="master.5.html">master.cf</a> file for a specific
client, for example:
</p>
<pre>
/etc/postfix/master.cf:
/etc/postfix/<a href="master.5.html">master.cf</a>:
mylmtp ... lmtp -o <a href="postconf.5.html#lmtp_lhloname">lmtp_lhlo_name</a>=foo.bar.com
</pre>
@ -3783,7 +3794,7 @@ delivery transport to the same recipient (when
parallel deliveries to the same <a href="ADDRESS_CLASS_README.html#local_domain_class">local domain</a> (when
"<a href="postconf.5.html#local_destination_recipient_limit">local_destination_recipient_limit</a> &gt; 1"). This limit is enforced by
the queue manager. The message delivery transport name is the first
field in the entry in the master.cf file. </p>
field in the entry in the <a href="master.5.html">master.cf</a> file. </p>
<p> A low limit of 2 is recommended, just in case someone has an
expensive shell command in a .forward file or in an alias (e.g.,
@ -3799,7 +3810,7 @@ the same time. </p>
<p> The maximal number of recipients per message delivery via the
local mail delivery transport. This limit is enforced by the queue
manager. The message delivery transport name is the first field in
the entry in the master.cf file. </p>
the entry in the <a href="master.5.html">master.cf</a> file. </p>
<p> Setting this parameter to a value &gt; 1 changes the meaning of
<a href="postconf.5.html#local_destination_concurrency_limit">local_destination_concurrency_limit</a> from concurrency per recipient
@ -3933,9 +3944,9 @@ delivery agent for local delivery. You need to update the
<ul>
<li>You redefine the local delivery agent in master.cf.
<li>You redefine the local delivery agent in <a href="master.5.html">master.cf</a>.
<li>You redefine the "<a href="postconf.5.html#local_transport">local_transport</a>" setting in main.cf.
<li>You redefine the "<a href="postconf.5.html#local_transport">local_transport</a>" setting in <a href="postconf.5.html">main.cf</a>.
<li>You use the "<a href="postconf.5.html#luser_relay">luser_relay</a>", "<a href="postconf.5.html#mailbox_transport">mailbox_transport</a>", or "<a href="postconf.5.html#fallback_transport">fallback_transport</a>"
feature of the Postfix <a href="local.8.html">local(8)</a> delivery agent.
@ -3974,12 +3985,12 @@ This information can be overruled with the <a href="transport.5.html">transport(
<p>
By default, local mail is delivered to the transport called "local",
which is just the name of a service that is defined the master.cf file.
which is just the name of a service that is defined the <a href="master.5.html">master.cf</a> file.
</p>
<p>
Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
is the name of a mail delivery transport defined in master.cf.
is the name of a mail delivery transport defined in <a href="master.5.html">master.cf</a>.
The <i>:nexthop</i> part is optional. For more details see the
<a href="transport.5.html">transport(5)</a> manual page.
</p>
@ -4062,7 +4073,7 @@ Note: <a href="postconf.5.html#luser_relay">luser_relay</a> works only for the P
<p>
Note: if you use this feature for accounts not in the UNIX password
file, then you must specify "<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> =" (i.e. empty)
in the main.cf file, otherwise the Postfix SMTP server will reject mail
in the <a href="postconf.5.html">main.cf</a> file, otherwise the Postfix SMTP server will reject mail
for non-UNIX accounts with "User unknown in local recipient table".
</p>
@ -4271,12 +4282,10 @@ system-wide, you must set up an alias that forwards mail for root
to a real user.
</p>
<p>
The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low is:
aliases, .forward files, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>, <a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>,
<a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a>
and <a href="postconf.5.html#luser_relay">luser_relay</a>.
</p>
<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>. </p>
<p>
Examples:
@ -4300,12 +4309,10 @@ Optional lookup tables with per-recipient external commands to use
for <a href="local.8.html">local(8)</a> mailbox delivery. Behavior is as with <a href="postconf.5.html#mailbox_command">mailbox_command</a>.
</p>
<p>
The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low is:
aliases, .forward files, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>, <a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>,
<a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a>
and <a href="postconf.5.html#luser_relay">luser_relay</a>.
</p>
<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>. </p>
</DD>
@ -4361,12 +4368,27 @@ agent should use for mailbox delivery to all local recipients,
whether or not they are found in the UNIX passwd database.
</p>
<p>
The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low is:
aliases, .forward files, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>, <a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>,
<a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a>
and <a href="postconf.5.html#luser_relay">luser_relay</a>.
</p>
<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>. </p>
</DD>
<DT><b><a name="mailbox_transport_maps">mailbox_transport_maps</a>
(default: empty)</b></DT><DD>
<p> Optional lookup tables with per-recipient message delivery
transports to use for <a href="local.8.html">local(8)</a> mailbox delivery, whether or not the
recipients are found in the UNIX passwd database. </p>
<p> The precedence of <a href="local.8.html">local(8)</a> delivery features from high to low
is: aliases, .forward files, <a href="postconf.5.html#mailbox_transport_maps">mailbox_transport_maps</a>, <a href="postconf.5.html#mailbox_transport">mailbox_transport</a>,
<a href="postconf.5.html#mailbox_command_maps">mailbox_command_maps</a>, <a href="postconf.5.html#mailbox_command">mailbox_command</a>, <a href="postconf.5.html#home_mailbox">home_mailbox</a>, <a href="postconf.5.html#mail_spool_directory">mail_spool_directory</a>,
<a href="postconf.5.html#fallback_transport_maps">fallback_transport_maps</a>, <a href="postconf.5.html#fallback_transport">fallback_transport</a> and <a href="postconf.5.html#luser_relay">luser_relay</a>. </p>
<p> This feature is available in Postfix 2.3 and later. </p>
</DD>
@ -5545,11 +5567,11 @@ configure or operate a specific Postfix subsystem or feature.
<p> Enable or disable recipient validation, built-in content
filtering, or address mapping. Typically, these are specified in
master.cf as command-line arguments for the <a href="smtpd.8.html">smtpd(8)</a>, <a href="qmqpd.8.html">qmqpd(8)</a> or
<a href="master.5.html">master.cf</a> as command-line arguments for the <a href="smtpd.8.html">smtpd(8)</a>, <a href="qmqpd.8.html">qmqpd(8)</a> or
<a href="pickup.8.html">pickup(8)</a> daemons. </p>
<p> Specify zero or more of the following options. The options
override main.cf settings and are either implemented by <a href="smtpd.8.html">smtpd(8)</a>,
override <a href="postconf.5.html">main.cf</a> settings and are either implemented by <a href="smtpd.8.html">smtpd(8)</a>,
<a href="qmqpd.8.html">qmqpd(8)</a>, or <a href="pickup.8.html">pickup(8)</a> themselves, or they are forwarded to the
cleanup server. </p>
@ -5577,8 +5599,8 @@ an external content filter. </dd>
<p>
Note: when the "BEFORE content filter" <a href="postconf.5.html#receive_override_options">receive_override_options</a>
setting is specified in the main.cf file, specify the "AFTER content
filter" <a href="postconf.5.html#receive_override_options">receive_override_options</a> setting in master.cf (and vice
setting is specified in the <a href="postconf.5.html">main.cf</a> file, specify the "AFTER content
filter" <a href="postconf.5.html#receive_override_options">receive_override_options</a> setting in <a href="master.5.html">master.cf</a> (and vice
versa).
</p>
@ -5774,7 +5796,7 @@ See <a href="RESTRICTION_CLASS_README.html">RESTRICTION_CLASS_README</a>.</p>
<p> The maximal number of parallel deliveries to the same destination
via the relay message delivery transport. This limit is enforced
by the queue manager. The message delivery transport name is the
first field in the entry in the master.cf file. </p>
first field in the entry in the <a href="master.5.html">master.cf</a> file. </p>
<p> This feature is available in Postfix 2.0 and later. </p>
@ -5787,7 +5809,7 @@ first field in the entry in the master.cf file. </p>
<p> The maximal number of recipients per delivery via the relay
message delivery transport. This limit is enforced by the queue
manager. The message delivery transport name is the first field in
the entry in the master.cf file. </p>
the entry in the <a href="master.5.html">master.cf</a> file. </p>
<p> Setting this parameter to a value of 1 changes the meaning of
<a href="postconf.5.html#relay_destination_concurrency_limit">relay_destination_concurrency_limit</a> from concurrency per domain
@ -5893,7 +5915,7 @@ the <a href="transport.5.html">transport(5)</a> table.
<p>
Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
is the name of a mail delivery transport defined in master.cf.
is the name of a mail delivery transport defined in <a href="master.5.html">master.cf</a>.
The <i>:nexthop</i> part is optional. For more details see the
<a href="transport.5.html">transport(5)</a> manual page.
</p>
@ -6324,13 +6346,13 @@ bind to when making an IPv4 connection.
</p>
<p>
This can be specified in the main.cf file for all SMTP clients, or
it can be specified in the master.cf file for a specific client,
This can be specified in the <a href="postconf.5.html">main.cf</a> file for all SMTP clients, or
it can be specified in the <a href="master.5.html">master.cf</a> file for a specific client,
for example:
</p>
<pre>
/etc/postfix/master.cf:
/etc/postfix/<a href="master.5.html">master.cf</a>:
smtp ... smtp -o <a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a>=11.22.33.44
</pre>
@ -6357,13 +6379,13 @@ bind to when making an IPv6 connection.
<p> This feature is available in Postfix 2.2 and later. </p>
<p>
This can be specified in the main.cf file for all SMTP clients, or
it can be specified in the master.cf file for a specific client,
This can be specified in the <a href="postconf.5.html">main.cf</a> file for all SMTP clients, or
it can be specified in the <a href="master.5.html">master.cf</a> file for a specific client,
for example:
</p>
<pre>
/etc/postfix/master.cf:
/etc/postfix/<a href="master.5.html">master.cf</a>:
smtp ... smtp -o <a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a>=1:2:3:4:5:6:7:8
</pre>
@ -6422,7 +6444,7 @@ right-hand side of an email address, without the [] around a numeric
IP address),
<li> if mail is sent via a <a href="postconf.5.html#relayhost">relay host</a>: a <a href="postconf.5.html#relayhost">relay host</a> name (without
[] or non-default TCP port), as specified in main.cf or in the
[] or non-default TCP port), as specified in <a href="postconf.5.html">main.cf</a> or in the
transport map,
<li> if mail is sent via a UNIX-domain socket: a pathname (without
@ -6621,7 +6643,7 @@ This feature is available in Postfix 2.1 and later.
<p> The maximal number of parallel deliveries to the same destination
via the smtp message delivery transport. This limit is enforced by
the queue manager. The message delivery transport name is the first
field in the entry in the master.cf file. </p>
field in the entry in the <a href="master.5.html">master.cf</a> file. </p>
</DD>
@ -6632,7 +6654,7 @@ field in the entry in the master.cf file. </p>
<p> The maximal number of recipients per delivery via the smtp
message delivery transport. This limit is enforced by the queue
manager. The message delivery transport name is the first field in
the entry in the master.cf file. </p>
the entry in the <a href="master.5.html">master.cf</a> file. </p>
<p> Setting this parameter to a value of 1 changes the meaning of
<a href="postconf.5.html#smtp_destination_concurrency_limit">smtp_destination_concurrency_limit</a> from concurrency per domain
@ -6678,39 +6700,6 @@ discard EHLO keywords selectively. </p>
</ul>
</DD>
<DT><b><a name="smtp_dot_quit_workaround_threshold_time">smtp_dot_quit_workaround_threshold_time</a>
(default: 3000s)</b></DT><DD>
<p> How long a message must be queued before the "." + QUIT bug
workaround is turned on for all deliveries; this limits the
number of repeated deliveries with servers or firewalls that
mis-implement END-OF-DATA + QUIT pipelining. </p>
<p> When the workaround is turned on, the Postfix SMTP client will
not send the QUIT command until it has received the server's
END-OF-DATA reply. This workaround incurs a small performance loss
with delivery to sites that correctly implement SMTP command
pipelining. </p>
<p> By default, the workaround is turned off for mail that is queued
for less than 3000 seconds. In other words, the workaround is
normally turned off for the first few delivery attempts of personal
mail and of small mailing lists. </p>
<p> Specify 0 to enable this workaround upon the first delivery
attempt, and specify a large value such as $<a href="postconf.5.html#maximal_queue_lifetime">maximal_queue_lifetime</a>
to disable the workaround for practically all delivery attempts.
</p>
<p> Note: when the <a href="postconf.5.html#smtp_fallback_relay">smtp_fallback_relay</a> feature is used, there will
be no second delivery attempt, and the workaround may have no effect.
</p>
<p> This feature is available in Postfix 2.3 and later. </p>
</DD>
<DT><b><a name="smtp_enforce_tls">smtp_enforce_tls</a>
@ -6794,13 +6783,13 @@ The default value is the machine hostname. Specify a hostname or
</p>
<p>
This information can be specified in the main.cf file for all SMTP
clients, or it can be specified in the master.cf file for a specific
This information can be specified in the <a href="postconf.5.html">main.cf</a> file for all SMTP
clients, or it can be specified in the <a href="master.5.html">master.cf</a> file for a specific
client, for example:
</p>
<pre>
/etc/postfix/master.cf:
/etc/postfix/<a href="master.5.html">master.cf</a>:
mysmtp ... smtp -o <a href="postconf.5.html#smtp_helo_name">smtp_helo_name</a>=foo.bar.com
</pre>
@ -7004,11 +6993,11 @@ that ends in ".".
<p>
The default is to comply with <a href="http://www.faqs.org/rfcs/rfc821.html">RFC 821</a>. If you have to send mail to
a broken SMTP server, configure a special SMTP client in master.cf:
a broken SMTP server, configure a special SMTP client in <a href="master.5.html">master.cf</a>:
</p>
<pre>
/etc/postfix/master.cf:
/etc/postfix/<a href="master.5.html">master.cf</a>:
broken-smtp . . . smtp -o <a href="postconf.5.html#smtp_quote_rfc821_envelope">smtp_quote_rfc821_envelope</a>=no
</pre>
@ -8173,7 +8162,7 @@ the next restriction in the list, if any. This may stop zombie
mail when used as:
<pre>
/etc/postfix/main.cf:
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> =
sleep 1, <a href="postconf.5.html#reject_unauth_pipelining">reject_unauth_pipelining</a>
<a href="postconf.5.html#smtpd_delay_reject">smtpd_delay_reject</a> = no
@ -9879,7 +9868,7 @@ $<a href="postconf.5.html#smtpd_tls_session_cache_timeout">smtpd_tls_session_cac
instead of using the STARTTLS command. </p>
<p> If you want to support this service, enable a special port in
master.cf, and specify "-o <a href="postconf.5.html#smtpd_tls_wrappermode">smtpd_tls_wrappermode</a>=yes" on the SMTP
<a href="master.5.html">master.cf</a>, and specify "-o <a href="postconf.5.html#smtpd_tls_wrappermode">smtpd_tls_wrappermode</a>=yes" on the SMTP
server's command line. Port 465 (smtps) was once chosen for this
purpose. </p>
@ -10104,7 +10093,7 @@ Warning: a non-default <a href="postconf.5.html#syslog_facility">syslog_facility
after a Postfix process has completed initialization. Errors during
process initialization will be logged with the default facility.
Examples are errors while parsing the command line arguments, and
errors while accessing the Postfix main.cf configuration file.
errors while accessing the Postfix <a href="postconf.5.html">main.cf</a> configuration file.
</p>
@ -10123,7 +10112,7 @@ Warning: a non-default <a href="postconf.5.html#syslog_name">syslog_name</a> set
a Postfix process has completed initialization. Errors during
process initialization will be logged with the default name. Examples
are errors while parsing the command line arguments, and errors
while accessing the Postfix main.cf configuration file.
while accessing the Postfix <a href="postconf.5.html">main.cf</a> configuration file.
</p>
@ -10600,7 +10589,7 @@ This feature is available in Postfix 2.1 and later.
<p> The maximal number of parallel deliveries to the same destination
via the virtual message delivery transport. This limit is enforced
by the queue manager. The message delivery transport name is the
first field in the entry in the master.cf file. </p>
first field in the entry in the <a href="master.5.html">master.cf</a> file. </p>
</DD>
@ -10611,7 +10600,7 @@ first field in the entry in the master.cf file. </p>
<p> The maximal number of recipients per delivery via the virtual
message delivery transport. This limit is enforced by the queue
manager. The message delivery transport name is the first field in
the entry in the master.cf file. </p>
the entry in the <a href="master.5.html">master.cf</a> file. </p>
<p> Setting this parameter to a value of 1 changes the meaning of
<a href="postconf.5.html#virtual_destination_concurrency_limit">virtual_destination_concurrency_limit</a> from concurrency per domain
@ -10821,7 +10810,7 @@ This information can be overruled with the <a href="transport.5.html">transport(
<p>
Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i>
is the name of a mail delivery transport defined in master.cf.
is the name of a mail delivery transport defined in <a href="master.5.html">master.cf</a>.
The <i>:nexthop</i> part is optional. For more details see the
<a href="transport.5.html">transport(5)</a> manual page.
</p>

View File

@ -145,7 +145,7 @@ SMTP(8) SMTP(8)
document describes only those LMTP-related parameters that
aren't simply "ghost" parameters.
Changes to <b>main.cf</b> are picked up automatically, as <a href="smtp.8.html"><b>smtp</b>(8)</a>
Changes to <a href="postconf.5.html"><b>main.cf</b></a> are picked up automatically, as <a href="smtp.8.html"><b>smtp</b>(8)</a>
processes run for only a limited amount of time. Use the
command "<b>postfix reload</b>" to speed up a change.
@ -166,13 +166,6 @@ SMTP(8) SMTP(8)
Defer mail delivery when no MX record resolves to
an IP address.
<b><a href="postconf.5.html#smtp_dot_quit_workaround_threshold_time">smtp_dot_quit_workaround_threshold_time</a> (3000s)</b>
How long a message must be queued before the "." +
QUIT bug workaround is turned on for all deliver-
ies; this limits the number of repeated deliveries
with servers or firewalls that mis-implement END-
OF-DATA + QUIT pipelining.
<b><a href="postconf.5.html#smtp_line_length_limit">smtp_line_length_limit</a> (990)</b>
The maximal length of message header and body lines
that Postfix will send via SMTP.
@ -533,8 +526,8 @@ SMTP(8) SMTP(8)
condition.
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
The default location of the Postfix main.cf and
master.cf configuration files.
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
<a href="master.5.html">master.cf</a> configuration files.
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
How much time a Postfix daemon process may take to

View File

@ -1270,7 +1270,23 @@ for destinations that it is MX host for.
.SH fallback_transport (default: empty)
Optional message delivery transport that the \fBlocal\fR(8) delivery
agent should use for names that are not found in the \fBaliases\fR(5)
database or in the UNIX passwd database.
or UNIX password database.
.PP
The precedence of \fBlocal\fR(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay.
.SH fallback_transport_maps (default: empty)
Optional lookup tables with per-recipient message delivery
transports for recipients that the \fBlocal\fR(8) delivery agent could
not find in the \fBaliases\fR(5) or UNIX password database.
.PP
The precedence of \fBlocal\fR(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay.
.PP
This feature is available in Postfix 2.3 and later.
.SH fast_flush_domains (default: $relay_domains)
Optional list of destinations that are eligible for per-destination
logfiles with mail that is queued to those destinations.
@ -1421,10 +1437,10 @@ home directory.
.PP
Specify a pathname ending in "/" for qmail-style delivery.
.PP
The precedence of \fBlocal\fR(8) delivery features from high to low is:
aliases, .forward files, mailbox_transport, mailbox_command_maps,
mailbox_command, home_mailbox, mail_spool_directory, fallback_transport
and luser_relay.
The precedence of \fBlocal\fR(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay.
.PP
Examples:
.PP
@ -1746,9 +1762,6 @@ this action from being logged.
.IP \(bu
Use the lmtp_discard_lhlo_keyword_address_maps feature to
discard LHLO keywords selectively.
.SH lmtp_dot_quit_workaround_threshold_time (default: 3000s)
The LMTP-specific version of the smtp_dot_quit_workaround_threshold_time
configuration parameter. See there for details.
.SH lmtp_enforce_tls (default: no)
The LMTP-specific version of the smtp_enforce_tls configuration
parameter. See there for details.
@ -2309,10 +2322,10 @@ Note: if you use the mailbox_command feature to deliver mail
system-wide, you must set up an alias that forwards mail for root
to a real user.
.PP
The precedence of \fBlocal\fR(8) delivery features from high to low is:
aliases, .forward files, mailbox_transport, mailbox_command_maps,
mailbox_command, home_mailbox, mail_spool_directory, fallback_transport
and luser_relay.
The precedence of \fBlocal\fR(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay.
.PP
Examples:
.PP
@ -2330,10 +2343,10 @@ mailbox_command = /some/where/maildrop -d "$USER"
Optional lookup tables with per-recipient external commands to use
for \fBlocal\fR(8) mailbox delivery. Behavior is as with mailbox_command.
.PP
The precedence of \fBlocal\fR(8) delivery features from high to low is:
aliases, .forward files, mailbox_transport, mailbox_command_maps,
mailbox_command, home_mailbox, mail_spool_directory, fallback_transport
and luser_relay.
The precedence of \fBlocal\fR(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay.
.SH mailbox_delivery_lock (default: see "postconf -d" output)
How to lock a UNIX-style \fBlocal\fR(8) mailbox before attempting delivery.
For a list of available file locking methods, use the "\fBpostconf
@ -2359,10 +2372,21 @@ Optional message delivery transport that the \fBlocal\fR(8) delivery
agent should use for mailbox delivery to all local recipients,
whether or not they are found in the UNIX passwd database.
.PP
The precedence of \fBlocal\fR(8) delivery features from high to low is:
aliases, .forward files, mailbox_transport, mailbox_command_maps,
mailbox_command, home_mailbox, mail_spool_directory, fallback_transport
and luser_relay.
The precedence of \fBlocal\fR(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay.
.SH mailbox_transport_maps (default: empty)
Optional lookup tables with per-recipient message delivery
transports to use for \fBlocal\fR(8) mailbox delivery, whether or not the
recipients are found in the UNIX passwd database.
.PP
The precedence of \fBlocal\fR(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay.
.PP
This feature is available in Postfix 2.3 and later.
.SH mailq_path (default: see "postconf -d" output)
Sendmail compatibility feature that specifies where the Postfix
\fBmailq\fR(1) command is installed. This command can be used to
@ -3723,31 +3747,6 @@ this action from being logged.
.IP \(bu
Use the smtp_discard_ehlo_keyword_address_maps feature to
discard EHLO keywords selectively.
.SH smtp_dot_quit_workaround_threshold_time (default: 3000s)
How long a message must be queued before the "." + QUIT bug
workaround is turned on for all deliveries; this limits the
number of repeated deliveries with servers or firewalls that
mis-implement END-OF-DATA + QUIT pipelining.
.PP
When the workaround is turned on, the Postfix SMTP client will
not send the QUIT command until it has received the server's
END-OF-DATA reply. This workaround incurs a small performance loss
with delivery to sites that correctly implement SMTP command
pipelining.
.PP
By default, the workaround is turned off for mail that is queued
for less than 3000 seconds. In other words, the workaround is
normally turned off for the first few delivery attempts of personal
mail and of small mailing lists.
.PP
Specify 0 to enable this workaround upon the first delivery
attempt, and specify a large value such as $maximal_queue_lifetime
to disable the workaround for practically all delivery attempts.
.PP
Note: when the smtp_fallback_relay feature is used, there will
be no second delivery attempt, and the workaround may have no effect.
.PP
This feature is available in Postfix 2.3 and later.
.SH smtp_enforce_tls (default: no)
Enforcement mode: require that remote SMTP servers use TLS
encryption, and never send mail in the clear. This also requires

View File

@ -113,18 +113,23 @@ configuration parameter. Specify a relative path name. Specify a name
ending in \fB/\fR for \fBqmail\fR-compatible \fBmaildir\fR delivery.
Mailbox delivery can be delegated to an external command specified
with the \fBmailbox_command\fR configuration parameter. The command
with the \fBmailbox_command_maps\fR and \fBmailbox_command\fR
configuration parameters. The command
executes with the privileges of the recipient user (exceptions:
secondary groups are not enabled; in case of delivery as root,
the command executes with the privileges of \fBdefault_privs\fR).
Mailbox delivery can be delegated to alternative message transports
specified in the \fBmaster.cf\fR file.
The \fBmailbox_transport\fR configuration parameter specifies a
The \fBmailbox_transport_maps\fR and \fBmailbox_transport\fR
configuration parameters specify an optional
message transport that is to be used for all local recipients,
regardless of whether they are found in the UNIX passwd database.
The \fBfallback_transport\fR parameter specifies a message transport
for recipients that are not found in the UNIX passwd database.
The \fBfallback_transport_maps\fR and
\fBfallback_transport\fR parameters specify an optional
message transport
for recipients that are not found in the aliases(5) or UNIX
passwd database.
In the case of UNIX-style mailbox delivery,
the \fBlocal\fR(8) daemon prepends a "\fBFrom \fIsender time_stamp\fR"
@ -405,14 +410,19 @@ expanding aliases or .forward files.
.ad
.fi
The precedence of \fBlocal\fR(8) delivery methods from high to low is:
aliases, .forward files, mailbox_transport, mailbox_command_maps,
mailbox_command, home_mailbox, mail_spool_directory, fallback_transport
and luser_relay.
aliases, .forward files, mailbox_transport_maps,
mailbox_transport, mailbox_command_maps, mailbox_command,
home_mailbox, mail_spool_directory, fallback_transport_maps,
fallback_transport, and luser_relay.
.IP "\fBalias_maps (see 'postconf -d' output)\fR"
The alias databases that are used for \fBlocal\fR(8) delivery.
.IP "\fBforward_path (see 'postconf -d' output)\fR"
The \fBlocal\fR(8) delivery agent search list for finding a .forward
file with user-specified delivery methods.
.IP "\fBmailbox_transport_maps (empty)\fR"
Optional lookup tables with per-recipient message delivery
transports to use for \fBlocal\fR(8) mailbox delivery, whether or not the
recipients are found in the UNIX passwd database.
.IP "\fBmailbox_transport (empty)\fR"
Optional message delivery transport that the \fBlocal\fR(8) delivery
agent should use for mailbox delivery to all local recipients,
@ -428,10 +438,14 @@ Optional pathname of a mailbox file relative to a \fBlocal\fR(8) user's
home directory.
.IP "\fBmail_spool_directory (see 'postconf -d' output)\fR"
The directory where \fBlocal\fR(8) UNIX-style mailboxes are kept.
.IP "\fBfallback_transport_maps (empty)\fR"
Optional lookup tables with per-recipient message delivery
transports for recipients that the \fBlocal\fR(8) delivery agent could
not find in the \fBaliases\fR(5) or UNIX password database.
.IP "\fBfallback_transport (empty)\fR"
Optional message delivery transport that the \fBlocal\fR(8) delivery
agent should use for names that are not found in the \fBaliases\fR(5)
database or in the UNIX passwd database.
or UNIX password database.
.IP "\fBluser_relay (empty)\fR"
Optional catch-all destination for unknown \fBlocal\fR(8) recipients.
.PP

View File

@ -162,11 +162,6 @@ Always send EHLO at the start of an SMTP session.
Never send EHLO at the start of an SMTP session.
.IP "\fBsmtp_defer_if_no_mx_address_found (no)\fR"
Defer mail delivery when no MX record resolves to an IP address.
.IP "\fBsmtp_dot_quit_workaround_threshold_time (3000s)\fR"
How long a message must be queued before the "." + QUIT bug
workaround is turned on for all deliveries; this limits the
number of repeated deliveries with servers or firewalls that
mis-implement END-OF-DATA + QUIT pipelining.
.IP "\fBsmtp_line_length_limit (990)\fR"
The maximal length of message header and body lines that Postfix
will send via SMTP.

View File

@ -161,8 +161,9 @@ while (<>) {
s;\berror_service_name\b;<a href="postconf.5.html#error_service_name">$&</a>;g;
s;\bexpand_owner_alias\b;<a href="postconf.5.html#expand_owner_alias">$&</a>;g;
s;\bexport_environment\b;<a href="postconf.5.html#export_environment">$&</a>;g;
s;\bfallback_relay\b;<a href="postconf.5.html#fallback_relay">$&</a>;g;
s;\bfallback_transport\b;<a href="postconf.5.html#fallback_transport">$&</a>;g;
s;\bfall[-</bB>]*\n* *[<bB>]*back_relay\b;<a href="postconf.5.html#fallback_relay">$&</a>;g;
s;\bfall[-</bB>]*\n* *[<bB>]*back_transport\b;<a href="postconf.5.html#fallback_transport">$&</a>;g;
s;\bfall[-</bB>]*\n* *[<bB>]*back_transport_maps\b;<a href="postconf.5.html#fallback_transport_maps">$&</a>;g;
s;\bfast_flush_domains\b;<a href="postconf.5.html#fast_flush_domains">$&</a>;g;
s;\bfast_flush_purge_time\b;<a href="postconf.5.html#fast_flush_purge_time">$&</a>;g;
s;\bfast_flush_refresh_time\b;<a href="postconf.5.html#fast_flush_refresh_time">$&</a>;g;
@ -252,11 +253,12 @@ while (<>) {
s;\bmail_release_date\b;<a href="postconf.5.html#mail_release_date">$&</a>;g;
s;\bmail_spool_direc[-</bB>]*\n* *[<bB>]*tory\b;<a href="postconf.5.html#mail_spool_directory">$&</a>;g;
s;\bmail_version\b;<a href="postconf.5.html#mail_version">$&</a>;g;
s;\bmail[-</bB>]*\n* *[<bB>]*box_command\b;<a href="postconf.5.html#mailbox_command">$&</a>;g;
s;\bmail[-</bB>]*\n* *[<bB>]*box_command_maps\b;<a href="postconf.5.html#mailbox_command_maps">$&</a>;g;
s;\bmail[-</bB>]*\n* *[<bB>]*box_com[-</bB>]*\n* *[<bB>]*mand\b;<a href="postconf.5.html#mailbox_command">$&</a>;g;
s;\bmail[-</bB>]*\n* *[<bB>]*box_com[-</bB>]*\n* *[<bB>]*mand_maps\b;<a href="postconf.5.html#mailbox_command_maps">$&</a>;g;
s;\bmail[-</bB>]*\n* *[<bB>]*box_deliv[-</Bb>]*\n* *[<Bb>]*ery_lock\b;<a href="postconf.5.html#mailbox_delivery_lock">$&</a>;g;
s;\bmail[-</bB>]*\n* *[<bB>]*box_size_limit\b;<a href="postconf.5.html#mailbox_size_limit">$&</a>;g;
s;\bmail[-</bB>]*\n* *[<bB>]*box_transport\b;<a href="postconf.5.html#mailbox_transport">$&</a>;g;
s;\bmail[-</bB>]*\n* *[<bB>]*box_transport_maps\b;<a href="postconf.5.html#mailbox_transport_maps">$&</a>;g;
s;\bmailq_path\b;<a href="postconf.5.html#mailq_path">$&</a>;g;
s;\bmanpage_directory\b;<a href="postconf.5.html#manpage_directory">$&</a>;g;
s;\bmaps_rbl_domains\b;<a href="postconf.5.html#maps_rbl_domains">$&</a>;g;
@ -387,7 +389,6 @@ while (<>) {
s;\bsmtp_mx_session_limit\b;<a href="postconf.5.html#smtp_mx_session_limit">$&</a>;g;
s;\bsmtp_never_send_ehlo\b;<a href="postconf.5.html#smtp_never_send_ehlo">$&</a>;g;
s;\bsmtp_sender_depen[-</bB>]*\n*[ <bB>]*dent_authentication\b;<a href="postconf.5.html#smtp_sender_dependent_authentication">$&</a>;g;
s;\bsmtp_dot_quit_workaround_threshold_time\b;<a href="postconf.5.html#smtp_dot_quit_workaround_threshold_time">$&</a>;g;
s;\bsmtp_pix_workaround_delay_time\b;<a href="postconf.5.html#smtp_pix_workaround_delay_time">$&</a>;g;
s;\bsmtp_pix_workaround_threshold_time\b;<a href="postconf.5.html#smtp_pix_workaround_threshold_time">$&</a>;g;
s;\bsmtp_quit_timeout\b;<a href="postconf.5.html#smtp_quit_timeout">$&</a>;g;
@ -627,6 +628,9 @@ while (<>) {
s/[<bB>]*body_checks[<\/bB>]*\(5\)/<a href="header_checks.5.html">$&<\/a>/g;
s/[<bB>]*header_checks[<\/bB>]*\(5\)/<a href="header_checks.5.html">$&<\/a>/g;
s/[<bB>]*main\.cf[<\/bB>]*/<a href="postconf.5.html">$&<\/a>/g;
s/[<bB>]*master\.cf[<\/bB>]*/<a href="master.5.html">$&<\/a>/g;
# Hyperlink README document names
s/\b([A-Z][A-Z0-9_]*)[-]*\n*[ ]*([A-Z0-9_]*_README)\b/<a href="$1$2.html">$&<\/a>/g;

View File

@ -252,7 +252,7 @@ document for an introduction to the Postfix architecture. </p>
5
6 # Localize these. The -G option does nothing before Postfix 2.3.
7 INSPECT_DIR=/var/spool/filter
8 SENDMAIL="/usr/sbin/sendmail -G -i"
8 SENDMAIL="/usr/sbin/sendmail -G -i" # NEVER NEVER NEVER use "-t" here.
9
10 # Exit codes from &lt;sysexits.h&gt;
11 EX_TEMPFAIL=75
@ -288,6 +288,10 @@ otherwise it disables address rewriting of message headers. </p>
<li> <p> Line 8: The -i option says don't stop reading input when
a line contains "." only. </p>
<li> <p> Line 8: NEVER NEVER NEVER use the "-t" command-line option
here. It will mis-deliver mail, like sending mailing list mail back
to the mailing list. </p>
<li> <p> Line 21: The idea is to first capture the message to
file and then run the content through a third-party content filter
program. </p>
@ -623,7 +627,8 @@ gobble up a lot of system resources, so you don't want to have too
much of it running at the same time. </p>
<li> <p> With "-o smtp_send_xforward_command=yes", the scan transport
will try to forward the original client name and IP address to the
will try to forward the original client name and IP address
through the content filter to the
after-filter smtpd process, so that filtered mail is logged with
the real client name IP address. See smtp(8) and XFORWARD_README
for more information. </p>

View File

@ -1588,12 +1588,10 @@ home directory.
Specify a pathname ending in "/" for qmail-style delivery.
</p>
<p>
The precedence of local(8) delivery features from high to low is:
aliases, .forward files, mailbox_transport, mailbox_command_maps,
mailbox_command, home_mailbox, mail_spool_directory, fallback_transport
and luser_relay.
</p>
<p> The precedence of local(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay. </p>
<p>
Examples:
@ -2389,12 +2387,10 @@ system-wide, you must set up an alias that forwards mail for root
to a real user.
</p>
<p>
The precedence of local(8) delivery features from high to low is:
aliases, .forward files, mailbox_transport, mailbox_command_maps,
mailbox_command, home_mailbox, mail_spool_directory, fallback_transport
and luser_relay.
</p>
<p> The precedence of local(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay. </p>
<p>
Examples:
@ -6659,8 +6655,13 @@ sender address to the name of the "owner-aliasname" alias.
<p>
Optional message delivery transport that the local(8) delivery
agent should use for names that are not found in the aliases(5)
database or in the UNIX passwd database.
or UNIX password database.
</p>
<p> The precedence of local(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay. </p>
%PARAM fault_injection_code 0
@ -6820,12 +6821,10 @@ Optional lookup tables with per-recipient external commands to use
for local(8) mailbox delivery. Behavior is as with mailbox_command.
</p>
<p>
The precedence of local(8) delivery features from high to low is:
aliases, .forward files, mailbox_transport, mailbox_command_maps,
mailbox_command, home_mailbox, mail_spool_directory, fallback_transport
and luser_relay.
</p>
<p> The precedence of local(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay. </p>
%PARAM mailbox_delivery_lock see "postconf -d" output
@ -6857,12 +6856,10 @@ agent should use for mailbox delivery to all local recipients,
whether or not they are found in the UNIX passwd database.
</p>
<p>
The precedence of local(8) delivery features from high to low is:
aliases, .forward files, mailbox_transport, mailbox_command_maps,
mailbox_command, home_mailbox, mail_spool_directory, fallback_transport
and luser_relay.
</p>
<p> The precedence of local(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay. </p>
%PARAM mailq_path see "postconf -d" output
@ -9126,36 +9123,28 @@ rejecting the address as invalid. </p>
<p> This feature is available in Postfix 2.3 and later.
%PARAM smtp_dot_quit_workaround_threshold_time 3000s
<p> How long a message must be queued before the "." + QUIT bug
workaround is turned on for all deliveries; this limits the
number of repeated deliveries with servers or firewalls that
mis-implement END-OF-DATA + QUIT pipelining. </p>
<p> When the workaround is turned on, the Postfix SMTP client will
not send the QUIT command until it has received the server's
END-OF-DATA reply. This workaround incurs a small performance loss
with delivery to sites that correctly implement SMTP command
pipelining. </p>
<p> By default, the workaround is turned off for mail that is queued
for less than 3000 seconds. In other words, the workaround is
normally turned off for the first few delivery attempts of personal
mail and of small mailing lists. </p>
<p> Specify 0 to enable this workaround upon the first delivery
attempt, and specify a large value such as $maximal_queue_lifetime
to disable the workaround for practically all delivery attempts.
</p>
<p> Note: when the smtp_fallback_relay feature is used, there will
be no second delivery attempt, and the workaround may have no effect.
</p>
%PARAM mailbox_transport_maps
<p> Optional lookup tables with per-recipient message delivery
transports to use for local(8) mailbox delivery, whether or not the
recipients are found in the UNIX passwd database. </p>
<p> The precedence of local(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay. </p>
<p> This feature is available in Postfix 2.3 and later. </p>
%PARAM lmtp_dot_quit_workaround_threshold_time 3000s
%PARAM fallback_transport_maps
<p> The LMTP-specific version of the smtp_dot_quit_workaround_threshold_time
configuration parameter. See there for details. </p>
<p> Optional lookup tables with per-recipient message delivery
transports for recipients that the local(8) delivery agent could
not find in the aliases(5) or UNIX password database. </p>
<p> The precedence of local(8) delivery features from high to low
is: aliases, .forward files, mailbox_transport_maps, mailbox_transport,
mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,
fallback_transport_maps, fallback_transport and luser_relay. </p>
<p> This feature is available in Postfix 2.3 and later. </p>

View File

@ -937,6 +937,12 @@ static void post_jail_init(char *unused_name, char **unused_argv)
* Do not limit the number of client requests.
*/
var_use_limit = 0;
/*
* Don't exit before the sampling interval ends.
*/
if (var_idle_limit < var_anvil_time_unit)
var_idle_limit = var_anvil_time_unit;
}
/* main - pass control to the multi-threaded skeleton */

View File

@ -491,10 +491,18 @@ extern char *var_mailbox_cmd_maps;
#define DEF_MAILBOX_TRANSP ""
extern char *var_mailbox_transport;
#define VAR_MBOX_TRANSP_MAPS "mailbox_transport_maps"
#define DEF_MBOX_TRANSP_MAPS ""
extern char *var_mbox_transp_maps;
#define VAR_FALLBACK_TRANSP "fallback_transport"
#define DEF_FALLBACK_TRANSP ""
extern char *var_fallback_transport;
#define VAR_FBCK_TRANSP_MAPS "fallback_transport_maps"
#define DEF_FBCK_TRANSP_MAPS ""
extern char *var_fbck_transp_maps;
/*
* Local delivery: path to per-user forwarding file.
*/
@ -1006,12 +1014,6 @@ extern int var_smtp_pix_thresh;
#define DEF_LMTP_PIX_DELAY "10s"
extern int var_smtp_pix_delay;
#define VAR_SMTP_DOTQ_THRESH "smtp_dot_quit_workaround_threshold"
#define DEF_SMTP_DOTQ_THRESH "3000s"
#define VAR_LMTP_DOTQ_THRESH "lmtp_dot_quit_workaround_threshold"
#define DEF_LMTP_DOTQ_THRESH "3000s"
extern int var_smtp_dotq_thresh;
#define VAR_SMTP_DEFER_MXADDR "smtp_defer_if_no_mx_address_found"
#define DEF_SMTP_DEFER_MXADDR 0
#define VAR_LMTP_DEFER_MXADDR "lmtp_defer_if_no_mx_address_found"

View File

@ -20,7 +20,7 @@
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
#define MAIL_RELEASE_DATE "20051229"
#define MAIL_RELEASE_DATE "20060103"
#define MAIL_VERSION_NUMBER "2.3"
#ifdef SNAPSHOT

View File

@ -101,18 +101,23 @@
/* ending in \fB/\fR for \fBqmail\fR-compatible \fBmaildir\fR delivery.
/*
/* Mailbox delivery can be delegated to an external command specified
/* with the \fBmailbox_command\fR configuration parameter. The command
/* with the \fBmailbox_command_maps\fR and \fBmailbox_command\fR
/* configuration parameters. The command
/* executes with the privileges of the recipient user (exceptions:
/* secondary groups are not enabled; in case of delivery as root,
/* the command executes with the privileges of \fBdefault_privs\fR).
/*
/* Mailbox delivery can be delegated to alternative message transports
/* specified in the \fBmaster.cf\fR file.
/* The \fBmailbox_transport\fR configuration parameter specifies a
/* The \fBmailbox_transport_maps\fR and \fBmailbox_transport\fR
/* configuration parameters specify an optional
/* message transport that is to be used for all local recipients,
/* regardless of whether they are found in the UNIX passwd database.
/* The \fBfallback_transport\fR parameter specifies a message transport
/* for recipients that are not found in the UNIX passwd database.
/* The \fBfallback_transport_maps\fR and
/* \fBfallback_transport\fR parameters specify an optional
/* message transport
/* for recipients that are not found in the aliases(5) or UNIX
/* passwd database.
/*
/* In the case of UNIX-style mailbox delivery,
/* the \fBlocal\fR(8) daemon prepends a "\fBFrom \fIsender time_stamp\fR"
@ -371,14 +376,19 @@
/* .ad
/* .fi
/* The precedence of \fBlocal\fR(8) delivery methods from high to low is:
/* aliases, .forward files, mailbox_transport, mailbox_command_maps,
/* mailbox_command, home_mailbox, mail_spool_directory, fallback_transport
/* and luser_relay.
/* aliases, .forward files, mailbox_transport_maps,
/* mailbox_transport, mailbox_command_maps, mailbox_command,
/* home_mailbox, mail_spool_directory, fallback_transport_maps,
/* fallback_transport, and luser_relay.
/* .IP "\fBalias_maps (see 'postconf -d' output)\fR"
/* The alias databases that are used for \fBlocal\fR(8) delivery.
/* .IP "\fBforward_path (see 'postconf -d' output)\fR"
/* The \fBlocal\fR(8) delivery agent search list for finding a .forward
/* file with user-specified delivery methods.
/* .IP "\fBmailbox_transport_maps (empty)\fR"
/* Optional lookup tables with per-recipient message delivery
/* transports to use for \fBlocal\fR(8) mailbox delivery, whether or not the
/* recipients are found in the UNIX passwd database.
/* .IP "\fBmailbox_transport (empty)\fR"
/* Optional message delivery transport that the \fBlocal\fR(8) delivery
/* agent should use for mailbox delivery to all local recipients,
@ -394,10 +404,14 @@
/* home directory.
/* .IP "\fBmail_spool_directory (see 'postconf -d' output)\fR"
/* The directory where \fBlocal\fR(8) UNIX-style mailboxes are kept.
/* .IP "\fBfallback_transport_maps (empty)\fR"
/* Optional lookup tables with per-recipient message delivery
/* transports for recipients that the \fBlocal\fR(8) delivery agent could
/* not find in the \fBaliases\fR(5) or UNIX password database.
/* .IP "\fBfallback_transport (empty)\fR"
/* Optional message delivery transport that the \fBlocal\fR(8) delivery
/* agent should use for names that are not found in the \fBaliases\fR(5)
/* database or in the UNIX passwd database.
/* or UNIX password database.
/* .IP "\fBluser_relay (empty)\fR"
/* Optional catch-all destination for unknown \fBlocal\fR(8) recipients.
/* .PP
@ -604,7 +618,9 @@ char *var_luser_relay;
int var_biff;
char *var_mail_spool_dir;
char *var_mailbox_transport;
char *var_mbox_transp_maps;
char *var_fallback_transport;
char *var_fbck_transp_maps;
char *var_exec_directory;
char *var_exec_exp_filter;
char *var_forward_path;
@ -843,13 +859,16 @@ int main(int argc, char **argv)
VAR_LOCAL_CMD_SHELL, DEF_LOCAL_CMD_SHELL, &var_local_cmd_shell, 0, 0,
VAR_MAIL_SPOOL_DIR, DEF_MAIL_SPOOL_DIR, &var_mail_spool_dir, 0, 0,
VAR_MAILBOX_TRANSP, DEF_MAILBOX_TRANSP, &var_mailbox_transport, 0, 0,
VAR_MBOX_TRANSP_MAPS, DEF_MBOX_TRANSP_MAPS, &var_mbox_transp_maps, 0, 0,
VAR_FALLBACK_TRANSP, DEF_FALLBACK_TRANSP, &var_fallback_transport, 0, 0,
VAR_FBCK_TRANSP_MAPS, DEF_FBCK_TRANSP_MAPS, &var_fbck_transp_maps, 0, 0,
VAR_CMD_EXP_FILTER, DEF_CMD_EXP_FILTER, &var_cmd_exp_filter, 1, 0,
VAR_FWD_EXP_FILTER, DEF_FWD_EXP_FILTER, &var_fwd_exp_filter, 1, 0,
VAR_EXEC_EXP_FILTER, DEF_EXEC_EXP_FILTER, &var_exec_exp_filter, 1, 0,
VAR_PROP_EXTENSION, DEF_PROP_EXTENSION, &var_prop_extension, 0, 0,
VAR_DELIVER_HDR, DEF_DELIVER_HDR, &var_deliver_hdr, 0, 0,
VAR_MAILBOX_LOCK, DEF_MAILBOX_LOCK, &var_mailbox_lock, 1, 0,
VAR_MAILBOX_CMD_MAPS, DEF_MAILBOX_CMD_MAPS, &var_mailbox_cmd_maps, 0, 0,
0,
};
static CONFIG_BOOL_TABLE bool_table[] = {
@ -866,7 +885,6 @@ int main(int argc, char **argv)
VAR_EXEC_DIRECTORY, DEF_EXEC_DIRECTORY, &var_exec_directory, 0, 0,
VAR_FORWARD_PATH, DEF_FORWARD_PATH, &var_forward_path, 0, 0,
VAR_MAILBOX_COMMAND, DEF_MAILBOX_COMMAND, &var_mailbox_command, 0, 0,
VAR_MAILBOX_CMD_MAPS, DEF_MAILBOX_CMD_MAPS, &var_mailbox_cmd_maps, 0, 0,
VAR_LUSER_RELAY, DEF_LUSER_RELAY, &var_luser_relay, 0, 0,
0,
};

View File

@ -245,6 +245,8 @@ int deliver_mailbox(LOCAL_STATE state, USER_ATTR usr_attr, int *statusp)
int status;
struct mypasswd *mbox_pwd;
char *path;
static MAPS *transp_maps;
const char *map_transport;
static MAPS *cmd_maps;
const char *map_command;
@ -266,6 +268,17 @@ int deliver_mailbox(LOCAL_STATE state, USER_ATTR usr_attr, int *statusp)
/*
* Delegate mailbox delivery to another message transport.
*/
if (*var_mbox_transp_maps && transp_maps == 0)
transp_maps = maps_create(VAR_MBOX_TRANSP_MAPS, var_mbox_transp_maps,
DICT_FLAG_LOCK);
if (*var_mbox_transp_maps
&& (map_transport = maps_find(transp_maps, state.msg_attr.user,
DICT_FLAG_FIXED)) != 0) {
state.msg_attr.rcpt.offset = -1L;
*statusp = deliver_pass(MAIL_CLASS_PRIVATE, map_transport,
state.request, &state.msg_attr.rcpt);
return (YES);
}
if (*var_mailbox_transport) {
state.msg_attr.rcpt.offset = -1L;
*statusp = deliver_pass(MAIL_CLASS_PRIVATE, var_mailbox_transport,

View File

@ -84,6 +84,8 @@ int deliver_unknown(LOCAL_STATE state, USER_ATTR usr_attr)
char *myname = "deliver_unknown";
int status;
VSTRING *expand_luser;
static MAPS *transp_maps;
const char *map_transport;
/*
* Make verbose logging easier to understand.
@ -104,6 +106,15 @@ int deliver_unknown(LOCAL_STATE state, USER_ATTR usr_attr)
* The fall-back transport specifies a delivery machanism that handles
* users not found in the aliases or UNIX passwd databases.
*/
if (*var_fbck_transp_maps && transp_maps == 0)
transp_maps = maps_create(VAR_FBCK_TRANSP_MAPS, var_fbck_transp_maps,
DICT_FLAG_LOCK);
if (*var_fbck_transp_maps
&& (map_transport = maps_find(transp_maps, state.msg_attr.user,
DICT_FLAG_FIXED)) != 0) {
return (deliver_pass(MAIL_CLASS_PRIVATE, map_transport,
state.request, &state.msg_attr.rcpt));
}
if (*var_fallback_transport) {
state.msg_attr.rcpt.offset = -1L;
return (deliver_pass(MAIL_CLASS_PRIVATE, var_fallback_transport,

View File

@ -15,11 +15,21 @@
* when idle for a configurable amount of time, or after servicing a
* configurable number of requests; the master process spawns new processes
* on demand up to a configurable concurrency limit and/or periodically.
*
* The canonical service name is what we use internally, so that we correctly
* handle a request to "reload" after someone changes "smtp" into "25".
*
* We use the external service name from master.cf when reporting problems, so
* that the user can figure out what we are talking about. Of course we also
* include the canonical service name so that the UNIX-domain smtp service
* can be distinguished from the Internet smtp service.
*/
typedef struct MASTER_SERV {
int flags; /* status, features, etc. */
char *name; /* service endpoint name */
char *ext_name; /* service endpoint name (master.cf) */
char *name; /* service endpoint name (canonical) */
int type; /* UNIX-domain, INET, etc. */
time_t busy_warn_time; /* limit "all servers busy" warning */
int wakeup_time; /* wakeup interval */
int *listen_fd; /* incoming requests */
int listen_fd_count; /* nr of descriptors */
@ -54,6 +64,7 @@ typedef struct MASTER_SERV {
#define MASTER_FLAG_MARK (1<<1) /* garbage collection support */
#define MASTER_FLAG_CONDWAKE (1<<2) /* wake up if actually used */
#define MASTER_FLAG_INETHOST (1<<3) /* endpoint name specifies host */
#define MASTER_FLAG_LOCAL_ONLY (1<<4) /* no remote clients */
#define MASTER_THROTTLED(f) ((f)->flags & MASTER_FLAG_THROTTLE)

View File

@ -93,6 +93,7 @@ static void master_avail_event(int event, char *context)
void master_avail_listen(MASTER_SERV *serv)
{
char *myname = "master_avail_listen";
time_t now;
int n;
/*
@ -104,14 +105,22 @@ void master_avail_listen(MASTER_SERV *serv)
if (msg_verbose)
msg_info("%s: avail %d total %d max %d", myname,
serv->avail_proc, serv->total_proc, serv->max_proc);
if (serv->avail_proc < 1
&& MASTER_LIMIT_OK(serv->max_proc, serv->total_proc)
&& !MASTER_THROTTLED(serv)) {
if (msg_verbose)
msg_info("%s: enable events %s", myname, serv->name);
for (n = 0; n < serv->listen_fd_count; n++)
event_enable_read(serv->listen_fd[n], master_avail_event,
(char *) serv);
if (serv->avail_proc < 1 && !MASTER_THROTTLED(serv)) {
if (MASTER_LIMIT_OK(serv->max_proc, serv->total_proc)) {
if (msg_verbose)
msg_info("%s: enable events %s", myname, serv->name);
for (n = 0; n < serv->listen_fd_count; n++)
event_enable_read(serv->listen_fd[n], master_avail_event,
(char *) serv);
} else if ((serv->flags & MASTER_FLAG_LOCAL_ONLY) == 0
&& (now = event_time()) - serv->busy_warn_time > 1000) {
serv->busy_warn_time = now;
msg_warn("service \"%s\" (%s) has reached its process limit \"%d\": "
"new clients may experience noticeable delays",
serv->ext_name, serv->name, serv->max_proc);
msg_warn("to avoid this condition, increase the process count "
"in master.cf or reduce the service time per client");
}
}
}

View File

@ -131,6 +131,7 @@ void master_config(void)
serv->wakeup_time = entry->wakeup_time;
serv->max_proc = entry->max_proc;
serv->throttle_delay = entry->throttle_delay;
SWAP(char *, serv->ext_name, entry->ext_name);
SWAP(char *, serv->path, entry->path);
SWAP(ARGV *, serv->args, entry->args);
master_restart_service(serv);

View File

@ -86,6 +86,7 @@
#include <inet_addr_list.h>
#include <host_port.h>
#include <inet_addr_host.h>
#include <sock_addr.h>
/* Global library. */
@ -280,9 +281,15 @@ MASTER_SERV *get_master_ent()
*/
serv->flags = 0;
/*
* All servers busy warning timer.
*/
serv->busy_warn_time = 0;
/*
* Service name. Syntax is transport-specific.
*/
serv->ext_name = mystrdup(cp);
name = cp;
/*
@ -294,7 +301,7 @@ MASTER_SERV *get_master_ent()
if (STR_SAME(transport, MASTER_XPORT_NAME_INET)) {
if (!STR_SAME(saved_interfaces, var_inet_interfaces)) {
msg_warn("service %s: ignoring %s change",
name, VAR_INET_INTERFACES);
serv->ext_name, VAR_INET_INTERFACES);
msg_warn("to change %s, stop and start Postfix",
VAR_INET_INTERFACES);
}
@ -323,16 +330,27 @@ MASTER_SERV *get_master_ent()
serv->listen_fd_count = MASTER_INET_ADDRLIST(serv)->used;
}
MASTER_INET_PORT(serv) = mystrdup(port);
for (n = 0; /* see below */ ; n++) {
if (n >= MASTER_INET_ADDRLIST(serv)->used) {
serv->flags |= MASTER_FLAG_LOCAL_ONLY;
break;
}
if (!sock_addr_in_loopback(SOCK_ADDR_PTR(MASTER_INET_ADDRLIST(serv)->addrs + n)))
break;
}
} else if (STR_SAME(transport, MASTER_XPORT_NAME_UNIX)) {
serv->type = MASTER_SERV_TYPE_UNIX;
serv->listen_fd_count = 1;
serv->flags |= MASTER_FLAG_LOCAL_ONLY;
} else if (STR_SAME(transport, MASTER_XPORT_NAME_FIFO)) {
serv->type = MASTER_SERV_TYPE_FIFO;
serv->listen_fd_count = 1;
serv->flags |= MASTER_FLAG_LOCAL_ONLY;
#ifdef MASTER_SERV_TYPE_PASS
} else if (STR_SAME(transport, MASTER_XPORT_NAME_PASS)) {
serv->type = MASTER_SERV_TYPE_PASS;
serv->listen_fd_count = 1;
/* If this is a connection screener, remote clients are likely. */
#endif
} else {
fatal_with_context("bad transport type: %s", transport);
@ -354,7 +372,11 @@ MASTER_SERV *get_master_ent()
if (private)
fatal_with_context("inet service cannot be private");
#ifdef SNAPSHOT
/*
* Canonicalize endpoint names so that we correctly handle "reload"
* requests after someone changes "25" into "smtp" or vice versa.
*/
if (*host == 0)
host = 0;
/* Canonicalize numeric host and numeric or symbolic service. */
@ -378,7 +400,6 @@ MASTER_SERV *get_master_ent()
}
/* Bad service name? */
else
#endif
serv->name = mystrdup(name);
myfree(atmp);
} else if (serv->type == MASTER_SERV_TYPE_UNIX) {
@ -552,6 +573,7 @@ void free_master_ent(MASTER_SERV *serv)
}
if (serv->type == MASTER_SERV_TYPE_INET)
myfree(MASTER_INET_PORT(serv));
myfree(serv->ext_name);
myfree(serv->name);
myfree(serv->path);
argv_free(serv->args);

View File

@ -89,8 +89,8 @@ static void master_status_event(int event, char *context)
/* NOTREACHED */
default:
msg_warn("service %s: child (pid %d) sent partial status update (%d bytes)",
serv->name, stat.pid, n);
msg_warn("service %s(%s): child (pid %d) sent partial status update (%d bytes)",
serv->ext_name, serv->name, stat.pid, n);
return;
case sizeof(stat):

View File

@ -139,7 +139,8 @@ static void master_wakeup_timer_event(int unused_event, char *context)
msg_panic("%s: unknown service type: %d", myname, serv->type);
}
if (status < 0)
msg_warn("%s: service %s: %m", myname, serv->name);
msg_warn("%s: service %s(%s): %m",
myname, serv->ext_name, serv->name);
}
/*

View File

@ -43,10 +43,6 @@
VAR_LMTP_STARTTLS_TMOUT, DEF_LMTP_STARTTLS_TMOUT, &var_smtp_starttls_tmout, 1, 0,
#endif
VAR_SCACHE_PROTO_TMOUT, DEF_SCACHE_PROTO_TMOUT, &var_scache_proto_tmout, 1, 0,
VAR_MIN_BACKOFF_TIME, DEF_MIN_BACKOFF_TIME, &var_min_backoff_time, 1, 0,
VAR_MAX_BACKOFF_TIME, DEF_MAX_BACKOFF_TIME, &var_max_backoff_time, 1, 0,
VAR_MAX_QUEUE_TIME, DEF_MAX_QUEUE_TIME, &var_max_queue_time, 0, 0,
VAR_LMTP_DOTQ_THRESH, DEF_LMTP_DOTQ_THRESH, &var_smtp_dotq_thresh, 0, 0,
0,
};
static CONFIG_INT_TABLE lmtp_int_table[] = {

View File

@ -140,11 +140,6 @@
/* Never send EHLO at the start of an SMTP session.
/* .IP "\fBsmtp_defer_if_no_mx_address_found (no)\fR"
/* Defer mail delivery when no MX record resolves to an IP address.
/* .IP "\fBsmtp_dot_quit_workaround_threshold_time (3000s)\fR"
/* How long a message must be queued before the "." + QUIT bug
/* workaround is turned on for all deliveries; this limits the
/* number of repeated deliveries with servers or firewalls that
/* mis-implement END-OF-DATA + QUIT pipelining.
/* .IP "\fBsmtp_line_length_limit (990)\fR"
/* The maximal length of message header and body lines that Postfix
/* will send via SMTP.
@ -622,12 +617,6 @@ char *var_prop_extension;
bool var_smtp_sender_auth;
char *var_lmtp_tcp_port;
int var_scache_proto_tmout;
int var_smtp_dotq_thresh;
/* Workaround for "smtp_dot_quit_workaround_threshold_time = $name". */
int var_min_backoff_time;
int var_max_backoff_time;
int var_max_queue_time;
/*
* Global variables. smtp_errno is set by the address lookup routines and by

View File

@ -144,7 +144,6 @@ void smtp_chat_init(SMTP_SESSION *session)
void smtp_chat_reset(SMTP_SESSION *session)
{
if (session->history) {
argv_free(session->history);
session->history = 0;
@ -277,23 +276,44 @@ SMTP_RESP *smtp_chat_resp(SMTP_SESSION *session)
}
/*
* XXX Do not ignore garbage when ESMTP command pipelining is turned
* on. After sending ".<CR><LF>QUIT<CR><LF>", Postfix might recognize
* the server's 2XX QUIT reply as a 2XX END-OF-DATA reply after
* garbage, causing mail to be lost. Instead, make a long jump so
* that all recipients of multi-recipient mail get consistent
* treatment.
* XXX Do not simply ignore garbage in the server reply when ESMTP
* command pipelining is turned on. For example, after sending
* ".<CR><LF>QUIT<CR><LF>" and receiving garbage followed by a
* legitimate 2XX reply, Postfix recognizes the server's QUIT reply
* as the END-OF-DATA reply after garbage, causing mail to be lost.
*
* Without the ability to store per-domain status information in queue
* files, automatic workarounds are problematic:
*
* - Automatically deferring delivery creates a "repeated delivery"
* problem when garbage arrives after the DATA stage. Without the
* workaround, Postfix delivers only once.
*
* - Automatically deferring delivery creates a "no delivery" problem
* when the garbage arrives before the DATA stage. Without the
* workaround, mail might still get through.
*
* - Automatically turning off pipelining for delayed mail affects
* deliveries to correctly implemented servers, and may also affect
* delivery of large mailing lists.
*
* So we leave the decision with the administrator, but we don't force
* them to take action, like we would with automatic deferral. If
* loss of mail is not acceptable then they can turn off pipelining
* for specific sites, or they can turn off pipelining globally when
* they find that there are just too many broken sites.
*/
session->error_mask |= MAIL_ERROR_PROTOCOL;
if (session->features & SMTP_FEATURE_PIPELINING) {
msg_warn("non-%s response from %s: %s",
(session->state->misc_flags &
SMTP_MISC_FLAG_USE_LMTP) ? "LMTP" : "ESMTP",
session->namaddrport, STR(session->buffer));
msg_warn("consider turning off pipelining selectively with %s",
msg_warn("non-%s response from %s: %.100s",
(session->state->misc_flags & SMTP_MISC_FLAG_USE_LMTP) ?
VAR_LMTP_EHLO_DIS_WORDS : VAR_SMTP_EHLO_DIS_MAPS);
vstream_longjmp(session->stream, SMTP_ERR_PROTO);
"LMTP" : "ESMTP", session->namaddrport,
STR(session->buffer));
if (var_helpful_warnings)
msg_warn("to prevent loss of mail, turn off command pipelining "
"for %s with the %s parameter", session->addr,
(session->state->misc_flags & SMTP_MISC_FLAG_USE_LMTP) ?
VAR_LMTP_EHLO_DIS_MAPS : VAR_SMTP_EHLO_DIS_MAPS);
}
}

View File

@ -44,10 +44,6 @@
VAR_SMTP_STARTTLS_TMOUT, DEF_SMTP_STARTTLS_TMOUT, &var_smtp_starttls_tmout, 1, 0,
#endif
VAR_SCACHE_PROTO_TMOUT, DEF_SCACHE_PROTO_TMOUT, &var_scache_proto_tmout, 1, 0,
VAR_MIN_BACKOFF_TIME, DEF_MIN_BACKOFF_TIME, &var_min_backoff_time, 1, 0,
VAR_MAX_BACKOFF_TIME, DEF_MAX_BACKOFF_TIME, &var_max_backoff_time, 1, 0,
VAR_MAX_QUEUE_TIME, DEF_MAX_QUEUE_TIME, &var_max_queue_time, 0, 0,
VAR_SMTP_DOTQ_THRESH, DEF_SMTP_DOTQ_THRESH, &var_smtp_dotq_thresh, 0, 0,
0,
};
static CONFIG_INT_TABLE smtp_int_table[] = {

View File

@ -927,10 +927,7 @@ static int smtp_loop(SMTP_STATE *state, NOCLOBBER int send_state,
(recv_state < send_state || recv_rcpt != send_rcpt)
#define SENDER_IN_WAIT_STATE \
(send_state == SMTP_STATE_DOT || send_state == SMTP_STATE_LAST \
|| (recv_state == SMTP_STATE_DOT && send_state == SMTP_STATE_QUIT \
&& request->msg_stats.incoming_arrival.tv_sec \
<= vstream_ftime(session->stream) - var_smtp_dotq_thresh))
(send_state == SMTP_STATE_DOT || send_state == SMTP_STATE_LAST)
#define SENDING_MAIL \
(recv_state <= SMTP_STATE_DOT)