tls/tls_mgr.h, tls/tls_mgr.c, tls/tls_client.c, tls/tls.h,
smtp/smtp_proto.c.
+20050330
+
+ Bugfix: in some compilation environments the SMTP and LMTP
+ clients could ignore enhanced status codes in server replies.
+ Bug introduced 20050329 while polishing working code. Files:
+ smtp/smtp_chat.c, lmtp/lmtp_chat.c.
+
Open problems:
Med: disable header address rewriting after XCLIENT?
bigfoot.com reject_unverified_sender
... etcetera ...
-A list of frequently forged MAIL FROM domains can be found at http://
-www.monkeys.com/anti-spam/filtering/sender-domain-validate.in.
+At some point in cyberspace/time, a list of frequently forged MAIL FROM domains
+could be found at http://www.monkeys.com/anti-spam/filtering/sender-domain-
+validate.in.
NOTE: One of the first things you might want to do is to turn on sender address
verification for all your own domains.
-# VIRTUAL(5) VIRTUAL(5)
+# VIRTUAL(5) VIRTUAL(5)
#
# NAME
# virtual - Postfix virtual alias table format
# postmap -q - /etc/postfix/virtual <inputfile
#
# DESCRIPTION
-# The optional virtual(5) alias table specifies address
-# aliasing for arbitrary local or non-local recipient
-# addresses. Virtual aliasing is recursive, and is done by
-# the Postfix cleanup(8) daemon.
+# The optional virtual(5) alias table rewrites recipient
+# addresses for all local, virtual and remote mail destina-
+# tions. This is unlike the aliases(5) table which is used
+# only for local(8) delivery. Virtual aliasing is recur-
+# sive, and is implemented by the Postfix cleanup(8) daemon
+# before mail is queued.
#
# The main applications of virtual aliasing are:
#
# virtual_alias_maps = hash:/etc/postfix/virtual
#
# Note: some systems use dbm databases instead of hash.
-# See the output from "postconf -m" for available
-# database types.
+# See the output from "postconf -m" for available data-
+# base types.
#
# /etc/postfix/virtual:
# virtual-alias.domain anything (right-hand content does not matter)
# constituent parts, nor is user+foo broken up into user and
# foo.
#
-# Patterns are applied in the order as specified in the
-# table, until a pattern is found that matches the search
+# Patterns are applied in the order as specified in the ta-
+# ble, until a pattern is found that matches the search
# string.
#
# Results are the same as with indexed file lookups, with
# TCP-BASED TABLES
# This section describes how the table lookups change when
# lookups are directed to a TCP-based server. For a descrip-
-# tion of the TCP client/server lookup protocol, see
-# tcp_table(5). This feature is not available up to and
-# including Postfix version 2.2.
+# tion of the TCP client/server lookup protocol, see tcp_ta-
+# ble(5). This feature is not available up to and including
+# Postfix version 2.2.
#
# Each lookup operation uses the entire address once. Thus,
# user@domain mail addresses are not broken up into their
# P.O. Box 704
# Yorktown Heights, NY 10598, USA
#
-# VIRTUAL(5)
+# VIRTUAL(5)
</pre>
</blockquote>
-<p> A list of frequently forged MAIL FROM domains can be found at
-<a href="http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in">http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in</a>.
-</p>
+<p> At some point in cyberspace/time, a list of frequently forged
+MAIL FROM domains could be found at
+<a href="http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in">http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in</a>. </p>
<p> NOTE: One of the first things you might want to do is to turn
on sender address verification for all your own domains. </p>
<b>postmap -q - /etc/postfix/virtual</b> <<i>inputfile</i>
<b>DESCRIPTION</b>
- The optional <a href="virtual.5.html"><b>virtual</b>(5)</a> alias table specifies address
- aliasing for arbitrary local or non-local recipient
- addresses. Virtual aliasing is recursive, and is done by
- the Postfix <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon.
+ The optional <a href="virtual.5.html"><b>virtual</b>(5)</a> alias table rewrites recipient
+ addresses for all local, virtual and remote mail destina-
+ tions. This is unlike the <a href="aliases.5.html"><b>aliases</b>(5)</a> table which is used
+ only for <a href="local.8.html"><b>local</b>(8)</a> delivery. Virtual aliasing is recur-
+ sive, and is implemented by the Postfix <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon
+ before mail is queued.
The main applications of virtual aliasing are:
.SH DESCRIPTION
.ad
.fi
-The optional \fBvirtual\fR(5) alias table specifies address aliasing
-for arbitrary local or non-local recipient addresses. Virtual aliasing
-is recursive, and is done by the Postfix \fBcleanup\fR(8) daemon.
+The optional \fBvirtual\fR(5) alias table rewrites recipient
+addresses for all local, virtual and remote mail destinations.
+This is unlike the \fBaliases\fR(5) table which is used
+only for \fBlocal\fR(8) delivery. Virtual aliasing is
+recursive, and is implemented by the Postfix \fBcleanup\fR(8)
+daemon before mail is queued.
The main applications of virtual aliasing are:
.IP \(bu
</pre>
</blockquote>
-<p> A list of frequently forged MAIL FROM domains can be found at
-http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in.
-</p>
+<p> At some point in cyberspace/time, a list of frequently forged
+MAIL FROM domains could be found at
+http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in. </p>
<p> NOTE: One of the first things you might want to do is to turn
on sender address verification for all your own domains. </p>
#
# \fBpostmap -q - /etc/postfix/virtual <\fIinputfile\fR
# DESCRIPTION
-# The optional \fBvirtual\fR(5) alias table specifies address aliasing
-# for arbitrary local or non-local recipient addresses. Virtual aliasing
-# is recursive, and is done by the Postfix \fBcleanup\fR(8) daemon.
+# The optional \fBvirtual\fR(5) alias table rewrites recipient
+# addresses for all local, virtual and remote mail destinations.
+# This is unlike the \fBaliases\fR(5) table which is used
+# only for \fBlocal\fR(8) delivery. Virtual aliasing is
+# recursive, and is implemented by the Postfix \fBcleanup\fR(8)
+# daemon before mail is queued.
#
# The main applications of virtual aliasing are:
# .IP \(bu
int status;
char *encoding;
CLEANUP_STAT_DETAIL *detail = 0;
-DSN_SPLIT dp;
+ DSN_SPLIT dp;
/*
* Raise these errors only if we examined all queue file records.
* Patches change the patchlevel and the release date. Snapshots change the
* release date only.
*/
-#define MAIL_RELEASE_DATE "20050329"
+#define MAIL_RELEASE_DATE "20050330"
#define MAIL_VERSION_NUMBER "2.3"
#define VAR_MAIL_VERSION "mail_version"
rdata.code = atoi(STR(state->buffer));
for (cp = STR(state->buffer) + 4; *cp == ' '; cp++)
/* void */ ;
- if ((len = dsn_valid(cp)) > 0 && len < sizeof(DSN_SIZE)) {
+ if ((len = dsn_valid(cp)) > 0) {
DSN_UPDATE(rdata.dsn, cp, len);
} else if (strchr("245", STR(state->buffer)[0]) != 0) {
DSN_UPDATE(rdata.dsn, "0.0.0", sizeof("0.0.0") - 1);
freeaddrinfo(res0);
if (found == 0) {
dsn_vstring_update(why, "5.4.4", "%s: host not found", host);
- smtp_errno = SMTP_ERR_FAIL;
+ if (smtp_errno != SMTP_ERR_RETRY)
+ smtp_errno = SMTP_ERR_FAIL;
}
return (addr_list);
}
rdata.code = atoi(STR(session->buffer));
for (cp = STR(session->buffer) + 4; *cp == ' '; cp++)
/* void */ ;
- if ((len = dsn_valid(cp)) > 0 && len < sizeof(DSN_SIZE)) {
+ if ((len = dsn_valid(cp)) > 0) {
DSN_UPDATE(rdata.dsn, cp, len);
} else if (strchr("245", STR(session->buffer)[0]) != 0) {
DSN_UPDATE(rdata.dsn, "0.0.0", sizeof("0.0.0") - 1);