summaryrefslogtreecommitdiffstats
path: root/conf
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--conf/access4
-rw-r--r--conf/aliases162
-rw-r--r--conf/canonical49
-rw-r--r--conf/dynamicmaps.cf1
-rw-r--r--conf/generic10
-rw-r--r--conf/header_checks66
-rw-r--r--conf/main.cf4
-rw-r--r--conf/post-install28
-rw-r--r--conf/postfix-files7
-rwxr-xr-xconf/postfix-script21
-rw-r--r--conf/relocated10
-rw-r--r--conf/virtual202
12 files changed, 291 insertions, 273 deletions
diff --git a/conf/access b/conf/access
index 97892eb..6da2db2 100644
--- a/conf/access
+++ b/conf/access
@@ -59,7 +59,7 @@
# line that starts with whitespace continues a logi-
# cal line.
#
-# EMAIL ADDRESS PATTERNS
+# EMAIL ADDRESS PATTERNS IN INDEXED TABLES
# With lookups from indexed files such as DB or DBM, or from
# networked tables such as NIS, LDAP or SQL, patterns are
# tried in the order as listed below:
@@ -97,7 +97,7 @@
# becomes: user+foo@domain, user@domain, domain, user+foo@,
# and user@.
#
-# HOST NAME/ADDRESS PATTERNS
+# HOST NAME/ADDRESS PATTERNS IN INDEXED TABLES
# With lookups from indexed files such as DB or DBM, or from
# networked tables such as NIS, LDAP or SQL, the following
# lookup patterns are examined in the order as listed:
diff --git a/conf/aliases b/conf/aliases
index 8f1a284..280c3d2 100644
--- a/conf/aliases
+++ b/conf/aliases
@@ -45,25 +45,29 @@ decode: root
# newaliases
#
# DESCRIPTION
-# The aliases(5) table provides a system-wide mechanism to
-# redirect mail for local recipients. The redirections are
-# processed by the Postfix local(8) delivery agent.
+# The optional aliases(5) table (alias_maps) redirects mail
+# for local recipients. The redirections are processed by
+# the Postfix local(8) delivery agent.
+#
+# This is unlike virtual(5) aliasing (virtual_alias_maps)
+# which applies to all recipients: local(8), virtual, and
+# remote, and which is implemented by the cleanup(8) daemon.
#
# Normally, the aliases(5) table is specified as a text file
-# that serves as input to the postalias(1) command. The
-# result, an indexed file in dbm or db format, is used for
-# fast lookup by the mail system. Execute the command
-# newaliases in order to rebuild the indexed file after
+# that serves as input to the postalias(1) command. The
+# result, an indexed file in dbm or db format, is used for
+# fast lookup by the mail system. Execute the command
+# newaliases in order to rebuild the indexed file after
# changing the Postfix alias database.
#
-# When the table is provided via other means such as NIS,
-# LDAP or SQL, the same lookups are done as for ordinary
+# When the table is provided via other means such as NIS,
+# LDAP or SQL, the same lookups are done as for ordinary
# indexed files.
#
-# Alternatively, the table can be provided as a regu-
-# lar-expression map where patterns are given as regular
-# expressions. In this case, the lookups are done in a
-# slightly different way as described below under "REGULAR
+# Alternatively, the table can be provided as a regu-
+# lar-expression map where patterns are given as regular
+# expressions. In this case, the lookups are done in a
+# slightly different way as described below under "REGULAR
# EXPRESSION TABLES".
#
# Users can control delivery of their own mail by setting up
@@ -77,61 +81,61 @@ decode: root
#
# name: value1, value2, ...
#
-# o Empty lines and whitespace-only lines are ignored,
-# as are lines whose first non-whitespace character
+# o Empty lines and whitespace-only lines are ignored,
+# as are lines whose first non-whitespace character
# is a `#'.
#
-# o A logical line starts with non-whitespace text. A
-# line that starts with whitespace continues a logi-
+# o A logical line starts with non-whitespace text. A
+# line that starts with whitespace continues a logi-
# cal line.
#
-# The name is a local address (no domain part). Use double
-# quotes when the name contains any special characters such
-# as whitespace, `#', `:', or `@'. The name is folded to
+# The name is a local address (no domain part). Use double
+# quotes when the name contains any special characters such
+# as whitespace, `#', `:', or `@'. The name is folded to
# lowercase, in order to make database lookups case insensi-
# tive.
#
-# In addition, when an alias exists for owner-name, this
-# will override the envelope sender address, so that deliv-
+# In addition, when an alias exists for owner-name, this
+# will override the envelope sender address, so that deliv-
# ery diagnostics are directed to owner-name, instead of the
-# originator of the message (for details, see
-# owner_request_special, expand_owner_alias and
-# reset_owner_alias). This is typically used to direct
-# delivery errors to the maintainer of a mailing list, who
+# originator of the message (for details, see
+# owner_request_special, expand_owner_alias and
+# reset_owner_alias). This is typically used to direct
+# delivery errors to the maintainer of a mailing list, who
# is in a better position to deal with mailing list delivery
# problems than the originator of the undelivered mail.
#
# The value contains one or more of the following:
#
# address
-# Mail is forwarded to address, which is compatible
+# Mail is forwarded to address, which is compatible
# with the RFC 822 standard.
#
# /file/name
-# Mail is appended to /file/name. For details on how
-# a file is written see the sections "EXTERNAL FILE
-# DELIVERY" and "DELIVERY RIGHTS" in the local(8)
-# documentation. Delivery is not limited to regular
-# files. For example, to dispose of unwanted mail,
+# Mail is appended to /file/name. For details on how
+# a file is written see the sections "EXTERNAL FILE
+# DELIVERY" and "DELIVERY RIGHTS" in the local(8)
+# documentation. Delivery is not limited to regular
+# files. For example, to dispose of unwanted mail,
# deflect it to /dev/null.
#
# |command
-# Mail is piped into command. Commands that contain
-# special characters, such as whitespace, should be
-# enclosed between double quotes. For details on how
-# a command is executed see "EXTERNAL COMMAND DELIV-
+# Mail is piped into command. Commands that contain
+# special characters, such as whitespace, should be
+# enclosed between double quotes. For details on how
+# a command is executed see "EXTERNAL COMMAND DELIV-
# ERY" and "DELIVERY RIGHTS" in the local(8) documen-
# tation.
#
# When the command fails, a limited amount of command
-# output is mailed back to the sender. The file
-# /usr/include/sysexits.h defines the expected exit
-# status codes. For example, use "|exit 67" to simu-
-# late a "user unknown" error, and "|exit 0" to
+# output is mailed back to the sender. The file
+# /usr/include/sysexits.h defines the expected exit
+# status codes. For example, use "|exit 67" to simu-
+# late a "user unknown" error, and "|exit 0" to
# implement an expensive black hole.
#
# :include:/file/name
-# Mail is sent to the destinations listed in the
+# Mail is sent to the destinations listed in the
# named file. Lines in :include: files have the same
# syntax as the right-hand side of alias entries.
#
@@ -143,12 +147,12 @@ decode: root
#
# ADDRESS EXTENSION
# When alias database search fails, and the recipient local-
-# part contains the optional recipient delimiter (e.g.,
-# user+foo), the search is repeated for the unextended
+# part contains the optional recipient delimiter (e.g.,
+# user+foo), the search is repeated for the unextended
# address (e.g., user).
#
-# The propagate_unmatched_extensions parameter controls
-# whether an unmatched address extension (+foo) is propa-
+# The propagate_unmatched_extensions parameter controls
+# whether an unmatched address extension (+foo) is propa-
# gated to the result of table lookup.
#
# CASE FOLDING
@@ -156,83 +160,85 @@ decode: root
# to lowercase before database lookup.
#
# REGULAR EXPRESSION TABLES
-# This section describes how the table lookups change when
+# This section describes how the table lookups change when
# the table is given in the form of regular expressions. For
-# a description of regular expression lookup table syntax,
-# see regexp_table(5) or pcre_table(5). NOTE: these formats
+# a description of regular expression lookup table syntax,
+# see regexp_table(5) or pcre_table(5). NOTE: these formats
# do not use ":" at the end of a pattern.
#
-# Each regular expression is applied to the entire search
-# string. Thus, a search string user+foo is not broken up
+# Each regular expression is applied to the entire search
+# string. Thus, a search string user+foo is not broken up
# into user and foo.
#
-# Regular expressions are applied in the order as specified
-# in the table, until a regular expression is found that
+# Regular expressions are applied in the order as specified
+# in the table, until a regular expression is found that
# matches the search string.
#
-# Lookup results are the same as with indexed file lookups.
-# For security reasons there is no support for $1, $2 etc.
+# Lookup results are the same as with indexed file lookups.
+# For security reasons there is no support for $1, $2 etc.
# substring interpolation.
#
# SECURITY
-# The local(8) delivery agent disallows regular expression
-# substitution of $1 etc. in alias_maps, because that would
+# The local(8) delivery agent disallows regular expression
+# substitution of $1 etc. in alias_maps, because that would
# open a security hole.
#
-# The local(8) delivery agent will silently ignore requests
-# to use the proxymap(8) server within alias_maps. Instead
-# it will open the table directly. Before Postfix version
-# 2.2, the local(8) delivery agent will terminate with a
+# The local(8) delivery agent will silently ignore requests
+# to use the proxymap(8) server within alias_maps. Instead
+# it will open the table directly. Before Postfix version
+# 2.2, the local(8) delivery agent will terminate with a
# fatal error.
#
# CONFIGURATION PARAMETERS
-# The following main.cf parameters are especially relevant.
-# The text below provides only a parameter summary. See
+# The following main.cf parameters are especially relevant.
+# The text below provides only a parameter summary. See
# postconf(5) for more details including examples.
#
# alias_database (see 'postconf -d' output)
-# The alias databases for local(8) delivery that are
+# The alias databases for local(8) delivery that are
# updated with "newaliases" or with "sendmail -bi".
#
# alias_maps (see 'postconf -d' output)
-# The alias databases that are used for local(8)
-# delivery.
+# Optional lookup tables with aliases that apply only
+# to local(8) recipients; this is unlike vir-
+# tual_alias_maps that apply to all recipients:
+# local(8), virtual, and remote.
#
# allow_mail_to_commands (alias, forward)
-# Restrict local(8) mail delivery to external com-
+# Restrict local(8) mail delivery to external com-
# mands.
#
# allow_mail_to_files (alias, forward)
-# Restrict local(8) mail delivery to external files.
+# Restrict local(8) mail delivery to external files.
#
# expand_owner_alias (no)
# When delivering to an alias "aliasname" that has an
# "owner-aliasname" companion alias, set the envelope
-# sender address to the expansion of the
+# sender address to the expansion of the
# "owner-aliasname" alias.
#
# propagate_unmatched_extensions (canonical, virtual)
-# What address lookup tables copy an address exten-
+# What address lookup tables copy an address exten-
# sion from the lookup key to the lookup result.
#
# owner_request_special (yes)
# Enable special treatment for owner-listname entries
# in the aliases(5) file, and don't split owner-list-
-# name and listname-request address localparts when
+# name and listname-request address localparts when
# the recipient_delimiter is set to "-".
#
# recipient_delimiter (empty)
-# The set of characters that can separate an email
-# address localpart, user name, or a .forward file
+# The set of characters that can separate an email
+# address localpart, user name, or a .forward file
# name from its extension.
#
# Available in Postfix version 2.3 and later:
#
# frozen_delivered_to (yes)
-# Update the local(8) delivery agent's idea of the
-# Delivered-To: address (see prepend_deliv-
-# ered_header) only once, at the start of a delivery
-# attempt; do not update the Delivered-To: address
+# Update the local(8) delivery agent's idea of the
+# Delivered-To: address (see prepend_deliv-
+# ered_header) only once, at the start of a delivery
+# attempt; do not update the Delivered-To: address
# while expanding aliases or .forward files.
#
# STANDARDS
@@ -245,12 +251,12 @@ decode: root
# postconf(5), configuration parameters
#
# README FILES
-# Use "postconf readme_directory" or "postconf html_direc-
+# Use "postconf readme_directory" or "postconf html_direc-
# tory" to locate this information.
# DATABASE_README, Postfix lookup table overview
#
# LICENSE
-# The Secure Mailer license must be distributed with this
+# The Secure Mailer license must be distributed with this
# software.
#
# AUTHOR(S)
diff --git a/conf/canonical b/conf/canonical
index 4957fcc..894fd5b 100644
--- a/conf/canonical
+++ b/conf/canonical
@@ -225,57 +225,56 @@
# Other parameters of interest:
#
# inet_interfaces (all)
-# The network interface addresses that this mail sys-
-# tem receives mail on.
+# The local network interface addresses that this
+# mail system receives mail on.
#
# local_header_rewrite_clients (permit_inet_interfaces)
-# Rewrite message header addresses in mail from these
-# clients and update incomplete addresses with the
-# domain name in $myorigin or $mydomain; either don't
-# rewrite message headers from other clients at all,
-# or rewrite message headers and update incomplete
-# addresses with the domain specified in the
-# remote_header_rewrite_domain parameter.
+# Rewrite or add message headers in mail from these
+# clients, updating incomplete addresses with the
+# domain name in $myorigin or $mydomain, and adding
+# missing headers.
#
# proxy_interfaces (empty)
-# The network interface addresses that this mail sys-
-# tem receives mail on by way of a proxy or network
-# address translation unit.
+# The remote network interface addresses that this
+# mail system receives mail on by way of a proxy or
+# network address translation unit.
#
-# masquerade_classes (envelope_sender, header_sender,
+# masquerade_classes (envelope_sender, header_sender,
# header_recipient)
# What addresses are subject to address masquerading.
#
# masquerade_domains (empty)
-# Optional list of domains whose subdomain structure
+# Optional list of domains whose subdomain structure
# will be stripped off in email addresses.
#
# masquerade_exceptions (empty)
-# Optional list of user names that are not subjected
-# to address masquerading, even when their addresses
+# Optional list of user names that are not subjected
+# to address masquerading, even when their addresses
# match $masquerade_domains.
#
# mydestination ($myhostname, localhost.$mydomain, local-
# host)
-# The list of domains that are delivered via the
+# The list of domains that are delivered via the
# $local_transport mail delivery transport.
#
# myorigin ($myhostname)
# The domain name that locally-posted mail appears to
-# come from, and that locally posted mail is deliv-
+# come from, and that locally posted mail is deliv-
# ered to.
#
# owner_request_special (yes)
# Enable special treatment for owner-listname entries
# in the aliases(5) file, and don't split owner-list-
-# name and listname-request address localparts when
+# name and listname-request address localparts when
# the recipient_delimiter is set to "-".
#
# remote_header_rewrite_domain (empty)
-# Don't rewrite message headers from remote clients
-# at all when this parameter is empty; otherwise, re-
-# write message headers and append the specified
-# domain name to incomplete addresses.
+# Rewrite or add message headers in mail from remote
+# clients if the remote_header_rewrite_domain parame-
+# ter value is non-empty, updating incomplete
+# addresses with the domain specified in the
+# remote_header_rewrite_domain parameter, and adding
+# missing headers.
#
# SEE ALSO
# cleanup(8), canonicalize and enqueue mail
@@ -284,13 +283,13 @@
# virtual(5), virtual aliasing
#
# README FILES
-# Use "postconf readme_directory" or "postconf html_direc-
+# Use "postconf readme_directory" or "postconf html_direc-
# tory" to locate this information.
# DATABASE_README, Postfix lookup table overview
# ADDRESS_REWRITING_README, address rewriting guide
#
# LICENSE
-# The Secure Mailer license must be distributed with this
+# The Secure Mailer license must be distributed with this
# software.
#
# AUTHOR(S)
diff --git a/conf/dynamicmaps.cf b/conf/dynamicmaps.cf
index 5179f66..feeb6a1 100644
--- a/conf/dynamicmaps.cf
+++ b/conf/dynamicmaps.cf
@@ -2,6 +2,7 @@
cdb ${LIB_PREFIX}cdb${LIB_SUFFIX} dict_cdb_open mkmap_cdb_open
ldap ${LIB_PREFIX}ldap${LIB_SUFFIX} dict_ldap_open
lmdb ${LIB_PREFIX}lmdb${LIB_SUFFIX} dict_lmdb_open mkmap_lmdb_open
+mongodb ${LIB_PREFIX}mongodb${LIB_SUFFIX} dict_mongodb_open
mysql ${LIB_PREFIX}mysql${LIB_SUFFIX} dict_mysql_open
pcre ${LIB_PREFIX}pcre${LIB_SUFFIX} dict_pcre_open
pgsql ${LIB_PREFIX}pgsql${LIB_SUFFIX} dict_pgsql_open
diff --git a/conf/generic b/conf/generic
index f371eb9..508e44a 100644
--- a/conf/generic
+++ b/conf/generic
@@ -193,13 +193,13 @@
# Other parameters of interest:
#
# inet_interfaces (all)
-# The network interface addresses that this mail sys-
-# tem receives mail on.
+# The local network interface addresses that this
+# mail system receives mail on.
#
# proxy_interfaces (empty)
-# The network interface addresses that this mail sys-
-# tem receives mail on by way of a proxy or network
-# address translation unit.
+# The remote network interface addresses that this
+# mail system receives mail on by way of a proxy or
+# network address translation unit.
#
# mydestination ($myhostname, localhost.$mydomain, local-
# host)
diff --git a/conf/header_checks b/conf/header_checks
index bcd96a9..db295d0 100644
--- a/conf/header_checks
+++ b/conf/header_checks
@@ -440,46 +440,32 @@
# tent-Length:, Return-Path:.
#
# CONFIGURATION PARAMETERS
-# body_checks
-# Lookup tables with content filter rules for message
-# body lines. These filters see one physical line at
-# a time, in chunks of at most $line_length_limit
-# bytes.
-#
-# body_checks_size_limit
-# The amount of content per message body segment
-# (attachment) that is subjected to $body_checks fil-
-# tering.
-#
-# header_checks
-#
-# mime_header_checks (default: $header_checks)
-#
-# nested_header_checks (default: $header_checks)
-# Lookup tables with content filter rules for message
-# header lines: respectively, these are applied to
-# the initial message headers (not including MIME
-# headers), to the MIME headers anywhere in the mes-
-# sage, and to the initial headers of attached mes-
-# sages.
-#
-# Note: these filters see one logical message header
-# at a time, even when a message header spans multi-
-# ple lines. Message headers that are longer than
-# $header_size_limit characters are truncated.
-#
-# disable_mime_input_processing
-# While receiving mail, give no special treatment to
-# MIME related message headers; all text after the
-# initial message headers is considered to be part of
-# the message body. This means that header_checks is
-# applied to all the initial message headers, and
-# that body_checks is applied to the remainder of the
-# message.
-#
-# Note: when used in this manner, body_checks will
-# process a multi-line message header one line at a
-# time.
+# body_checks (empty)
+# Optional lookup tables for content inspection as
+# specified in the body_checks(5) manual page.
+#
+# body_checks_size_limit (51200)
+# How much text in a message body segment (or attach-
+# ment, if you prefer to use that term) is subjected
+# to body_checks inspection.
+#
+# header_checks (empty)
+# Optional lookup tables for content inspection of
+# primary non-MIME message headers, as specified in
+# the header_checks(5) manual page.
+#
+# mime_header_checks ($header_checks)
+# Optional lookup tables for content inspection of
+# MIME related message headers, as described in the
+# header_checks(5) manual page.
+#
+# nested_header_checks ($header_checks)
+# Optional lookup tables for content inspection of
+# non-MIME message headers in attached messages, as
+# described in the header_checks(5) manual page.
+#
+# disable_mime_input_processing (no)
+# Turn off MIME processing while receiving mail.
#
# EXAMPLES
# Header pattern to block attachments with bad file name
diff --git a/conf/main.cf b/conf/main.cf
index 2ee7996..2f4eba9 100644
--- a/conf/main.cf
+++ b/conf/main.cf
@@ -31,7 +31,7 @@
#
# The level below is what should be used with new (not upgrade) installs.
#
-compatibility_level = 3.8
+compatibility_level = 3.9
# SOFT BOUNCE
#
@@ -452,7 +452,7 @@ unknown_local_recipient_reject_code = 550
# The mailbox_command parameter specifies the optional external
# command to use instead of mailbox delivery. The command is run as
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
-# Exception: delivery for root is done as $default_user.
+# Exception: delivery for root is done as $default_privs.
#
# Other environment variables of interest: USER (recipient username),
# EXTENSION (address extension), DOMAIN (domain part of address),
diff --git a/conf/post-install b/conf/post-install
index 2a7d99b..ed7c79a 100644
--- a/conf/post-install
+++ b/conf/post-install
@@ -205,6 +205,10 @@
# Google, Inc.
# 111 8th Avenue
# New York, NY 10011, USA
+#
+# Wietse Venema
+# porcupine.org
+# Amawalk, NY 10501, USA
#--
umask 022
@@ -291,7 +295,7 @@ test -d "$config_directory" || {
# XXX Solaris does not have "test -e".
instances=`test ! -f $def_config_directory/main.cf ||
- $POSTCONF -c $def_config_directory -h multi_instance_directories |
+ $POSTCONF -qc $def_config_directory -h multi_instance_directories |
sed 's/,/ /'` || exit 1
update_shared_files=1
@@ -360,7 +364,7 @@ test -f $config_directory/main.cf && {
case "$junk" in
"") eval unset $name;;
esac
- eval : \${$name=\`$POSTCONF -c $config_directory -h $name\`} || exit 1
+ eval : \${$name=\`$POSTCONF -qc $config_directory -h $name\`} || exit 1
done
}
@@ -461,14 +465,14 @@ override=
for name in $MOST_PARAMETERS
do
eval junk=\"\$$name\"
- test "$junk" = "`$POSTCONF -c $config_directory -h $name`" || {
+ test "$junk" = "`$POSTCONF -qc $config_directory -h $name`" || {
override=1
break
}
done
test -n "$override" && {
- $POSTCONF -c $config_directory -e \
+ $POSTCONF -qc $config_directory -e \
"daemon_directory = $daemon_directory" \
"command_directory = $command_directory" \
"queue_directory = $queue_directory" \
@@ -679,13 +683,13 @@ EOF
# require now is that defer and deferred are hashed because those
# can contain lots of files.
- found=`$POSTCONF -c $config_directory -h hash_queue_names`
+ found=`$POSTCONF -qc $config_directory -h hash_queue_names`
missing=
(echo "$found" | grep defer >/dev/null) || missing="$missing defer"
(echo "$found" | grep deferred>/dev/null)|| missing="$missing deferred"
test -n "$missing" && {
echo fixing main.cf hash_queue_names for missing $missing
- $POSTCONF -c $config_directory -e hash_queue_names="$found$missing" ||
+ $POSTCONF -qc $config_directory -e hash_queue_names="$found$missing" ||
exit 1
}
@@ -857,14 +861,14 @@ EOF
# when IPv6 support is not compiled in. See util/sys_defs.h.
test "`$POSTCONF -dh inet_protocols`" = "ipv4" ||
- test -n "`$POSTCONF -c $config_directory -n inet_protocols`" || {
+ test -n "`$POSTCONF -qc $config_directory -n inet_protocols`" || {
cat <<EOF | ${FMT}
COMPATIBILITY: editing $config_directory/main.cf, setting
inet_protocols=ipv4. Specify inet_protocols explicitly if you
want to enable IPv6.
In a future release IPv6 will be enabled by default.
EOF
- $POSTCONF -c $config_directory inet_protocols=ipv4 || exit 1
+ $POSTCONF -qc $config_directory inet_protocols=ipv4 || exit 1
}
# Disabled because unhelpful down-stream maintainers disable the safety net.
@@ -875,7 +879,7 @@ EOF
# # PLEASE DO NOT REMOVE THIS CODE. ITS PURPOSE IS TO PREVENT
# # INBOUND MAIL FROM UNEXPECTEDLY BOUNCING AFTER UPGRADING FROM
# # POSTFIX BEFORE 2.10.
-# test -n "`$POSTCONF -c $config_directory -n smtpd_relay_restrictions`" || {
+# test -n "`$POSTCONF -qc $config_directory -n smtpd_relay_restrictions`" || {
# cat <<EOF | ${FMT}
# COMPATIBILITY: editing $config_directory/main.cf, overriding
# smtpd_relay_restrictions to prevent inbound mail from
@@ -883,7 +887,7 @@ EOF
# Specify an empty smtpd_relay_restrictions value to keep using
# smtpd_recipient_restrictions as before.
#EOF
-# $POSTCONF -c $config_directory "smtpd_relay_restrictions = \
+# $POSTCONF -qc $config_directory "smtpd_relay_restrictions = \
# permit_mynetworks permit_sasl_authenticated \
# defer_unauth_destination" || exit 1
# }
@@ -903,8 +907,8 @@ EOF
test -n "$first_install_reminder" && {
- ALIASES=`$POSTCONF -c $config_directory -h alias_database | sed 's/^[^:]*://'`
- NEWALIASES_PATH=`$POSTCONF -c $config_directory -h newaliases_path`
+ ALIASES=`$POSTCONF -qc $config_directory -h alias_database | sed 's/^[^:]*://'`
+ NEWALIASES_PATH=`$POSTCONF -qc $config_directory -h newaliases_path`
cat <<EOF | ${FMT}
Warning: you still need to edit myorigin/mydestination/mynetworks
diff --git a/conf/postfix-files b/conf/postfix-files
index 12a7ccb..5a93982 100644
--- a/conf/postfix-files
+++ b/conf/postfix-files
@@ -75,6 +75,7 @@ $shlib_directory/lib${LIB_PREFIX}master${LIB_SUFFIX}:f:root:-:755
$shlib_directory/${LIB_PREFIX}cdb${LIB_SUFFIX}:f:root:-:755
$shlib_directory/${LIB_PREFIX}ldap${LIB_SUFFIX}:f:root:-:755
$shlib_directory/${LIB_PREFIX}lmdb${LIB_SUFFIX}:f:root:-:755
+$shlib_directory/${LIB_PREFIX}mongodb${LIB_SUFFIX}:f:root:-:755
$shlib_directory/${LIB_PREFIX}mysql${LIB_SUFFIX}:f:root:-:755
$shlib_directory/${LIB_PREFIX}pcre${LIB_SUFFIX}:f:root:-:755
$shlib_directory/${LIB_PREFIX}pgsql${LIB_SUFFIX}:f:root:-:755
@@ -194,6 +195,7 @@ $manpage_directory/man5/ldap_table.5:f:root:-:644
$manpage_directory/man5/lmdb_table.5:f:root:-:644
$manpage_directory/man5/master.5:f:root:-:644
$manpage_directory/man5/memcache_table.5:f:root:-:644
+$manpage_directory/man5/mongodb_table.5:f:root:-:644
$manpage_directory/man5/mysql_table.5:f:root:-:644
$manpage_directory/man5/socketmap_table.5:f:root:-:644
$manpage_directory/man5/sqlite_table.5:f:root:-:644
@@ -285,6 +287,7 @@ $readme_directory/CONTENT_INSPECTION_README:f:root:-:644
$readme_directory/DATABASE_README:f:root:-:644
$readme_directory/DB_README:f:root:-:644
$readme_directory/DEBUG_README:f:root:-:644
+$readme_directory/DEPRECATION_README:f:root:-:644
$readme_directory/DSN_README:f:root:-:644
$readme_directory/ETRN_README:f:root:-:644
$readme_directory/FILTER_README:f:root:-:644
@@ -301,6 +304,7 @@ $readme_directory/MAILDROP_README:f:root:-:644
$readme_directory/MAILLOG_README:f:root:-:644
$readme_directory/MEMCACHE_README:f:root:-:644
$readme_directory/MILTER_README:f:root:-:644
+$readme_directory/MONGODB_README:f:root:-:644
$readme_directory/MULTI_INSTANCE_README:f:root:-:644
$readme_directory/MYSQL_README:f:root:-:644
$readme_directory/SMTPUTF8_README:f:root:-:644
@@ -348,6 +352,7 @@ $html_directory/CYRUS_README.html:f:root:-:644:o
$html_directory/DATABASE_README.html:f:root:-:644
$html_directory/DB_README.html:f:root:-:644
$html_directory/DEBUG_README.html:f:root:-:644
+$html_directory/DEPRECATION_README.html:f:root:-:644
$html_directory/DSN_README.html:f:root:-:644
$html_directory/ETRN_README.html:f:root:-:644
$html_directory/FILTER_README.html:f:root:-:644
@@ -362,6 +367,7 @@ $html_directory/MAILDROP_README.html:f:root:-:644
$html_directory/MAILLOG_README.html:f:root:-:644
$html_directory/MEMCACHE_README.html:f:root:-:644
$html_directory/MILTER_README.html:f:root:-:644
+$html_directory/MONGODB_README.html:f:root:-:644
$html_directory/MULTI_INSTANCE_README.html:f:root:-:644
$html_directory/MYSQL_README.html:f:root:-:644
$html_directory/SMTPUTF8_README.html:f:root:-:644
@@ -418,6 +424,7 @@ $html_directory/mailq.1.html:f:root:-:644
$html_directory/master.5.html:f:root:-:644
$html_directory/master.8.html:f:root:-:644
$html_directory/memcache_table.5.html:f:root:-:644
+$html_directory/mongodb_table.5.html:f:root:-:644
$html_directory/mysql_table.5.html:f:root:-:644
$html_directory/sqlite_table.5.html:f:root:-:644
$html_directory/nisplus_table.5.html:f:root:-:644
diff --git a/conf/postfix-script b/conf/postfix-script
index da98375..c43d764 100755
--- a/conf/postfix-script
+++ b/conf/postfix-script
@@ -28,6 +28,10 @@
# Google, Inc.
# 111 8th Avenue
# New York, NY 10011, USA
+#
+# Wietse Venema
+# porcupine.org
+# Amawalk, NY 10501, USA
#--
# Avoid POSIX death due to SIGHUP when some parent process exits.
@@ -92,7 +96,7 @@ def_config_directory=`$command_directory/postconf -dh config_directory` || {
# If this is a secondary instance, don't touch shared files.
instances=`test ! -f $def_config_directory/main.cf ||
- $command_directory/postconf -c $def_config_directory \
+ $command_directory/postconf -qc $def_config_directory \
-h multi_instance_directories | sed 's/,/ /'` || {
$FATAL cannot execute $command_directory/postconf!
exit 1
@@ -216,6 +220,9 @@ abort)
reload)
+ # Warn once for deprecated parameters.
+ $command_directory/postconf >/dev/null
+
$daemon_directory/master -t 2>/dev/null && {
$FATAL the Postfix mail system is not running
exit 1
@@ -244,6 +251,9 @@ check)
status)
+ # Warn once for deprecated parameters.
+ $command_directory/postconf >/dev/null
+
$daemon_directory/master -t 2>/dev/null && {
$INFO the Postfix mail system is not running
exit 1
@@ -268,12 +278,12 @@ check-fatal)
exit 1
}
- maillog_file=`$command_directory/postconf -h maillog_file` || {
+ maillog_file=`$command_directory/postconf -qh maillog_file` || {
$FATAL cannot execute $command_directory/postconf!
exit 1
}
test -n "$maillog_file" && {
- $command_directory/postconf -M postlog/unix-dgram 2>/dev/null \
+ $command_directory/postconf -qM postlog/unix-dgram 2>/dev/null \
| grep . >/dev/null || {
$FATAL "missing 'postlog' service in master.cf - run 'postfix upgrade-configuration'"
exit 1
@@ -291,6 +301,9 @@ check-fatal)
check-warn)
# This command is NOT part of the public interface.
+ # Warn once for deprecated parameters.
+ $command_directory/postconf >/dev/null
+
# Check Postfix root-owned directory owner/permissions.
find $queue_directory/. $queue_directory/pid \
@@ -413,7 +426,7 @@ logrotate)
for name in maillog_file maillog_file_compressor \
maillog_file_rotate_suffix
do
- value="`$command_directory/postconf -h $name`"
+ value="`$command_directory/postconf -qh $name`"
case "$value" in
"") $FATAL "empty '$name' parameter value - logfile rotation failed"
exit 1;;
diff --git a/conf/relocated b/conf/relocated
index 90f63ec..5c43266 100644
--- a/conf/relocated
+++ b/conf/relocated
@@ -131,8 +131,8 @@
# Other parameters of interest:
#
# inet_interfaces (all)
-# The network interface addresses that this mail sys-
-# tem receives mail on.
+# The local network interface addresses that this
+# mail system receives mail on.
#
# mydestination ($myhostname, localhost.$mydomain, local-
# host)
@@ -145,9 +145,9 @@
# ered to.
#
# proxy_interfaces (empty)
-# The network interface addresses that this mail sys-
-# tem receives mail on by way of a proxy or network
-# address translation unit.
+# The remote network interface addresses that this
+# mail system receives mail on by way of a proxy or
+# network address translation unit.
#
# SEE ALSO
# trivial-rewrite(8), address resolver
diff --git a/conf/virtual b/conf/virtual
index e99eee4..8200ca4 100644
--- a/conf/virtual
+++ b/conf/virtual
@@ -11,98 +11,99 @@
# postmap -q - /etc/postfix/virtual <inputfile
#
# DESCRIPTION
-# The optional virtual(5) alias table rewrites recipient
-# addresses for all local, all virtual, and all remote mail
-# destinations. This is unlike the aliases(5) table which
-# is used only for local(8) delivery. This feature is imple-
-# mented in the Postfix cleanup(8) daemon before mail is
-# queued.
-#
-# Virtual aliasing is recursive; to terminate recursion for
+# The optional virtual(5) alias table (virtual_alias_maps)
+# applies to all recipients: local(8), virtual, and remote.
+# This feature is implemented in the Postfix cleanup(8) dae-
+# mon before mail is queued.
+#
+# This is unlike the aliases(5) table (alias_maps) which
+# applies only to local(8) recipients.
+#
+# Virtual aliasing is recursive; to terminate recursion for
# a specific address, alias that address to itself.
#
# The main applications of virtual aliasing are:
#
-# o To redirect mail for one address to one or more
+# o To redirect mail for one address to one or more
# addresses.
#
-# o To implement virtual alias domains where all
-# addresses are aliased to addresses in other
+# o To implement virtual alias domains where all
+# addresses are aliased to addresses in other
# domains.
#
-# Virtual alias domains are not to be confused with
-# the virtual mailbox domains that are implemented
-# with the Postfix virtual(8) mail delivery agent.
-# With virtual mailbox domains, each recipient
+# Virtual alias domains are not to be confused with
+# the virtual mailbox domains that are implemented
+# with the Postfix virtual(8) mail delivery agent.
+# With virtual mailbox domains, each recipient
# address can have its own mailbox.
#
-# Virtual aliasing is applied only to recipient envelope
-# addresses, and does not affect message headers. Use
-# canonical(5) mapping to rewrite header and envelope
+# Virtual aliasing is applied only to recipient envelope
+# addresses, and does not affect message headers. Use
+# canonical(5) mapping to rewrite header and envelope
# addresses in general.
#
-# Normally, the virtual(5) alias table is specified as a
-# text file that serves as input to the postmap(1) command.
-# The result, an indexed file in dbm or db format, is used
+# Normally, the virtual(5) alias table is specified as a
+# text file that serves as input to the postmap(1) command.
+# The result, an indexed file in dbm or db format, is used
# for fast searching by the mail system. Execute the command
-# "postmap /etc/postfix/virtual" to rebuild an indexed file
+# "postmap /etc/postfix/virtual" to rebuild an indexed file
# after changing the corresponding text file.
#
-# When the table is provided via other means such as NIS,
-# LDAP or SQL, the same lookups are done as for ordinary
+# When the table is provided via other means such as NIS,
+# LDAP or SQL, the same lookups are done as for ordinary
# indexed files.
#
-# Alternatively, the table can be provided as a regu-
-# lar-expression map where patterns are given as regular
-# expressions, or lookups can be directed to a TCP-based
-# server. In those case, the lookups are done in a slightly
+# Alternatively, the table can be provided as a regu-
+# lar-expression map where patterns are given as regular
+# expressions, or lookups can be directed to a TCP-based
+# server. In those case, the lookups are done in a slightly
# different way as described below under "REGULAR EXPRESSION
# TABLES" or "TCP-BASED TABLES".
#
# CASE FOLDING
-# The search string is folded to lowercase before database
-# lookup. As of Postfix 2.3, the search string is not case
-# folded with database types such as regexp: or pcre: whose
+# The search string is folded to lowercase before database
+# lookup. As of Postfix 2.3, the search string is not case
+# folded with database types such as regexp: or pcre: whose
# lookup fields can match both upper and lower case.
#
# TABLE FORMAT
# The input format for the postmap(1) command is as follows:
#
# pattern address, address, ...
-# When pattern matches a mail address, replace it by
+# When pattern matches a mail address, replace it by
# the corresponding address.
#
# blank lines and comments
-# Empty lines and whitespace-only lines are ignored,
-# as are lines whose first non-whitespace character
+# Empty lines and whitespace-only lines are ignored,
+# as are lines whose first non-whitespace character
# is a `#'.
#
# multi-line text
-# A logical line starts with non-whitespace text. A
-# line that starts with whitespace continues a logi-
+# A logical line starts with non-whitespace text. A
+# line that starts with whitespace continues a logi-
# cal line.
#
# TABLE SEARCH ORDER
# With lookups from indexed files such as DB or DBM, or from
-# networked tables such as NIS, LDAP or SQL, each
+# networked tables such as NIS, LDAP or SQL, each
# user@domain query produces a sequence of query patterns as
# described below.
#
-# Each query pattern is sent to each specified lookup table
-# before trying the next query pattern, until a match is
+# Each query pattern is sent to each specified lookup table
+# before trying the next query pattern, until a match is
# found.
#
# user@domain address, address, ...
-# Redirect mail for user@domain to address. This
+# Redirect mail for user@domain to address. This
# form has the highest precedence.
#
# user address, address, ...
# Redirect mail for user@site to address when site is
-# equal to $myorigin, when site is listed in $mydes-
-# tination, or when it is listed in $inet_interfaces
+# equal to $myorigin, when site is listed in $mydes-
+# tination, or when it is listed in $inet_interfaces
# or $proxy_interfaces.
#
-# This functionality overlaps with the functionality
+# This functionality overlaps with the functionality
# of the local aliases(5) database. The difference is
# that virtual(5) mapping can be applied to non-local
# addresses.
@@ -111,18 +112,18 @@
# Redirect mail for other users in domain to address.
# This form has the lowest precedence.
#
-# Note: @domain is a wild-card. With this form, the
-# Postfix SMTP server accepts mail for any recipient
-# in domain, regardless of whether that recipient
-# exists. This may turn your mail system into a
-# backscatter source: Postfix first accepts mail for
-# non-existent recipients and then tries to return
-# that mail as "undeliverable" to the often forged
+# Note: @domain is a wild-card. With this form, the
+# Postfix SMTP server accepts mail for any recipient
+# in domain, regardless of whether that recipient
+# exists. This may turn your mail system into a
+# backscatter source: Postfix first accepts mail for
+# non-existent recipients and then tries to return
+# that mail as "undeliverable" to the often forged
# sender address.
#
-# To avoid backscatter with mail for a wild-card
+# To avoid backscatter with mail for a wild-card
# domain, replace the wild-card mapping with explicit
-# 1:1 mappings, or add a reject_unverified_recipient
+# 1:1 mappings, or add a reject_unverified_recipient
# restriction for that domain:
#
# smtpd_recipient_restrictions =
@@ -132,19 +133,19 @@
# inline:{example.com=reject_unverified_recipient}
# unverified_recipient_reject_code = 550
#
-# In the above example, Postfix may contact a remote
-# server if the recipient is aliased to a remote
+# In the above example, Postfix may contact a remote
+# server if the recipient is aliased to a remote
# address.
#
# RESULT ADDRESS REWRITING
# The lookup result is subject to address rewriting:
#
-# o When the result has the form @otherdomain, the
-# result becomes the same user in otherdomain. This
+# o When the result has the form @otherdomain, the
+# result becomes the same user in otherdomain. This
# works only for the first address in a multi-address
# lookup result.
#
-# o When "append_at_myorigin=yes", append "@$myorigin"
+# o When "append_at_myorigin=yes", append "@$myorigin"
# to addresses without "@domain".
#
# o When "append_dot_mydomain=yes", append ".$mydomain"
@@ -152,29 +153,29 @@
#
# ADDRESS EXTENSION
# When a mail address localpart contains the optional recip-
-# ient delimiter (e.g., user+foo@domain), the lookup order
+# ient delimiter (e.g., user+foo@domain), the lookup order
# becomes: user+foo@domain, user@domain, user+foo, user, and
# @domain.
#
-# The propagate_unmatched_extensions parameter controls
-# whether an unmatched address extension (+foo) is propa-
+# The propagate_unmatched_extensions parameter controls
+# whether an unmatched address extension (+foo) is propa-
# gated to the result of a table lookup.
#
# VIRTUAL ALIAS DOMAINS
-# Besides virtual aliases, the virtual alias table can also
+# Besides virtual aliases, the virtual alias table can also
# be used to implement virtual alias domains. With a virtual
-# alias domain, all recipient addresses are aliased to
+# alias domain, all recipient addresses are aliased to
# addresses in other domains.
#
# Virtual alias domains are not to be confused with the vir-
# tual mailbox domains that are implemented with the Postfix
# virtual(8) mail delivery agent. With virtual mailbox
-# domains, each recipient address can have its own mailbox.
+# domains, each recipient address can have its own mailbox.
#
-# With a virtual alias domain, the virtual domain has its
-# own user name space. Local (i.e. non-virtual) usernames
-# are not visible in a virtual alias domain. In particular,
-# local aliases(5) and local mailing lists are not visible
+# With a virtual alias domain, the virtual domain has its
+# own user name space. Local (i.e. non-virtual) usernames
+# are not visible in a virtual alias domain. In particular,
+# local aliases(5) and local mailing lists are not visible
# as localname@virtual-alias.domain.
#
# Support for a virtual alias domain looks like:
@@ -183,7 +184,7 @@
# 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
+# the output from "postconf -m" for available database
# types.
#
# /etc/postfix/virtual:
@@ -192,72 +193,73 @@
# user1@virtual-alias.domain address1
# user2@virtual-alias.domain address2, address3
#
-# The virtual-alias.domain anything entry is required for a
+# The virtual-alias.domain anything entry is required for a
# virtual alias domain. Without this entry, mail is rejected
-# with "relay access denied", or bounces with "mail loops
+# with "relay access denied", or bounces with "mail loops
# back to myself".
#
-# Do not specify virtual alias domain names in the main.cf
+# Do not specify virtual alias domain names in the main.cf
# mydestination or relay_domains configuration parameters.
#
-# With a virtual alias domain, the Postfix SMTP server
-# accepts mail for known-user@virtual-alias.domain, and
-# rejects mail for unknown-user@virtual-alias.domain as
+# With a virtual alias domain, the Postfix SMTP server
+# accepts mail for known-user@virtual-alias.domain, and
+# rejects mail for unknown-user@virtual-alias.domain as
# undeliverable.
#
-# Instead of specifying the virtual alias domain name via
-# the virtual_alias_maps table, you may also specify it via
+# Instead of specifying the virtual alias domain name via
+# the virtual_alias_maps table, you may also specify it via
# the main.cf virtual_alias_domains configuration parameter.
-# This latter parameter uses the same syntax as the main.cf
+# This latter parameter uses the same syntax as the main.cf
# mydestination configuration parameter.
#
# REGULAR EXPRESSION TABLES
-# This section describes how the table lookups change when
+# This section describes how the table lookups change when
# the table is given in the form of regular expressions. For
-# a description of regular expression lookup table syntax,
+# a description of regular expression lookup table syntax,
# see regexp_table(5) or pcre_table(5).
#
-# Each pattern is a regular expression that is applied to
+# Each pattern is a regular expression that is applied to
# the entire address being looked up. Thus, user@domain mail
-# addresses are not broken up into their user and @domain
+# addresses are not broken up into their user and @domain
# constituent parts, nor is user+foo broken up into user and
# foo.
#
-# Patterns are applied in the order as specified in the ta-
-# ble, 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
-# the additional feature that parenthesized substrings from
+# Results are the same as with indexed file lookups, with
+# the additional feature that parenthesized substrings from
# the pattern can be interpolated as $1, $2 and so on.
#
# TCP-BASED TABLES
-# This section describes how the table lookups change when
+# 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_ta-
-# ble(5). This feature is available in Postfix 2.5 and
+# ble(5). This feature is available in Postfix 2.5 and
# later.
#
# Each lookup operation uses the entire address once. Thus,
-# user@domain mail addresses are not broken up into their
+# user@domain mail addresses are not broken up into their
# user and @domain constituent parts, nor is user+foo broken
# up into user and foo.
#
# Results are the same as with indexed file lookups.
#
# BUGS
-# The table format does not understand quoting conventions.
+# The table format does not understand quoting conventions.
#
# CONFIGURATION PARAMETERS
-# The following main.cf parameters are especially relevant
-# to this topic. See the Postfix main.cf file for syntax
-# details and for default values. Use the "postfix reload"
+# The following main.cf parameters are especially relevant
+# to this topic. See the Postfix main.cf file for syntax
+# details and for default values. Use the "postfix reload"
# command after a configuration change.
#
# virtual_alias_maps ($virtual_maps)
-# Optional lookup tables that alias specific mail
-# addresses or domains to other local or remote
-# addresses.
+# Optional lookup tables with aliases that apply to
+# all recipients: local(8), virtual, and remote; this
+# is unlike alias_maps that apply only to local(8)
+# recipients.
#
# virtual_alias_domains ($virtual_alias_maps)
# Postfix is the final destination for the specified
@@ -272,8 +274,8 @@
# Other parameters of interest:
#
# inet_interfaces (all)
-# The network interface addresses that this mail sys-
-# tem receives mail on.
+# The local network interface addresses that this
+# mail system receives mail on.
#
# mydestination ($myhostname, localhost.$mydomain, local-
# host)
@@ -292,9 +294,9 @@
# the recipient_delimiter is set to "-".
#
# proxy_interfaces (empty)
-# The network interface addresses that this mail sys-
-# tem receives mail on by way of a proxy or network
-# address translation unit.
+# The remote network interface addresses that this
+# mail system receives mail on by way of a proxy or
+# network address translation unit.
#
# SEE ALSO
# cleanup(8), canonicalize and enqueue mail