mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-28 20:57:56 +00:00
postfix-3.8-20220325
This commit is contained in:
parent
57dd3f38dd
commit
351ab5234c
@ -26306,3 +26306,25 @@ Apologies for any names omitted.
|
|||||||
util/htable.c.
|
util/htable.c.
|
||||||
|
|
||||||
Cleanup: unused initialization. File: util/make_dirs.c
|
Cleanup: unused initialization. File: util/make_dirs.c
|
||||||
|
|
||||||
|
20220222
|
||||||
|
|
||||||
|
Documentation: updated comment text. File: util/hash_fnv.c.
|
||||||
|
|
||||||
|
29220312
|
||||||
|
|
||||||
|
Cleanup: when a main.cf like file may have changed while
|
||||||
|
it was read, forget the settings before re-reading the file.
|
||||||
|
File: util/dict.c.
|
||||||
|
|
||||||
|
20220322
|
||||||
|
|
||||||
|
Cleanup: added missing _checks, _reply_footer, _reply_filter,
|
||||||
|
_command_filter, and _delivery_status_filter parameter names
|
||||||
|
to the proxy_read_maps default value. Files: global/mail_params.h,
|
||||||
|
mantools/missing-proxy-read-maps.
|
||||||
|
|
||||||
|
20220325
|
||||||
|
|
||||||
|
Documentation: how to stop recursion in virtual_alias_maps.
|
||||||
|
File: proto/virtual.
|
||||||
|
@ -6,6 +6,18 @@ Wish list:
|
|||||||
|
|
||||||
Disable -DSNAPSHOT and -DNONPROD in makedefs.
|
Disable -DSNAPSHOT and -DNONPROD in makedefs.
|
||||||
|
|
||||||
|
postscreen_dnsbl_sites is evaluated in the reverse order, breaking
|
||||||
|
expectations when different reply patterns have different weights.
|
||||||
|
We need a compatibility_level feature to correct this.
|
||||||
|
|
||||||
|
In the cleanup daemon, open the milter*header_checks greedily,
|
||||||
|
before the chroot() call. This code is implemented and needs
|
||||||
|
to be tested.
|
||||||
|
|
||||||
|
In the pgsql: client, make the client encoding configurable
|
||||||
|
with a sensible default (UTF8). This code is implemented
|
||||||
|
and needs to be tested.
|
||||||
|
|
||||||
FILTER_README needs some text on multi-instance implementations,
|
FILTER_README needs some text on multi-instance implementations,
|
||||||
and existing multi-instance references need to be updated.
|
and existing multi-instance references need to be updated.
|
||||||
|
|
||||||
|
@ -14,92 +14,95 @@
|
|||||||
# The optional virtual(5) alias table rewrites recipient
|
# The optional virtual(5) alias table rewrites recipient
|
||||||
# addresses for all local, all virtual, and all remote mail
|
# addresses for all local, all virtual, and all remote mail
|
||||||
# destinations. This is unlike the aliases(5) table which
|
# destinations. This is unlike the aliases(5) table which
|
||||||
# is used only for local(8) delivery. Virtual aliasing is
|
# is used only for local(8) delivery. This feature is imple-
|
||||||
# recursive, and is implemented by the Postfix cleanup(8)
|
# mented in the Postfix cleanup(8) daemon before mail is
|
||||||
# daemon before mail is queued.
|
# queued.
|
||||||
|
#
|
||||||
|
# Virtual aliasing is recursive; to terminate recursion for
|
||||||
|
# a specific address, alias that address to itself.
|
||||||
#
|
#
|
||||||
# The main applications of virtual aliasing are:
|
# 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.
|
# addresses.
|
||||||
#
|
#
|
||||||
# o To implement virtual alias domains where all
|
# o To implement virtual alias domains where all
|
||||||
# addresses are aliased to addresses in other
|
# addresses are aliased to addresses in other
|
||||||
# domains.
|
# domains.
|
||||||
#
|
#
|
||||||
# Virtual alias domains are not to be confused with
|
# Virtual alias domains are not to be confused with
|
||||||
# the virtual mailbox domains that are implemented
|
# the virtual mailbox domains that are implemented
|
||||||
# with the Postfix virtual(8) mail delivery agent.
|
# with the Postfix virtual(8) mail delivery agent.
|
||||||
# With virtual mailbox domains, each recipient
|
# With virtual mailbox domains, each recipient
|
||||||
# address can have its own mailbox.
|
# address can have its own mailbox.
|
||||||
#
|
#
|
||||||
# Virtual aliasing is applied only to recipient envelope
|
# Virtual aliasing is applied only to recipient envelope
|
||||||
# addresses, and does not affect message headers. Use
|
# addresses, and does not affect message headers. Use
|
||||||
# canonical(5) mapping to rewrite header and envelope
|
# canonical(5) mapping to rewrite header and envelope
|
||||||
# addresses in general.
|
# addresses in general.
|
||||||
#
|
#
|
||||||
# Normally, the virtual(5) alias table is specified as a
|
# Normally, the virtual(5) alias table is specified as a
|
||||||
# text file that serves as input to the postmap(1) command.
|
# text file that serves as input to the postmap(1) command.
|
||||||
# The result, an indexed file in dbm or db format, is used
|
# The result, an indexed file in dbm or db format, is used
|
||||||
# for fast searching by the mail system. Execute the command
|
# 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.
|
# after changing the corresponding text file.
|
||||||
#
|
#
|
||||||
# When the table is provided via other means such as NIS,
|
# When the table is provided via other means such as NIS,
|
||||||
# LDAP or SQL, the same lookups are done as for ordinary
|
# LDAP or SQL, the same lookups are done as for ordinary
|
||||||
# indexed files.
|
# indexed files.
|
||||||
#
|
#
|
||||||
# Alternatively, the table can be provided as a regu-
|
# Alternatively, the table can be provided as a regu-
|
||||||
# lar-expression map where patterns are given as regular
|
# lar-expression map where patterns are given as regular
|
||||||
# expressions, or lookups can be directed to a TCP-based
|
# expressions, or lookups can be directed to a TCP-based
|
||||||
# server. In those case, the lookups are done in a slightly
|
# server. In those case, the lookups are done in a slightly
|
||||||
# different way as described below under "REGULAR EXPRESSION
|
# different way as described below under "REGULAR EXPRESSION
|
||||||
# TABLES" or "TCP-BASED TABLES".
|
# TABLES" or "TCP-BASED TABLES".
|
||||||
#
|
#
|
||||||
# CASE FOLDING
|
# CASE FOLDING
|
||||||
# The search string is folded to lowercase before database
|
# The search string is folded to lowercase before database
|
||||||
# lookup. As of Postfix 2.3, the search string is not case
|
# lookup. As of Postfix 2.3, the search string is not case
|
||||||
# folded with database types such as regexp: or pcre: whose
|
# folded with database types such as regexp: or pcre: whose
|
||||||
# lookup fields can match both upper and lower case.
|
# lookup fields can match both upper and lower case.
|
||||||
#
|
#
|
||||||
# TABLE FORMAT
|
# TABLE FORMAT
|
||||||
# The input format for the postmap(1) command is as follows:
|
# The input format for the postmap(1) command is as follows:
|
||||||
#
|
#
|
||||||
# pattern address, address, ...
|
# pattern address, address, ...
|
||||||
# When pattern matches a mail address, replace it by
|
# When pattern matches a mail address, replace it by
|
||||||
# the corresponding address.
|
# the corresponding address.
|
||||||
#
|
#
|
||||||
# blank lines and comments
|
# blank lines and comments
|
||||||
# Empty lines and whitespace-only lines are ignored,
|
# Empty lines and whitespace-only lines are ignored,
|
||||||
# as are lines whose first non-whitespace character
|
# as are lines whose first non-whitespace character
|
||||||
# is a `#'.
|
# is a `#'.
|
||||||
#
|
#
|
||||||
# multi-line text
|
# multi-line text
|
||||||
# A logical line starts with non-whitespace text. A
|
# A logical line starts with non-whitespace text. A
|
||||||
# line that starts with whitespace continues a logi-
|
# line that starts with whitespace continues a logi-
|
||||||
# cal line.
|
# cal line.
|
||||||
#
|
#
|
||||||
# TABLE SEARCH ORDER
|
# TABLE SEARCH ORDER
|
||||||
# With lookups from indexed files such as DB or DBM, or from
|
# 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
|
# user@domain query produces a sequence of query patterns as
|
||||||
# described below.
|
# described below.
|
||||||
#
|
#
|
||||||
# Each query pattern is sent to each specified lookup table
|
# Each query pattern is sent to each specified lookup table
|
||||||
# before trying the next query pattern, until a match is
|
# before trying the next query pattern, until a match is
|
||||||
# found.
|
# found.
|
||||||
#
|
#
|
||||||
# user@domain address, address, ...
|
# 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.
|
# form has the highest precedence.
|
||||||
#
|
#
|
||||||
# user address, address, ...
|
# user address, address, ...
|
||||||
# Redirect mail for user@site to address when site is
|
# Redirect mail for user@site to address when site is
|
||||||
# equal to $myorigin, when site is listed in $mydes-
|
# equal to $myorigin, when site is listed in $mydes-
|
||||||
# tination, or when it is listed in $inet_interfaces
|
# tination, or when it is listed in $inet_interfaces
|
||||||
# or $proxy_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
|
# of the local aliases(5) database. The difference is
|
||||||
# that virtual(5) mapping can be applied to non-local
|
# that virtual(5) mapping can be applied to non-local
|
||||||
# addresses.
|
# addresses.
|
||||||
@ -108,18 +111,18 @@
|
|||||||
# Redirect mail for other users in domain to address.
|
# Redirect mail for other users in domain to address.
|
||||||
# This form has the lowest precedence.
|
# This form has the lowest precedence.
|
||||||
#
|
#
|
||||||
# Note: @domain is a wild-card. With this form, the
|
# Note: @domain is a wild-card. With this form, the
|
||||||
# Postfix SMTP server accepts mail for any recipient
|
# Postfix SMTP server accepts mail for any recipient
|
||||||
# in domain, regardless of whether that recipient
|
# in domain, regardless of whether that recipient
|
||||||
# exists. This may turn your mail system into a
|
# exists. This may turn your mail system into a
|
||||||
# backscatter source: Postfix first accepts mail for
|
# backscatter source: Postfix first accepts mail for
|
||||||
# non-existent recipients and then tries to return
|
# non-existent recipients and then tries to return
|
||||||
# that mail as "undeliverable" to the often forged
|
# that mail as "undeliverable" to the often forged
|
||||||
# sender address.
|
# 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
|
# 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:
|
# restriction for that domain:
|
||||||
#
|
#
|
||||||
# smtpd_recipient_restrictions =
|
# smtpd_recipient_restrictions =
|
||||||
@ -129,19 +132,19 @@
|
|||||||
# inline:{example.com=reject_unverified_recipient}
|
# inline:{example.com=reject_unverified_recipient}
|
||||||
# unverified_recipient_reject_code = 550
|
# unverified_recipient_reject_code = 550
|
||||||
#
|
#
|
||||||
# In the above example, Postfix may contact a remote
|
# In the above example, Postfix may contact a remote
|
||||||
# server if the recipient is aliased to a remote
|
# server if the recipient is aliased to a remote
|
||||||
# address.
|
# address.
|
||||||
#
|
#
|
||||||
# RESULT ADDRESS REWRITING
|
# RESULT ADDRESS REWRITING
|
||||||
# The lookup result is subject to address rewriting:
|
# The lookup result is subject to address rewriting:
|
||||||
#
|
#
|
||||||
# o When the result has the form @otherdomain, the
|
# o When the result has the form @otherdomain, the
|
||||||
# result becomes the same user in otherdomain. This
|
# result becomes the same user in otherdomain. This
|
||||||
# works only for the first address in a multi-address
|
# works only for the first address in a multi-address
|
||||||
# lookup result.
|
# lookup result.
|
||||||
#
|
#
|
||||||
# o When "append_at_myorigin=yes", append "@$myorigin"
|
# o When "append_at_myorigin=yes", append "@$myorigin"
|
||||||
# to addresses without "@domain".
|
# to addresses without "@domain".
|
||||||
#
|
#
|
||||||
# o When "append_dot_mydomain=yes", append ".$mydomain"
|
# o When "append_dot_mydomain=yes", append ".$mydomain"
|
||||||
@ -149,29 +152,29 @@
|
|||||||
#
|
#
|
||||||
# ADDRESS EXTENSION
|
# ADDRESS EXTENSION
|
||||||
# When a mail address localpart contains the optional recip-
|
# 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
|
# becomes: user+foo@domain, user@domain, user+foo, user, and
|
||||||
# @domain.
|
# @domain.
|
||||||
#
|
#
|
||||||
# The propagate_unmatched_extensions parameter controls
|
# The propagate_unmatched_extensions parameter controls
|
||||||
# whether an unmatched address extension (+foo) is propa-
|
# whether an unmatched address extension (+foo) is propa-
|
||||||
# gated to the result of a table lookup.
|
# gated to the result of a table lookup.
|
||||||
#
|
#
|
||||||
# VIRTUAL ALIAS DOMAINS
|
# 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
|
# 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.
|
# addresses in other domains.
|
||||||
#
|
#
|
||||||
# Virtual alias domains are not to be confused with the vir-
|
# Virtual alias domains are not to be confused with the vir-
|
||||||
# tual mailbox domains that are implemented with the Postfix
|
# tual mailbox domains that are implemented with the Postfix
|
||||||
# virtual(8) mail delivery agent. With virtual mailbox
|
# 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
|
# With a virtual alias domain, the virtual domain has its
|
||||||
# own user name space. Local (i.e. non-virtual) usernames
|
# own user name space. Local (i.e. non-virtual) usernames
|
||||||
# are not visible in a virtual alias domain. In particular,
|
# are not visible in a virtual alias domain. In particular,
|
||||||
# local aliases(5) and local mailing lists are not visible
|
# local aliases(5) and local mailing lists are not visible
|
||||||
# as localname@virtual-alias.domain.
|
# as localname@virtual-alias.domain.
|
||||||
#
|
#
|
||||||
# Support for a virtual alias domain looks like:
|
# Support for a virtual alias domain looks like:
|
||||||
@ -180,7 +183,7 @@
|
|||||||
# virtual_alias_maps = hash:/etc/postfix/virtual
|
# virtual_alias_maps = hash:/etc/postfix/virtual
|
||||||
#
|
#
|
||||||
# Note: some systems use dbm databases instead of hash. See
|
# 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.
|
# types.
|
||||||
#
|
#
|
||||||
# /etc/postfix/virtual:
|
# /etc/postfix/virtual:
|
||||||
@ -189,81 +192,81 @@
|
|||||||
# user1@virtual-alias.domain address1
|
# user1@virtual-alias.domain address1
|
||||||
# user2@virtual-alias.domain address2, address3
|
# 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
|
# 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".
|
# 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.
|
# mydestination or relay_domains configuration parameters.
|
||||||
#
|
#
|
||||||
# With a virtual alias domain, the Postfix SMTP server
|
# With a virtual alias domain, the Postfix SMTP server
|
||||||
# accepts mail for known-user@virtual-alias.domain, and
|
# accepts mail for known-user@virtual-alias.domain, and
|
||||||
# rejects mail for unknown-user@virtual-alias.domain as
|
# rejects mail for unknown-user@virtual-alias.domain as
|
||||||
# undeliverable.
|
# undeliverable.
|
||||||
#
|
#
|
||||||
# Instead of specifying the virtual alias domain name via
|
# Instead of specifying the virtual alias domain name via
|
||||||
# the virtual_alias_maps table, you may also specify it via
|
# the virtual_alias_maps table, you may also specify it via
|
||||||
# the main.cf virtual_alias_domains configuration parameter.
|
# 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.
|
# mydestination configuration parameter.
|
||||||
#
|
#
|
||||||
# REGULAR EXPRESSION TABLES
|
# 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
|
# 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).
|
# 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
|
# 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
|
# constituent parts, nor is user+foo broken up into user and
|
||||||
# foo.
|
# foo.
|
||||||
#
|
#
|
||||||
# Patterns are applied in the order as specified in the ta-
|
# Patterns are applied in the order as specified in the ta-
|
||||||
# ble, until a pattern is found that matches the search
|
# ble, until a pattern is found that matches the search
|
||||||
# string.
|
# string.
|
||||||
#
|
#
|
||||||
# Results are the same as with indexed file lookups, with
|
# Results are the same as with indexed file lookups, with
|
||||||
# the additional feature that parenthesized substrings from
|
# the additional feature that parenthesized substrings from
|
||||||
# the pattern can be interpolated as $1, $2 and so on.
|
# the pattern can be interpolated as $1, $2 and so on.
|
||||||
#
|
#
|
||||||
# TCP-BASED TABLES
|
# 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-
|
# lookups are directed to a TCP-based server. For a descrip-
|
||||||
# tion of the TCP client/server lookup protocol, see tcp_ta-
|
# 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.
|
# later.
|
||||||
#
|
#
|
||||||
# Each lookup operation uses the entire address once. Thus,
|
# 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
|
# user and @domain constituent parts, nor is user+foo broken
|
||||||
# up into user and foo.
|
# up into user and foo.
|
||||||
#
|
#
|
||||||
# Results are the same as with indexed file lookups.
|
# Results are the same as with indexed file lookups.
|
||||||
#
|
#
|
||||||
# BUGS
|
# BUGS
|
||||||
# The table format does not understand quoting conventions.
|
# The table format does not understand quoting conventions.
|
||||||
#
|
#
|
||||||
# CONFIGURATION PARAMETERS
|
# CONFIGURATION PARAMETERS
|
||||||
# The following main.cf parameters are especially relevant
|
# The following main.cf parameters are especially relevant
|
||||||
# to this topic. See the Postfix main.cf file for syntax
|
# to this topic. See the Postfix main.cf file for syntax
|
||||||
# details and for default values. Use the "postfix reload"
|
# details and for default values. Use the "postfix reload"
|
||||||
# command after a configuration change.
|
# command after a configuration change.
|
||||||
#
|
#
|
||||||
# virtual_alias_maps ($virtual_maps)
|
# virtual_alias_maps ($virtual_maps)
|
||||||
# Optional lookup tables that alias specific mail
|
# Optional lookup tables that alias specific mail
|
||||||
# addresses or domains to other local or remote
|
# addresses or domains to other local or remote
|
||||||
# addresses.
|
# addresses.
|
||||||
#
|
#
|
||||||
# virtual_alias_domains ($virtual_alias_maps)
|
# virtual_alias_domains ($virtual_alias_maps)
|
||||||
# Postfix is the final destination for the specified
|
# Postfix is the final destination for the specified
|
||||||
# list of virtual alias domains, that is, domains for
|
# list of virtual alias domains, that is, domains for
|
||||||
# which all addresses are aliased to addresses in
|
# which all addresses are aliased to addresses in
|
||||||
# other local or remote domains.
|
# other local or remote domains.
|
||||||
#
|
#
|
||||||
# propagate_unmatched_extensions (canonical, virtual)
|
# 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.
|
# sion from the lookup key to the lookup result.
|
||||||
#
|
#
|
||||||
# Other parameters of interest:
|
# Other parameters of interest:
|
||||||
@ -274,23 +277,23 @@
|
|||||||
#
|
#
|
||||||
# mydestination ($myhostname, localhost.$mydomain, local-
|
# mydestination ($myhostname, localhost.$mydomain, local-
|
||||||
# host)
|
# host)
|
||||||
# The list of domains that are delivered via the
|
# The list of domains that are delivered via the
|
||||||
# $local_transport mail delivery transport.
|
# $local_transport mail delivery transport.
|
||||||
#
|
#
|
||||||
# myorigin ($myhostname)
|
# myorigin ($myhostname)
|
||||||
# The domain name that locally-posted mail appears to
|
# 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.
|
# ered to.
|
||||||
#
|
#
|
||||||
# owner_request_special (yes)
|
# owner_request_special (yes)
|
||||||
# Enable special treatment for owner-listname entries
|
# Enable special treatment for owner-listname entries
|
||||||
# in the aliases(5) file, and don't split owner-list-
|
# 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 "-".
|
# the recipient_delimiter is set to "-".
|
||||||
#
|
#
|
||||||
# proxy_interfaces (empty)
|
# proxy_interfaces (empty)
|
||||||
# The network interface addresses that this mail sys-
|
# The network interface addresses that this mail sys-
|
||||||
# tem receives mail on by way of a proxy or network
|
# tem receives mail on by way of a proxy or network
|
||||||
# address translation unit.
|
# address translation unit.
|
||||||
#
|
#
|
||||||
# SEE ALSO
|
# SEE ALSO
|
||||||
@ -300,14 +303,14 @@
|
|||||||
# canonical(5), canonical address mapping
|
# canonical(5), canonical address mapping
|
||||||
#
|
#
|
||||||
# README FILES
|
# README FILES
|
||||||
# Use "postconf readme_directory" or "postconf html_direc-
|
# Use "postconf readme_directory" or "postconf html_direc-
|
||||||
# tory" to locate this information.
|
# tory" to locate this information.
|
||||||
# ADDRESS_REWRITING_README, address rewriting guide
|
# ADDRESS_REWRITING_README, address rewriting guide
|
||||||
# DATABASE_README, Postfix lookup table overview
|
# DATABASE_README, Postfix lookup table overview
|
||||||
# VIRTUAL_README, domain hosting guide
|
# VIRTUAL_README, domain hosting guide
|
||||||
#
|
#
|
||||||
# LICENSE
|
# LICENSE
|
||||||
# The Secure Mailer license must be distributed with this
|
# The Secure Mailer license must be distributed with this
|
||||||
# software.
|
# software.
|
||||||
#
|
#
|
||||||
# AUTHOR(S)
|
# AUTHOR(S)
|
||||||
|
@ -20,95 +20,98 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
The optional <a href="virtual.5.html"><b>virtual</b>(5)</a> alias table rewrites recipient addresses for
|
The optional <a href="virtual.5.html"><b>virtual</b>(5)</a> alias table rewrites recipient addresses for
|
||||||
all local, all virtual, and all remote mail destinations. This is
|
all local, all virtual, and all remote mail destinations. 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.
|
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 recursive, and is implemented by the Postfix
|
This feature is implemented in the Postfix <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon before
|
||||||
<a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon before mail is queued.
|
mail is queued.
|
||||||
|
|
||||||
|
Virtual aliasing is recursive; to terminate recursion for a specific
|
||||||
|
address, alias that address to itself.
|
||||||
|
|
||||||
The main applications of virtual aliasing are:
|
The main applications of virtual aliasing are:
|
||||||
|
|
||||||
<b>o</b> To redirect mail for one address to one or more addresses.
|
<b>o</b> To redirect mail for one address to one or more addresses.
|
||||||
|
|
||||||
<b>o</b> To implement virtual alias domains where all addresses are
|
<b>o</b> To implement virtual alias domains where all addresses are
|
||||||
aliased to addresses in other domains.
|
aliased to addresses in other domains.
|
||||||
|
|
||||||
Virtual alias domains are not to be confused with the virtual
|
Virtual alias domains are not to be confused with the virtual
|
||||||
mailbox domains that are implemented with the Postfix <a href="virtual.8.html"><b>virtual</b>(8)</a>
|
mailbox domains that are implemented with the Postfix <a href="virtual.8.html"><b>virtual</b>(8)</a>
|
||||||
mail delivery agent. With <a href="ADDRESS_CLASS_README.html#virtual_mailbox_class">virtual mailbox domains</a>, each recipi-
|
mail delivery agent. With <a href="ADDRESS_CLASS_README.html#virtual_mailbox_class">virtual mailbox domains</a>, each recipi-
|
||||||
ent address can have its own mailbox.
|
ent address can have its own mailbox.
|
||||||
|
|
||||||
Virtual aliasing is applied only to recipient envelope addresses, and
|
Virtual aliasing is applied only to recipient envelope addresses, and
|
||||||
does not affect message headers. Use <a href="canonical.5.html"><b>canonical</b>(5)</a> mapping to rewrite
|
does not affect message headers. Use <a href="canonical.5.html"><b>canonical</b>(5)</a> mapping to rewrite
|
||||||
header and envelope addresses in general.
|
header and envelope addresses in general.
|
||||||
|
|
||||||
Normally, the <a href="virtual.5.html"><b>virtual</b>(5)</a> alias table is specified as a text file that
|
Normally, the <a href="virtual.5.html"><b>virtual</b>(5)</a> alias table is specified as a text file that
|
||||||
serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> command. The result, an indexed file
|
serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> command. The result, an indexed file
|
||||||
in <b>dbm</b> or <b>db</b> format, is used for fast searching by the mail system.
|
in <b>dbm</b> or <b>db</b> format, is used for fast searching by the mail system.
|
||||||
Execute the command "<b>postmap /etc/postfix/virtual</b>" to rebuild an
|
Execute the command "<b>postmap /etc/postfix/virtual</b>" to rebuild an
|
||||||
indexed file after changing the corresponding text file.
|
indexed file after changing the corresponding text file.
|
||||||
|
|
||||||
When the table is provided via other means such as NIS, LDAP or SQL,
|
When the table is provided via other means such as NIS, LDAP or SQL,
|
||||||
the same lookups are done as for ordinary indexed files.
|
the same lookups are done as for ordinary indexed files.
|
||||||
|
|
||||||
Alternatively, the table can be provided as a regular-expression map
|
Alternatively, the table can be provided as a regular-expression map
|
||||||
where patterns are given as regular expressions, or lookups can be
|
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
|
directed to a TCP-based server. In those case, the lookups are done in
|
||||||
a slightly different way as described below under "REGULAR EXPRESSION
|
a slightly different way as described below under "REGULAR EXPRESSION
|
||||||
TABLES" or "TCP-BASED TABLES".
|
TABLES" or "TCP-BASED TABLES".
|
||||||
|
|
||||||
<b>CASE FOLDING</b>
|
<b>CASE FOLDING</b>
|
||||||
The search string is folded to lowercase before database lookup. As of
|
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
|
Postfix 2.3, the search string is not case folded with database types
|
||||||
such as <a href="regexp_table.5.html">regexp</a>: or <a href="pcre_table.5.html">pcre</a>: whose lookup fields can match both upper and
|
such as <a href="regexp_table.5.html">regexp</a>: or <a href="pcre_table.5.html">pcre</a>: whose lookup fields can match both upper and
|
||||||
lower case.
|
lower case.
|
||||||
|
|
||||||
<b>TABLE FORMAT</b>
|
<b>TABLE FORMAT</b>
|
||||||
The input format for the <a href="postmap.1.html"><b>postmap</b>(1)</a> command is as follows:
|
The input format for the <a href="postmap.1.html"><b>postmap</b>(1)</a> command is as follows:
|
||||||
|
|
||||||
<i>pattern address, address, ...</i>
|
<i>pattern address, address, ...</i>
|
||||||
When <i>pattern</i> matches a mail address, replace it by the corre-
|
When <i>pattern</i> matches a mail address, replace it by the corre-
|
||||||
sponding <i>address</i>.
|
sponding <i>address</i>.
|
||||||
|
|
||||||
blank lines and comments
|
blank lines and comments
|
||||||
Empty lines and whitespace-only lines are ignored, as are lines
|
Empty lines and whitespace-only lines are ignored, as are lines
|
||||||
whose first non-whitespace character is a `#'.
|
whose first non-whitespace character is a `#'.
|
||||||
|
|
||||||
multi-line text
|
multi-line text
|
||||||
A logical line starts with non-whitespace text. A line that
|
A logical line starts with non-whitespace text. A line that
|
||||||
starts with whitespace continues a logical line.
|
starts with whitespace continues a logical line.
|
||||||
|
|
||||||
<b>TABLE SEARCH ORDER</b>
|
<b>TABLE SEARCH ORDER</b>
|
||||||
With lookups from indexed files such as DB or DBM, or from networked
|
With lookups from indexed files such as DB or DBM, or from networked
|
||||||
tables such as NIS, LDAP or SQL, each <i>user</i>@<i>domain</i> query produces a
|
tables such as NIS, LDAP or SQL, each <i>user</i>@<i>domain</i> query produces a
|
||||||
sequence of query patterns as described below.
|
sequence of query patterns as described below.
|
||||||
|
|
||||||
Each query pattern is sent to each specified lookup table before trying
|
Each query pattern is sent to each specified lookup table before trying
|
||||||
the next query pattern, until a match is found.
|
the next query pattern, until a match is found.
|
||||||
|
|
||||||
<i>user</i>@<i>domain address, address, ...</i>
|
<i>user</i>@<i>domain address, address, ...</i>
|
||||||
Redirect mail for <i>user</i>@<i>domain</i> to <i>address</i>. This form has the
|
Redirect mail for <i>user</i>@<i>domain</i> to <i>address</i>. This form has the
|
||||||
highest precedence.
|
highest precedence.
|
||||||
|
|
||||||
<i>user address, address, ...</i>
|
<i>user address, address, ...</i>
|
||||||
Redirect mail for <i>user</i>@<i>site</i> to <i>address</i> when <i>site</i> is equal to
|
Redirect mail for <i>user</i>@<i>site</i> to <i>address</i> when <i>site</i> is equal to
|
||||||
$<b><a href="postconf.5.html#myorigin">myorigin</a></b>, when <i>site</i> is listed in $<b><a href="postconf.5.html#mydestination">mydestination</a></b>, or when it is
|
$<b><a href="postconf.5.html#myorigin">myorigin</a></b>, when <i>site</i> is listed in $<b><a href="postconf.5.html#mydestination">mydestination</a></b>, or when it is
|
||||||
listed in $<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a></b> or $<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a></b>.
|
listed in $<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a></b> or $<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a></b>.
|
||||||
|
|
||||||
This functionality overlaps with the functionality of the local
|
This functionality overlaps with the functionality of the local
|
||||||
<i>aliases</i>(5) database. The difference is that <a href="virtual.5.html"><b>virtual</b>(5)</a> mapping
|
<i>aliases</i>(5) database. The difference is that <a href="virtual.5.html"><b>virtual</b>(5)</a> mapping
|
||||||
can be applied to non-local addresses.
|
can be applied to non-local addresses.
|
||||||
|
|
||||||
@<i>domain address, address, ...</i>
|
@<i>domain address, address, ...</i>
|
||||||
Redirect mail for other users in <i>domain</i> to <i>address</i>. This form
|
Redirect mail for other users in <i>domain</i> to <i>address</i>. This form
|
||||||
has the lowest precedence.
|
has the lowest precedence.
|
||||||
|
|
||||||
Note: @<i>domain</i> is a wild-card. With this form, the Postfix SMTP
|
Note: @<i>domain</i> is a wild-card. With this form, the Postfix SMTP
|
||||||
server accepts mail for any recipient in <i>domain</i>, regardless of
|
server accepts mail for any recipient in <i>domain</i>, regardless of
|
||||||
whether that recipient exists. This may turn your mail system
|
whether that recipient exists. This may turn your mail system
|
||||||
into a backscatter source: Postfix first accepts mail for
|
into a backscatter source: Postfix first accepts mail for
|
||||||
non-existent recipients and then tries to return that mail as
|
non-existent recipients and then tries to return that mail as
|
||||||
"undeliverable" to the often forged sender address.
|
"undeliverable" to the often forged sender address.
|
||||||
|
|
||||||
To avoid backscatter with mail for a wild-card domain, replace
|
To avoid backscatter with mail for a wild-card domain, replace
|
||||||
the wild-card mapping with explicit 1:1 mappings, or add a
|
the wild-card mapping with explicit 1:1 mappings, or add a
|
||||||
<a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a> restriction for that domain:
|
<a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a> restriction for that domain:
|
||||||
|
|
||||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||||
@ -124,11 +127,11 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
<b>RESULT ADDRESS REWRITING</b>
|
<b>RESULT ADDRESS REWRITING</b>
|
||||||
The lookup result is subject to address rewriting:
|
The lookup result is subject to address rewriting:
|
||||||
|
|
||||||
<b>o</b> When the result has the form @<i>otherdomain</i>, the result becomes
|
<b>o</b> When the result has the form @<i>otherdomain</i>, the result becomes
|
||||||
the same <i>user</i> in <i>otherdomain</i>. This works only for the first
|
the same <i>user</i> in <i>otherdomain</i>. This works only for the first
|
||||||
address in a multi-address lookup result.
|
address in a multi-address lookup result.
|
||||||
|
|
||||||
<b>o</b> When "<b><a href="postconf.5.html#append_at_myorigin">append_at_myorigin</a>=yes</b>", append "<b>@$<a href="postconf.5.html#myorigin">myorigin</a></b>" to addresses
|
<b>o</b> When "<b><a href="postconf.5.html#append_at_myorigin">append_at_myorigin</a>=yes</b>", append "<b>@$<a href="postconf.5.html#myorigin">myorigin</a></b>" to addresses
|
||||||
without "@domain".
|
without "@domain".
|
||||||
|
|
||||||
<b>o</b> When "<b><a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a>=yes</b>", append "<b>.$<a href="postconf.5.html#mydomain">mydomain</a></b>" to addresses
|
<b>o</b> When "<b><a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a>=yes</b>", append "<b>.$<a href="postconf.5.html#mydomain">mydomain</a></b>" to addresses
|
||||||
@ -136,26 +139,26 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
|
|
||||||
<b>ADDRESS EXTENSION</b>
|
<b>ADDRESS EXTENSION</b>
|
||||||
When a mail address localpart contains the optional recipient delimiter
|
When a mail address localpart contains the optional recipient delimiter
|
||||||
(e.g., <i>user+foo</i>@<i>domain</i>), the lookup order becomes: <i>user+foo</i>@<i>domain</i>,
|
(e.g., <i>user+foo</i>@<i>domain</i>), the lookup order becomes: <i>user+foo</i>@<i>domain</i>,
|
||||||
<i>user</i>@<i>domain</i>, <i>user+foo</i>, <i>user</i>, and @<i>domain</i>.
|
<i>user</i>@<i>domain</i>, <i>user+foo</i>, <i>user</i>, and @<i>domain</i>.
|
||||||
|
|
||||||
The <b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a></b> parameter controls whether an
|
The <b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a></b> parameter controls whether an
|
||||||
unmatched address extension (<i>+foo</i>) is propagated to the result of a ta-
|
unmatched address extension (<i>+foo</i>) is propagated to the result of a ta-
|
||||||
ble lookup.
|
ble lookup.
|
||||||
|
|
||||||
<b>VIRTUAL ALIAS DOMAINS</b>
|
<b>VIRTUAL ALIAS DOMAINS</b>
|
||||||
Besides virtual aliases, the virtual alias table can also be used to
|
Besides virtual aliases, the virtual alias table can also be used to
|
||||||
implement <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domains</a>. With a virtual alias domain, all
|
implement virtual alias domains. With a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a>, all
|
||||||
recipient addresses are aliased to addresses in other domains.
|
recipient addresses are aliased to addresses in other domains.
|
||||||
|
|
||||||
Virtual alias domains are not to be confused with the virtual mailbox
|
Virtual alias domains are not to be confused with the virtual mailbox
|
||||||
domains that are implemented with the Postfix <a href="virtual.8.html"><b>virtual</b>(8)</a> mail delivery
|
domains that are implemented with the Postfix <a href="virtual.8.html"><b>virtual</b>(8)</a> mail delivery
|
||||||
agent. With virtual mailbox domains, each recipient address can have
|
agent. With <a href="ADDRESS_CLASS_README.html#virtual_mailbox_class">virtual mailbox domains</a>, each recipient address can have
|
||||||
its own mailbox.
|
its own mailbox.
|
||||||
|
|
||||||
With a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a>, the virtual domain has its own user name
|
With a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a>, the virtual domain has its own user name
|
||||||
space. Local (i.e. non-virtual) usernames are not visible in a virtual
|
space. Local (i.e. non-virtual) usernames are not visible in a virtual
|
||||||
alias domain. In particular, local <a href="aliases.5.html"><b>aliases</b>(5)</a> and local mailing lists
|
alias domain. In particular, local <a href="aliases.5.html"><b>aliases</b>(5)</a> and local mailing lists
|
||||||
are not visible as <i>localname@virtual-alias.domain</i>.
|
are not visible as <i>localname@virtual-alias.domain</i>.
|
||||||
|
|
||||||
Support for a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a> looks like:
|
Support for a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a> looks like:
|
||||||
@ -163,7 +166,7 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||||
<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/virtual
|
<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> = <a href="DATABASE_README.html#types">hash</a>:/etc/postfix/virtual
|
||||||
|
|
||||||
Note: some systems use <b>dbm</b> databases instead of <b>hash</b>. See the output
|
Note: some systems use <b>dbm</b> databases instead of <b>hash</b>. See the output
|
||||||
from "<b>postconf -m</b>" for available database types.
|
from "<b>postconf -m</b>" for available database types.
|
||||||
|
|
||||||
/etc/postfix/virtual:
|
/etc/postfix/virtual:
|
||||||
@ -173,46 +176,46 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
<i>user2@virtual-alias.domain address2, address3</i>
|
<i>user2@virtual-alias.domain address2, address3</i>
|
||||||
|
|
||||||
The <i>virtual-alias.domain anything</i> entry is required for a virtual alias
|
The <i>virtual-alias.domain anything</i> entry is required for a virtual alias
|
||||||
domain. <b>Without this entry, mail is rejected with "relay access</b>
|
domain. <b>Without this entry, mail is rejected with "relay access</b>
|
||||||
<b>denied", or bounces with "mail loops back to myself".</b>
|
<b>denied", or bounces with "mail loops back to myself".</b>
|
||||||
|
|
||||||
Do not specify <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a> names in the <a href="postconf.5.html"><b>main.cf</a> <a href="postconf.5.html#mydestination">mydestination</a></b>
|
Do not specify <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a> names in the <a href="postconf.5.html"><b>main.cf</a> <a href="postconf.5.html#mydestination">mydestination</a></b>
|
||||||
or <b><a href="postconf.5.html#relay_domains">relay_domains</a></b> configuration parameters.
|
or <b><a href="postconf.5.html#relay_domains">relay_domains</a></b> configuration parameters.
|
||||||
|
|
||||||
With a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a>, the Postfix SMTP server accepts mail for
|
With a <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a>, the Postfix SMTP server accepts mail for
|
||||||
<i>known-user@virtual-alias.domain</i>, and rejects mail for <i>unknown-user</i>@<i>vir-</i>
|
<i>known-user@virtual-alias.domain</i>, and rejects mail for <i>unknown-user</i>@<i>vir-</i>
|
||||||
<i>tual-alias.domain</i> as undeliverable.
|
<i>tual-alias.domain</i> as undeliverable.
|
||||||
|
|
||||||
Instead of specifying the virtual alias domain name via the <b><a href="postconf.5.html#virtual_alias_maps">vir</a>-</b>
|
Instead of specifying the virtual alias domain name via the <b><a href="postconf.5.html#virtual_alias_maps">vir</a>-</b>
|
||||||
<b><a href="postconf.5.html#virtual_alias_maps">tual_alias_maps</a></b> table, you may also specify it via the <a href="postconf.5.html"><b>main.cf</a> <a href="postconf.5.html#virtual_alias_domains">vir-</b>
|
<b><a href="postconf.5.html#virtual_alias_maps">tual_alias_maps</a></b> table, you may also specify it via the <a href="postconf.5.html"><b>main.cf</a> <a href="postconf.5.html#virtual_alias_domains">vir-</b>
|
||||||
<b>tual_alias_domains</a></b> configuration parameter. This latter parameter uses
|
<b>tual_alias_domains</a></b> configuration parameter. This latter parameter uses
|
||||||
the same syntax as the <a href="postconf.5.html"><b>main.cf</a> <a href="postconf.5.html#mydestination">mydestination</a></b> configuration parameter.
|
the same syntax as the <a href="postconf.5.html"><b>main.cf</a> <a href="postconf.5.html#mydestination">mydestination</a></b> configuration parameter.
|
||||||
|
|
||||||
<b>REGULAR EXPRESSION TABLES</b>
|
<b>REGULAR EXPRESSION TABLES</b>
|
||||||
This section describes how the table lookups change when the table is
|
This section describes how the table lookups change when the table is
|
||||||
given in the form of regular expressions. For a description of regular
|
given in the form of regular expressions. For a description of regular
|
||||||
expression lookup table syntax, see <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a> or <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>.
|
expression lookup table syntax, see <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a> or <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>.
|
||||||
|
|
||||||
Each pattern is a regular expression that is applied to the entire
|
Each pattern is a regular expression that is applied to the entire
|
||||||
address being looked up. Thus, <i>user@domain</i> mail addresses are not bro-
|
address being looked up. Thus, <i>user@domain</i> mail addresses are not bro-
|
||||||
ken up into their <i>user</i> and <i>@domain</i> constituent parts, nor is <i>user+foo</i>
|
ken up into their <i>user</i> and <i>@domain</i> constituent parts, nor is <i>user+foo</i>
|
||||||
broken up into <i>user</i> and <i>foo</i>.
|
broken up into <i>user</i> and <i>foo</i>.
|
||||||
|
|
||||||
Patterns are applied in the order as specified in the table, until a
|
Patterns are applied in the order as specified in the table, until a
|
||||||
pattern is found that matches the search string.
|
pattern is found that matches the search string.
|
||||||
|
|
||||||
Results are the same as with indexed file lookups, with the additional
|
Results are the same as with indexed file lookups, with the additional
|
||||||
feature that parenthesized substrings from the pattern can be interpo-
|
feature that parenthesized substrings from the pattern can be interpo-
|
||||||
lated as <b>$1</b>, <b>$2</b> and so on.
|
lated as <b>$1</b>, <b>$2</b> and so on.
|
||||||
|
|
||||||
<b>TCP-BASED TABLES</b>
|
<b>TCP-BASED TABLES</b>
|
||||||
This section describes how the table lookups change when lookups are
|
This section describes how the table lookups change when lookups are
|
||||||
directed to a TCP-based server. For a description of the TCP
|
directed to a TCP-based server. For a description of the TCP
|
||||||
client/server lookup protocol, see <a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>. This feature is
|
client/server lookup protocol, see <a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>. This feature is
|
||||||
available in Postfix 2.5 and later.
|
available in Postfix 2.5 and later.
|
||||||
|
|
||||||
Each lookup operation uses the entire address once. Thus, <i>user@domain</i>
|
Each lookup operation uses the entire address once. Thus, <i>user@domain</i>
|
||||||
mail addresses are not broken up into their <i>user</i> and <i>@domain</i> con-
|
mail addresses are not broken up into their <i>user</i> and <i>@domain</i> con-
|
||||||
stituent parts, nor is <i>user+foo</i> broken up into <i>user</i> and <i>foo</i>.
|
stituent parts, nor is <i>user+foo</i> broken up into <i>user</i> and <i>foo</i>.
|
||||||
|
|
||||||
Results are the same as with indexed file lookups.
|
Results are the same as with indexed file lookups.
|
||||||
@ -226,40 +229,40 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
Use the "<b>postfix reload</b>" command after a configuration change.
|
Use the "<b>postfix reload</b>" command after a configuration change.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> ($<a href="postconf.5.html#virtual_maps">virtual_maps</a>)</b>
|
<b><a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> ($<a href="postconf.5.html#virtual_maps">virtual_maps</a>)</b>
|
||||||
Optional lookup tables that alias specific mail addresses or
|
Optional lookup tables that alias specific mail addresses or
|
||||||
domains to other local or remote addresses.
|
domains to other local or remote addresses.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a> ($<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>)</b>
|
<b><a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a> ($<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>)</b>
|
||||||
Postfix is the final destination for the specified list of vir-
|
Postfix is the final destination for the specified list of vir-
|
||||||
tual alias domains, that is, domains for which all addresses are
|
tual alias domains, that is, domains for which all addresses are
|
||||||
aliased to addresses in other local or remote domains.
|
aliased to addresses in other local or remote domains.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a> (canonical, virtual)</b>
|
<b><a href="postconf.5.html#propagate_unmatched_extensions">propagate_unmatched_extensions</a> (canonical, virtual)</b>
|
||||||
What address lookup tables copy an address extension from the
|
What address lookup tables copy an address extension from the
|
||||||
lookup key to the lookup result.
|
lookup key to the lookup result.
|
||||||
|
|
||||||
Other parameters of interest:
|
Other parameters of interest:
|
||||||
|
|
||||||
<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> (all)</b>
|
<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> (all)</b>
|
||||||
The network interface addresses that this mail system receives
|
The network interface addresses that this mail system receives
|
||||||
mail on.
|
mail on.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#mydestination">mydestination</a> ($<a href="postconf.5.html#myhostname">myhostname</a>, localhost.$<a href="postconf.5.html#mydomain">mydomain</a>, localhost)</b>
|
<b><a href="postconf.5.html#mydestination">mydestination</a> ($<a href="postconf.5.html#myhostname">myhostname</a>, localhost.$<a href="postconf.5.html#mydomain">mydomain</a>, localhost)</b>
|
||||||
The list of domains that are delivered via the $<a href="postconf.5.html#local_transport">local_transport</a>
|
The list of domains that are delivered via the $<a href="postconf.5.html#local_transport">local_transport</a>
|
||||||
mail delivery transport.
|
mail delivery transport.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#myorigin">myorigin</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
<b><a href="postconf.5.html#myorigin">myorigin</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||||
The domain name that locally-posted mail appears to come from,
|
The domain name that locally-posted mail appears to come from,
|
||||||
and that locally posted mail is delivered to.
|
and that locally posted mail is delivered to.
|
||||||
|
|
||||||
<b><a href="postconf.5.html#owner_request_special">owner_request_special</a> (yes)</b>
|
<b><a href="postconf.5.html#owner_request_special">owner_request_special</a> (yes)</b>
|
||||||
Enable special treatment for owner-<i>listname</i> entries in the
|
Enable special treatment for owner-<i>listname</i> entries in the
|
||||||
<a href="aliases.5.html"><b>aliases</b>(5)</a> file, and don't split owner-<i>listname</i> and <i>list-</i>
|
<a href="aliases.5.html"><b>aliases</b>(5)</a> file, and don't split owner-<i>listname</i> and <i>list-</i>
|
||||||
<i>name</i>-request address localparts when the <a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> is
|
<i>name</i>-request address localparts when the <a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> is
|
||||||
set to "-".
|
set to "-".
|
||||||
|
|
||||||
<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> (empty)</b>
|
<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> (empty)</b>
|
||||||
The network interface addresses that this mail system receives
|
The network interface addresses that this mail system receives
|
||||||
mail on by way of a proxy or network address translation unit.
|
mail on by way of a proxy or network address translation unit.
|
||||||
|
|
||||||
<b>SEE ALSO</b>
|
<b>SEE ALSO</b>
|
||||||
|
@ -20,9 +20,11 @@ The optional \fBvirtual\fR(5) alias table rewrites recipient
|
|||||||
addresses for all local, all virtual, and all remote mail
|
addresses for all local, all virtual, and all remote mail
|
||||||
destinations.
|
destinations.
|
||||||
This is unlike the \fBaliases\fR(5) table which is used
|
This is unlike the \fBaliases\fR(5) table which is used
|
||||||
only for \fBlocal\fR(8) delivery. Virtual aliasing is
|
only for \fBlocal\fR(8) delivery. This feature is implemented
|
||||||
recursive, and is implemented by the Postfix \fBcleanup\fR(8)
|
in the Postfix \fBcleanup\fR(8) daemon before mail is queued.
|
||||||
daemon before mail is queued.
|
|
||||||
|
Virtual aliasing is recursive; to terminate recursion for
|
||||||
|
a specific address, alias that address to itself.
|
||||||
|
|
||||||
The main applications of virtual aliasing are:
|
The main applications of virtual aliasing are:
|
||||||
.IP \(bu
|
.IP \(bu
|
||||||
|
@ -47,7 +47,7 @@ open(ALL_PARAM_NAMES, "$command|")
|
|||||||
|| die "can't execute $command: !$\n";
|
|| die "can't execute $command: !$\n";
|
||||||
while ($param_name = <ALL_PARAM_NAMES>) {
|
while ($param_name = <ALL_PARAM_NAMES>) {
|
||||||
chomp($param_name);
|
chomp($param_name);
|
||||||
next unless ($param_name =~ /_maps$/);
|
next unless ($param_name =~ /_(checks|delivery_status_filter|reply_filter|command_filter|maps)$/);
|
||||||
next if ($param_name =~ /^(proxy_read|proxy_write)_maps$/);
|
next if ($param_name =~ /^(proxy_read|proxy_write)_maps$/);
|
||||||
next if defined($proxy_read_maps{$param_name});
|
next if defined($proxy_read_maps{$param_name});
|
||||||
die "unknown parameter: $param_name\n"
|
die "unknown parameter: $param_name\n"
|
||||||
|
@ -14,9 +14,11 @@
|
|||||||
# addresses for all local, all virtual, and all remote mail
|
# addresses for all local, all virtual, and all remote mail
|
||||||
# destinations.
|
# destinations.
|
||||||
# This is unlike the \fBaliases\fR(5) table which is used
|
# This is unlike the \fBaliases\fR(5) table which is used
|
||||||
# only for \fBlocal\fR(8) delivery. Virtual aliasing is
|
# only for \fBlocal\fR(8) delivery. This feature is implemented
|
||||||
# recursive, and is implemented by the Postfix \fBcleanup\fR(8)
|
# in the Postfix \fBcleanup\fR(8) daemon before mail is queued.
|
||||||
# daemon before mail is queued.
|
#
|
||||||
|
# Virtual aliasing is recursive; to terminate recursion for
|
||||||
|
# a specific address, alias that address to itself.
|
||||||
#
|
#
|
||||||
# The main applications of virtual aliasing are:
|
# The main applications of virtual aliasing are:
|
||||||
# .IP \(bu
|
# .IP \(bu
|
||||||
|
@ -2502,7 +2502,33 @@ extern int var_local_rcpt_code;
|
|||||||
" $" VAR_PSC_REJ_FTR_MAPS \
|
" $" VAR_PSC_REJ_FTR_MAPS \
|
||||||
" $" VAR_SMTPD_REJ_FTR_MAPS \
|
" $" VAR_SMTPD_REJ_FTR_MAPS \
|
||||||
" $" VAR_TLS_SERVER_SNI_MAPS \
|
" $" VAR_TLS_SERVER_SNI_MAPS \
|
||||||
" $" VAR_TLSP_CLNT_POLICY
|
" $" VAR_TLSP_CLNT_POLICY \
|
||||||
|
" $" VAR_DSN_FILTER \
|
||||||
|
" $" VAR_LMTP_DSN_FILTER \
|
||||||
|
" $" VAR_LMTP_DNS_RE_FILTER \
|
||||||
|
" $" VAR_LMTP_RESP_FILTER \
|
||||||
|
" $" VAR_LOCAL_DSN_FILTER \
|
||||||
|
" $" VAR_PIPE_DSN_FILTER \
|
||||||
|
" $" VAR_PSC_CMD_FILTER \
|
||||||
|
" $" VAR_SMTP_DSN_FILTER \
|
||||||
|
" $" VAR_SMTP_DNS_RE_FILTER \
|
||||||
|
" $" VAR_SMTP_RESP_FILTER \
|
||||||
|
" $" VAR_SMTPD_CMD_FILTER \
|
||||||
|
" $" VAR_SMTPD_DNS_RE_FILTER \
|
||||||
|
" $" VAR_VIRT_DSN_FILTER \
|
||||||
|
" $" VAR_BODY_CHECKS \
|
||||||
|
" $" VAR_HEADER_CHECKS \
|
||||||
|
" $" VAR_LMTP_BODY_CHKS \
|
||||||
|
" $" VAR_LMTP_HEAD_CHKS \
|
||||||
|
" $" VAR_LMTP_MIME_CHKS \
|
||||||
|
" $" VAR_LMTP_NEST_CHKS \
|
||||||
|
" $" VAR_MILT_HEAD_CHECKS \
|
||||||
|
" $" VAR_MIMEHDR_CHECKS \
|
||||||
|
" $" VAR_NESTHDR_CHECKS \
|
||||||
|
" $" VAR_SMTP_BODY_CHKS \
|
||||||
|
" $" VAR_SMTP_HEAD_CHKS \
|
||||||
|
" $" VAR_SMTP_MIME_CHKS \
|
||||||
|
" $" VAR_SMTP_NEST_CHKS
|
||||||
extern char *var_proxy_read_maps;
|
extern char *var_proxy_read_maps;
|
||||||
|
|
||||||
#define VAR_PROXY_WRITE_MAPS "proxy_write_maps"
|
#define VAR_PROXY_WRITE_MAPS "proxy_write_maps"
|
||||||
|
@ -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 "20220220"
|
#define MAIL_RELEASE_DATE "20220325"
|
||||||
#define MAIL_VERSION_NUMBER "3.8"
|
#define MAIL_VERSION_NUMBER "3.8"
|
||||||
|
|
||||||
#ifdef SNAPSHOT
|
#ifdef SNAPSHOT
|
||||||
|
@ -463,6 +463,7 @@ int dict_load_file_xt(const char *dict_name, const char *path)
|
|||||||
if (msg_verbose > 1)
|
if (msg_verbose > 1)
|
||||||
msg_info("pausing to let %s cool down", path);
|
msg_info("pausing to let %s cool down", path);
|
||||||
doze(300000);
|
doze(300000);
|
||||||
|
dict_unregister(dict_name);
|
||||||
}
|
}
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
@ -19,18 +19,16 @@
|
|||||||
/* strings, avoiding an unnecessary strlen() call.
|
/* strings, avoiding an unnecessary strlen() call.
|
||||||
/*
|
/*
|
||||||
/* To thwart collision attacks, the hash function is seeded
|
/* To thwart collision attacks, the hash function is seeded
|
||||||
/* once from /dev/urandom, and if that is unavailable, from
|
/* once with ldseed(). To disable seeding (typically, to make
|
||||||
/* wallclock time, monotonic system clocks, and the process
|
/* tests predictable), specify the NORANDOMIZE environment
|
||||||
/* ID. To disable seeding (typically, for regression tests),
|
/* variable; the value does not matter.
|
||||||
/* specify the NORANDOMIZE environment variable; the value
|
|
||||||
/* does not matter.
|
|
||||||
/*
|
/*
|
||||||
/* This function implements a workaround for a "sticky state"
|
/* This implementation works around a "sticky state" problem
|
||||||
/* problem with FNV hash functions: when an input produces a
|
/* with FNV hash functions: when an input produces a zero hash
|
||||||
/* zero hash state, and the next input byte is zero, then the
|
/* state, and the next input byte is zero, then the hash state
|
||||||
/* hash state would not change. To avoid this, hash_fnv() adds
|
/* would not change. To avoid this, hash_fnv() adds 1 to each
|
||||||
/* 1 to each input value. Compile with -DSTRICT_FNV1A to get
|
/* input value. Compile with -DSTRICT_FNV1A to get the standard
|
||||||
/* the standard behavior.
|
/* behavior.
|
||||||
/*
|
/*
|
||||||
/* The default HASH_FNV_T result type is uint64_t. When compiled
|
/* The default HASH_FNV_T result type is uint64_t. When compiled
|
||||||
/* with -DUSE_FNV_32BIT, the result type is uint32_t. On ancient
|
/* with -DUSE_FNV_32BIT, the result type is uint32_t. On ancient
|
||||||
|
Loading…
x
Reference in New Issue
Block a user