excess mail so that one site with a large backlog does not
block other deliveries.
+20000128
+
+ Cleanup: the queue manager no longer replaces the nexthop
+ field by the recipient localpart when a destination matches
+ $mydestination/$inet_interfaces. The price is the introduction
+ of a new parameter local_destination_recipient_limit which
+ defaults to 1 i order to maintain backwards compatibility.
+ Files: qmgr/qmgr.c, qmgr/qmgr_message.c.
+
20000129
Bugfix: extracted recipients were misfiled when a message
-Incompatible changes with snapshot-20000104
+Incompatible changes with snapshot-20000203
===========================================
None sofar.
-Major changes with snapshot-20000104
+Major changes with snapshot-20000203
====================================
Questionable feature: with "smtp_skip_5xx_greeting = yes", Postfix
-emulates brain damage found in some other MTAs.
+emulates behavior found in some other MTAs.
Incompatible changes with postfix-19991231:
===========================================
/* This module processes envelope records and writes the result
/* to the queue file. It validates the message structure, rewrites
/* sender/recipient addresses to canonical form, and expands recipients
-/* according to entries in the virtual table.
+/* according to entries in the virtual table. This routine absorbs but
+/* does not emit the envelope to content boundary record.
/*
/* Arguments:
/* .IP state
static void cleanup_envelope_process(CLEANUP_STATE *, int, char *, int);
-/* cleanup_envelope - process message envelope */
+/* cleanup_envelope - initialize message envelope */
void cleanup_envelope(CLEANUP_STATE *state, int type, char *str, int len)
{
/* sender/recipient addresses to canonical form, inserts missing
/* message headers, and extracts information from message headers
/* to be used later when generating the extracted output segment.
+/* This routine absorbs but does not emit the content to extracted
+/* boundary record.
/*
/* Arguments:
/* .IP state
VSTRING_ADDCH(state->header_buf, '\n');
vstring_strcat(state->header_buf, buf);
return;
+ } else {
+ /* Body record or end of message segment. */ ;
}
/*
char *myname = "cleanup_message_body";
long xtra_offset;
- /*
- * Sanity check.
- */
- if (strchr(REC_TYPE_CONTENT, type) == 0) {
- msg_warn("%s: %s: unexpected record type %d",
- state->queue_id, myname, type);
- state->errs |= CLEANUP_STAT_BAD;
- return;
- }
-
/*
* Copy body record to the output.
*/
# regular expression lookup table syntax, see \fBregexp_table\fR(5)
# or \fBpcre_table\fR(5).
#
-# Patterns become regular expressions that are applied to the entire
+# Each pattern is a regular expression that is applied to the entire
# string being looked up. Depending on the application, that string
# is an entire client hostname, an entire client IP address, or an
-# entire mail address.
+# entire mail address. Patterns are applied in order as specified,
+# until a pattern is found that matches the search string.
#
-# In contrast to the normal lookups from indexed files, no parent
-# domain or network search is done, and \fIuser@domain\fR mail
-# addresses are not broken up into their \fIuser@\fR and \fIdomain\fR
-# constituent parts.
+# In contrast to lookups from indexed files, no parent domain or
+# parent network search is done with regular expression tables,
+# and \fIuser@domain\fR mail addresses are not broken up into their
+# \fIuser@\fR and \fIdomain\fR constituent parts.
#
# Actions are the same as with normal indexed file lookups, with
# the additional feature that parenthesized substrings from the
*/
#define BOUNCE_CMD_APPEND 0 /* append log */
#define BOUNCE_CMD_FLUSH 1 /* send log */
-#define BOUNCE_CMD_WARN 2 /* send warning bounce, don't delete
- * log */
+#define BOUNCE_CMD_WARN 2 /* send warning bounce, don't delete log */
#define BOUNCE_CMD_RECIP 3 /* immediate bounce, no logfile */
/*
/* .in -4
/* } MAIL_STREAM;
/*
-/* MAIL_STREAM *mail_stream_file(queue, mode, class, service)
+/* MAIL_STREAM *mail_stream_file(queue, class, service)
/* const char *queue;
-/* int mode;
/* const char *class;
/* const char *service;
/*
* Version of this program.
*/
#define VAR_MAIL_VERSION "mail_version"
-#define DEF_MAIL_VERSION "Snapshot-20000130"
+#define DEF_MAIL_VERSION "Snapshot-20000203"
extern char *var_mail_version;
/* LICENSE
a description of regular expression lookup table syntax,
see <b>regexp</b><i>_</i><b>table</b>(5) or <b>pcre</b><i>_</i><b>table</b>(5).
- Patterns become regular expressions that are applied to
+ Each pattern is a regular expression that is applied to
the entire string being looked up. Depending on the appli-
cation, that string is an entire client hostname, an
- entire client IP address, or an entire mail address.
+ entire client IP address, or an entire mail address. Pat-
+ terns are applied in order as specified, until a pattern
+ is found that matches the search string.
- In contrast to the normal lookups from indexed files, no
- parent domain or network search is done, and <i>user@domain</i>
- mail addresses are not broken up into their <i>user@</i> and
- <i>domain</i> constituent parts.
+ In contrast to lookups from indexed files, no parent
+ domain or parent network search is done with regular
+ expression tables, and <i>user@domain</i> mail addresses are not
+ broken up into their <i>user@</i> and <i>domain</i> constituent parts.
Actions are the same as with normal indexed file lookups,
with the additional feature that parenthesized substrings
<b>SEE</b> <b>ALSO</b>
<a href="postmap.1.html">postmap(1)</a> create mapping table
<a href="smtpd.8.html">smtpd(8)</a> smtp server
- pcre_table(5) format of PCRE tables
- regexp_table(5) format of POSIX regexp tables
+ <a href="pcre_table.5.html">pcre_table(5)</a> format of PCRE tables
+ <a href="regexp_table.5.html">regexp_table(5)</a> format of POSIX regexp tables
-<b>LICENSE</b>
- The Secure Mailer license must be distributed with this
ACCESS(5) ACCESS(5)
+<b>LICENSE</b>
+ The Secure Mailer license must be distributed with this
software.
<b>AUTHOR(S)</b>
-
-
<pre>
/etc/postfix/main.cf:
- local_recipient_maps = $relocated_maps $alias_maps, unix:passwd.byname
+ local_recipient_maps = $alias_maps, unix:passwd.byname
</pre>
<p>
<b>ward</b>+<i>foo</i> or in ~<i>name</i>/.<b>forward</b>, to the mailbox owned by the
user <i>name</i>, or it is sent back as undeliverable.
- In all cases the <b>local</b> daemon prepends an opional `<b>Deliv-</b>
+ In all cases the <b>local</b> daemon prepends an optional `<b>Deliv-</b>
<b>ered-To:</b> <i>name</i>+<i>foo</i>' header line.
<b>DELIVERY</b> <b>RIGHTS</b>
/* to the mailbox owned by the user \fIname\fR, or it is sent back as
/* undeliverable.
/*
-/* In all cases the \fBlocal\fR daemon prepends an opional
+/* In all cases the \fBlocal\fR daemon prepends an optional
/* `\fBDelivered-To:\fR \fIname\fR+\fIfoo\fR' header line.
/* DELIVERY RIGHTS
/* .ad
regular expression lookup table syntax, see \fBregexp_table\fR(5)
or \fBpcre_table\fR(5).
-Patterns become regular expressions that are applied to the entire
+Each pattern is a regular expression that is applied to the entire
string being looked up. Depending on the application, that string
is an entire client hostname, an entire client IP address, or an
-entire mail address.
+entire mail address. Patterns are applied in order as specified,
+until a pattern is found that matches the search string.
-In contrast to the normal lookups from indexed files, no parent
-domain or network search is done, and \fIuser@domain\fR mail
-addresses are not broken up into their \fIuser@\fR and \fIdomain\fR
-constituent parts.
+In contrast to lookups from indexed files, no parent domain or
+parent network search is done with regular expression tables,
+and \fIuser@domain\fR mail addresses are not broken up into their
+\fIuser@\fR and \fIdomain\fR constituent parts.
Actions are the same as with normal indexed file lookups, with
the additional feature that parenthesized substrings from the
to the mailbox owned by the user \fIname\fR, or it is sent back as
undeliverable.
-In all cases the \fBlocal\fR daemon prepends an opional
+In all cases the \fBlocal\fR daemon prepends an optional
`\fBDelivered-To:\fR \fIname\fR+\fIfoo\fR' header line.
.SH DELIVERY RIGHTS
.na