For safety sake, threw in the local postmaster address as
well. File: smtpd/smtpd_check.c.
+20030113
+
+ Added MAILER-DAEMON to the list of always recognized local
+ addresses, since it is generated by Postfix bounces. File:
+ smtpd/smtpd_check.c.
+
+20030114
+
+ Bugfix: transport_errno was not reset upon successful
+ transport map wildcard lookup after an earlier failure.
+ Reported by Victor Duchovny. File: trivial-rewrite/transport.c.
+
+ Cleanup: unnecessary warnings from the proxymap client
+ after proxymap server disconnect. File: global/dict_proxy.c.
+
+ Cleanup: Patrik Rak found a few more chattr invocations
+ that were missed 20021209. Files: postfix-install,
+ conf/post-install.
+
+ Cleanup: the pcre-config command can produce null outputs.
+ Matthias Andree. File: makedefs.
+
Open problems:
Med: make qmgr recipient bounce/defer activity asynchronous
http://www.mysql.com/downloads/
http://sourceforge.net/projects/mysql/
-In order to build postfix with mysql map support, you will need to add
--DHAS_MYSQL and -I for the directory containing the mysql headers, and
+In order to build postfix with mysql map support, you will need to add
+-DHAS_MYSQL and -I for the directory containing the mysql headers, and
the mysqlclient library (and libm) to AUXLIBS, for example:
make -f Makefile.init makefiles \
alias_maps = mysql:/etc/postfix/mysql-aliases.cf
The file /etc/postfix/mysql-aliases.cf specifies lots of information
-telling postfix how to reference the mysql database. An example mysql
+telling postfix how to reference the mysql database. An example mysql
map config file follows:
#
# the user name and password to log into the mysql server
user = someone
-password = some_password
+password = some_password
# the database name on the servers
dbname = customer_database
additional_conditions = and status = 'paid'
# the above variables will result in a query of
-# the form:
+# the form:
# select forw_addr from mxaliases where alias = '$lookup' and status = 'paid'
# ($lookup is escaped so if it contains single quotes or other odd
# characters, it will not cause a parse error in the sql).
table, and one for an aliases table if you want.
Since sites that have a need for multiple mail exchangers may enjoy
-the convenience of using a networked mailer database, but do not want
-to introduce a single point of failure to their system, we've included
+the convenience of using a networked mailer database, but do not want
+to introduce a single point of failure to their system, we've included
the ability to have postfix reference multiple hosts for access to a
single mysql map. This will work if sites set up mirrored mysql
databases on two or more hosts. Whenever queries fail with an error
at one host, the rest of the hosts will be tried in order. Each host
-that is in an error state will undergo a reconnection attempt every so
+that is in an error state will undergo a reconnection attempt every so
often, and if no mysql server hosts are reachable, then mail will be
deferred until at least one of those hosts is reachable.
if [ -n "$create" -a "$type" = "d" -a -n "$create_flag" -a ! -d "$path" ]
then
mkdir $path || exit 1
- $CHATTR $path >/dev/null 2>/dev/null
set_permission=1
# Update all owner/group/mode settings.
elif [ -n "$set_perms" ]
case "$CCARGS" in
*-DHAS_PCRE*) ;;
*-DNO_PCRE*) ;;
- *) pcre_cflags=`(pcre-config --cflags) 2>/dev/null`
- pcre_libs=`(pcre-config --libs) 2>/dev/null`
- if [ -n "$pcre_cflags" -a -n "$pcre_libs" ]
- then
- CCARGS="$CCARGS -DHAS_PCRE $pcre_cflags"
- AUXLIBS="$AUXLIBS $pcre_libs"
- fi
+ *) pcre_cflags=`(pcre-config --cflags) 2>/dev/null` &&
+ pcre_libs=`(pcre-config --libs) 2>/dev/null` && {
+ CCARGS="$CCARGS -DHAS_PCRE $pcre_cflags"
+ AUXLIBS="$AUXLIBS $pcre_libs"
+ }
;;
esac
exit 1
}
-#
-# LINUX by default does not synchronously update directories -
-# that's dangerous for mail.
-#
-if [ -f /usr/bin/chattr ]
-then
- CHATTR="/usr/bin/chattr +S"
-else
- CHATTR=echo
-fi
-
case `uname -s` in
HP-UX*) FMT=cat;;
*) FMT=fmt;;
test -z "$owner" || chown $owner $path || exit 1
test -z "$group" || chgrp $group $path || exit 1
chmod $mode $path || exit 1
- $CHATTR $path >/dev/null 2>/dev/null
}
continue;;
[fl]) ;;
ATTR_TYPE_STR, MAIL_ATTR_TABLE, dict_proxy->dict.name,
ATTR_TYPE_NUM, MAIL_ATTR_FLAGS, dict_proxy->in_flags,
ATTR_TYPE_END) != 0
+ || vstream_fflush(stream)
|| attr_scan(stream, ATTR_FLAG_STRICT,
ATTR_TYPE_NUM, MAIL_ATTR_STATUS, &status,
ATTR_TYPE_NUM, MAIL_ATTR_FLAGS, &server_flags,
* Patches change the patchlevel and the release date. Snapshots change the
* release date only, unless they include the same bugfix as a patch release.
*/
-#define MAIL_RELEASE_DATE "20030112"
+#define MAIL_RELEASE_DATE "20030115"
#define VAR_MAIL_VERSION "mail_version"
#define DEF_MAIL_VERSION "2.0.1-" MAIL_RELEASE_DATE
if ((reply->flags & RESOLVE_CLASS_LOCAL)
&& *var_local_rcpt_maps
+ /* Generated by bounce, absorbed by qmgr. */
&& !MATCH_LEFT(var_double_bounce_sender, CONST_STR(reply->recipient),
strlen(var_double_bounce_sender))
+ /* Absorbed by qmgr. */
&& !MATCH_LEFT(MAIL_ADDR_POSTMASTER, CONST_STR(reply->recipient),
strlen(MAIL_ADDR_POSTMASTER))
+ /* Generated by bounce. */
+ && !MATCH_LEFT(MAIL_ADDR_MAIL_DAEMON, CONST_STR(reply->recipient),
+ strlen(MAIL_ADDR_MAIL_DAEMON))
&& NOMATCH(local_rcpt_maps, CONST_STR(reply->recipient)))
return (smtpd_check_reject(state, MAIL_ERROR_BOUNCE,
"%d <%s>: User unknown%s",
#define PARTIAL DICT_FLAG_FIXED
if (find_transport_entry(WILDCARD, "", FULL, channel, nexthop)) {
+ transport_errno = 0;
wildcard_channel = channel;
wildcard_nexthop = nexthop;
if (msg_verbose)
PROG = virtual
TESTPROG=
INC_DIR = ../../include
-LIBS = ../../lib/libmaster.a ../../lib/libglobal.a ../../lib/libutil.a $(AUXLIBS)
+LIBS = ../../lib/libmaster.a ../../lib/libglobal.a ../../lib/libutil.a
.c.o:; $(CC) $(CFLAGS) -c $*.c