mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-29 13:18:12 +00:00
postfix-3.3-20170728
This commit is contained in:
parent
e655208749
commit
5204816be8
@ -23072,3 +23072,26 @@ Apologies for any names omitted.
|
|||||||
Cleanup: don't log the 'delay_dotcrlf' workaround for CISCO
|
Cleanup: don't log the 'delay_dotcrlf' workaround for CISCO
|
||||||
PIX bugs before the smtp_pix_workaround_threshold_time has
|
PIX bugs before the smtp_pix_workaround_threshold_time has
|
||||||
passed. Reported by Ralf Hildebrandt. File: smtp/smtp_proto.c.
|
passed. Reported by Ralf Hildebrandt. File: smtp/smtp_proto.c.
|
||||||
|
|
||||||
|
20170727
|
||||||
|
|
||||||
|
Cleanup: the postconf command now uses mechanically-generated
|
||||||
|
lists of DBMS parameter names. This eliminates false positives
|
||||||
|
with mysql databases. Files: postconf/Makefile.in,
|
||||||
|
postconf/extract_cfg.sh, postconf/postconf_dbms.c.
|
||||||
|
|
||||||
|
Cleanup: removed `#if 0/#endif' dead code from dict_ldap.c,
|
||||||
|
to avoid spurious output from the extract_cfg.sh parameter name
|
||||||
|
extraction tool.
|
||||||
|
|
||||||
|
20170728
|
||||||
|
|
||||||
|
Documentation: added warnings that "enable_original_recipient
|
||||||
|
= no" prevents Postfix from saving the address verification
|
||||||
|
result under the original probe destination address, if it
|
||||||
|
is changed by aliasing or canonical mapping. Files:
|
||||||
|
proto/ADDRESS_VERIFICATION_README.html, proto/postconf.proto.
|
||||||
|
|
||||||
|
Cleanup: don't store an empty address in the verify cache
|
||||||
|
(this could happen with "enable_original_recipient = no").
|
||||||
|
File: global/verify.c.
|
||||||
|
@ -47,11 +47,9 @@ could include the Postfix MTA itself, or some remote MTAs (SMTP interruptus).
|
|||||||
Probe messages are like normal mail, except that they are never delivered,
|
Probe messages are like normal mail, except that they are never delivered,
|
||||||
deferred or bounced; probe messages are always discarded.
|
deferred or bounced; probe messages are always discarded.
|
||||||
|
|
||||||
|
|
||||||
probe Postfix
|
probe Postfix
|
||||||
message -> mail
|
message -> mail
|
||||||
queue
|
Postfix Postfix -> queue
|
||||||
Postfix Postfix ->
|
|
||||||
Internet -> SMTP <-> verify
|
Internet -> SMTP <-> verify
|
||||||
server server |
|
server server |
|
||||||
v
|
v
|
||||||
@ -62,7 +60,6 @@ deferred or bounced; probe messages are always discarded.
|
|||||||
^
|
^
|
||||||
|
|
|
|
||||||
v
|
v
|
||||||
|
|
||||||
|
|
||||||
Address
|
Address
|
||||||
verification
|
verification
|
||||||
@ -167,6 +164,11 @@ same address repeatedly.
|
|||||||
# Postfix 2.6 and later privacy feature.
|
# Postfix 2.6 and later privacy feature.
|
||||||
# unverified_recipient_reject_reason = Address lookup failed
|
# unverified_recipient_reject_reason = Address lookup failed
|
||||||
|
|
||||||
|
# Do not set enable_original_recipient=no. This prevents Postfix
|
||||||
|
# from saving the recipient address verification result under
|
||||||
|
# the original address, when the address verification probe
|
||||||
|
# message goes through address aliasing or canonical mapping.
|
||||||
|
|
||||||
The "reject_unknown_recipient_domain" restriction blocks mail for non-existent
|
The "reject_unknown_recipient_domain" restriction blocks mail for non-existent
|
||||||
domains. Putting this before "reject_unverified_recipient" avoids the overhead
|
domains. Putting this before "reject_unverified_recipient" avoids the overhead
|
||||||
of generating unnecessary probe messages.
|
of generating unnecessary probe messages.
|
||||||
@ -207,6 +209,11 @@ verification for specific domains that often appear in forged email.
|
|||||||
# Note 2: Avoid hash files here. Use btree or lmdb instead.
|
# Note 2: Avoid hash files here. Use btree or lmdb instead.
|
||||||
address_verify_map = btree:/var/lib/postfix/verify
|
address_verify_map = btree:/var/lib/postfix/verify
|
||||||
|
|
||||||
|
# Do not set enable_original_recipient=no. This prevents Postfix
|
||||||
|
# from saving the sender address verification result under the
|
||||||
|
# original address, when the address verification probe message
|
||||||
|
# goes through address aliasing or canonical mapping.
|
||||||
|
|
||||||
/etc/postfix/sender_access:
|
/etc/postfix/sender_access:
|
||||||
# Don't do this when you handle lots of email.
|
# Don't do this when you handle lots of email.
|
||||||
aol.com reject_unverified_sender
|
aol.com reject_unverified_sender
|
||||||
|
@ -27,7 +27,8 @@ Wish list:
|
|||||||
with a compatibility_level safety net.
|
with a compatibility_level safety net.
|
||||||
|
|
||||||
In the bounce daemon, set util_utf8_enable if returning an
|
In the bounce daemon, set util_utf8_enable if returning an
|
||||||
SMTPUTF8 message.
|
SMTPUTF8 message. This is wrong; if SMTPUTF8 is disabled,
|
||||||
|
then Postfix must not turn it on.
|
||||||
|
|
||||||
Add a header_body_checks extension callback in smtp_proto.c
|
Add a header_body_checks extension callback in smtp_proto.c
|
||||||
that implements the PASS action.
|
that implements the PASS action.
|
||||||
|
@ -298,6 +298,11 @@ the same address repeatedly. </p>
|
|||||||
...
|
...
|
||||||
# Postfix 2.6 and later privacy feature.
|
# Postfix 2.6 and later privacy feature.
|
||||||
# <a href="postconf.5.html#unverified_recipient_reject_reason">unverified_recipient_reject_reason</a> = Address lookup failed
|
# <a href="postconf.5.html#unverified_recipient_reject_reason">unverified_recipient_reject_reason</a> = Address lookup failed
|
||||||
|
|
||||||
|
# Do not set <a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a>=no. This prevents Postfix
|
||||||
|
# from saving the recipient address verification result under
|
||||||
|
# the original address, when the address verification probe
|
||||||
|
# message goes through address aliasing or canonical mapping.
|
||||||
</pre>
|
</pre>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
@ -348,6 +353,11 @@ in forged email. </p>
|
|||||||
# Note 1: Be sure to read the "<a href="#caching">Caching</a>" section below!
|
# Note 1: Be sure to read the "<a href="#caching">Caching</a>" section below!
|
||||||
# Note 2: Avoid hash files here. Use btree or lmdb instead.
|
# Note 2: Avoid hash files here. Use btree or lmdb instead.
|
||||||
<a href="postconf.5.html#address_verify_map">address_verify_map</a> = <a href="DATABASE_README.html#types">btree</a>:/var/lib/postfix/verify
|
<a href="postconf.5.html#address_verify_map">address_verify_map</a> = <a href="DATABASE_README.html#types">btree</a>:/var/lib/postfix/verify
|
||||||
|
|
||||||
|
# Do not set <a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a>=no. This prevents Postfix
|
||||||
|
# from saving the sender address verification result under the
|
||||||
|
# original address, when the address verification probe message
|
||||||
|
# goes through address aliasing or canonical mapping.
|
||||||
|
|
||||||
/etc/postfix/sender_access:
|
/etc/postfix/sender_access:
|
||||||
# Don't do this when you handle lots of email.
|
# Don't do this when you handle lots of email.
|
||||||
|
@ -3203,22 +3203,39 @@ name changes. </p>
|
|||||||
<DT><b><a name="enable_original_recipient">enable_original_recipient</a>
|
<DT><b><a name="enable_original_recipient">enable_original_recipient</a>
|
||||||
(default: yes)</b></DT><DD>
|
(default: yes)</b></DT><DD>
|
||||||
|
|
||||||
<p> Enable support for the X-Original-To message header. This header
|
<p> Enable support to save the original address if a recipient address
|
||||||
is needed for multi-recipient mailboxes. </p>
|
is rewritten to a different address (for example with an alias or with
|
||||||
|
canonical mapping). </p>
|
||||||
|
|
||||||
<p> When this parameter is set to yes, the <a href="cleanup.8.html">cleanup(8)</a> daemon performs
|
<p> The original recipient address is used as follows: </p>
|
||||||
duplicate elimination on distinct pairs of (original recipient,
|
|
||||||
rewritten recipient), and generates non-empty original recipient
|
|
||||||
queue file records. </p>
|
|
||||||
|
|
||||||
<p> When this parameter is set to no, the <a href="cleanup.8.html">cleanup(8)</a> daemon performs
|
<dl>
|
||||||
|
|
||||||
|
<dt> X-Original-To message header </dt> <dd> When this parameter
|
||||||
|
is set to <b>yes</b>, the original recipient address is stored in
|
||||||
|
the X-Original-To message header. This header is needed to distinguish
|
||||||
|
between different recipients that share the same mailbox. </dd>
|
||||||
|
|
||||||
|
<dt> Recipient deduplication </dt> <dd> When this parameter is set
|
||||||
|
to <b>yes</b>, the <a href="cleanup.8.html">cleanup(8)</a> daemon performs duplicate elimination
|
||||||
|
on distinct pairs of (original recipient, rewritten recipient), and
|
||||||
|
generates non-empty original recipient queue file records. When
|
||||||
|
this parameter is set to <b>no</b>, the <a href="cleanup.8.html">cleanup(8)</a> daemon performs
|
||||||
duplicate elimination on the rewritten recipient address only, and
|
duplicate elimination on the rewritten recipient address only, and
|
||||||
generates empty original recipient queue file records. </p>
|
generates empty original recipient queue file records. </dd>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.1 and later. With Postfix
|
<dt>Address verification </dt> <dd> When this parameter is set to
|
||||||
version 2.0, support for the X-Original-To message header is always turned
|
<b>yes</b>, an addres verification result is stored under both the
|
||||||
on. Postfix versions before 2.0 have no support for the X-Original-To
|
original and the final recipient address. When this parameter is
|
||||||
message header. </p>
|
set to <b>no</b>, an address verification result is stored only
|
||||||
|
under the final recipient address. </dd>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p> This feature is available in Postfix 2.1 and later. Postfix
|
||||||
|
version 2.0 behaves as if this parameter is always set to <b>yes</b>.
|
||||||
|
Postfix versions before 2.0 have no support for the original recipient
|
||||||
|
address. </p>
|
||||||
|
|
||||||
|
|
||||||
</DD>
|
</DD>
|
||||||
@ -15258,8 +15275,9 @@ numerical response code when an address probe failed due to a
|
|||||||
temporary problem (default: 450). <br> The
|
temporary problem (default: 450). <br> The
|
||||||
<a href="postconf.5.html#unverified_recipient_tempfail_action">unverified_recipient_tempfail_action</a> parameter specifies the action
|
<a href="postconf.5.html#unverified_recipient_tempfail_action">unverified_recipient_tempfail_action</a> parameter specifies the action
|
||||||
after address probe failure due to a temporary problem (default:
|
after address probe failure due to a temporary problem (default:
|
||||||
<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>). <br> This feature is available in Postfix 2.1
|
<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>). <br> This feature breaks for aliased addresses
|
||||||
and later. </dd>
|
when <a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a> is set to "no". <br> This feature
|
||||||
|
is available in Postfix 2.1 and later. </dd>
|
||||||
|
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
@ -16002,8 +16020,9 @@ change into 550 when you are confident that it is safe to do so).
|
|||||||
code when an address probe failed due to a temporary problem
|
code when an address probe failed due to a temporary problem
|
||||||
(default: 450). <br> The <a href="postconf.5.html#unverified_sender_tempfail_action">unverified_sender_tempfail_action</a> parameter
|
(default: 450). <br> The <a href="postconf.5.html#unverified_sender_tempfail_action">unverified_sender_tempfail_action</a> parameter
|
||||||
specifies the action after address probe failure due to a temporary
|
specifies the action after address probe failure due to a temporary
|
||||||
problem (default: <a href="postconf.5.html#defer_if_permit">defer_if_permit</a>). <br> This feature is available
|
problem (default: <a href="postconf.5.html#defer_if_permit">defer_if_permit</a>). <br> This feature breaks for
|
||||||
in Postfix 2.1 and later. </dd>
|
aliased addresses when <a href="postconf.5.html#enable_original_recipient">enable_original_recipient</a> is set to "no".
|
||||||
|
<br> This feature is avaiable in Postfix 2.1 and later. </dd>
|
||||||
|
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
# To view the formatted manual page of this file, type:
|
||||||
|
# POSTFIXSOURCE/mantools/srctoman - makedefs | nroff -man
|
||||||
|
|
||||||
#++
|
#++
|
||||||
# NAME
|
# NAME
|
||||||
# makedefs 1
|
# makedefs 1
|
||||||
|
@ -2007,22 +2007,39 @@ name changes.
|
|||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.9 and later.
|
This feature is available in Postfix 2.9 and later.
|
||||||
.SH enable_original_recipient (default: yes)
|
.SH enable_original_recipient (default: yes)
|
||||||
Enable support for the X\-Original\-To message header. This header
|
Enable support to save the original address if a recipient address
|
||||||
is needed for multi\-recipient mailboxes.
|
is rewritten to a different address (for example with an alias or with
|
||||||
|
canonical mapping).
|
||||||
.PP
|
.PP
|
||||||
When this parameter is set to yes, the \fBcleanup\fR(8) daemon performs
|
The original recipient address is used as follows:
|
||||||
duplicate elimination on distinct pairs of (original recipient,
|
.IP "X\-Original\-To message header"
|
||||||
rewritten recipient), and generates non\-empty original recipient
|
When this parameter
|
||||||
queue file records.
|
is set to \fByes\fR, the original recipient address is stored in
|
||||||
.PP
|
the X\-Original\-To message header. This header is needed to distinguish
|
||||||
When this parameter is set to no, the \fBcleanup\fR(8) daemon performs
|
between different recipients that share the same mailbox.
|
||||||
|
.br
|
||||||
|
.IP "Recipient deduplication"
|
||||||
|
When this parameter is set
|
||||||
|
to \fByes\fR, the \fBcleanup\fR(8) daemon performs duplicate elimination
|
||||||
|
on distinct pairs of (original recipient, rewritten recipient), and
|
||||||
|
generates non\-empty original recipient queue file records. When
|
||||||
|
this parameter is set to \fBno\fR, the \fBcleanup\fR(8) daemon performs
|
||||||
duplicate elimination on the rewritten recipient address only, and
|
duplicate elimination on the rewritten recipient address only, and
|
||||||
generates empty original recipient queue file records.
|
generates empty original recipient queue file records.
|
||||||
|
.br
|
||||||
|
.IP "Address verification"
|
||||||
|
When this parameter is set to
|
||||||
|
\fByes\fR, an addres verification result is stored under both the
|
||||||
|
original and the final recipient address. When this parameter is
|
||||||
|
set to \fBno\fR, an address verification result is stored only
|
||||||
|
under the final recipient address.
|
||||||
|
.br
|
||||||
|
.br
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.1 and later. With Postfix
|
This feature is available in Postfix 2.1 and later. Postfix
|
||||||
version 2.0, support for the X\-Original\-To message header is always turned
|
version 2.0 behaves as if this parameter is always set to \fByes\fR.
|
||||||
on. Postfix versions before 2.0 have no support for the X\-Original\-To
|
Postfix versions before 2.0 have no support for the original recipient
|
||||||
message header.
|
address.
|
||||||
.SH error_notice_recipient (default: postmaster)
|
.SH error_notice_recipient (default: postmaster)
|
||||||
The recipient of postmaster notifications about mail delivery
|
The recipient of postmaster notifications about mail delivery
|
||||||
problems that are caused by policy, resource, software or protocol
|
problems that are caused by policy, resource, software or protocol
|
||||||
@ -10254,8 +10271,11 @@ unverified_recipient_tempfail_action parameter specifies the action
|
|||||||
after address probe failure due to a temporary problem (default:
|
after address probe failure due to a temporary problem (default:
|
||||||
defer_if_permit).
|
defer_if_permit).
|
||||||
.br
|
.br
|
||||||
This feature is available in Postfix 2.1
|
This feature breaks for aliased addresses
|
||||||
and later.
|
when enable_original_recipient is set to "no".
|
||||||
|
.br
|
||||||
|
This feature
|
||||||
|
is available in Postfix 2.1 and later.
|
||||||
.br
|
.br
|
||||||
.br
|
.br
|
||||||
.PP
|
.PP
|
||||||
@ -10834,8 +10854,10 @@ The unverified_sender_tempfail_action parameter
|
|||||||
specifies the action after address probe failure due to a temporary
|
specifies the action after address probe failure due to a temporary
|
||||||
problem (default: defer_if_permit).
|
problem (default: defer_if_permit).
|
||||||
.br
|
.br
|
||||||
This feature is available
|
This feature breaks for
|
||||||
in Postfix 2.1 and later.
|
aliased addresses when enable_original_recipient is set to "no".
|
||||||
|
.br
|
||||||
|
This feature is avaiable in Postfix 2.1 and later.
|
||||||
.br
|
.br
|
||||||
.br
|
.br
|
||||||
.PP
|
.PP
|
||||||
|
@ -298,6 +298,11 @@ the same address repeatedly. </p>
|
|||||||
...
|
...
|
||||||
# Postfix 2.6 and later privacy feature.
|
# Postfix 2.6 and later privacy feature.
|
||||||
# unverified_recipient_reject_reason = Address lookup failed
|
# unverified_recipient_reject_reason = Address lookup failed
|
||||||
|
|
||||||
|
# Do not set enable_original_recipient=no. This prevents Postfix
|
||||||
|
# from saving the recipient address verification result under
|
||||||
|
# the original address, when the address verification probe
|
||||||
|
# message goes through address aliasing or canonical mapping.
|
||||||
</pre>
|
</pre>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
@ -348,6 +353,11 @@ in forged email. </p>
|
|||||||
# Note 1: Be sure to read the "<a href="#caching">Caching</a>" section below!
|
# Note 1: Be sure to read the "<a href="#caching">Caching</a>" section below!
|
||||||
# Note 2: Avoid hash files here. Use btree or lmdb instead.
|
# Note 2: Avoid hash files here. Use btree or lmdb instead.
|
||||||
address_verify_map = btree:/var/lib/postfix/verify
|
address_verify_map = btree:/var/lib/postfix/verify
|
||||||
|
|
||||||
|
# Do not set enable_original_recipient=no. This prevents Postfix
|
||||||
|
# from saving the sender address verification result under the
|
||||||
|
# original address, when the address verification probe message
|
||||||
|
# goes through address aliasing or canonical mapping.
|
||||||
|
|
||||||
/etc/postfix/sender_access:
|
/etc/postfix/sender_access:
|
||||||
# Don't do this when you handle lots of email.
|
# Don't do this when you handle lots of email.
|
||||||
|
@ -1402,22 +1402,39 @@ for showq(8) queue displays. </p>
|
|||||||
|
|
||||||
%PARAM enable_original_recipient yes
|
%PARAM enable_original_recipient yes
|
||||||
|
|
||||||
<p> Enable support for the X-Original-To message header. This header
|
<p> Enable support to save the original address if a recipient address
|
||||||
is needed for multi-recipient mailboxes. </p>
|
is rewritten to a different address (for example with an alias or with
|
||||||
|
canonical mapping). </p>
|
||||||
|
|
||||||
<p> When this parameter is set to yes, the cleanup(8) daemon performs
|
<p> The original recipient address is used as follows: </p>
|
||||||
duplicate elimination on distinct pairs of (original recipient,
|
|
||||||
rewritten recipient), and generates non-empty original recipient
|
|
||||||
queue file records. </p>
|
|
||||||
|
|
||||||
<p> When this parameter is set to no, the cleanup(8) daemon performs
|
<dl>
|
||||||
|
|
||||||
|
<dt> X-Original-To message header </dt> <dd> When this parameter
|
||||||
|
is set to <b>yes</b>, the original recipient address is stored in
|
||||||
|
the X-Original-To message header. This header is needed to distinguish
|
||||||
|
between different recipients that share the same mailbox. </dd>
|
||||||
|
|
||||||
|
<dt> Recipient deduplication </dt> <dd> When this parameter is set
|
||||||
|
to <b>yes</b>, the cleanup(8) daemon performs duplicate elimination
|
||||||
|
on distinct pairs of (original recipient, rewritten recipient), and
|
||||||
|
generates non-empty original recipient queue file records. When
|
||||||
|
this parameter is set to <b>no</b>, the cleanup(8) daemon performs
|
||||||
duplicate elimination on the rewritten recipient address only, and
|
duplicate elimination on the rewritten recipient address only, and
|
||||||
generates empty original recipient queue file records. </p>
|
generates empty original recipient queue file records. </dd>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.1 and later. With Postfix
|
<dt>Address verification </dt> <dd> When this parameter is set to
|
||||||
version 2.0, support for the X-Original-To message header is always turned
|
<b>yes</b>, an addres verification result is stored under both the
|
||||||
on. Postfix versions before 2.0 have no support for the X-Original-To
|
original and the final recipient address. When this parameter is
|
||||||
message header. </p>
|
set to <b>no</b>, an address verification result is stored only
|
||||||
|
under the final recipient address. </dd>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p> This feature is available in Postfix 2.1 and later. Postfix
|
||||||
|
version 2.0 behaves as if this parameter is always set to <b>yes</b>.
|
||||||
|
Postfix versions before 2.0 have no support for the original recipient
|
||||||
|
address. </p>
|
||||||
|
|
||||||
%PARAM export_environment see "postconf -d" output
|
%PARAM export_environment see "postconf -d" output
|
||||||
|
|
||||||
@ -6121,8 +6138,9 @@ numerical response code when an address probe failed due to a
|
|||||||
temporary problem (default: 450). <br> The
|
temporary problem (default: 450). <br> The
|
||||||
unverified_recipient_tempfail_action parameter specifies the action
|
unverified_recipient_tempfail_action parameter specifies the action
|
||||||
after address probe failure due to a temporary problem (default:
|
after address probe failure due to a temporary problem (default:
|
||||||
defer_if_permit). <br> This feature is available in Postfix 2.1
|
defer_if_permit). <br> This feature breaks for aliased addresses
|
||||||
and later. </dd>
|
when enable_original_recipient is set to "no". <br> This feature
|
||||||
|
is available in Postfix 2.1 and later. </dd>
|
||||||
|
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
@ -6590,8 +6608,9 @@ change into 550 when you are confident that it is safe to do so).
|
|||||||
code when an address probe failed due to a temporary problem
|
code when an address probe failed due to a temporary problem
|
||||||
(default: 450). <br> The unverified_sender_tempfail_action parameter
|
(default: 450). <br> The unverified_sender_tempfail_action parameter
|
||||||
specifies the action after address probe failure due to a temporary
|
specifies the action after address probe failure due to a temporary
|
||||||
problem (default: defer_if_permit). <br> This feature is available
|
problem (default: defer_if_permit). <br> This feature breaks for
|
||||||
in Postfix 2.1 and later. </dd>
|
aliased addresses when enable_original_recipient is set to "no".
|
||||||
|
<br> This feature is avaiable in Postfix 2.1 and later. </dd>
|
||||||
|
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
|
@ -1352,10 +1352,10 @@ static const char *dict_ldap_lookup(DICT *dict, const char *name)
|
|||||||
* Optionally fold the key.
|
* Optionally fold the key.
|
||||||
*/
|
*/
|
||||||
if (dict->flags & DICT_FLAG_FOLD_FIX) {
|
if (dict->flags & DICT_FLAG_FOLD_FIX) {
|
||||||
if (dict->fold_buf == 0)
|
if (dict->fold_buf == 0)
|
||||||
dict->fold_buf = vstring_alloc(10);
|
dict->fold_buf = vstring_alloc(10);
|
||||||
vstring_strcpy(dict->fold_buf, name);
|
vstring_strcpy(dict->fold_buf, name);
|
||||||
name = lowercase(vstring_str(dict->fold_buf));
|
name = lowercase(vstring_str(dict->fold_buf));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1770,17 +1770,9 @@ DICT *dict_ldap_open(const char *ldapsource, int open_flags, int dict_flags)
|
|||||||
* set.
|
* set.
|
||||||
*/
|
*/
|
||||||
dict_ldap->timeout = cfg_get_int(dict_ldap->parser, "timeout", 10, 0, 0);
|
dict_ldap->timeout = cfg_get_int(dict_ldap->parser, "timeout", 10, 0, 0);
|
||||||
|
dict_ldap->query =
|
||||||
#if 0 /* No benefit from changing
|
cfg_get_str(dict_ldap->parser, "query_filter",
|
||||||
* this to match the
|
"(mailacceptinggeneralid=%s)", 0, 0);
|
||||||
* MySQL/PGSQL syntax */
|
|
||||||
if ((dict_ldap->query =
|
|
||||||
cfg_get_str(dict_ldap->parser, "query", 0, 0, 0)) == 0)
|
|
||||||
#endif
|
|
||||||
dict_ldap->query =
|
|
||||||
cfg_get_str(dict_ldap->parser, "query_filter",
|
|
||||||
"(mailacceptinggeneralid=%s)", 0, 0);
|
|
||||||
|
|
||||||
if ((dict_ldap->result_format =
|
if ((dict_ldap->result_format =
|
||||||
cfg_get_str(dict_ldap->parser, "result_format", 0, 0, 0)) == 0)
|
cfg_get_str(dict_ldap->parser, "result_format", 0, 0, 0)) == 0)
|
||||||
dict_ldap->result_format =
|
dict_ldap->result_format =
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
* Patches change both the patchlevel and the release date. Snapshots have no
|
* Patches change both the patchlevel and the release date. Snapshots have no
|
||||||
* patchlevel; they change the release date only.
|
* patchlevel; they change the release date only.
|
||||||
*/
|
*/
|
||||||
#define MAIL_RELEASE_DATE "20170722"
|
#define MAIL_RELEASE_DATE "20170728"
|
||||||
#define MAIL_VERSION_NUMBER "3.3"
|
#define MAIL_VERSION_NUMBER "3.3"
|
||||||
|
|
||||||
#ifdef SNAPSHOT
|
#ifdef SNAPSHOT
|
||||||
|
@ -100,12 +100,12 @@ int verify_append(const char *queue_id, MSG_STATS *stats,
|
|||||||
* XXX vrfy_stat is competely redundant because of dsn.
|
* XXX vrfy_stat is competely redundant because of dsn.
|
||||||
*/
|
*/
|
||||||
if (var_verify_neg_cache || vrfy_stat == DEL_RCPT_STAT_OK) {
|
if (var_verify_neg_cache || vrfy_stat == DEL_RCPT_STAT_OK) {
|
||||||
req_stat = verify_clnt_update(recipient->orig_addr, vrfy_stat,
|
req_stat = verify_clnt_update(recipient->address, vrfy_stat,
|
||||||
my_dsn.reason);
|
my_dsn.reason);
|
||||||
/* Two verify updates for one verify request! */
|
/* Two verify updates for one verify request! */
|
||||||
if (req_stat == VRFY_STAT_OK
|
if (req_stat == VRFY_STAT_OK && recipient->orig_addr[0]
|
||||||
&& strcasecmp_utf8(recipient->address, recipient->orig_addr) != 0)
|
&& strcasecmp_utf8(recipient->address, recipient->orig_addr) != 0)
|
||||||
req_stat = verify_clnt_update(recipient->address, vrfy_stat,
|
req_stat = verify_clnt_update(recipient->orig_addr, vrfy_stat,
|
||||||
my_dsn.reason);
|
my_dsn.reason);
|
||||||
} else {
|
} else {
|
||||||
my_dsn.action = "undeliverable-but-not-cached";
|
my_dsn.action = "undeliverable-but-not-cached";
|
||||||
|
@ -15,7 +15,9 @@ TESTPROG=
|
|||||||
MAKES = bool_table.h bool_vars.h int_table.h int_vars.h str_table.h \
|
MAKES = bool_table.h bool_vars.h int_table.h int_vars.h str_table.h \
|
||||||
str_vars.h time_table.h time_vars.h raw_table.h raw_vars.h \
|
str_vars.h time_table.h time_vars.h raw_table.h raw_vars.h \
|
||||||
nint_table.h nint_vars.h nbool_table.h nbool_vars.h long_table.h \
|
nint_table.h nint_vars.h nbool_table.h nbool_vars.h long_table.h \
|
||||||
long_vars.h str_fn_table.h str_fn_vars.h
|
long_vars.h str_fn_table.h str_fn_vars.h
|
||||||
|
DB_MAKES= pcf_ldap_suffixes.h pcf_memcache_suffixes.h pcf_mysql_suffixes.h \
|
||||||
|
pcf_pgsql_suffixes.h pcf_sqlite_suffixes.h
|
||||||
TEST_TMP= main.cf master.cf test*.tmp
|
TEST_TMP= main.cf master.cf test*.tmp
|
||||||
DUMMIES = makes_dummy # for "make -j"
|
DUMMIES = makes_dummy # for "make -j"
|
||||||
PROG = postconf
|
PROG = postconf
|
||||||
@ -67,6 +69,22 @@ makes_dummy: $(INC_DIR)/mail_params.h ../global/mail_params.c extract.awk Makefi
|
|||||||
$(AWK) -f extract.awk ../*/*.c | $(SHELL)
|
$(AWK) -f extract.awk ../*/*.c | $(SHELL)
|
||||||
touch makes_dummy
|
touch makes_dummy
|
||||||
|
|
||||||
|
$(DB_MAKES): extract_cfg.sh Makefile.in
|
||||||
|
|
||||||
|
pcf_ldap_suffixes.h: ../global/dict_ldap.c
|
||||||
|
sh extract_cfg.sh -d ../global/dict_ldap.c > $@
|
||||||
|
|
||||||
|
pcf_memcache_suffixes.h: ../global/dict_memcache.c
|
||||||
|
sh extract_cfg.sh -d ../global/dict_memcache.c > $@
|
||||||
|
|
||||||
|
pcf_mysql_suffixes.h: ../global/dict_mysql.c
|
||||||
|
sh extract_cfg.sh -d -s ../global/dict_mysql.c > $@
|
||||||
|
|
||||||
|
pcf_pgsql_suffixes.h: ../global/dict_pgsql.c
|
||||||
|
sh extract_cfg.sh -d -s ../global/dict_pgsql.c > $@
|
||||||
|
|
||||||
|
pcf_sqlite_suffixes.h: ../global/dict_sqlite.c
|
||||||
|
sh extract_cfg.sh -d -s ../global/dict_sqlite.c > $@
|
||||||
|
|
||||||
# Define two parameters with smtpd_restriction_classes. One will be ignored.
|
# Define two parameters with smtpd_restriction_classes. One will be ignored.
|
||||||
|
|
||||||
@ -899,7 +917,7 @@ lint:
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *core $(PROG) $(TESTPROG) junk $(MAKES) $(AUTOS) $(DUMMIES) \
|
rm -f *.o *core $(PROG) $(TESTPROG) junk $(MAKES) $(AUTOS) $(DUMMIES) \
|
||||||
$(TEST_TMP)
|
$(TEST_TMP) $(DB_MAKES)
|
||||||
rm -rf printfck
|
rm -rf printfck
|
||||||
|
|
||||||
tidy: clean
|
tidy: clean
|
||||||
@ -1009,8 +1027,13 @@ postconf_dbms.o: ../../include/sys_defs.h
|
|||||||
postconf_dbms.o: ../../include/vbuf.h
|
postconf_dbms.o: ../../include/vbuf.h
|
||||||
postconf_dbms.o: ../../include/vstream.h
|
postconf_dbms.o: ../../include/vstream.h
|
||||||
postconf_dbms.o: ../../include/vstring.h
|
postconf_dbms.o: ../../include/vstring.h
|
||||||
postconf_dbms.o: postconf.h
|
postconf_dbms.o: pcf_ldap_suffixes.h
|
||||||
|
postconf_dbms.o: pcf_memcache_suffixes.h
|
||||||
|
postconf_dbms.o: pcf_mysql_suffixes.h
|
||||||
|
postconf_dbms.o: pcf_pgsql_suffixes.h
|
||||||
postconf_dbms.o: postconf_dbms.c
|
postconf_dbms.o: postconf_dbms.c
|
||||||
|
postconf_dbms.o: postconf.h
|
||||||
|
postconf_dbms.o: pcf_sqlite_suffixes.h
|
||||||
postconf_edit.o: ../../include/argv.h
|
postconf_edit.o: ../../include/argv.h
|
||||||
postconf_edit.o: ../../include/check_arg.h
|
postconf_edit.o: ../../include/check_arg.h
|
||||||
postconf_edit.o: ../../include/dict.h
|
postconf_edit.o: ../../include/dict.h
|
||||||
@ -1029,8 +1052,8 @@ postconf_edit.o: ../../include/vbuf.h
|
|||||||
postconf_edit.o: ../../include/vstream.h
|
postconf_edit.o: ../../include/vstream.h
|
||||||
postconf_edit.o: ../../include/vstring.h
|
postconf_edit.o: ../../include/vstring.h
|
||||||
postconf_edit.o: ../../include/vstring_vstream.h
|
postconf_edit.o: ../../include/vstring_vstream.h
|
||||||
postconf_edit.o: postconf.h
|
|
||||||
postconf_edit.o: postconf_edit.c
|
postconf_edit.o: postconf_edit.c
|
||||||
|
postconf_edit.o: postconf.h
|
||||||
postconf_lookup.o: ../../include/argv.h
|
postconf_lookup.o: ../../include/argv.h
|
||||||
postconf_lookup.o: ../../include/check_arg.h
|
postconf_lookup.o: ../../include/check_arg.h
|
||||||
postconf_lookup.o: ../../include/dict.h
|
postconf_lookup.o: ../../include/dict.h
|
||||||
|
89
postfix/src/postconf/extract_cfg.sh
Normal file
89
postfix/src/postconf/extract_cfg.sh
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# To view the formatted manual page of this file, type:
|
||||||
|
# POSTFIXSOURCE/mantools/srctoman - extract_cfg.sh | nroff -man
|
||||||
|
|
||||||
|
#++
|
||||||
|
# NAME
|
||||||
|
# extract_cfg 1
|
||||||
|
# SUMMARY
|
||||||
|
# extract database parameter names from cfg_get_xxx() calls
|
||||||
|
# SYNOPSIS
|
||||||
|
# \fBextract_cfg [-d|-s] [\fIfile...\fB]\fR
|
||||||
|
# DESCRIPTION
|
||||||
|
# The \fBextract_cfg\fR command extracts the parameter names
|
||||||
|
# from cfg_get_{str,int,bool}() calls in dict_xxx.c files. The
|
||||||
|
# output is one parameter name per line, formatted as a C string
|
||||||
|
# followed by comma.
|
||||||
|
#
|
||||||
|
# Options:
|
||||||
|
# .IP \fB-d\fR
|
||||||
|
# Add the "domain" parameter to the output. This is used by
|
||||||
|
# the LDAP, memcache, and *SQL* tables.
|
||||||
|
# .IP \fB-s\fR
|
||||||
|
# Add the legacy SQL query parameters: "select_field", "table",
|
||||||
|
# "where_field", and "additional_conditions".
|
||||||
|
# LICENSE
|
||||||
|
# .ad
|
||||||
|
# .fi
|
||||||
|
# The Secure Mailer license must be distributed with this software.
|
||||||
|
# HISTORY
|
||||||
|
# .ad
|
||||||
|
# .fi
|
||||||
|
# This command was introduced with Postfix 3.3.
|
||||||
|
# AUTHOR(S)
|
||||||
|
# Wietse Venema
|
||||||
|
# Google, Inc.
|
||||||
|
# 111 8th Avenue
|
||||||
|
# New York, NY 10011, USA
|
||||||
|
#--
|
||||||
|
|
||||||
|
# Flags to add db_common parameter names.
|
||||||
|
add_legacy_sql_query_params=
|
||||||
|
add_domain_param=
|
||||||
|
|
||||||
|
# Parse JCL.
|
||||||
|
|
||||||
|
while :
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
-d) add_domain_param=1;;
|
||||||
|
-s) add_legacy_sql_query_params=1;;
|
||||||
|
-*) echo Bad option: $1 1>&2; exit 1;;
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# We use m4 macros to extract arguments from cfg_get_xxx() calls that
|
||||||
|
# may span multiple lines. We sandwich information of interest between
|
||||||
|
# control-A characters. Multiple cfg_get_xxx() calls on the same line
|
||||||
|
# should be OK, as long as the calls don't nest.
|
||||||
|
|
||||||
|
(
|
||||||
|
cat <<'EOF'
|
||||||
|
define(`cfg_get_str',`$2
|
||||||
|
')dnl
|
||||||
|
define(`cfg_get_int',`$2
|
||||||
|
')dnl
|
||||||
|
define(`cfg_get_bool',`$2
|
||||||
|
')dnl
|
||||||
|
EOF
|
||||||
|
# Convert selected C macro definitions into m4 macro definitions.
|
||||||
|
sed 's/^#define[ ]*\([DICT_MC_NAME_A-Za-z0-9_]*\)[ ]*\("[^"]*"\)/define(`\1'"'"',`\2'"'"')/' "$@"
|
||||||
|
) | m4 | awk -F '// { print $2 }' | (
|
||||||
|
test -n "$add_domain_param" && {
|
||||||
|
cat <<EOF
|
||||||
|
"domain"
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
test -n "$add_legacy_sql_query_params" && {
|
||||||
|
cat <<EOF
|
||||||
|
"table"
|
||||||
|
"select_field"
|
||||||
|
"where_field"
|
||||||
|
"additional_conditions"
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
cat -
|
||||||
|
) | sort -u | sed 's/$/,/'
|
@ -91,48 +91,36 @@
|
|||||||
/* See ldap_table(5). */
|
/* See ldap_table(5). */
|
||||||
|
|
||||||
static const char *pcf_ldap_suffixes[] = {
|
static const char *pcf_ldap_suffixes[] = {
|
||||||
"bind", "bind_dn", "bind_pw", "cache", "cache_expiry", "cache_size",
|
#include "pcf_ldap_suffixes.h"
|
||||||
"chase_referrals", "debuglevel", "dereference", "domain",
|
0,
|
||||||
"expansion_limit", "leaf_result_attribute", "query_filter",
|
|
||||||
"recursion_limit", "result_attribute", "result_format",
|
|
||||||
"sasl_authz_id", "sasl_mechs", "sasl_minssf", "sasl_realm",
|
|
||||||
"scope", "search_base", "server_host", "server_port", "size_limit",
|
|
||||||
"special_result_attribute", "start_tls", "terminal_result_attribute",
|
|
||||||
"timeout", "tls_ca_cert_dir", "tls_ca_cert_file", "tls_cert",
|
|
||||||
"tls_cipher_suite", "tls_key", "tls_random_file", "tls_require_cert",
|
|
||||||
"version", 0,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* See mysql_table(5). */
|
/* See mysql_table(5). */
|
||||||
|
|
||||||
static const char *pcf_mysql_suffixes[] = {
|
static const char *pcf_mysql_suffixes[] = {
|
||||||
"additional_conditions", "dbname", "domain", "expansion_limit",
|
#include "pcf_mysql_suffixes.h"
|
||||||
"hosts", "password", "query", "result_format", "require_result_set",
|
0,
|
||||||
"select_field", "table", "user", "where_field", 0,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* See pgsql_table(5). */
|
/* See pgsql_table(5). */
|
||||||
|
|
||||||
static const char *pcf_pgsql_suffixes[] = {
|
static const char *pcf_pgsql_suffixes[] = {
|
||||||
"additional_conditions", "dbname", "domain", "expansion_limit",
|
#include "pcf_pgsql_suffixes.h"
|
||||||
"hosts", "password", "query", "result_format", "select_field",
|
0,
|
||||||
"select_function", "table", "user", "where_field", 0,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* See sqlite_table(5). */
|
/* See sqlite_table(5). */
|
||||||
|
|
||||||
static const char *pcf_sqlite_suffixes[] = {
|
static const char *pcf_sqlite_suffixes[] = {
|
||||||
"additional_conditions", "dbpath", "domain", "expansion_limit",
|
#include "pcf_sqlite_suffixes.h"
|
||||||
"query", "result_format", "select_field", "table", "where_field",
|
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* See memcache_table(5). */
|
/* See memcache_table(5). */
|
||||||
|
|
||||||
static const char *pcf_memcache_suffixes[] = {
|
static const char *pcf_memcache_suffixes[] = {
|
||||||
"backup", "data_size_limit", "domain", "flags", "key_format",
|
#include "pcf_memcache_suffixes.h"
|
||||||
"line_size_limit", "max_try", "memcache", "retry_pause",
|
0,
|
||||||
"timeout", "ttl", 0,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user