mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-30 21:55:20 +00:00
snapshot-20001118
This commit is contained in:
committed by
Viktor Dukhovni
parent
5d6408c2f3
commit
8908b7e5da
@@ -4445,3 +4445,53 @@ Apologies for any names omitted.
|
|||||||
|
|
||||||
Cleanup: changed prototype of internal function that did
|
Cleanup: changed prototype of internal function that did
|
||||||
not return a useful result. File: src/util/vstream_popen.c.
|
not return a useful result. File: src/util/vstream_popen.c.
|
||||||
|
|
||||||
|
20001110
|
||||||
|
|
||||||
|
Workaround: the Debian post install script passes an open
|
||||||
|
file descriptor into the master server and waits forever.
|
||||||
|
Reported by Lamont Jones. File: master/master.c.
|
||||||
|
|
||||||
|
20001114
|
||||||
|
|
||||||
|
Compatibility: added sendmail -G (gateway submission) option
|
||||||
|
for compatibility with the sendmail rmail command. Requested
|
||||||
|
by David Gilbert, Velocet Communications.
|
||||||
|
|
||||||
|
20001116
|
||||||
|
|
||||||
|
Documentation: added MAILER-DAEMON to the list of sample
|
||||||
|
masquerade_exceptions settings in conf/sample-rewrite.cf.
|
||||||
|
Suggested by Karl O. Pinc, pop.artic.edu.
|
||||||
|
|
||||||
|
Performance: the slow start (gradually increase number of
|
||||||
|
parallel connections to the same site) was too gentle and
|
||||||
|
Postfix would back off too quickly. Files: qmgr/qmgr_queue.c
|
||||||
|
and nqmgr/qmgr_queue.c. Yup, changed the same code, again.
|
||||||
|
We now allow for a margin above the actual concurrency,
|
||||||
|
with the size of the initial destination concurrency.
|
||||||
|
|
||||||
|
Bugfix: the recipient home directory test broke mailbox_transport
|
||||||
|
support for non-UNIX recipients. File: local/recipient.c.
|
||||||
|
|
||||||
|
20001117
|
||||||
|
|
||||||
|
Robustness: additional integrity tests for the nqmgr by
|
||||||
|
Patrik Rak. File: nqmgr/qmgr_message.c.
|
||||||
|
|
||||||
|
20001118
|
||||||
|
|
||||||
|
Bugfix: the new LDAP client code did not work properly if
|
||||||
|
the new ldap_domain parameter was not specified. LaMont
|
||||||
|
Jones, HP. File: util/dict_ldap.c.
|
||||||
|
|
||||||
|
Feature: the soft_bounce safety net is extended to the SMTP
|
||||||
|
server. With "soft_bounce = yes", The SMTP server changes
|
||||||
|
all 5xx (reject) replies into 4xx (try again) replies.
|
||||||
|
|
||||||
|
Documentation: the virtual(5) man page now documents both
|
||||||
|
Postfix-style virtual domains and Sendmail-style virtual
|
||||||
|
domains, including their interaction with local usernames,
|
||||||
|
aliases and mailing lists. Hopefully, this ends some of
|
||||||
|
the confusion surrounding virtual domain support. Updated
|
||||||
|
several FAQ entries concerning virtual domain support.
|
||||||
|
@@ -45,6 +45,10 @@ from:
|
|||||||
IMPORTANT: if you install the Cyrus SASL libraries as per the default,
|
IMPORTANT: if you install the Cyrus SASL libraries as per the default,
|
||||||
you will have to symlink /usr/lib/sasl -> /usr/local/lib/sasl.
|
you will have to symlink /usr/lib/sasl -> /usr/local/lib/sasl.
|
||||||
|
|
||||||
|
Reportedly, Microsoft Internet Explorer version 5 requires the
|
||||||
|
non-standard SASL LOGIN authentication method. To enable this
|
||||||
|
authentication method, specify ``./configure --enable-login''.
|
||||||
|
|
||||||
Building Postfix with SASL authentication support
|
Building Postfix with SASL authentication support
|
||||||
=================================================
|
=================================================
|
||||||
|
|
||||||
|
@@ -43,16 +43,17 @@ decode: root
|
|||||||
#
|
#
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
# The aliases file provides a system-wide mechanism to redi-
|
# The aliases file provides a system-wide mechanism to redi-
|
||||||
# rect mail for local recipients.
|
# rect mail for local recipients. The redirections are pro-
|
||||||
|
# cessed by the Postfix local(8) delivery agent.
|
||||||
#
|
#
|
||||||
# The file serves as input to the postalias(1) command. The
|
# The file serves as input to the postalias(1) command. The
|
||||||
# result, an indexed file in dbm or db format, is used for
|
# result, an indexed file in dbm or db format, is used for
|
||||||
# fast lookup by the mail system. Execute the command
|
# fast lookup by the mail system. Execute the command
|
||||||
# newaliases in order to rebuild the indexed file after
|
# newaliases in order to rebuild the indexed file after
|
||||||
# changing the Postfix alias database.
|
# changing the Postfix alias database.
|
||||||
#
|
#
|
||||||
# The input and output file formats are expected to be com-
|
# The input and output file formats are expected to be com-
|
||||||
# patible with Sendmail version 8, and are expected to be
|
# patible with Sendmail version 8, and are expected to be
|
||||||
# suitable for the use as NIS maps.
|
# suitable for the use as NIS maps.
|
||||||
#
|
#
|
||||||
# Users can control delivery of their own mail by setting up
|
# Users can control delivery of their own mail by setting up
|
||||||
@@ -66,57 +67,56 @@ decode: root
|
|||||||
#
|
#
|
||||||
# name: value1, value2, ...
|
# name: value1, value2, ...
|
||||||
#
|
#
|
||||||
# o Lines that begin with whitespace continue the pre-
|
# o Lines that begin with whitespace continue the pre-
|
||||||
# vious line.
|
# vious line.
|
||||||
#
|
#
|
||||||
# o Blank lines are ignored, as are lines beginning
|
# o Blank lines are ignored, as are lines beginning
|
||||||
# with `#'.
|
# with `#'.
|
||||||
#
|
#
|
||||||
# The name is a local address (no domain part). Use double
|
# The name is a local address (no domain part). Use double
|
||||||
# quotes when the name contains any special characters such
|
# quotes when the name contains any special characters such
|
||||||
# as whitespace, `#', `:', or `@'. The name is folded to
|
# as whitespace, `#', `:', or `@'. The name is folded to
|
||||||
# lowercase, in order to make database lookups case insensi-
|
# lowercase, in order to make database lookups case insensi-
|
||||||
# tive.
|
# tive.
|
||||||
#
|
#
|
||||||
# In addition, when an alias exists for owner-name, delivery
|
# In addition, when an alias exists for owner-name, delivery
|
||||||
# diagnostics are directed to that address, instead of to
|
# diagnostics are directed to that address, instead of to
|
||||||
# the originator. This is typically used to direct delivery
|
# the originator. This is typically used to direct delivery
|
||||||
# errors to the owner of a mailing list, who is in a better
|
# errors to the owner of a mailing list, who is in a better
|
||||||
# position to deal with mailing list delivery problems than
|
# position to deal with mailing list delivery problems than
|
||||||
# the originator of the undelivered mail.
|
# the originator of the undelivered mail.
|
||||||
#
|
#
|
||||||
# The value contains one or more of the following:
|
# The value contains one or more of the following:
|
||||||
#
|
#
|
||||||
# address
|
|
||||||
# Mail is forwarded to address, which is compatible
|
|
||||||
#
|
|
||||||
# 1
|
# 1
|
||||||
#
|
#
|
||||||
# ALIASES(5) ALIASES(5)
|
# ALIASES(5) ALIASES(5)
|
||||||
#
|
#
|
||||||
|
# address
|
||||||
|
# Mail is forwarded to address, which is compatible
|
||||||
# with the RFC 822 standard.
|
# with the RFC 822 standard.
|
||||||
#
|
#
|
||||||
# /file/name
|
# /file/name
|
||||||
# Mail is appended to /file/name. See local(8) for
|
# Mail is appended to /file/name. See local(8) for
|
||||||
# details of delivery to file. Delivery is not lim-
|
# details of delivery to file. Delivery is not lim-
|
||||||
# ited to regular files. For example, to dispose of
|
# ited to regular files. For example, to dispose of
|
||||||
# unwanted mail, deflect it to /dev/null.
|
# unwanted mail, deflect it to /dev/null.
|
||||||
#
|
#
|
||||||
# |command
|
# |command
|
||||||
# Mail is piped into command. Commands that contain
|
# Mail is piped into command. Commands that contain
|
||||||
# special characters, such as whitespace, should be
|
# special characters, such as whitespace, should be
|
||||||
# enclosed between double quotes. See local(8) for
|
# enclosed between double quotes. See local(8) for
|
||||||
# details of delivery to command.
|
# details of delivery to command.
|
||||||
#
|
#
|
||||||
# When the command fails, a limited amount of command
|
# When the command fails, a limited amount of command
|
||||||
# output is mailed back to the sender. The file
|
# output is mailed back to the sender. The file
|
||||||
# /usr/include/sysexits.h defines the expected exit
|
# /usr/include/sysexits.h defines the expected exit
|
||||||
# status codes. For example, use |"exit 67" to simu-
|
# status codes. For example, use |"exit 67" to simu-
|
||||||
# late a "user unknown" error, and |"exit 0" to
|
# late a "user unknown" error, and |"exit 0" to
|
||||||
# implement an expensive black hole.
|
# implement an expensive black hole.
|
||||||
#
|
#
|
||||||
# :include:/file/name
|
# :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
|
# named file. Lines in :include: files have the same
|
||||||
# syntax as the right-hand side of alias entries.
|
# syntax as the right-hand side of alias entries.
|
||||||
#
|
#
|
||||||
@@ -128,37 +128,37 @@ decode: root
|
|||||||
#
|
#
|
||||||
# ADDRESS EXTENSION
|
# ADDRESS EXTENSION
|
||||||
# When alias database search fails, and the recipient local-
|
# When alias database search fails, and the recipient local-
|
||||||
# part contains the optional recipient delimiter (e.g.,
|
# part contains the optional recipient delimiter (e.g.,
|
||||||
# user+foo), the search is repeated for the unextended
|
# user+foo), the search is repeated for the unextended
|
||||||
# address (e.g., user).
|
# address (e.g., user).
|
||||||
#
|
#
|
||||||
# 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.
|
||||||
#
|
#
|
||||||
# alias_maps
|
# alias_maps
|
||||||
# List of alias databases.
|
# List of alias databases.
|
||||||
#
|
#
|
||||||
# allow_mail_to_commands
|
# allow_mail_to_commands
|
||||||
# Restrict the usage of mail delivery to external
|
|
||||||
# command.
|
|
||||||
#
|
|
||||||
# allow_mail_to_files
|
|
||||||
# Restrict the usage of mail delivery to external
|
# Restrict the usage of mail delivery to external
|
||||||
# file.
|
# command.
|
||||||
#
|
#
|
||||||
# 2
|
# 2
|
||||||
#
|
#
|
||||||
# ALIASES(5) ALIASES(5)
|
# ALIASES(5) ALIASES(5)
|
||||||
#
|
#
|
||||||
|
# allow_mail_to_files
|
||||||
|
# Restrict the usage of mail delivery to external
|
||||||
|
# file.
|
||||||
|
#
|
||||||
# owner_request_special
|
# owner_request_special
|
||||||
# Give special treatment to owner-xxx and xxx-request
|
# Give special treatment to owner-xxx and xxx-request
|
||||||
# addresses.
|
# addresses.
|
||||||
#
|
#
|
||||||
# recipient_delimiter
|
# recipient_delimiter
|
||||||
# Delimiter that separates recipients from address
|
# Delimiter that separates recipients from address
|
||||||
# extensions.
|
# extensions.
|
||||||
#
|
#
|
||||||
# STANDARDS
|
# STANDARDS
|
||||||
@@ -169,7 +169,7 @@ decode: root
|
|||||||
# postalias(1) alias database management
|
# postalias(1) alias database management
|
||||||
#
|
#
|
||||||
# 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)
|
||||||
|
@@ -8,50 +8,51 @@
|
|||||||
# postmap /etc/postfix/canonical
|
# postmap /etc/postfix/canonical
|
||||||
#
|
#
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
# The optional canonical file specifies an address mapping
|
# The optional canonical table specifies an address mapping
|
||||||
# for local and non-local addresses. The mapping is used by
|
# for local and non-local addresses. The mapping is used by
|
||||||
# the cleanup(8) daemon. The address mapping is recursive.
|
# the cleanup(8) daemon. The address mapping is recursive.
|
||||||
#
|
#
|
||||||
# Normally, the file serves as input to the postmap(1) com-
|
# Normally, the canonical table is specified as a text file
|
||||||
# mand. The result, an indexed file in dbm or db format, is
|
# that serves as input to the postmap(1) command. The
|
||||||
# used for fast searching by the mail system. Execute the
|
# result, an indexed file in dbm or db format, is used for
|
||||||
# command postmap /etc/postfix/canonical in order to rebuild
|
# fast searching by the mail system. Execute the command
|
||||||
# the indexed file after changing the canonical table.
|
# postmap /etc/postfix/canonical in order to rebuild the
|
||||||
|
# indexed file after changing the 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 regular-
|
# Alternatively, the table can be provided as a regular-
|
||||||
# expression map where patterns are given as regular expres-
|
# expression map where patterns are given as regular expres-
|
||||||
# sions. In that case, the lookups are done in a slightly
|
# sions. In that case, the lookups are done in a slightly
|
||||||
# different way as described below.
|
# different way as described below.
|
||||||
#
|
#
|
||||||
# The canonical mapping affects both message header
|
# The canonical mapping affects both message header
|
||||||
# addresses (i.e. addresses that appear inside messages) and
|
# addresses (i.e. addresses that appear inside messages) and
|
||||||
# message envelope addresses (for example, the addresses
|
# message envelope addresses (for example, the addresses
|
||||||
# that are used in SMTP protocol commands). Think Sendmail
|
# that are used in SMTP protocol commands). Think Sendmail
|
||||||
# rule set S3, if you like.
|
# rule set S3, if you like.
|
||||||
#
|
#
|
||||||
# Typically, one would use the canonical table to replace
|
# Typically, one would use the canonical table to replace
|
||||||
# login names by Firstname.Lastname, or to clean up
|
# login names by Firstname.Lastname, or to clean up
|
||||||
# addresses produced by legacy mail systems.
|
# addresses produced by legacy mail systems.
|
||||||
#
|
#
|
||||||
# The canonical mapping is not to be confused with virtual
|
# The canonical mapping is not to be confused with virtual
|
||||||
# domain support. Use the virtual(5) map for that purpose.
|
# domain support. Use the virtual(5) map for that purpose.
|
||||||
#
|
#
|
||||||
# The canonical mapping is not to be confused with local
|
# The canonical mapping is not to be confused with local
|
||||||
# aliasing. Use the aliases(5) map for that purpose.
|
# aliasing. Use the aliases(5) map for that purpose.
|
||||||
#
|
#
|
||||||
# TABLE FORMAT
|
# TABLE FORMAT
|
||||||
# The format of the canonical table is as follows:
|
# The format of the canonical table is as follows:
|
||||||
#
|
#
|
||||||
# blanks and comments
|
# blanks and comments
|
||||||
# Blank lines are ignored, as are lines beginning
|
# Blank lines are ignored, as are lines beginning
|
||||||
# with `#'.
|
# with `#'.
|
||||||
#
|
#
|
||||||
# leading whitespace
|
# leading whitespace
|
||||||
# Lines that begin with whitespace continue the pre-
|
# Lines that begin with whitespace continue the pre-
|
||||||
# vious line.
|
# vious line.
|
||||||
#
|
#
|
||||||
# 1
|
# 1
|
||||||
@@ -59,78 +60,78 @@
|
|||||||
# CANONICAL(5) CANONICAL(5)
|
# CANONICAL(5) CANONICAL(5)
|
||||||
#
|
#
|
||||||
# pattern result
|
# pattern result
|
||||||
# When pattern matches a mail address, replace it by
|
# When pattern matches a mail address, replace it by
|
||||||
# the corresponding result.
|
# the corresponding result.
|
||||||
#
|
#
|
||||||
# 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, patterns are
|
# networked tables such as NIS, LDAP or SQL, patterns are
|
||||||
# tried in the order as listed below:
|
# tried in the order as listed below:
|
||||||
#
|
#
|
||||||
# user@domain address
|
# user@domain address
|
||||||
# user@domain is replaced by address. This form has
|
# user@domain is replaced by address. This form has
|
||||||
# the highest precedence.
|
# the highest precedence.
|
||||||
#
|
#
|
||||||
# This form useful to clean up addresses produced by
|
# This form useful to clean up addresses produced by
|
||||||
# legacy mail systems. It can also be used to pro-
|
# legacy mail systems. It can also be used to pro-
|
||||||
# duce Firstname.Lastname style addresses, but see
|
# duce Firstname.Lastname style addresses, but see
|
||||||
# below for a simpler solution.
|
# below for a simpler solution.
|
||||||
#
|
#
|
||||||
# user address
|
# user address
|
||||||
# user@site is replaced by address when site is equal
|
# user@site is replaced by address when site is equal
|
||||||
# to $myorigin, when site is listed in $mydestina-
|
# to $myorigin, when site is listed in $mydestina-
|
||||||
# tion, or when it is listed in $inet_interfaces.
|
# tion, or when it is listed in $inet_interfaces.
|
||||||
#
|
#
|
||||||
# This form is useful for replacing login names by
|
# This form is useful for replacing login names by
|
||||||
# Firstname.Lastname.
|
# Firstname.Lastname.
|
||||||
#
|
#
|
||||||
# @domain address
|
# @domain address
|
||||||
# Every address in domain is replaced by address.
|
# Every address in domain is replaced by address.
|
||||||
# This form has the lowest precedence.
|
# This form has the lowest precedence.
|
||||||
#
|
#
|
||||||
# In all the above forms, when address has the form @other-
|
# In all the above forms, when address has the form @other-
|
||||||
# domain, the result is the same user in otherdomain.
|
# domain, the result is the same user in otherdomain.
|
||||||
#
|
#
|
||||||
# ADDRESS EXTENSION
|
# ADDRESS EXTENSION
|
||||||
# When table lookup fails, and the address localpart con-
|
# When table lookup fails, and the address localpart con-
|
||||||
# tains the optional recipient delimiter (e.g.,
|
# tains the optional recipient delimiter (e.g.,
|
||||||
# user+foo@domain), the search is repeated for the unex-
|
# user+foo@domain), the search is repeated for the unex-
|
||||||
# tended address (e.g. user@domain), and the unmatched
|
# tended address (e.g. user@domain), and the unmatched
|
||||||
# extension is propagated to the result of table lookup. The
|
# extension is propagated to the result of table lookup. The
|
||||||
# matching order is: user+foo@domain, user@domain, user+foo,
|
# matching order is: user+foo@domain, user@domain, user+foo,
|
||||||
# user, and @domain.
|
# user, and @domain.
|
||||||
#
|
#
|
||||||
# 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
|
# Patterns are applied in the order as specified in the
|
||||||
#
|
#
|
||||||
# 2
|
# 2
|
||||||
#
|
#
|
||||||
# CANONICAL(5) CANONICAL(5)
|
# CANONICAL(5) CANONICAL(5)
|
||||||
#
|
#
|
||||||
# table, until a pattern is found that matches the search
|
# table, until a pattern is found that matches the search
|
||||||
# string.
|
# string.
|
||||||
#
|
#
|
||||||
# Results are the same as with normal indexed file lookups,
|
# Results are the same as with normal indexed file lookups,
|
||||||
# with the additional feature that parenthesized substrings
|
# with the additional feature that parenthesized substrings
|
||||||
# from the pattern can be interpolated as $1, $2 and so on.
|
# from the pattern can be interpolated as $1, $2 and so on.
|
||||||
#
|
#
|
||||||
# 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.
|
||||||
#
|
#
|
||||||
# canonical_maps
|
# canonical_maps
|
||||||
@@ -147,19 +148,19 @@
|
|||||||
# Other parameters of interest:
|
# Other parameters of interest:
|
||||||
#
|
#
|
||||||
# inet_interfaces
|
# inet_interfaces
|
||||||
# The network interface addresses that this system
|
# The network interface addresses that this system
|
||||||
# receives mail on.
|
# receives mail on.
|
||||||
#
|
#
|
||||||
# masquerade_domains
|
# masquerade_domains
|
||||||
# List of domains that hide their subdomain struc-
|
# List of domains that hide their subdomain struc-
|
||||||
# ture.
|
# ture.
|
||||||
#
|
#
|
||||||
# masquerade_exceptions
|
# masquerade_exceptions
|
||||||
# List of user names that are not subject to address
|
# List of user names that are not subject to address
|
||||||
# masquerading.
|
# masquerading.
|
||||||
#
|
#
|
||||||
# mydestination
|
# mydestination
|
||||||
# List of domains that this mail system considers
|
# List of domains that this mail system considers
|
||||||
# local.
|
# local.
|
||||||
#
|
#
|
||||||
# myorigin
|
# myorigin
|
||||||
@@ -182,7 +183,7 @@
|
|||||||
# regexp_table(5) format of POSIX regular expression tables
|
# regexp_table(5) format of POSIX regular expression tables
|
||||||
#
|
#
|
||||||
# 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)
|
||||||
|
@@ -40,6 +40,7 @@ masquerade_domains =
|
|||||||
#
|
#
|
||||||
# By default, address masquerading makes no exceptions.
|
# By default, address masquerading makes no exceptions.
|
||||||
#
|
#
|
||||||
|
#masquerade_exceptions = root,mailer-daemon
|
||||||
#masquerade_exceptions = root
|
#masquerade_exceptions = root
|
||||||
masquerade_exceptions =
|
masquerade_exceptions =
|
||||||
|
|
||||||
|
@@ -8,45 +8,103 @@
|
|||||||
# postmap /etc/postfix/virtual
|
# postmap /etc/postfix/virtual
|
||||||
#
|
#
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
# The optional virtual table specifies redirections for
|
# The optional virtual table specifies address redirections
|
||||||
# local and non-local recipients or domains. The redirec-
|
# for local and non-local recipients or domains. The redi-
|
||||||
# tions are used by the cleanup(8) daemon. The redirections
|
# rections are used by the cleanup(8) daemon. The redirec-
|
||||||
# are recursive.
|
# tions are recursive.
|
||||||
#
|
#
|
||||||
# The virtual redirection is applied only to the recipient
|
# The virtual redirection is applied only to recipient enve-
|
||||||
# envelope address, and does not affect message headers.
|
# lope addresses, and does not affect message headers.
|
||||||
# Think Sendmail rule set S0, if you like. Use canonical(5)
|
# Think Sendmail rule set S0, if you like. Use canonical(5)
|
||||||
# mapping to rewrite header and envelope addresses in gen-
|
# mapping to rewrite header and envelope addresses in gen-
|
||||||
# eral.
|
# eral.
|
||||||
#
|
#
|
||||||
# Normally, the file serves as input to the postmap(1) com-
|
# Normally, the virtual table is specified as a text file
|
||||||
# mand. The result, an indexed file in dbm or db format, is
|
# that serves as input to the postmap(1) command. The
|
||||||
# used for fast searching by the mail system. Execute the
|
# result, an indexed file in dbm or db format, is used for
|
||||||
# command postmap /etc/postfix/virtual in order to rebuild
|
# fast searching by the mail system. Execute the command
|
||||||
# the indexed file after changing the virtual table.
|
# postmap /etc/postfix/virtual in order to rebuild the
|
||||||
|
# indexed file after changing the 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 regular-
|
# Alternatively, the table can be provided as a regular-
|
||||||
# expression map where patterns are given as regular expres-
|
# expression map where patterns are given as regular expres-
|
||||||
# sions. In that case, the lookups are done in a slightly
|
# sions. In that case, the lookups are done in a slightly
|
||||||
# different way as described below.
|
# different way as described below.
|
||||||
#
|
#
|
||||||
# TABLE FORMAT
|
# POSTFIX-STYLE VIRTUAL DOMAINS
|
||||||
# Typical support for a virtual domain looks like the fol-
|
# With a Postfix-style virtual domain, the virtual domain
|
||||||
# lowing:
|
# has its own user name space. Local (i.e. non-virtual)
|
||||||
|
# usernames are not visible in a Postfix-style virtual
|
||||||
|
# domain. In particular, local aliases(5) and mailing lists
|
||||||
|
# are not visible in a Postfix-style virtual domain.
|
||||||
#
|
#
|
||||||
|
# Use a Sendmail-style virtual domain (see below) if local
|
||||||
|
# usernames, aliases(5) or mailing lists should be visible
|
||||||
|
# in that virtual domain.
|
||||||
|
#
|
||||||
|
# Support for a Postfix-style virtual domain looks like:
|
||||||
|
#
|
||||||
|
# /etc/postfix/virtual:
|
||||||
# virtual.domain anything (right-hand content does not matter)
|
# virtual.domain anything (right-hand content does not matter)
|
||||||
# postmaster@virtual.domain postmaster
|
# postmaster@virtual.domain postmaster
|
||||||
# user1@virtual.domain address1
|
# user1@virtual.domain address1
|
||||||
# user2@virtual.domain address2, address3
|
# user2@virtual.domain address2, address3
|
||||||
#
|
#
|
||||||
# With this, the SMTP server accepts mail for virtual.domain
|
# The virtual.domain anything entry is required for a
|
||||||
# and rejects mail for unknown@virtual.domain as undeliver-
|
#
|
||||||
|
# 1
|
||||||
|
#
|
||||||
|
# VIRTUAL(5) VIRTUAL(5)
|
||||||
|
#
|
||||||
|
# Postfix-style virtual domain.
|
||||||
|
#
|
||||||
|
# Do not list the virtual domain in the main.cf mydestina-
|
||||||
|
# tion configuration parameter. Such an entry is required
|
||||||
|
# only for a Sendmail-style virtual domain.
|
||||||
|
#
|
||||||
|
# With a Postfix-style virtual domain, the Postfix SMTP
|
||||||
|
# server accepts mail for known-user@virtual.domain and
|
||||||
|
# rejects mail for unknown-user@virtual.domain as undeliver-
|
||||||
# able.
|
# able.
|
||||||
#
|
#
|
||||||
|
# SENDMAIL-STYLE VIRTUAL DOMAINS
|
||||||
|
# With a Sendmail-style virtual domain, every local (i.e.
|
||||||
|
# non-virtual) username is visible in the virtual domain. In
|
||||||
|
# particular, every local alias and mailing list is visible
|
||||||
|
# in a Sendmail-style virtual domain.
|
||||||
|
#
|
||||||
|
# Use a Postfix-style virtual domain (see above) if local
|
||||||
|
# usernames, aliases(5) or mailing lists should not be visi-
|
||||||
|
# ble in that virtual domain.
|
||||||
|
#
|
||||||
|
# Support for a Sendmail-style virtual domain looks like:
|
||||||
|
#
|
||||||
|
# /etc/postfix/main.cf:
|
||||||
|
# mydestination = $myhostname localhost.$mydomain $mydomain
|
||||||
|
# virtual.domain
|
||||||
|
#
|
||||||
|
# /etc/postfix/virtual:
|
||||||
|
# user1@virtual.domain address1
|
||||||
|
# user2@virtual.domain address2, address3
|
||||||
|
#
|
||||||
|
# The main.cf mydestination entry is required for a Send-
|
||||||
|
# mail-style virtual domain.
|
||||||
|
#
|
||||||
|
# Do not specify a virtual.domain whatever entry in the vir-
|
||||||
|
# tual table. Such an entry is required only with a Postfix-
|
||||||
|
# style virtual domain.
|
||||||
|
#
|
||||||
|
# With a Sendmail-style virtual domain, the Postfix local
|
||||||
|
# delivery agent delivers mail for an unknown user@vir-
|
||||||
|
# tual.domain to a local (i.e. non-virtual) user that has
|
||||||
|
# the same name; if no such recipient exists, the Postfix
|
||||||
|
# local delivery agent bounces the mail to the sender.
|
||||||
|
#
|
||||||
|
# TABLE FORMAT
|
||||||
# The format of the virtual table is as follows, mappings
|
# The format of the virtual table is as follows, mappings
|
||||||
# being tried in the order as listed in this manual page:
|
# being tried in the order as listed in this manual page:
|
||||||
#
|
#
|
||||||
@@ -54,13 +112,14 @@
|
|||||||
# Blank lines are ignored, as are lines beginning
|
# Blank lines are ignored, as are lines beginning
|
||||||
# with `#'.
|
# with `#'.
|
||||||
#
|
#
|
||||||
# 1
|
# leading whitespace
|
||||||
|
# Lines that begin with whitespace continue the
|
||||||
|
#
|
||||||
|
# 2
|
||||||
#
|
#
|
||||||
# VIRTUAL(5) VIRTUAL(5)
|
# VIRTUAL(5) VIRTUAL(5)
|
||||||
#
|
#
|
||||||
# leading whitespace
|
# previous line.
|
||||||
# Lines that begin with whitespace continue the pre-
|
|
||||||
# vious line.
|
|
||||||
#
|
#
|
||||||
# pattern result
|
# pattern result
|
||||||
# When pattern matches a mail address, replace it by
|
# When pattern matches a mail address, replace it by
|
||||||
@@ -113,11 +172,12 @@
|
|||||||
# constituent parts, nor is user+foo broken up into user and
|
# constituent parts, nor is user+foo broken up into user and
|
||||||
# foo.
|
# foo.
|
||||||
#
|
#
|
||||||
# 2
|
# Patterns are applied in the order as specified in the
|
||||||
|
#
|
||||||
|
# 3
|
||||||
#
|
#
|
||||||
# VIRTUAL(5) VIRTUAL(5)
|
# VIRTUAL(5) VIRTUAL(5)
|
||||||
#
|
#
|
||||||
# Patterns are applied in the order as specified in the
|
|
||||||
# table, until a pattern is found that matches the search
|
# table, until a pattern is found that matches the search
|
||||||
# string.
|
# string.
|
||||||
#
|
#
|
||||||
@@ -170,5 +230,5 @@
|
|||||||
# P.O. Box 704
|
# P.O. Box 704
|
||||||
# Yorktown Heights, NY 10598, USA
|
# Yorktown Heights, NY 10598, USA
|
||||||
#
|
#
|
||||||
# 3
|
# 4
|
||||||
#
|
#
|
||||||
|
@@ -13,16 +13,17 @@ ALIASES(5) ALIASES(5)
|
|||||||
|
|
||||||
<b>DESCRIPTION</b>
|
<b>DESCRIPTION</b>
|
||||||
The <b>aliases</b> file provides a system-wide mechanism to redi-
|
The <b>aliases</b> file provides a system-wide mechanism to redi-
|
||||||
rect mail for local recipients.
|
rect mail for local recipients. The redirections are pro-
|
||||||
|
cessed by the Postfix <a href="local.8.html"><b>local</b>(8)</a> delivery agent.
|
||||||
|
|
||||||
The file serves as input to the <a href="postalias.1.html"><b>postalias</b>(1)</a> command. The
|
The file serves as input to the <a href="postalias.1.html"><b>postalias</b>(1)</a> command. The
|
||||||
result, an indexed file in <b>dbm</b> or <b>db</b> format, is used for
|
result, an indexed file in <b>dbm</b> or <b>db</b> format, is used for
|
||||||
fast lookup by the mail system. Execute the command
|
fast lookup by the mail system. Execute the command
|
||||||
<b>newaliases</b> in order to rebuild the indexed file after
|
<b>newaliases</b> in order to rebuild the indexed file after
|
||||||
changing the Postfix alias database.
|
changing the Postfix alias database.
|
||||||
|
|
||||||
The input and output file formats are expected to be com-
|
The input and output file formats are expected to be com-
|
||||||
patible with Sendmail version 8, and are expected to be
|
patible with Sendmail version 8, and are expected to be
|
||||||
suitable for the use as NIS maps.
|
suitable for the use as NIS maps.
|
||||||
|
|
||||||
Users can control delivery of their own mail by setting up
|
Users can control delivery of their own mail by setting up
|
||||||
@@ -36,29 +37,28 @@ ALIASES(5) ALIASES(5)
|
|||||||
|
|
||||||
<i>name</i>: <i>value1</i>, <i>value2</i>, <i>...</i>
|
<i>name</i>: <i>value1</i>, <i>value2</i>, <i>...</i>
|
||||||
|
|
||||||
<b>o</b> Lines that begin with whitespace continue the pre-
|
<b>o</b> Lines that begin with whitespace continue the pre-
|
||||||
vious line.
|
vious line.
|
||||||
|
|
||||||
<b>o</b> Blank lines are ignored, as are lines beginning
|
<b>o</b> Blank lines are ignored, as are lines beginning
|
||||||
with `#'.
|
with `#'.
|
||||||
|
|
||||||
The <i>name</i> is a local address (no domain part). Use double
|
The <i>name</i> is a local address (no domain part). Use double
|
||||||
quotes when the name contains any special characters such
|
quotes when the name contains any special characters such
|
||||||
as whitespace, `#', `:', or `@'. The <i>name</i> is folded to
|
as whitespace, `#', `:', or `@'. The <i>name</i> is folded to
|
||||||
lowercase, in order to make database lookups case insensi-
|
lowercase, in order to make database lookups case insensi-
|
||||||
tive.
|
tive.
|
||||||
|
|
||||||
In addition, when an alias exists for <b>owner-</b><i>name</i>, delivery
|
In addition, when an alias exists for <b>owner-</b><i>name</i>, delivery
|
||||||
diagnostics are directed to that address, instead of to
|
diagnostics are directed to that address, instead of to
|
||||||
the originator. This is typically used to direct delivery
|
the originator. This is typically used to direct delivery
|
||||||
errors to the owner of a mailing list, who is in a better
|
errors to the owner of a mailing list, who is in a better
|
||||||
position to deal with mailing list delivery problems than
|
position to deal with mailing list delivery problems than
|
||||||
the originator of the undelivered mail.
|
the originator of the undelivered mail.
|
||||||
|
|
||||||
The <i>value</i> contains one or more of the following:
|
The <i>value</i> contains one or more of the following:
|
||||||
|
|
||||||
<i>address</i>
|
|
||||||
Mail is forwarded to <i>address</i>, which is compatible
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -71,29 +71,31 @@ ALIASES(5) ALIASES(5)
|
|||||||
ALIASES(5) ALIASES(5)
|
ALIASES(5) ALIASES(5)
|
||||||
|
|
||||||
|
|
||||||
|
<i>address</i>
|
||||||
|
Mail is forwarded to <i>address</i>, which is compatible
|
||||||
with the <a href="http://www.faqs.org/rfcs/rfc822.html">RFC 822</a> standard.
|
with the <a href="http://www.faqs.org/rfcs/rfc822.html">RFC 822</a> standard.
|
||||||
|
|
||||||
<i>/file/name</i>
|
<i>/file/name</i>
|
||||||
Mail is appended to <i>/file/name</i>. See <a href="local.8.html"><b>local</b>(8)</a> for
|
Mail is appended to <i>/file/name</i>. See <a href="local.8.html"><b>local</b>(8)</a> for
|
||||||
details of delivery to file. Delivery is not lim-
|
details of delivery to file. Delivery is not lim-
|
||||||
ited to regular files. For example, to dispose of
|
ited to regular files. For example, to dispose of
|
||||||
unwanted mail, deflect it to <b>/dev/null</b>.
|
unwanted mail, deflect it to <b>/dev/null</b>.
|
||||||
|
|
||||||
|<i>command</i>
|
|<i>command</i>
|
||||||
Mail is piped into <i>command</i>. Commands that contain
|
Mail is piped into <i>command</i>. Commands that contain
|
||||||
special characters, such as whitespace, should be
|
special characters, such as whitespace, should be
|
||||||
enclosed between double quotes. See <a href="local.8.html"><b>local</b>(8)</a> for
|
enclosed between double quotes. See <a href="local.8.html"><b>local</b>(8)</a> for
|
||||||
details of delivery to command.
|
details of delivery to command.
|
||||||
|
|
||||||
When the command fails, a limited amount of command
|
When the command fails, a limited amount of command
|
||||||
output is mailed back to the sender. The file
|
output is mailed back to the sender. The file
|
||||||
<b>/usr/include/sysexits.h</b> defines the expected exit
|
<b>/usr/include/sysexits.h</b> defines the expected exit
|
||||||
status codes. For example, use <b>|"exit</b> <b>67"</b> to simu-
|
status codes. For example, use <b>|"exit</b> <b>67"</b> to simu-
|
||||||
late a "user unknown" error, and <b>|"exit</b> <b>0"</b> to
|
late a "user unknown" error, and <b>|"exit</b> <b>0"</b> to
|
||||||
implement an expensive black hole.
|
implement an expensive black hole.
|
||||||
|
|
||||||
<b>:include:</b><i>/file/name</i>
|
<b>:include:</b><i>/file/name</i>
|
||||||
Mail is sent to the destinations listed in the
|
Mail is sent to the destinations listed in the
|
||||||
named file. Lines in <b>:include:</b> files have the same
|
named file. Lines in <b>:include:</b> files have the same
|
||||||
syntax as the right-hand side of alias entries.
|
syntax as the right-hand side of alias entries.
|
||||||
|
|
||||||
@@ -105,26 +107,24 @@ ALIASES(5) ALIASES(5)
|
|||||||
|
|
||||||
<b>ADDRESS</b> <b>EXTENSION</b>
|
<b>ADDRESS</b> <b>EXTENSION</b>
|
||||||
When alias database search fails, and the recipient local-
|
When alias database search fails, and the recipient local-
|
||||||
part contains the optional recipient delimiter (e.g.,
|
part contains the optional recipient delimiter (e.g.,
|
||||||
<i>user+foo</i>), the search is repeated for the unextended
|
<i>user+foo</i>), the search is repeated for the unextended
|
||||||
address (e.g., <i>user</i>).
|
address (e.g., <i>user</i>).
|
||||||
|
|
||||||
<b>CONFIGURATION</b> <b>PARAMETERS</b>
|
<b>CONFIGURATION</b> <b>PARAMETERS</b>
|
||||||
The following <b>main.cf</b> parameters are especially relevant
|
The following <b>main.cf</b> parameters are especially relevant
|
||||||
to this topic. See the Postfix <b>main.cf</b> file for syntax
|
to this topic. See the Postfix <b>main.cf</b> file for syntax
|
||||||
details and for default values. Use the <b>postfix</b> <b>reload</b>
|
details and for default values. Use the <b>postfix</b> <b>reload</b>
|
||||||
command after a configuration change.
|
command after a configuration change.
|
||||||
|
|
||||||
<b>alias</b><i>_</i><b>maps</b>
|
<b>alias</b><i>_</i><b>maps</b>
|
||||||
List of alias databases.
|
List of alias databases.
|
||||||
|
|
||||||
<b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>commands</b>
|
<b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>commands</b>
|
||||||
Restrict the usage of mail delivery to external
|
Restrict the usage of mail delivery to external
|
||||||
command.
|
command.
|
||||||
|
|
||||||
<b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>files</b>
|
|
||||||
Restrict the usage of mail delivery to external
|
|
||||||
file.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -137,12 +137,16 @@ ALIASES(5) ALIASES(5)
|
|||||||
ALIASES(5) ALIASES(5)
|
ALIASES(5) ALIASES(5)
|
||||||
|
|
||||||
|
|
||||||
|
<b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>files</b>
|
||||||
|
Restrict the usage of mail delivery to external
|
||||||
|
file.
|
||||||
|
|
||||||
<b>owner</b><i>_</i><b>request</b><i>_</i><b>special</b>
|
<b>owner</b><i>_</i><b>request</b><i>_</i><b>special</b>
|
||||||
Give special treatment to <b>owner-</b><i>xxx</i> and <i>xxx</i><b>-request</b>
|
Give special treatment to <b>owner-</b><i>xxx</i> and <i>xxx</i><b>-request</b>
|
||||||
addresses.
|
addresses.
|
||||||
|
|
||||||
<b>recipient</b><i>_</i><b>delimiter</b>
|
<b>recipient</b><i>_</i><b>delimiter</b>
|
||||||
Delimiter that separates recipients from address
|
Delimiter that separates recipients from address
|
||||||
extensions.
|
extensions.
|
||||||
|
|
||||||
<b>STANDARDS</b>
|
<b>STANDARDS</b>
|
||||||
@@ -153,7 +157,7 @@ ALIASES(5) ALIASES(5)
|
|||||||
<a href="postalias.1.html">postalias(1)</a> alias database management
|
<a href="postalias.1.html">postalias(1)</a> alias database management
|
||||||
|
|
||||||
<b>LICENSE</b>
|
<b>LICENSE</b>
|
||||||
The Secure Mailer license must be distributed with this
|
The Secure Mailer license must be distributed with this
|
||||||
software.
|
software.
|
||||||
|
|
||||||
<b>AUTHOR(S)</b>
|
<b>AUTHOR(S)</b>
|
||||||
@@ -185,10 +189,6 @@ ALIASES(5) ALIASES(5)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -12,56 +12,56 @@ CANONICAL(5) CANONICAL(5)
|
|||||||
<b>postmap</b> <b>/etc/postfix/canonical</b>
|
<b>postmap</b> <b>/etc/postfix/canonical</b>
|
||||||
|
|
||||||
<b>DESCRIPTION</b>
|
<b>DESCRIPTION</b>
|
||||||
The optional <b>canonical</b> file specifies an address mapping
|
The optional <b>canonical</b> table specifies an address mapping
|
||||||
for local and non-local addresses. The mapping is used by
|
for local and non-local addresses. The mapping is used by
|
||||||
the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon. The address mapping is recursive.
|
the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon. The address mapping is recursive.
|
||||||
|
|
||||||
Normally, the file serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> com-
|
Normally, the <b>canonical</b> table is specified as a text file
|
||||||
mand. The result, an indexed file in <b>dbm</b> or <b>db</b> format, is
|
that serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> command. The
|
||||||
used for fast searching by the mail system. Execute the
|
result, an indexed file in <b>dbm</b> or <b>db</b> format, is used for
|
||||||
command <b>postmap</b> <b>/etc/postfix/canonical</b> in order to rebuild
|
fast searching by the mail system. Execute the command
|
||||||
the indexed file after changing the canonical table.
|
<b>postmap</b> <b>/etc/postfix/canonical</b> in order to rebuild the
|
||||||
|
indexed file after changing the 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 regular-
|
Alternatively, the table can be provided as a regular-
|
||||||
expression map where patterns are given as regular expres-
|
expression map where patterns are given as regular expres-
|
||||||
sions. In that case, the lookups are done in a slightly
|
sions. In that case, the lookups are done in a slightly
|
||||||
different way as described below.
|
different way as described below.
|
||||||
|
|
||||||
The <b>canonical</b> mapping affects both message header
|
The <b>canonical</b> mapping affects both message header
|
||||||
addresses (i.e. addresses that appear inside messages) and
|
addresses (i.e. addresses that appear inside messages) and
|
||||||
message envelope addresses (for example, the addresses
|
message envelope addresses (for example, the addresses
|
||||||
that are used in SMTP protocol commands). Think Sendmail
|
that are used in SMTP protocol commands). Think Sendmail
|
||||||
rule set <b>S3</b>, if you like.
|
rule set <b>S3</b>, if you like.
|
||||||
|
|
||||||
Typically, one would use the <b>canonical</b> table to replace
|
Typically, one would use the <b>canonical</b> table to replace
|
||||||
login names by <i>Firstname.Lastname</i>, or to clean up
|
login names by <i>Firstname.Lastname</i>, or to clean up
|
||||||
addresses produced by legacy mail systems.
|
addresses produced by legacy mail systems.
|
||||||
|
|
||||||
The <b>canonical</b> mapping is not to be confused with <i>virtual</i>
|
The <b>canonical</b> mapping is not to be confused with <i>virtual</i>
|
||||||
<i>domain</i> support. Use the <a href="virtual.5.html"><b>virtual</b>(5)</a> map for that purpose.
|
<i>domain</i> support. Use the <a href="virtual.5.html"><b>virtual</b>(5)</a> map for that purpose.
|
||||||
|
|
||||||
The <b>canonical</b> mapping is not to be confused with local
|
The <b>canonical</b> mapping is not to be confused with local
|
||||||
aliasing. Use the <a href="aliases.5.html"><b>aliases</b>(5)</a> map for that purpose.
|
aliasing. Use the <a href="aliases.5.html"><b>aliases</b>(5)</a> map for that purpose.
|
||||||
|
|
||||||
<b>TABLE</b> <b>FORMAT</b>
|
<b>TABLE</b> <b>FORMAT</b>
|
||||||
The format of the <b>canonical</b> table is as follows:
|
The format of the <b>canonical</b> table is as follows:
|
||||||
|
|
||||||
blanks and comments
|
blanks and comments
|
||||||
Blank lines are ignored, as are lines beginning
|
Blank lines are ignored, as are lines beginning
|
||||||
with `#'.
|
with `#'.
|
||||||
|
|
||||||
leading whitespace
|
leading whitespace
|
||||||
Lines that begin with whitespace continue the pre-
|
Lines that begin with whitespace continue the pre-
|
||||||
vious line.
|
vious line.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1
|
1
|
||||||
|
|
||||||
|
|
||||||
@@ -72,59 +72,59 @@ CANONICAL(5) CANONICAL(5)
|
|||||||
|
|
||||||
|
|
||||||
<i>pattern</i> <i>result</i>
|
<i>pattern</i> <i>result</i>
|
||||||
When <i>pattern</i> matches a mail address, replace it by
|
When <i>pattern</i> matches a mail address, replace it by
|
||||||
the corresponding <i>result</i>.
|
the corresponding <i>result</i>.
|
||||||
|
|
||||||
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, patterns are
|
networked tables such as NIS, LDAP or SQL, patterns are
|
||||||
tried in the order as listed below:
|
tried in the order as listed below:
|
||||||
|
|
||||||
<i>user</i>@<i>domain</i> <i>address</i>
|
<i>user</i>@<i>domain</i> <i>address</i>
|
||||||
<i>user</i>@<i>domain</i> is replaced by <i>address</i>. This form has
|
<i>user</i>@<i>domain</i> is replaced by <i>address</i>. This form has
|
||||||
the highest precedence.
|
the highest precedence.
|
||||||
|
|
||||||
This form useful to clean up addresses produced by
|
This form useful to clean up addresses produced by
|
||||||
legacy mail systems. It can also be used to pro-
|
legacy mail systems. It can also be used to pro-
|
||||||
duce <i>Firstname.Lastname</i> style addresses, but see
|
duce <i>Firstname.Lastname</i> style addresses, but see
|
||||||
below for a simpler solution.
|
below for a simpler solution.
|
||||||
|
|
||||||
<i>user</i> <i>address</i>
|
<i>user</i> <i>address</i>
|
||||||
<i>user</i>@<i>site</i> is replaced by <i>address</i> when <i>site</i> is equal
|
<i>user</i>@<i>site</i> is replaced by <i>address</i> when <i>site</i> is equal
|
||||||
to $<b>myorigin</b>, when <i>site</i> is listed in $<b>mydestina-</b>
|
to $<b>myorigin</b>, when <i>site</i> is listed in $<b>mydestina-</b>
|
||||||
<b>tion</b>, or when it is listed in $<b>inet</b><i>_</i><b>interfaces</b>.
|
<b>tion</b>, or when it is listed in $<b>inet</b><i>_</i><b>interfaces</b>.
|
||||||
|
|
||||||
This form is useful for replacing login names by
|
This form is useful for replacing login names by
|
||||||
<i>Firstname.Lastname</i>.
|
<i>Firstname.Lastname</i>.
|
||||||
|
|
||||||
@<i>domain</i> <i>address</i>
|
@<i>domain</i> <i>address</i>
|
||||||
Every address in <i>domain</i> is replaced by <i>address</i>.
|
Every address in <i>domain</i> is replaced by <i>address</i>.
|
||||||
This form has the lowest precedence.
|
This form has the lowest precedence.
|
||||||
|
|
||||||
In all the above forms, when <i>address</i> has the form @<i>other-</i>
|
In all the above forms, when <i>address</i> has the form @<i>other-</i>
|
||||||
<i>domain</i>, the result is the same user in <i>otherdomain</i>.
|
<i>domain</i>, the result is the same user in <i>otherdomain</i>.
|
||||||
|
|
||||||
<b>ADDRESS</b> <b>EXTENSION</b>
|
<b>ADDRESS</b> <b>EXTENSION</b>
|
||||||
When table lookup fails, and the address localpart con-
|
When table lookup fails, and the address localpart con-
|
||||||
tains the optional recipient delimiter (e.g.,
|
tains the optional recipient delimiter (e.g.,
|
||||||
<i>user+foo</i>@<i>domain</i>), the search is repeated for the unex-
|
<i>user+foo</i>@<i>domain</i>), the search is repeated for the unex-
|
||||||
tended address (e.g. <i>user</i>@<i>domain</i>), and the unmatched
|
tended address (e.g. <i>user</i>@<i>domain</i>), and the unmatched
|
||||||
extension is propagated to the result of table lookup. The
|
extension is propagated to the result of table lookup. The
|
||||||
matching order is: <i>user+foo</i>@<i>domain</i>, <i>user</i>@<i>domain</i>, <i>user+foo</i>,
|
matching order is: <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>, and @<i>domain</i>.
|
||||||
|
|
||||||
<b>REGULAR</b> <b>EXPRESSION</b> <b>TABLES</b>
|
<b>REGULAR</b> <b>EXPRESSION</b> <b>TABLES</b>
|
||||||
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 <a href="regexp_table.5.html"><b>regexp</b><i>_</i><b>table</b>(5)</a> or <a href="pcre_table.5.html"><b>pcre</b><i>_</i><b>table</b>(5)</a>.
|
see <a href="regexp_table.5.html"><b>regexp</b><i>_</i><b>table</b>(5)</a> or <a href="pcre_table.5.html"><b>pcre</b><i>_</i><b>table</b>(5)</a>.
|
||||||
|
|
||||||
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, <i>user@domain</i> mail
|
the entire address being looked up. Thus, <i>user@domain</i> mail
|
||||||
addresses are not broken up into their <i>user</i> and <i>@domain</i>
|
addresses are not broken 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
|
constituent parts, nor is <i>user+foo</i> broken up into <i>user</i> and
|
||||||
<i>foo</i>.
|
<i>foo</i>.
|
||||||
|
|
||||||
Patterns are applied in the order as specified in the
|
Patterns are applied in the order as specified in the
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -137,20 +137,20 @@ CANONICAL(5) CANONICAL(5)
|
|||||||
CANONICAL(5) CANONICAL(5)
|
CANONICAL(5) CANONICAL(5)
|
||||||
|
|
||||||
|
|
||||||
table, until a pattern is found that matches the search
|
table, until a pattern is found that matches the search
|
||||||
string.
|
string.
|
||||||
|
|
||||||
Results are the same as with normal indexed file lookups,
|
Results are the same as with normal indexed file lookups,
|
||||||
with the additional feature that parenthesized substrings
|
with the additional feature that parenthesized substrings
|
||||||
from the pattern can be interpolated as <b>$1</b>, <b>$2</b> and so on.
|
from the pattern can be interpolated as <b>$1</b>, <b>$2</b> and so on.
|
||||||
|
|
||||||
<b>BUGS</b>
|
<b>BUGS</b>
|
||||||
The table format does not understand quoting conventions.
|
The table format does not understand quoting conventions.
|
||||||
|
|
||||||
<b>CONFIGURATION</b> <b>PARAMETERS</b>
|
<b>CONFIGURATION</b> <b>PARAMETERS</b>
|
||||||
The following <b>main.cf</b> parameters are especially relevant
|
The following <b>main.cf</b> parameters are especially relevant
|
||||||
to this topic. See the Postfix <b>main.cf</b> file for syntax
|
to this topic. See the Postfix <b>main.cf</b> file for syntax
|
||||||
details and for default values. Use the <b>postfix</b> <b>reload</b>
|
details and for default values. Use the <b>postfix</b> <b>reload</b>
|
||||||
command after a configuration change.
|
command after a configuration change.
|
||||||
|
|
||||||
<b>canonical</b><i>_</i><b>maps</b>
|
<b>canonical</b><i>_</i><b>maps</b>
|
||||||
@@ -167,19 +167,19 @@ CANONICAL(5) CANONICAL(5)
|
|||||||
Other parameters of interest:
|
Other parameters of interest:
|
||||||
|
|
||||||
<b>inet</b><i>_</i><b>interfaces</b>
|
<b>inet</b><i>_</i><b>interfaces</b>
|
||||||
The network interface addresses that this system
|
The network interface addresses that this system
|
||||||
receives mail on.
|
receives mail on.
|
||||||
|
|
||||||
<b>masquerade</b><i>_</i><b>domains</b>
|
<b>masquerade</b><i>_</i><b>domains</b>
|
||||||
List of domains that hide their subdomain struc-
|
List of domains that hide their subdomain struc-
|
||||||
ture.
|
ture.
|
||||||
|
|
||||||
<b>masquerade</b><i>_</i><b>exceptions</b>
|
<b>masquerade</b><i>_</i><b>exceptions</b>
|
||||||
List of user names that are not subject to address
|
List of user names that are not subject to address
|
||||||
masquerading.
|
masquerading.
|
||||||
|
|
||||||
<b>mydestination</b>
|
<b>mydestination</b>
|
||||||
List of domains that this mail system considers
|
List of domains that this mail system considers
|
||||||
local.
|
local.
|
||||||
|
|
||||||
<b>myorigin</b>
|
<b>myorigin</b>
|
||||||
@@ -209,7 +209,7 @@ CANONICAL(5) CANONICAL(5)
|
|||||||
<a href="regexp_table.5.html">regexp_table(5)</a> format of POSIX regular expression tables
|
<a href="regexp_table.5.html">regexp_table(5)</a> format of POSIX regular expression tables
|
||||||
|
|
||||||
<b>LICENSE</b>
|
<b>LICENSE</b>
|
||||||
The Secure Mailer license must be distributed with this
|
The Secure Mailer license must be distributed with this
|
||||||
software.
|
software.
|
||||||
|
|
||||||
<b>AUTHOR(S)</b>
|
<b>AUTHOR(S)</b>
|
||||||
|
@@ -128,7 +128,7 @@ addresses</a>
|
|||||||
|
|
||||||
<li><a href="#mobile">Relaying mail for mobile users</a>
|
<li><a href="#mobile">Relaying mail for mobile users</a>
|
||||||
|
|
||||||
<li><a href="#virtual_setup">Postfix refuses mail for virtual
|
<li><a href="#virtual_relay">Postfix refuses mail for virtual
|
||||||
domains with "relay access denied"</a>
|
domains with "relay access denied"</a>
|
||||||
|
|
||||||
<li><a href="#relay_restrict">Restricting what users can send mail to off-site destinations</a>
|
<li><a href="#relay_restrict">Restricting what users can send mail to off-site destinations</a>
|
||||||
@@ -155,6 +155,8 @@ domains with "relay access denied"</a>
|
|||||||
|
|
||||||
<li><a href="#root">Root's mail is delivered to nobody</a>
|
<li><a href="#root">Root's mail is delivered to nobody</a>
|
||||||
|
|
||||||
|
<li><a href="#biff">What does "biff_notify: Connection refused" mean?</a>
|
||||||
|
|
||||||
<li><a href="#bogus">Postfix accepts mail for non-existing local users</a>
|
<li><a href="#bogus">Postfix accepts mail for non-existing local users</a>
|
||||||
|
|
||||||
<li><a href="#some_local">Delivering some users locally while
|
<li><a href="#some_local">Delivering some users locally while
|
||||||
@@ -190,27 +192,24 @@ distribution list</a>
|
|||||||
|
|
||||||
<li><a href="#owner-foo">Postfix ignores the owner-list alias</a>
|
<li><a href="#owner-foo">Postfix ignores the owner-list alias</a>
|
||||||
|
|
||||||
|
<li><a href="#virtual_command">Commands and mailing lists don't work in Postfix virtual maps</a>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="virtual_domains"><h3>Virtual domains</h3>
|
<a name="virtual_domains"><h3>Virtual domains</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li><a href="#virtual_setup">How to configure a Postfix virtual domain</a>
|
<li><a href="#unknown_virtual_accept">Postfix does not refuse mail for
|
||||||
|
unknown users in virtual domains</a>
|
||||||
|
|
||||||
<li><a href="#virtual_setup">Postfix does not refuse mail for
|
<li><a href="#unknown_virtual_loop">Mail for unknown users in
|
||||||
unknown virtual users</a>
|
virtual domains fails with "mail loops back to myself"</a>
|
||||||
|
|
||||||
<li><a href="#virtual_setup">Mail for unknown virtual users fails
|
<li><a href="#virtual_relay">Postfix refuses mail for virtual
|
||||||
with "mail loops back to myself"</a>
|
|
||||||
|
|
||||||
<li><a href="#virtual_setup">Postfix refuses mail for virtual
|
|
||||||
domains with "user unknown"</a>
|
|
||||||
|
|
||||||
<li><a href="#virtual_setup">Postfix refuses mail for virtual
|
|
||||||
domains with "relay access denied"</a>
|
domains with "relay access denied"</a>
|
||||||
|
|
||||||
<li><a href="#command">Commands don't work in Postfix virtual maps</a>
|
<li><a href="#virtual_command">Commands and mailing lists don't work in Postfix virtual maps</a>
|
||||||
|
|
||||||
<li><a href="#domain_mailbox">Receiving a virtual domain in a
|
<li><a href="#domain_mailbox">Receiving a virtual domain in a
|
||||||
mailbox</a>
|
mailbox</a>
|
||||||
@@ -1480,10 +1479,41 @@ To find out the location for your system, execute the command
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
|
<a name="biff"><h3>What does "biff_notify: Connection refused" mean?</h3>
|
||||||
|
|
||||||
|
By default, the Postfix local delivery agent attempts to notify
|
||||||
|
local users of the arrival of new mail. This feature makes use of
|
||||||
|
the <b>comsat</b> network service, which is turned off on many UNIX
|
||||||
|
systems for performance and/or security reasons.
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
The warning message means that new mail notificiation failed because
|
||||||
|
the <b>comsat</b> network service is turned off.
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
To disable the <b>comsat</b> client code in the Postfix delivery agent,
|
||||||
|
specify:
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
/etc/postfix/main.cf:
|
||||||
|
biff = no
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
To enable the <b>comsat</b> network service, uncomment the
|
||||||
|
corresponding entry in the <b>inetd.conf</b> file.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
<a name="bogus"><h3>Postfix accepts mail for non-existing local users</h3>
|
<a name="bogus"><h3>Postfix accepts mail for non-existing local users</h3>
|
||||||
|
|
||||||
See elsewhere for how to reject mail for <a href="#virtual_setup">unknown
|
See elsewhere for how to reject mail for <a
|
||||||
virtual</a> users.
|
href="#unknown_virtual_accept">unknown users in virtual domains</a>.
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
@@ -1527,9 +1557,9 @@ The only way to find out is to try.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
By default, the Postfix SMTP server does know about Postfix <a
|
By default, the Postfix SMTP server is aware of Postfix <a
|
||||||
href="#virtual_setup">virtual</a> maps, and will reject mail for
|
href="virtual.5.html">virtual</a> maps, and will accept mail for
|
||||||
<i>unknown@virtual.domain</i> without further configuration.
|
<i>known-user@virtual.domain</i> without further configuration.
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
@@ -1928,68 +1958,37 @@ sense to make it moderated.
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<a name="virtual_setup"><h3>How to configure a Postfix virtual domain</h3>
|
<a name="unknown_virtual_accept"><h3>Postfix does not refuse mail for
|
||||||
|
unknown users in virtual domains</h3></a>
|
||||||
|
|
||||||
Problem:
|
<a name="unknown_virtual_loop"><h3>Mail for unknown users in a
|
||||||
|
virtual domain fails with "mail loops back to myself"</h3></a>
|
||||||
|
|
||||||
<p>
|
<a name="virtual_relay"><h3>Postfix refuses mail for virtual
|
||||||
|
domains with "relay access denied"</h3></a>
|
||||||
|
|
||||||
<ul>
|
Solution: specify a Postfix-style virtual domain or a Sendmail-style
|
||||||
|
virtual domain.
|
||||||
<li>Postfix does not refuse mail for unknown virtual users.
|
|
||||||
|
|
||||||
<li>Mail for unknown virtual users fails with "mail loops back to
|
|
||||||
myself".
|
|
||||||
|
|
||||||
<li>Postfix refuses mail for virtual domains with "user unknown".
|
|
||||||
|
|
||||||
<li>Postfix refuses mail for virtual domains with "relay access
|
|
||||||
denied".
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
Solution:
|
Be sure to follow instructions in the <a href="virtual.5.html">
|
||||||
|
virtual</a> manual page.
|
||||||
<p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li> Add a magical entry to the Postfix virtual maps for
|
|
||||||
each Postfix virtual domain:
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
/etc/postfix/virtual:
|
|
||||||
virtual.domain whatever
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<li> Do not list Postfix virtual domains in the <a
|
|
||||||
href="basic.html#mydestination">mydestination</a> parameter.
|
|
||||||
|
|
||||||
<li> Do not list Postfix virtual maps in the <b>local_recipient_maps</b>
|
|
||||||
parameter.
|
|
||||||
|
|
||||||
<li>As of Postfix version 19991226 it is no longer necessary to
|
|
||||||
specify virtual maps in the <a
|
|
||||||
href="uce.html#relay_domains">relay_domains</a> parameter. To find
|
|
||||||
out what Postfix version you have, execute the command <b>postconf
|
|
||||||
mail_version</b>.
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
For more information on how to set up virtual domains, see the <a
|
|
||||||
href="virtual.5.html">virtual</a> manual page.
|
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<a name="command"><h3>Commands don't work in Postfix virtual maps</h3>
|
<a name="virtual_command"><h3>Commands and mailing lists don't work
|
||||||
|
in Postfix virtual maps</h3>
|
||||||
|
|
||||||
|
Short reply: specify a Sendmail-style <a href="virtual.5.html">virtual</a>
|
||||||
|
domain, and specify the command or mailing list in the local <a
|
||||||
|
href="aliases.5.html">aliases</a> file.
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
Long reply follows.
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
Delivering mail to a command is a security-sensitive operation,
|
Delivering mail to a command is a security-sensitive operation,
|
||||||
because the command must be executed with the right privileges.
|
because the command must be executed with the right privileges.
|
||||||
@@ -2003,56 +2002,6 @@ privileges where possible. In particular, Postfix virtual mapping
|
|||||||
is done by an unprivileged daemon, so there is no secure way to
|
is done by an unprivileged daemon, so there is no secure way to
|
||||||
execute commands found in virtual maps.
|
execute commands found in virtual maps.
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
Solution: specify a local alias instead. The Postfix local delivery
|
|
||||||
agent has sufficient privilege to execute commands with the right
|
|
||||||
privileges.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li>Set up a local alias that executes the command:
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
/etc/aliases:
|
|
||||||
name-virtual.domain "|/some/where/command..."
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<li>Execute the command <b>newaliases</b> whenever you edit the
|
|
||||||
alias database.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<li>Forward mail for the virtual address to the local alias:
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
/etc/postfix/virtual:
|
|
||||||
virtual.domain whatever
|
|
||||||
name@virtual.domain name-virtual.domain
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<li>Execute the command <b>postmap /etc/postfix/virtual</b> whenever
|
|
||||||
you edit the virtual database.
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
|
|
||||||
Note: on some systems the alias database is not in <b>/etc/aliases</b>.
|
|
||||||
To find out the location for your system, execute the command
|
|
||||||
<b>postconf alias_maps</b>.
|
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<a name="domain_mailbox"><h3>Receiving a virtual domain in a mailbox</h3>
|
<a name="domain_mailbox"><h3>Receiving a virtual domain in a mailbox</h3>
|
||||||
|
@@ -56,7 +56,7 @@ FLUSH(8) FLUSH(8)
|
|||||||
|
|
||||||
<b>FLUSH</b><i>_</i><b>REQ</b><i>_</i><b>REFRESH</b> (completes in the background)
|
<b>FLUSH</b><i>_</i><b>REQ</b><i>_</i><b>REFRESH</b> (completes in the background)
|
||||||
Refresh non-empty per-destination logfiles that
|
Refresh non-empty per-destination logfiles that
|
||||||
were not read in $<b>fast</b><i>_</i><b>flush</b><i>_</i><b>refresh</b><i>_</i><b>time</b> hours, by
|
were not read in <b>$fast</b><i>_</i><b>flush</b><i>_</i><b>refresh</b><i>_</i><b>time</b> hours, by
|
||||||
simulating send requests (see above) for the corre-
|
simulating send requests (see above) for the corre-
|
||||||
sponding destinations.
|
sponding destinations.
|
||||||
|
|
||||||
@@ -78,8 +78,8 @@ FLUSH(8) FLUSH(8)
|
|||||||
Refresh all non-empty per-destination logfiles, by
|
Refresh all non-empty per-destination logfiles, by
|
||||||
simulating send requests (see above) for the corre-
|
simulating send requests (see above) for the corre-
|
||||||
sponding destinations. This can be incredibly
|
sponding destinations. This can be incredibly
|
||||||
expensive when logging is enabled for all deferred
|
expensive when logging is enabled for many destina-
|
||||||
mail, and is not recommended.
|
tions, and is not recommended.
|
||||||
|
|
||||||
Delete empty per-destination logfiles that were not
|
Delete empty per-destination logfiles that were not
|
||||||
updated in <b>fast</b><i>_</i><b>flush</b><i>_</i><b>purge</b><i>_</i><b>time</b> days.
|
updated in <b>fast</b><i>_</i><b>flush</b><i>_</i><b>purge</b><i>_</i><b>time</b> days.
|
||||||
@@ -115,12 +115,12 @@ FLUSH(8) FLUSH(8)
|
|||||||
tion file.
|
tion file.
|
||||||
|
|
||||||
Upon receipt of a request to deliver all mail for an eli-
|
Upon receipt of a request to deliver all mail for an eli-
|
||||||
gible destination, this server requests delivery of all
|
gible destination, the <b>flush</b> server requests delivery of
|
||||||
messages that are listed in that destination's logfile,
|
all messages that are listed in that destination's log-
|
||||||
regardless of the recipients of those messages. This is
|
file, regardless of the recipients of those messages. This
|
||||||
not an issue for mail that is sent to a <b>relay</b><i>_</i><b>domains</b> des-
|
is not an issue for mail that is sent to a <b>relay</b><i>_</i><b>domains</b>
|
||||||
tination because such mail typically only has recipients
|
destination because such mail typically only has recipi-
|
||||||
in one domain.
|
ents in one domain.
|
||||||
|
|
||||||
<b>FILES</b>
|
<b>FILES</b>
|
||||||
/var/spool/postfix/flush, location of "fast flush" logfiles.
|
/var/spool/postfix/flush, location of "fast flush" logfiles.
|
||||||
|
@@ -309,20 +309,20 @@ LOCAL(8) LOCAL(8)
|
|||||||
<b>alias</b><i>_</i><b>maps</b>
|
<b>alias</b><i>_</i><b>maps</b>
|
||||||
List of alias databases.
|
List of alias databases.
|
||||||
|
|
||||||
|
<b>biff</b> Enable or disable notification of new mail via the
|
||||||
|
<b>comsat</b> network service.
|
||||||
|
|
||||||
<b>expand</b><i>_</i><b>owner</b><i>_</i><b>alias</b>
|
<b>expand</b><i>_</i><b>owner</b><i>_</i><b>alias</b>
|
||||||
When delivering to an alias that has an owner- com-
|
When delivering to an alias that has an owner- com-
|
||||||
panion alias, set the envelope sender address to
|
panion alias, set the envelope sender address to
|
||||||
the right-hand side of the owner alias, instead
|
the right-hand side of the owner alias, instead
|
||||||
using of the left-hand side address.
|
using of the left-hand side address.
|
||||||
|
|
||||||
<b>forward</b><i>_</i><b>path</b>
|
<b>forward</b><i>_</i><b>path</b>
|
||||||
Search list for .forward files. The names are sub-
|
Search list for .forward files. The names are sub-
|
||||||
ject to <i>$name</i> expansion.
|
ject to <i>$name</i> expansion.
|
||||||
|
|
||||||
<b>local</b><i>_</i><b>command</b><i>_</i><b>shell</b>
|
|
||||||
Shell to use for external command execution (for
|
|
||||||
example, /some/where/smrsh -c). When a shell is
|
|
||||||
specified, it is invoked even when the command
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -335,7 +335,11 @@ LOCAL(8) LOCAL(8)
|
|||||||
LOCAL(8) LOCAL(8)
|
LOCAL(8) LOCAL(8)
|
||||||
|
|
||||||
|
|
||||||
contains no shell built-in commands or meta charac-
|
<b>local</b><i>_</i><b>command</b><i>_</i><b>shell</b>
|
||||||
|
Shell to use for external command execution (for
|
||||||
|
example, /some/where/smrsh -c). When a shell is
|
||||||
|
specified, it is invoked even when the command con-
|
||||||
|
tains no shell built-in commands or meta charac-
|
||||||
ters.
|
ters.
|
||||||
|
|
||||||
<b>owner</b><i>_</i><b>request</b><i>_</i><b>special</b>
|
<b>owner</b><i>_</i><b>request</b><i>_</i><b>special</b>
|
||||||
@@ -343,10 +347,10 @@ LOCAL(8) LOCAL(8)
|
|||||||
addresses.
|
addresses.
|
||||||
|
|
||||||
<b>prepend</b><i>_</i><b>delivered</b><i>_</i><b>header</b>
|
<b>prepend</b><i>_</i><b>delivered</b><i>_</i><b>header</b>
|
||||||
Prepend an optional <b>Delivered-To:</b> header upon
|
Prepend an optional <b>Delivered-To:</b> header upon
|
||||||
external forwarding, delivery to command or file.
|
external forwarding, delivery to command or file.
|
||||||
Specify zero or more of: <b>command,</b> <b>file,</b> <b>forward</b>.
|
Specify zero or more of: <b>command,</b> <b>file,</b> <b>forward</b>.
|
||||||
Turning off <b>Delivered-To:</b> when forwarding mail is
|
Turning off <b>Delivered-To:</b> when forwarding mail is
|
||||||
not recommended.
|
not recommended.
|
||||||
|
|
||||||
<b>recipient</b><i>_</i><b>delimiter</b>
|
<b>recipient</b><i>_</i><b>delimiter</b>
|
||||||
@@ -354,41 +358,37 @@ LOCAL(8) LOCAL(8)
|
|||||||
|
|
||||||
<b>test</b><i>_</i><b>home</b><i>_</i><b>directory</b>
|
<b>test</b><i>_</i><b>home</b><i>_</i><b>directory</b>
|
||||||
Require that a recipient's home directory is acces-
|
Require that a recipient's home directory is acces-
|
||||||
sible by the recipient before attempting delivery.
|
sible by the recipient before attempting delivery.
|
||||||
|
|
||||||
<b>Mailbox</b> <b>delivery</b>
|
<b>Mailbox</b> <b>delivery</b>
|
||||||
<b>fallback</b><i>_</i><b>transport</b>
|
<b>fallback</b><i>_</i><b>transport</b>
|
||||||
Message transport for recipients that are not found
|
Message transport for recipients that are not found
|
||||||
in the UNIX passwd database. This parameter over-
|
in the UNIX passwd database. This parameter over-
|
||||||
rides <b>luser</b><i>_</i><b>relay</b>.
|
rides <b>luser</b><i>_</i><b>relay</b>.
|
||||||
|
|
||||||
<b>home</b><i>_</i><b>mailbox</b>
|
<b>home</b><i>_</i><b>mailbox</b>
|
||||||
Pathname of a mailbox relative to a user's home
|
Pathname of a mailbox relative to a user's home
|
||||||
directory. Specify a path ending in <b>/</b> for maildir-
|
directory. Specify a path ending in <b>/</b> for maildir-
|
||||||
style delivery.
|
style delivery.
|
||||||
|
|
||||||
<b>luser</b><i>_</i><b>relay</b>
|
<b>luser</b><i>_</i><b>relay</b>
|
||||||
Destination (<i>@domain</i> or <i>address</i>) for non-existent
|
Destination (<i>@domain</i> or <i>address</i>) for non-existent
|
||||||
users. The <i>address</i> is subjected to <i>$name</i> expan-
|
users. The <i>address</i> is subjected to <i>$name</i> expan-
|
||||||
sion.
|
sion.
|
||||||
|
|
||||||
<b>mail</b><i>_</i><b>spool</b><i>_</i><b>directory</b>
|
<b>mail</b><i>_</i><b>spool</b><i>_</i><b>directory</b>
|
||||||
Directory with UNIX-style mailboxes. The default
|
Directory with UNIX-style mailboxes. The default
|
||||||
pathname is system dependent.
|
pathname is system dependent.
|
||||||
|
|
||||||
<b>mailbox</b><i>_</i><b>command</b>
|
<b>mailbox</b><i>_</i><b>command</b>
|
||||||
External command to use for mailbox delivery. The
|
External command to use for mailbox delivery. The
|
||||||
command executes with the recipient privileges
|
command executes with the recipient privileges
|
||||||
(exception: root). The string is subject to $name
|
(exception: root). The string is subject to $name
|
||||||
expansions.
|
expansions.
|
||||||
|
|
||||||
<b>mailbox</b><i>_</i><b>transport</b>
|
<b>mailbox</b><i>_</i><b>transport</b>
|
||||||
Message transport to use for mailbox delivery to
|
Message transport to use for mailbox delivery to
|
||||||
all local recipients, whether or not they are found
|
all local recipients, whether or not they are found
|
||||||
in the UNIX passwd database. This parameter over-
|
|
||||||
rides all other configuration parameters that con-
|
|
||||||
trol mailbox delivery, including <b>luser</b><i>_</i><b>relay</b>.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -401,13 +401,17 @@ LOCAL(8) LOCAL(8)
|
|||||||
LOCAL(8) LOCAL(8)
|
LOCAL(8) LOCAL(8)
|
||||||
|
|
||||||
|
|
||||||
|
in the UNIX passwd database. This parameter over-
|
||||||
|
rides all other configuration parameters that con-
|
||||||
|
trol mailbox delivery, including <b>luser</b><i>_</i><b>relay</b>.
|
||||||
|
|
||||||
<b>Locking</b> <b>controls</b>
|
<b>Locking</b> <b>controls</b>
|
||||||
<b>deliver</b><i>_</i><b>lock</b><i>_</i><b>attempts</b>
|
<b>deliver</b><i>_</i><b>lock</b><i>_</i><b>attempts</b>
|
||||||
Limit the number of attempts to acquire an exclu-
|
Limit the number of attempts to acquire an exclu-
|
||||||
sive lock on a mailbox or external file.
|
sive lock on a mailbox or external file.
|
||||||
|
|
||||||
<b>deliver</b><i>_</i><b>lock</b><i>_</i><b>delay</b>
|
<b>deliver</b><i>_</i><b>lock</b><i>_</i><b>delay</b>
|
||||||
Time in seconds between successive attempts to
|
Time in seconds between successive attempts to
|
||||||
acquire an exclusive lock.
|
acquire an exclusive lock.
|
||||||
|
|
||||||
<b>stale</b><i>_</i><b>lock</b><i>_</i><b>time</b>
|
<b>stale</b><i>_</i><b>lock</b><i>_</i><b>time</b>
|
||||||
@@ -415,45 +419,41 @@ LOCAL(8) LOCAL(8)
|
|||||||
|
|
||||||
<b>Resource</b> <b>controls</b>
|
<b>Resource</b> <b>controls</b>
|
||||||
<b>command</b><i>_</i><b>time</b><i>_</i><b>limit</b>
|
<b>command</b><i>_</i><b>time</b><i>_</i><b>limit</b>
|
||||||
Limit the amount of time for delivery to external
|
Limit the amount of time for delivery to external
|
||||||
command.
|
command.
|
||||||
|
|
||||||
<b>duplicate</b><i>_</i><b>filter</b><i>_</i><b>limit</b>
|
<b>duplicate</b><i>_</i><b>filter</b><i>_</i><b>limit</b>
|
||||||
Limit the size of the duplicate filter for results
|
Limit the size of the duplicate filter for results
|
||||||
from alias etc. expansion.
|
from alias etc. expansion.
|
||||||
|
|
||||||
<b>line</b><i>_</i><b>length</b><i>_</i><b>limit</b>
|
<b>line</b><i>_</i><b>length</b><i>_</i><b>limit</b>
|
||||||
Limit the amount of memory used for processing a
|
Limit the amount of memory used for processing a
|
||||||
partial input line.
|
partial input line.
|
||||||
|
|
||||||
<b>local</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b>
|
<b>local</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b>
|
||||||
Limit the number of parallel deliveries to the same
|
Limit the number of parallel deliveries to the same
|
||||||
user. The default limit is taken from the
|
user. The default limit is taken from the
|
||||||
<b>default</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b> parameter.
|
<b>default</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b> parameter.
|
||||||
|
|
||||||
<b>local</b><i>_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b>
|
<b>local</b><i>_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b>
|
||||||
Limit the number of recipients per message deliv-
|
Limit the number of recipients per message deliv-
|
||||||
ery. The default limit is taken from the
|
ery. The default limit is taken from the
|
||||||
<b>default</b><i>_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> parameter.
|
<b>default</b><i>_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> parameter.
|
||||||
|
|
||||||
<b>Security</b> <b>controls</b>
|
<b>Security</b> <b>controls</b>
|
||||||
<b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>commands</b>
|
<b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>commands</b>
|
||||||
Restrict the usage of mail delivery to external
|
Restrict the usage of mail delivery to external
|
||||||
command.
|
command.
|
||||||
|
|
||||||
<b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>files</b>
|
<b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>files</b>
|
||||||
Restrict the usage of mail delivery to external
|
Restrict the usage of mail delivery to external
|
||||||
file.
|
file.
|
||||||
|
|
||||||
<b>command</b><i>_</i><b>expansion</b><i>_</i><b>filter</b>
|
<b>command</b><i>_</i><b>expansion</b><i>_</i><b>filter</b>
|
||||||
What characters are allowed to appear in $name
|
What characters are allowed to appear in $name
|
||||||
expansions of mailbox_command. Illegal characters
|
expansions of mailbox_command. Illegal characters
|
||||||
are replaced by underscores.
|
are replaced by underscores.
|
||||||
|
|
||||||
<b>default</b><i>_</i><b>privs</b>
|
|
||||||
Default rights for delivery to external file or
|
|
||||||
command.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -467,16 +467,20 @@ LOCAL(8) LOCAL(8)
|
|||||||
LOCAL(8) LOCAL(8)
|
LOCAL(8) LOCAL(8)
|
||||||
|
|
||||||
|
|
||||||
|
<b>default</b><i>_</i><b>privs</b>
|
||||||
|
Default rights for delivery to external file or
|
||||||
|
command.
|
||||||
|
|
||||||
<b>forward</b><i>_</i><b>expansion</b><i>_</i><b>filter</b>
|
<b>forward</b><i>_</i><b>expansion</b><i>_</i><b>filter</b>
|
||||||
What characters are allowed to appear in $name
|
What characters are allowed to appear in $name
|
||||||
expansions of forward_path. Illegal characters are
|
expansions of forward_path. Illegal characters are
|
||||||
replaced by underscores.
|
replaced by underscores.
|
||||||
|
|
||||||
<b>HISTORY</b>
|
<b>HISTORY</b>
|
||||||
The <b>Delivered-To:</b> header appears in the <b>qmail</b> system by
|
The <b>Delivered-To:</b> header appears in the <b>qmail</b> system by
|
||||||
Daniel Bernstein.
|
Daniel Bernstein.
|
||||||
|
|
||||||
The <i>maildir</i> structure appears in the <b>qmail</b> system by
|
The <i>maildir</i> structure appears in the <b>qmail</b> system by
|
||||||
Daniel Bernstein.
|
Daniel Bernstein.
|
||||||
|
|
||||||
<b>SEE</b> <b>ALSO</b>
|
<b>SEE</b> <b>ALSO</b>
|
||||||
@@ -487,7 +491,7 @@ LOCAL(8) LOCAL(8)
|
|||||||
<a href="qmgr.8.html">qmgr(8)</a> queue manager
|
<a href="qmgr.8.html">qmgr(8)</a> queue manager
|
||||||
|
|
||||||
<b>LICENSE</b>
|
<b>LICENSE</b>
|
||||||
The Secure Mailer license must be distributed with this
|
The Secure Mailer license must be distributed with this
|
||||||
software.
|
software.
|
||||||
|
|
||||||
<b>AUTHOR(S)</b>
|
<b>AUTHOR(S)</b>
|
||||||
@@ -515,10 +519,6 @@ LOCAL(8) LOCAL(8)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -87,44 +87,44 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
Set the sender full name. This is used only with
|
Set the sender full name. This is used only with
|
||||||
messages that have no <b>From:</b> message header.
|
messages that have no <b>From:</b> message header.
|
||||||
|
|
||||||
<b>-I</b> Initialize alias database. See the <b>newaliases</b> com-
|
<b>-G</b> (ignored)
|
||||||
|
Gateway (relay) submission, as opposed to initial
|
||||||
|
user submission.
|
||||||
|
|
||||||
|
<b>-I</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||||
mand above.
|
mand above.
|
||||||
|
|
||||||
<b>-N</b> <i>dsn</i> (ignored)
|
<b>-N</b> <i>dsn</i> (ignored)
|
||||||
Delivery status notification control. Currently,
|
Delivery status notification control. Currently,
|
||||||
Postfix does not implement <b>DSN</b>.
|
Postfix does not implement <b>DSN</b>.
|
||||||
|
|
||||||
<b>-R</b> <i>return_limit</i> (ignored)
|
<b>-R</b> <i>return_limit</i> (ignored)
|
||||||
Limit the size of bounced mail. Use the
|
Limit the size of bounced mail. Use the
|
||||||
<b>bounce</b><i>_</i><b>size</b><i>_</i><b>limit</b> configuration parameter instead.
|
<b>bounce</b><i>_</i><b>size</b><i>_</i><b>limit</b> configuration parameter instead.
|
||||||
|
|
||||||
<b>-X</b> <i>log_file</i> (ignored)
|
<b>-X</b> <i>log_file</i> (ignored)
|
||||||
Log mailer traffic. Use the <b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b> and
|
Log mailer traffic. Use the <b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b> and
|
||||||
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b> configuration parameters instead.
|
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b> configuration parameters instead.
|
||||||
|
|
||||||
<b>-U</b> (ignored)
|
<b>-U</b> (ignored)
|
||||||
Initial user submission.
|
Initial user submission.
|
||||||
|
|
||||||
<b>-bd</b> Go into daemon mode. This mode of operation is
|
<b>-bd</b> Go into daemon mode. This mode of operation is
|
||||||
implemented by executing the <b>postfix</b> <b>start</b> command.
|
implemented by executing the <b>postfix</b> <b>start</b> command.
|
||||||
|
|
||||||
<b>-bi</b> Initialize alias database. See the <b>newaliases</b> com-
|
<b>-bi</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||||
mand above.
|
mand above.
|
||||||
|
|
||||||
<b>-bm</b> Read mail from standard input and arrange for
|
<b>-bm</b> Read mail from standard input and arrange for
|
||||||
delivery. This is the default mode of operation.
|
delivery. This is the default mode of operation.
|
||||||
|
|
||||||
<b>-bp</b> List the mail queue. See the <b>mailq</b> command above.
|
<b>-bp</b> List the mail queue. See the <b>mailq</b> command above.
|
||||||
|
|
||||||
<b>-bs</b> Stand-alone SMTP server mode. Read SMTP commands
|
<b>-bs</b> Stand-alone SMTP server mode. Read SMTP commands
|
||||||
from standard input, and write responses to stan-
|
from standard input, and write responses to stan-
|
||||||
dard output. This mode of operation is implemented
|
dard output. This mode of operation is implemented
|
||||||
by running the <a href="smtpd.8.html"><b>smtpd</b>(8)</a> daemon.
|
by running the <a href="smtpd.8.html"><b>smtpd</b>(8)</a> daemon.
|
||||||
|
|
||||||
<b>-f</b> <i>sender</i>
|
|
||||||
Set the envelope sender address. This is the
|
|
||||||
address where delivery problems are sent to, unless
|
|
||||||
the message contains an <b>Errors-To:</b> message header.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -137,12 +137,17 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
SENDMAIL(1) SENDMAIL(1)
|
SENDMAIL(1) SENDMAIL(1)
|
||||||
|
|
||||||
|
|
||||||
|
<b>-f</b> <i>sender</i>
|
||||||
|
Set the envelope sender address. This is the
|
||||||
|
address where delivery problems are sent to, unless
|
||||||
|
the message contains an <b>Errors-To:</b> message header.
|
||||||
|
|
||||||
<b>-h</b> <i>hop_count</i> (ignored)
|
<b>-h</b> <i>hop_count</i> (ignored)
|
||||||
Hop count limit. Use the <b>hopcount</b><i>_</i><b>limit</b> configura-
|
Hop count limit. Use the <b>hopcount</b><i>_</i><b>limit</b> configura-
|
||||||
tion parameter instead.
|
tion parameter instead.
|
||||||
|
|
||||||
<b>-i</b> When reading a message from standard input, don't
|
<b>-i</b> When reading a message from standard input, don't
|
||||||
treat a line with only a <b>.</b> character as the end of
|
treat a line with only a <b>.</b> character as the end of
|
||||||
input.
|
input.
|
||||||
|
|
||||||
<b>-m</b> (ignored)
|
<b>-m</b> (ignored)
|
||||||
@@ -152,45 +157,40 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
Backwards compatibility.
|
Backwards compatibility.
|
||||||
|
|
||||||
<b>-oA</b><i>alias_database</i>
|
<b>-oA</b><i>alias_database</i>
|
||||||
Non-default alias database. Specify <i>pathname</i> or
|
Non-default alias database. Specify <i>pathname</i> or
|
||||||
<i>type</i>:<i>pathname</i>. See <a href="postalias.1.html"><b>postalias</b>(1)</a> for details.
|
<i>type</i>:<i>pathname</i>. See <a href="postalias.1.html"><b>postalias</b>(1)</a> for details.
|
||||||
|
|
||||||
<b>-o7</b> (ignored)
|
<b>-o7</b> (ignored)
|
||||||
|
|
||||||
<b>-o8</b> (ignored)
|
<b>-o8</b> (ignored)
|
||||||
The message body type. Currently, Postfix imple-
|
The message body type. Currently, Postfix imple-
|
||||||
ments <b>just-send-eight</b>.
|
ments <b>just-send-eight</b>.
|
||||||
|
|
||||||
<b>-oi</b> When reading a message from standard input, don't
|
<b>-oi</b> When reading a message from standard input, don't
|
||||||
treat a line with only a <b>.</b> character as the end of
|
treat a line with only a <b>.</b> character as the end of
|
||||||
input.
|
input.
|
||||||
|
|
||||||
<b>-om</b> (ignored)
|
<b>-om</b> (ignored)
|
||||||
The sender is never eliminated from alias etc.
|
The sender is never eliminated from alias etc.
|
||||||
expansions.
|
expansions.
|
||||||
|
|
||||||
<b>-o</b> <i>x</i> <i>value</i> (ignored)
|
<b>-o</b> <i>x</i> <i>value</i> (ignored)
|
||||||
Set option <i>x</i> to <i>value</i>. Use the equivalent configu-
|
Set option <i>x</i> to <i>value</i>. Use the equivalent configu-
|
||||||
ration parameter in <b>main.cf</b> instead.
|
ration parameter in <b>main.cf</b> instead.
|
||||||
|
|
||||||
<b>-r</b> <i>sender</i>
|
<b>-r</b> <i>sender</i>
|
||||||
Set the envelope sender address. This is the
|
Set the envelope sender address. This is the
|
||||||
address where delivery problems are sent to, unless
|
address where delivery problems are sent to, unless
|
||||||
the message contains an <b>Errors-To:</b> message header.
|
the message contains an <b>Errors-To:</b> message header.
|
||||||
|
|
||||||
<b>-q</b> Attempt to deliver all queued mail. This is imple-
|
<b>-q</b> Attempt to deliver all queued mail. This is imple-
|
||||||
mented by kicking the <a href="qmgr.8.html"><b>qmgr</b>(8)</a> daemon.
|
mented by kicking the <a href="qmgr.8.html"><b>qmgr</b>(8)</a> daemon.
|
||||||
|
|
||||||
<b>-q</b><i>interval</i> (ignored)
|
<b>-q</b><i>interval</i> (ignored)
|
||||||
The interval between queue runs. Use the
|
The interval between queue runs. Use the
|
||||||
<b>queue</b><i>_</i><b>run</b><i>_</i><b>delay</b> configuration parameter instead.
|
<b>queue</b><i>_</i><b>run</b><i>_</i><b>delay</b> configuration parameter instead.
|
||||||
|
|
||||||
<b>-qR</b><i>site</i>
|
|
||||||
Schedule immediate delivery of all mail that is
|
|
||||||
queued for the named <i>site</i>. Depending on the desti-
|
|
||||||
nation, this uses "fast flush" service, or it has
|
|
||||||
the same effect as <b>sendmail</b> <b>-q</b>. This is imple-
|
|
||||||
mented by connecting to the local SMTP server. See
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -203,29 +203,35 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
SENDMAIL(1) SENDMAIL(1)
|
SENDMAIL(1) SENDMAIL(1)
|
||||||
|
|
||||||
|
|
||||||
|
<b>-qR</b><i>site</i>
|
||||||
|
Schedule immediate delivery of all mail that is
|
||||||
|
queued for the named <i>site</i>. Depending on the desti-
|
||||||
|
nation, this uses "fast flush" service, or it has
|
||||||
|
the same effect as <b>sendmail</b> <b>-q</b>. This is imple-
|
||||||
|
mented by connecting to the local SMTP server. See
|
||||||
<a href="smtpd.8.html"><b>smtpd</b>(8)</a> for more information about the "fast
|
<a href="smtpd.8.html"><b>smtpd</b>(8)</a> for more information about the "fast
|
||||||
flush" service.
|
flush" service.
|
||||||
|
|
||||||
<b>-qS</b><i>site</i>
|
<b>-qS</b><i>site</i>
|
||||||
This command is not implemented. Use the slower
|
This command is not implemented. Use the slower
|
||||||
<b>sendmail</b> <b>-q</b> command instead.
|
<b>sendmail</b> <b>-q</b> command instead.
|
||||||
|
|
||||||
<b>-t</b> Extract recipients from message headers. This
|
<b>-t</b> Extract recipients from message headers. This
|
||||||
requires that no recipients be specified on the
|
requires that no recipients be specified on the
|
||||||
command line.
|
command line.
|
||||||
|
|
||||||
<b>-v</b> Enable verbose logging for debugging purposes. Mul-
|
<b>-v</b> Enable verbose logging for debugging purposes. Mul-
|
||||||
tiple <b>-v</b> options make the software increasingly
|
tiple <b>-v</b> options make the software increasingly
|
||||||
verbose.
|
verbose.
|
||||||
|
|
||||||
<b>SECURITY</b>
|
<b>SECURITY</b>
|
||||||
By design, this program is not set-user (or group) id.
|
By design, this program is not set-user (or group) id.
|
||||||
However, it must handle data from untrusted users or
|
However, it must handle data from untrusted users or
|
||||||
untrusted machines. Thus, the usual precautions need to
|
untrusted machines. Thus, the usual precautions need to
|
||||||
be taken against malicious inputs.
|
be taken against malicious inputs.
|
||||||
|
|
||||||
<b>DIAGNOSTICS</b>
|
<b>DIAGNOSTICS</b>
|
||||||
Problems are logged to <b>syslogd</b>(8) and to the standard
|
Problems are logged to <b>syslogd</b>(8) and to the standard
|
||||||
error stream.
|
error stream.
|
||||||
|
|
||||||
<b>ENVIRONMENT</b>
|
<b>ENVIRONMENT</b>
|
||||||
@@ -237,7 +243,7 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
|
|
||||||
<b>MAIL</b><i>_</i><b>DEBUG</b>
|
<b>MAIL</b><i>_</i><b>DEBUG</b>
|
||||||
Enable debugging with an external command, as spec-
|
Enable debugging with an external command, as spec-
|
||||||
ified with the <b>debugger</b><i>_</i><b>command</b> configuration
|
ified with the <b>debugger</b><i>_</i><b>command</b> configuration
|
||||||
parameter.
|
parameter.
|
||||||
|
|
||||||
<b>FILES</b>
|
<b>FILES</b>
|
||||||
@@ -245,18 +251,12 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
/etc/postfix, configuration files
|
/etc/postfix, configuration files
|
||||||
|
|
||||||
<b>CONFIGURATION</b> <b>PARAMETERS</b>
|
<b>CONFIGURATION</b> <b>PARAMETERS</b>
|
||||||
See the Postfix <b>main.cf</b> file for syntax details and for
|
See the Postfix <b>main.cf</b> file for syntax details and for
|
||||||
default values. Use the <b>postfix</b> <b>reload</b> command after a
|
default values. Use the <b>postfix</b> <b>reload</b> command after a
|
||||||
configuration change.
|
configuration change.
|
||||||
|
|
||||||
<b>alias</b><i>_</i><b>database</b>
|
<b>alias</b><i>_</i><b>database</b>
|
||||||
Default alias database(s) for <b>newaliases</b>. The
|
Default alias database(s) for <b>newaliases</b>. The
|
||||||
default value for this parameter is system-spe-
|
|
||||||
cific.
|
|
||||||
|
|
||||||
<b>bounce</b><i>_</i><b>size</b><i>_</i><b>limit</b>
|
|
||||||
The amount of original message context that is sent
|
|
||||||
along with a non-delivery notification.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -269,6 +269,13 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
SENDMAIL(1) SENDMAIL(1)
|
SENDMAIL(1) SENDMAIL(1)
|
||||||
|
|
||||||
|
|
||||||
|
default value for this parameter is system-spe-
|
||||||
|
cific.
|
||||||
|
|
||||||
|
<b>bounce</b><i>_</i><b>size</b><i>_</i><b>limit</b>
|
||||||
|
The amount of original message context that is sent
|
||||||
|
along with a non-delivery notification.
|
||||||
|
|
||||||
<b>database</b><i>_</i><b>type</b>
|
<b>database</b><i>_</i><b>type</b>
|
||||||
Default alias etc. database type. On many UNIX sys-
|
Default alias etc. database type. On many UNIX sys-
|
||||||
tems the default type is either <b>dbm</b> or <b>hash</b>.
|
tems the default type is either <b>dbm</b> or <b>hash</b>.
|
||||||
@@ -278,51 +285,44 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
initialized.
|
initialized.
|
||||||
|
|
||||||
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b>
|
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b>
|
||||||
Increment in verbose logging level when a remote
|
Increment in verbose logging level when a remote
|
||||||
host matches a pattern in the <b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b>
|
host matches a pattern in the <b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b>
|
||||||
parameter.
|
parameter.
|
||||||
|
|
||||||
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b>
|
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b>
|
||||||
List of domain or network patterns. When a remote
|
List of domain or network patterns. When a remote
|
||||||
host matches a pattern, increase the verbose log-
|
host matches a pattern, increase the verbose log-
|
||||||
ging level by the amount specified in the
|
ging level by the amount specified in the
|
||||||
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b> parameter.
|
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b> parameter.
|
||||||
|
|
||||||
<b>fast</b><i>_</i><b>flush</b><i>_</i><b>domains</b>
|
<b>fast</b><i>_</i><b>flush</b><i>_</i><b>domains</b>
|
||||||
List of domains that will receive "fast flush" ser-
|
List of domains that will receive "fast flush" ser-
|
||||||
vice (default: all domains that this system is
|
vice (default: all domains that this system is
|
||||||
willing to relay mail to). This greatly improves
|
willing to relay mail to). This greatly improves
|
||||||
the performance of the SMTP <b>ETRN</b> request, and of
|
the performance of the SMTP <b>ETRN</b> request, and of
|
||||||
the <b>sendmail</b> <b>-qR</b> command. For domains not in the
|
the <b>sendmail</b> <b>-qR</b> command. For domains not in the
|
||||||
list, Postfix simply attempts to deliver all queued
|
list, Postfix simply attempts to deliver all queued
|
||||||
mail.
|
mail.
|
||||||
|
|
||||||
<b>fork</b><i>_</i><b>attempts</b>
|
<b>fork</b><i>_</i><b>attempts</b>
|
||||||
Number of attempts to <b>fork</b>() a process before giv-
|
Number of attempts to <b>fork</b>() a process before giv-
|
||||||
ing up.
|
ing up.
|
||||||
|
|
||||||
<b>fork</b><i>_</i><b>delay</b>
|
<b>fork</b><i>_</i><b>delay</b>
|
||||||
Delay in seconds between successive <b>fork</b>()
|
Delay in seconds between successive <b>fork</b>()
|
||||||
attempts.
|
attempts.
|
||||||
|
|
||||||
<b>hopcount</b><i>_</i><b>limit</b>
|
<b>hopcount</b><i>_</i><b>limit</b>
|
||||||
Limit the number of <b>Received:</b> message headers.
|
Limit the number of <b>Received:</b> message headers.
|
||||||
|
|
||||||
<b>mail</b><i>_</i><b>owner</b>
|
<b>mail</b><i>_</i><b>owner</b>
|
||||||
The owner of the mail queue and of most Postfix
|
The owner of the mail queue and of most Postfix
|
||||||
processes.
|
processes.
|
||||||
|
|
||||||
<b>command</b><i>_</i><b>directory</b>
|
<b>command</b><i>_</i><b>directory</b>
|
||||||
Directory with Postfix support commands (default:
|
Directory with Postfix support commands (default:
|
||||||
<b>$program</b><i>_</i><b>directory</b>).
|
<b>$program</b><i>_</i><b>directory</b>).
|
||||||
|
|
||||||
<b>daemon</b><i>_</i><b>directory</b>
|
|
||||||
Directory with Postfix daemon programs (default:
|
|
||||||
<b>$program</b><i>_</i><b>directory</b>).
|
|
||||||
|
|
||||||
<b>queue</b><i>_</i><b>directory</b>
|
|
||||||
Top-level directory of the Postfix queue. This is
|
|
||||||
also the root directory of Postfix daemons that run
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -335,10 +335,17 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
SENDMAIL(1) SENDMAIL(1)
|
SENDMAIL(1) SENDMAIL(1)
|
||||||
|
|
||||||
|
|
||||||
|
<b>daemon</b><i>_</i><b>directory</b>
|
||||||
|
Directory with Postfix daemon programs (default:
|
||||||
|
<b>$program</b><i>_</i><b>directory</b>).
|
||||||
|
|
||||||
|
<b>queue</b><i>_</i><b>directory</b>
|
||||||
|
Top-level directory of the Postfix queue. This is
|
||||||
|
also the root directory of Postfix daemons that run
|
||||||
chrooted.
|
chrooted.
|
||||||
|
|
||||||
<b>queue</b><i>_</i><b>run</b><i>_</i><b>delay</b>
|
<b>queue</b><i>_</i><b>run</b><i>_</i><b>delay</b>
|
||||||
The time between successive scans of the deferred
|
The time between successive scans of the deferred
|
||||||
queue.
|
queue.
|
||||||
|
|
||||||
<b>SEE</b> <b>ALSO</b>
|
<b>SEE</b> <b>ALSO</b>
|
||||||
@@ -350,11 +357,11 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
<a href="qmgr.8.html">qmgr(8)</a> queue manager
|
<a href="qmgr.8.html">qmgr(8)</a> queue manager
|
||||||
<a href="showq.8.html">showq(8)</a> list mail queue
|
<a href="showq.8.html">showq(8)</a> list mail queue
|
||||||
<a href="smtpd.8.html">smtpd(8)</a> SMTP server
|
<a href="smtpd.8.html">smtpd(8)</a> SMTP server
|
||||||
<a href="flushd.8.html">flushd(8)</a> fast flush service
|
flushd(8) fast flush service
|
||||||
syslogd(8) system logging
|
syslogd(8) system logging
|
||||||
|
|
||||||
<b>LICENSE</b>
|
<b>LICENSE</b>
|
||||||
The Secure Mailer license must be distributed with this
|
The Secure Mailer license must be distributed with this
|
||||||
software.
|
software.
|
||||||
|
|
||||||
<b>AUTHOR(S)</b>
|
<b>AUTHOR(S)</b>
|
||||||
@@ -377,13 +384,6 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -181,16 +181,16 @@ SMTPD(8) SMTPD(8)
|
|||||||
Limit the time to send a server response and to
|
Limit the time to send a server response and to
|
||||||
receive a client request.
|
receive a client request.
|
||||||
|
|
||||||
|
<b>soft</b><i>_</i><b>bounce</b>
|
||||||
|
Change hard (5xx) reject responses into soft (4xx)
|
||||||
|
reject responses. This can be useful for testing
|
||||||
|
purposes.
|
||||||
|
|
||||||
<b>Resource</b> <b>controls</b>
|
<b>Resource</b> <b>controls</b>
|
||||||
<b>line</b><i>_</i><b>length</b><i>_</i><b>limit</b>
|
<b>line</b><i>_</i><b>length</b><i>_</i><b>limit</b>
|
||||||
Limit the amount of memory in bytes used for the
|
Limit the amount of memory in bytes used for the
|
||||||
handling of partial input lines.
|
handling of partial input lines.
|
||||||
|
|
||||||
<b>message</b><i>_</i><b>size</b><i>_</i><b>limit</b>
|
|
||||||
Limit the total size in bytes of a message, includ-
|
|
||||||
ing on-disk storage for envelope information.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -203,6 +203,10 @@ SMTPD(8) SMTPD(8)
|
|||||||
SMTPD(8) SMTPD(8)
|
SMTPD(8) SMTPD(8)
|
||||||
|
|
||||||
|
|
||||||
|
<b>message</b><i>_</i><b>size</b><i>_</i><b>limit</b>
|
||||||
|
Limit the total size in bytes of a message, includ-
|
||||||
|
ing on-disk storage for envelope information.
|
||||||
|
|
||||||
<b>queue</b><i>_</i><b>minfree</b>
|
<b>queue</b><i>_</i><b>minfree</b>
|
||||||
Minimal amount of free space in bytes in the queue
|
Minimal amount of free space in bytes in the queue
|
||||||
file system for the SMTP server to accept any mail
|
file system for the SMTP server to accept any mail
|
||||||
@@ -253,10 +257,6 @@ SMTPD(8) SMTPD(8)
|
|||||||
Restrict what domain names can be used in <b>ETRN</b> com-
|
Restrict what domain names can be used in <b>ETRN</b> com-
|
||||||
mands, and what clients may issue <b>ETRN</b> commands.
|
mands, and what clients may issue <b>ETRN</b> commands.
|
||||||
|
|
||||||
<b>allow</b><i>_</i><b>untrusted</b><i>_</i><b>routing</b>
|
|
||||||
Allow untrusted clients to specify addresses with
|
|
||||||
sender-specified routing. Enabling this opens up
|
|
||||||
nasty relay loopholes involving trusted backup MX
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -269,6 +269,10 @@ SMTPD(8) SMTPD(8)
|
|||||||
SMTPD(8) SMTPD(8)
|
SMTPD(8) SMTPD(8)
|
||||||
|
|
||||||
|
|
||||||
|
<b>allow</b><i>_</i><b>untrusted</b><i>_</i><b>routing</b>
|
||||||
|
Allow untrusted clients to specify addresses with
|
||||||
|
sender-specified routing. Enabling this opens up
|
||||||
|
nasty relay loopholes involving trusted backup MX
|
||||||
hosts.
|
hosts.
|
||||||
|
|
||||||
<b>restriction</b><i>_</i><b>classes</b>
|
<b>restriction</b><i>_</i><b>classes</b>
|
||||||
@@ -319,10 +323,6 @@ SMTPD(8) SMTPD(8)
|
|||||||
Server response when a client violates the
|
Server response when a client violates the
|
||||||
<b>reject</b><i>_</i><b>unknown</b><i>_</i><b>hostname</b> restriction.
|
<b>reject</b><i>_</i><b>unknown</b><i>_</i><b>hostname</b> restriction.
|
||||||
|
|
||||||
<b>SEE</b> <b>ALSO</b>
|
|
||||||
<a href="cleanup.8.html">cleanup(8)</a> message canonicalization
|
|
||||||
<a href="master.8.html">master(8)</a> process manager
|
|
||||||
syslogd(8) system logging
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -335,6 +335,11 @@ SMTPD(8) SMTPD(8)
|
|||||||
SMTPD(8) SMTPD(8)
|
SMTPD(8) SMTPD(8)
|
||||||
|
|
||||||
|
|
||||||
|
<b>SEE</b> <b>ALSO</b>
|
||||||
|
<a href="cleanup.8.html">cleanup(8)</a> message canonicalization
|
||||||
|
<a href="master.8.html">master(8)</a> process manager
|
||||||
|
syslogd(8) system logging
|
||||||
|
|
||||||
<b>LICENSE</b>
|
<b>LICENSE</b>
|
||||||
The Secure Mailer license must be distributed with this
|
The Secure Mailer license must be distributed with this
|
||||||
software.
|
software.
|
||||||
@@ -381,11 +386,6 @@ SMTPD(8) SMTPD(8)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -12,53 +12,53 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
<b>postmap</b> <b>/etc/postfix/virtual</b>
|
<b>postmap</b> <b>/etc/postfix/virtual</b>
|
||||||
|
|
||||||
<b>DESCRIPTION</b>
|
<b>DESCRIPTION</b>
|
||||||
The optional <b>virtual</b> table specifies redirections for
|
The optional <b>virtual</b> table specifies address redirections
|
||||||
local and non-local recipients or domains. The redirec-
|
for local and non-local recipients or domains. The redi-
|
||||||
tions are used by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon. The redirections
|
rections are used by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon. The redirec-
|
||||||
are recursive.
|
tions are recursive.
|
||||||
|
|
||||||
The <b>virtual</b> redirection is applied only to the recipient
|
The <b>virtual</b> redirection is applied only to recipient enve-
|
||||||
envelope address, and does not affect message headers.
|
lope addresses, and does not affect message headers.
|
||||||
Think Sendmail rule set <b>S0</b>, if you like. Use <a href="canonical.5.html"><b>canonical</b>(5)</a>
|
Think Sendmail rule set <b>S0</b>, if you like. Use <a href="canonical.5.html"><b>canonical</b>(5)</a>
|
||||||
mapping to rewrite header and envelope addresses in gen-
|
mapping to rewrite header and envelope addresses in gen-
|
||||||
eral.
|
eral.
|
||||||
|
|
||||||
Normally, the file serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> com-
|
Normally, the <b>virtual</b> table is specified as a text file
|
||||||
mand. The result, an indexed file in <b>dbm</b> or <b>db</b> format, is
|
that serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> command. The
|
||||||
used for fast searching by the mail system. Execute the
|
result, an indexed file in <b>dbm</b> or <b>db</b> format, is used for
|
||||||
command <b>postmap</b> <b>/etc/postfix/virtual</b> in order to rebuild
|
fast searching by the mail system. Execute the command
|
||||||
the indexed file after changing the virtual table.
|
<b>postmap</b> <b>/etc/postfix/virtual</b> in order to rebuild the
|
||||||
|
indexed file after changing the 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 regular-
|
Alternatively, the table can be provided as a regular-
|
||||||
expression map where patterns are given as regular expres-
|
expression map where patterns are given as regular expres-
|
||||||
sions. In that case, the lookups are done in a slightly
|
sions. In that case, the lookups are done in a slightly
|
||||||
different way as described below.
|
different way as described below.
|
||||||
|
|
||||||
<b>TABLE</b> <b>FORMAT</b>
|
<b>POSTFIX-STYLE</b> <b>VIRTUAL</b> <b>DOMAINS</b>
|
||||||
Typical support for a virtual domain looks like the fol-
|
With a Postfix-style virtual domain, the virtual domain
|
||||||
lowing:
|
has its own user name space. Local (i.e. non-virtual)
|
||||||
|
usernames are not visible in a Postfix-style virtual
|
||||||
|
domain. In particular, local <a href="aliases.5.html"><b>aliases</b>(5)</a> and mailing lists
|
||||||
|
are not visible in a Postfix-style virtual domain.
|
||||||
|
|
||||||
|
Use a Sendmail-style virtual domain (see below) if local
|
||||||
|
usernames, <a href="aliases.5.html"><b>aliases</b>(5)</a> or mailing lists should be visible
|
||||||
|
in that virtual domain.
|
||||||
|
|
||||||
|
Support for a Postfix-style virtual domain looks like:
|
||||||
|
|
||||||
|
/etc/postfix/virtual:
|
||||||
<i>virtual.domain</i> <i>anything</i> (right-hand content does not matter)
|
<i>virtual.domain</i> <i>anything</i> (right-hand content does not matter)
|
||||||
<i>postmaster@virtual.domain</i> <i>postmaster</i>
|
<i>postmaster@virtual.domain</i> <i>postmaster</i>
|
||||||
<i>user1@virtual.domain</i> <i>address1</i>
|
<i>user1@virtual.domain</i> <i>address1</i>
|
||||||
<i>user2@virtual.domain</i> <i>address2,</i> <i>address3</i>
|
<i>user2@virtual.domain</i> <i>address2,</i> <i>address3</i>
|
||||||
|
|
||||||
With this, the SMTP server accepts mail for <i>virtual.domain</i>
|
The <i>virtual.domain</i> <i>anything</i> entry is required for a
|
||||||
and rejects mail for <i>unknown</i>@<i>virtual.domain</i> as undeliver-
|
|
||||||
able.
|
|
||||||
|
|
||||||
The format of the virtual table is as follows, mappings
|
|
||||||
being tried in the order as listed in this manual page:
|
|
||||||
|
|
||||||
blanks and comments
|
|
||||||
Blank lines are ignored, as are lines beginning
|
|
||||||
with `#'.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -71,9 +71,73 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
VIRTUAL(5) VIRTUAL(5)
|
VIRTUAL(5) VIRTUAL(5)
|
||||||
|
|
||||||
|
|
||||||
|
Postfix-style virtual domain.
|
||||||
|
|
||||||
|
Do not list the virtual domain in the <b>main.cf</b> <b>mydestina-</b>
|
||||||
|
<b>tion</b> configuration parameter. Such an entry is required
|
||||||
|
only for a Sendmail-style virtual domain.
|
||||||
|
|
||||||
|
With a Postfix-style virtual domain, the Postfix SMTP
|
||||||
|
server accepts mail for <i>known-user@virtual.domain</i> and
|
||||||
|
rejects mail for <i>unknown-user</i>@<i>virtual.domain</i> as undeliver-
|
||||||
|
able.
|
||||||
|
|
||||||
|
<b>SENDMAIL-STYLE</b> <b>VIRTUAL</b> <b>DOMAINS</b>
|
||||||
|
With a Sendmail-style virtual domain, every local (i.e.
|
||||||
|
non-virtual) username is visible in the virtual domain. In
|
||||||
|
particular, every local alias and mailing list is visible
|
||||||
|
in a Sendmail-style virtual domain.
|
||||||
|
|
||||||
|
Use a Postfix-style virtual domain (see above) if local
|
||||||
|
usernames, <a href="aliases.5.html"><b>aliases</b>(5)</a> or mailing lists should not be visi-
|
||||||
|
ble in that virtual domain.
|
||||||
|
|
||||||
|
Support for a Sendmail-style virtual domain looks like:
|
||||||
|
|
||||||
|
/etc/postfix/main.cf:
|
||||||
|
mydestination = $myhostname localhost.$mydomain $mydomain
|
||||||
|
<i>virtual.domain</i>
|
||||||
|
|
||||||
|
/etc/postfix/virtual:
|
||||||
|
<i>user1@virtual.domain</i> <i>address1</i>
|
||||||
|
<i>user2@virtual.domain</i> <i>address2,</i> <i>address3</i>
|
||||||
|
|
||||||
|
The <b>main.cf</b> <b>mydestination</b> entry is required for a Send-
|
||||||
|
mail-style virtual domain.
|
||||||
|
|
||||||
|
Do not specify a <i>virtual.domain</i> <i>whatever</i> entry in the vir-
|
||||||
|
tual table. Such an entry is required only with a Postfix-
|
||||||
|
style virtual domain.
|
||||||
|
|
||||||
|
With a Sendmail-style virtual domain, the Postfix local
|
||||||
|
delivery agent delivers mail for an unknown <i>user</i>@<i>vir-</i>
|
||||||
|
<i>tual.domain</i> to a local (i.e. non-virtual) user that has
|
||||||
|
the same name; if no such recipient exists, the Postfix
|
||||||
|
local delivery agent bounces the mail to the sender.
|
||||||
|
|
||||||
|
<b>TABLE</b> <b>FORMAT</b>
|
||||||
|
The format of the virtual table is as follows, mappings
|
||||||
|
being tried in the order as listed in this manual page:
|
||||||
|
|
||||||
|
blanks and comments
|
||||||
|
Blank lines are ignored, as are lines beginning
|
||||||
|
with `#'.
|
||||||
|
|
||||||
leading whitespace
|
leading whitespace
|
||||||
Lines that begin with whitespace continue the pre-
|
Lines that begin with whitespace continue the
|
||||||
vious line.
|
|
||||||
|
|
||||||
|
|
||||||
|
2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
VIRTUAL(5) VIRTUAL(5)
|
||||||
|
|
||||||
|
|
||||||
|
previous line.
|
||||||
|
|
||||||
<i>pattern</i> <i>result</i>
|
<i>pattern</i> <i>result</i>
|
||||||
When <i>pattern</i> matches a mail address, replace it by
|
When <i>pattern</i> matches a mail address, replace it by
|
||||||
@@ -126,9 +190,11 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
constituent parts, nor is <i>user+foo</i> broken up into <i>user</i> and
|
constituent parts, nor is <i>user+foo</i> broken up into <i>user</i> and
|
||||||
<i>foo</i>.
|
<i>foo</i>.
|
||||||
|
|
||||||
|
Patterns are applied in the order as specified in the
|
||||||
|
|
||||||
|
|
||||||
2
|
|
||||||
|
3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -137,7 +203,6 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
VIRTUAL(5) VIRTUAL(5)
|
VIRTUAL(5) VIRTUAL(5)
|
||||||
|
|
||||||
|
|
||||||
Patterns are applied in the order as specified in the
|
|
||||||
table, until a pattern is found that matches the search
|
table, until a pattern is found that matches the search
|
||||||
string.
|
string.
|
||||||
|
|
||||||
@@ -194,7 +259,8 @@ VIRTUAL(5) VIRTUAL(5)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
3
|
|
||||||
|
4
|
||||||
|
|
||||||
|
|
||||||
</pre> </body> </html>
|
</pre> </body> </html>
|
||||||
|
@@ -65,6 +65,8 @@ files are kept in \fB/etc/postfix\fR.
|
|||||||
.IP "\fB-F \fIfull_name\fR
|
.IP "\fB-F \fIfull_name\fR
|
||||||
Set the sender full name. This is used only with messages that
|
Set the sender full name. This is used only with messages that
|
||||||
have no \fBFrom:\fR message header.
|
have no \fBFrom:\fR message header.
|
||||||
|
.IP "\fB-G\fR (ignored)"
|
||||||
|
Gateway (relay) submission, as opposed to initial user submission.
|
||||||
.IP \fB-I\fR
|
.IP \fB-I\fR
|
||||||
Initialize alias database. See the \fBnewaliases\fR
|
Initialize alias database. See the \fBnewaliases\fR
|
||||||
command above.
|
command above.
|
||||||
|
@@ -14,7 +14,8 @@ format of the Postfix alias database
|
|||||||
.ad
|
.ad
|
||||||
.fi
|
.fi
|
||||||
The \fBaliases\fR file provides a system-wide mechanism to
|
The \fBaliases\fR file provides a system-wide mechanism to
|
||||||
redirect mail for local recipients.
|
redirect mail for local recipients. The redirections are
|
||||||
|
processed by the Postfix \fBlocal\fR(8) delivery agent.
|
||||||
|
|
||||||
The file serves as input to the \fBpostalias\fR(1) command. The
|
The file serves as input to the \fBpostalias\fR(1) command. The
|
||||||
result, an indexed file in \fBdbm\fR or \fBdb\fR format, is
|
result, an indexed file in \fBdbm\fR or \fBdb\fR format, is
|
||||||
|
@@ -12,15 +12,16 @@ format of Postfix canonical table
|
|||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.ad
|
.ad
|
||||||
.fi
|
.fi
|
||||||
The optional \fBcanonical\fR file specifies an address mapping for
|
The optional \fBcanonical\fR table specifies an address mapping for
|
||||||
local and non-local addresses. The mapping is used by the
|
local and non-local addresses. The mapping is used by the
|
||||||
\fBcleanup\fR(8) daemon. The address mapping is recursive.
|
\fBcleanup\fR(8) daemon. The address mapping is recursive.
|
||||||
|
|
||||||
Normally, the file serves as input to the \fBpostmap\fR(1) command.
|
Normally, the \fBcanonical\fR table is specified as a text file
|
||||||
|
that serves as input to the \fBpostmap\fR(1) command.
|
||||||
The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
|
The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
|
||||||
is used for fast searching by the mail system. Execute the command
|
is used for fast searching by the mail system. Execute the command
|
||||||
\fBpostmap /etc/postfix/canonical\fR in order to rebuild the indexed
|
\fBpostmap /etc/postfix/canonical\fR in order to rebuild the indexed
|
||||||
file after changing the canonical table.
|
file after changing the text file.
|
||||||
|
|
||||||
When the table is provided via other means such as NIS, LDAP
|
When the table is provided via other means such as NIS, LDAP
|
||||||
or SQL, the same lookups are done as for ordinary indexed files.
|
or SQL, the same lookups are done as for ordinary indexed files.
|
||||||
|
@@ -12,20 +12,21 @@ format of Postfix virtual table
|
|||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.ad
|
.ad
|
||||||
.fi
|
.fi
|
||||||
The optional \fBvirtual\fR table specifies redirections for local
|
The optional \fBvirtual\fR table specifies address redirections for
|
||||||
and non-local recipients or domains. The redirections are used by
|
local and non-local recipients or domains. The redirections are used
|
||||||
the \fBcleanup\fR(8) daemon. The redirections are recursive.
|
by the \fBcleanup\fR(8) daemon. The redirections are recursive.
|
||||||
|
|
||||||
The \fBvirtual\fR redirection is applied only to the recipient
|
The \fBvirtual\fR redirection is applied only to recipient
|
||||||
envelope address, and does not affect message headers.
|
envelope addresses, and does not affect message headers.
|
||||||
Think Sendmail rule set \fBS0\fR, if you like. Use \fBcanonical\fR(5)
|
Think Sendmail rule set \fBS0\fR, if you like. Use \fBcanonical\fR(5)
|
||||||
mapping to rewrite header and envelope addresses in general.
|
mapping to rewrite header and envelope addresses in general.
|
||||||
|
|
||||||
Normally, the file serves as input to the \fBpostmap\fR(1) command.
|
Normally, the \fBvirtual\fR table is specified as a text file that
|
||||||
|
serves as input to the \fBpostmap\fR(1) command.
|
||||||
The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
|
The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
|
||||||
is used for fast searching by the mail system. Execute the command
|
is used for fast searching by the mail system. Execute the command
|
||||||
\fBpostmap /etc/postfix/virtual\fR in order to rebuild the indexed
|
\fBpostmap /etc/postfix/virtual\fR in order to rebuild the indexed
|
||||||
file after changing the virtual table.
|
file after changing the text file.
|
||||||
|
|
||||||
When the table is provided via other means such as NIS, LDAP
|
When the table is provided via other means such as NIS, LDAP
|
||||||
or SQL, the same lookups are done as for ordinary indexed files.
|
or SQL, the same lookups are done as for ordinary indexed files.
|
||||||
@@ -33,13 +34,24 @@ or SQL, the same lookups are done as for ordinary indexed files.
|
|||||||
Alternatively, the table can be provided as a regular-expression
|
Alternatively, the table can be provided as a regular-expression
|
||||||
map where patterns are given as regular expressions. In that case,
|
map where patterns are given as regular expressions. In that case,
|
||||||
the lookups are done in a slightly different way as described below.
|
the lookups are done in a slightly different way as described below.
|
||||||
.SH TABLE FORMAT
|
.SH POSTFIX-STYLE VIRTUAL DOMAINS
|
||||||
.na
|
.na
|
||||||
.nf
|
.nf
|
||||||
.ad
|
.ad
|
||||||
.fi
|
.fi
|
||||||
Typical support for a virtual domain looks like the following:
|
With a Postfix-style virtual domain, the virtual domain has its
|
||||||
|
own user name space. Local (i.e. non-virtual) usernames are not
|
||||||
|
visible in a Postfix-style virtual domain. In particular, local
|
||||||
|
\fBaliases\fR(5) and mailing lists are not visible in a
|
||||||
|
Postfix-style virtual domain.
|
||||||
|
|
||||||
|
Use a Sendmail-style virtual domain (see below) if local usernames,
|
||||||
|
\fBaliases\fR(5) or mailing lists should be visible in that virtual
|
||||||
|
domain.
|
||||||
|
|
||||||
|
Support for a Postfix-style virtual domain looks like:
|
||||||
|
.sp
|
||||||
|
/etc/postfix/virtual:
|
||||||
.in +4
|
.in +4
|
||||||
.nf
|
.nf
|
||||||
\fIvirtual.domain anything\fR (right-hand content does not matter)
|
\fIvirtual.domain anything\fR (right-hand content does not matter)
|
||||||
@@ -49,9 +61,66 @@ Typical support for a virtual domain looks like the following:
|
|||||||
.fi
|
.fi
|
||||||
.in -4
|
.in -4
|
||||||
|
|
||||||
With this, the SMTP server accepts mail for \fIvirtual.domain\fR and
|
The \fIvirtual.domain anything\fR entry is required for a
|
||||||
rejects mail for \fIunknown\fR@\fIvirtual.domain\fR as undeliverable.
|
Postfix-style virtual domain.
|
||||||
|
|
||||||
|
Do not list the virtual domain in the \fBmain.cf mydestination\fR
|
||||||
|
configuration parameter. Such an entry is required only for a
|
||||||
|
Sendmail-style virtual domain.
|
||||||
|
|
||||||
|
With a Postfix-style virtual domain, the Postfix SMTP server
|
||||||
|
accepts mail for \fIknown-user@virtual.domain\fR and rejects
|
||||||
|
mail for \fIunknown-user\fR@\fIvirtual.domain\fR as undeliverable.
|
||||||
|
.SH SENDMAIL-STYLE VIRTUAL DOMAINS
|
||||||
|
.na
|
||||||
|
.nf
|
||||||
|
.ad
|
||||||
|
.fi
|
||||||
|
With a Sendmail-style virtual domain, every local (i.e. non-virtual)
|
||||||
|
username is visible in the virtual domain. In particular, every
|
||||||
|
local alias and mailing list is visible in a Sendmail-style virtual
|
||||||
|
domain.
|
||||||
|
|
||||||
|
Use a Postfix-style virtual domain (see above) if local usernames,
|
||||||
|
\fBaliases\fR(5) or mailing lists should not be visible in that
|
||||||
|
virtual domain.
|
||||||
|
|
||||||
|
Support for a Sendmail-style virtual domain looks like:
|
||||||
|
.sp
|
||||||
|
/etc/postfix/main.cf:
|
||||||
|
.in +4
|
||||||
|
.nf
|
||||||
|
mydestination = $myhostname localhost.$mydomain $mydomain
|
||||||
|
.ti +4
|
||||||
|
\fIvirtual.domain\fR
|
||||||
|
.fi
|
||||||
|
.in -4
|
||||||
|
.sp
|
||||||
|
/etc/postfix/virtual:
|
||||||
|
.in +4
|
||||||
|
.nf
|
||||||
|
\fIuser1@virtual.domain address1\fR
|
||||||
|
\fIuser2@virtual.domain address2, address3\fR
|
||||||
|
.fi
|
||||||
|
.in -4
|
||||||
|
|
||||||
|
The \fBmain.cf mydestination\fR entry is required for a Sendmail-style
|
||||||
|
virtual domain.
|
||||||
|
|
||||||
|
Do not specify a \fIvirtual.domain whatever\fR entry in the
|
||||||
|
virtual table. Such an entry is required only with a
|
||||||
|
Postfix-style virtual domain.
|
||||||
|
|
||||||
|
With a Sendmail-style virtual domain, the Postfix local delivery
|
||||||
|
agent delivers mail for an unknown \fIuser\fR@\fIvirtual.domain\fR
|
||||||
|
to a local (i.e. non-virtual) user that has the same name; if no
|
||||||
|
such recipient exists, the Postfix local delivery agent bounces the
|
||||||
|
mail to the sender.
|
||||||
|
.SH TABLE FORMAT
|
||||||
|
.na
|
||||||
|
.nf
|
||||||
|
.ad
|
||||||
|
.fi
|
||||||
The format of the virtual table is as follows, mappings being
|
The format of the virtual table is as follows, mappings being
|
||||||
tried in the order as listed in this manual page:
|
tried in the order as listed in this manual page:
|
||||||
.IP "blanks and comments"
|
.IP "blanks and comments"
|
||||||
|
@@ -50,7 +50,7 @@ This wakeup request from the master is an alternative way to
|
|||||||
request \fBFLUSH_REQ_REFRESH\fR.
|
request \fBFLUSH_REQ_REFRESH\fR.
|
||||||
.IP "\fBFLUSH_REQ_REFRESH\fR (completes in the background)"
|
.IP "\fBFLUSH_REQ_REFRESH\fR (completes in the background)"
|
||||||
Refresh non-empty per-destination logfiles that were not read in
|
Refresh non-empty per-destination logfiles that were not read in
|
||||||
$\fBfast_flush_refresh_time\fR hours, by simulating
|
\fB$fast_flush_refresh_time\fR hours, by simulating
|
||||||
send requests (see above) for the corresponding destinations.
|
send requests (see above) for the corresponding destinations.
|
||||||
.sp
|
.sp
|
||||||
Delete empty per-destination logfiles that were not updated in
|
Delete empty per-destination logfiles that were not updated in
|
||||||
@@ -59,7 +59,7 @@ Delete empty per-destination logfiles that were not updated in
|
|||||||
Refresh all non-empty per-destination logfiles, by simulating
|
Refresh all non-empty per-destination logfiles, by simulating
|
||||||
send requests (see above) for the corresponding destinations.
|
send requests (see above) for the corresponding destinations.
|
||||||
This can be incredibly expensive when logging is enabled for
|
This can be incredibly expensive when logging is enabled for
|
||||||
all deferred mail, and is not recommended.
|
many destinations, and is not recommended.
|
||||||
.sp
|
.sp
|
||||||
Delete empty per-destination logfiles that were not updated in
|
Delete empty per-destination logfiles that were not updated in
|
||||||
\fBfast_flush_purge_time\fR days.
|
\fBfast_flush_purge_time\fR days.
|
||||||
@@ -95,8 +95,8 @@ be automated with a suitable wakeup timer setting in the
|
|||||||
\fBmaster.cf\fR configuration file.
|
\fBmaster.cf\fR configuration file.
|
||||||
|
|
||||||
Upon receipt of a request to deliver all mail for an eligible
|
Upon receipt of a request to deliver all mail for an eligible
|
||||||
destination, this server requests delivery of all messages that
|
destination, the \fBflush\fR server requests delivery of all messages
|
||||||
are listed in that destination's logfile, regardless of the
|
that are listed in that destination's logfile, regardless of the
|
||||||
recipients of those messages. This is not an issue for mail
|
recipients of those messages. This is not an issue for mail
|
||||||
that is sent to a \fBrelay_domains\fR destination because
|
that is sent to a \fBrelay_domains\fR destination because
|
||||||
such mail typically only has recipients in one domain.
|
such mail typically only has recipients in one domain.
|
||||||
|
@@ -284,6 +284,9 @@ a configuration change.
|
|||||||
.fi
|
.fi
|
||||||
.IP \fBalias_maps\fR
|
.IP \fBalias_maps\fR
|
||||||
List of alias databases.
|
List of alias databases.
|
||||||
|
.IP \fBbiff\fR
|
||||||
|
Enable or disable notification of new mail via the
|
||||||
|
\fBcomsat\fR network service.
|
||||||
.IP \fBexpand_owner_alias\fR
|
.IP \fBexpand_owner_alias\fR
|
||||||
When delivering to an alias that has an owner- companion alias,
|
When delivering to an alias that has an owner- companion alias,
|
||||||
set the envelope sender address to the right-hand side of the
|
set the envelope sender address to the right-hand side of the
|
||||||
|
@@ -138,6 +138,9 @@ per message delivery.
|
|||||||
.IP \fBsmtpd_timeout\fR
|
.IP \fBsmtpd_timeout\fR
|
||||||
Limit the time to send a server response and to receive a client
|
Limit the time to send a server response and to receive a client
|
||||||
request.
|
request.
|
||||||
|
.IP \fBsoft_bounce\fR
|
||||||
|
Change hard (5xx) reject responses into soft (4xx) reject responses.
|
||||||
|
This can be useful for testing purposes.
|
||||||
.SH "Resource controls"
|
.SH "Resource controls"
|
||||||
.ad
|
.ad
|
||||||
.fi
|
.fi
|
||||||
|
@@ -8,7 +8,8 @@
|
|||||||
# \fBnewaliases\fR
|
# \fBnewaliases\fR
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
# The \fBaliases\fR file provides a system-wide mechanism to
|
# The \fBaliases\fR file provides a system-wide mechanism to
|
||||||
# redirect mail for local recipients.
|
# redirect mail for local recipients. The redirections are
|
||||||
|
# processed by the Postfix \fBlocal\fR(8) delivery agent.
|
||||||
#
|
#
|
||||||
# The file serves as input to the \fBpostalias\fR(1) command. The
|
# The file serves as input to the \fBpostalias\fR(1) command. The
|
||||||
# result, an indexed file in \fBdbm\fR or \fBdb\fR format, is
|
# result, an indexed file in \fBdbm\fR or \fBdb\fR format, is
|
||||||
|
@@ -6,15 +6,16 @@
|
|||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
# \fBpostmap /etc/postfix/canonical\fR
|
# \fBpostmap /etc/postfix/canonical\fR
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
# The optional \fBcanonical\fR file specifies an address mapping for
|
# The optional \fBcanonical\fR table specifies an address mapping for
|
||||||
# local and non-local addresses. The mapping is used by the
|
# local and non-local addresses. The mapping is used by the
|
||||||
# \fBcleanup\fR(8) daemon. The address mapping is recursive.
|
# \fBcleanup\fR(8) daemon. The address mapping is recursive.
|
||||||
#
|
#
|
||||||
# Normally, the file serves as input to the \fBpostmap\fR(1) command.
|
# Normally, the \fBcanonical\fR table is specified as a text file
|
||||||
|
# that serves as input to the \fBpostmap\fR(1) command.
|
||||||
# The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
|
# The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
|
||||||
# is used for fast searching by the mail system. Execute the command
|
# is used for fast searching by the mail system. Execute the command
|
||||||
# \fBpostmap /etc/postfix/canonical\fR in order to rebuild the indexed
|
# \fBpostmap /etc/postfix/canonical\fR in order to rebuild the indexed
|
||||||
# file after changing the canonical table.
|
# file after changing the text file.
|
||||||
#
|
#
|
||||||
# When the table is provided via other means such as NIS, LDAP
|
# When the table is provided via other means such as NIS, LDAP
|
||||||
# or SQL, the same lookups are done as for ordinary indexed files.
|
# or SQL, the same lookups are done as for ordinary indexed files.
|
||||||
|
@@ -6,20 +6,21 @@
|
|||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
# \fBpostmap /etc/postfix/virtual\fR
|
# \fBpostmap /etc/postfix/virtual\fR
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
# The optional \fBvirtual\fR table specifies redirections for local
|
# The optional \fBvirtual\fR table specifies address redirections for
|
||||||
# and non-local recipients or domains. The redirections are used by
|
# local and non-local recipients or domains. The redirections are used
|
||||||
# the \fBcleanup\fR(8) daemon. The redirections are recursive.
|
# by the \fBcleanup\fR(8) daemon. The redirections are recursive.
|
||||||
#
|
#
|
||||||
# The \fBvirtual\fR redirection is applied only to the recipient
|
# The \fBvirtual\fR redirection is applied only to recipient
|
||||||
# envelope address, and does not affect message headers.
|
# envelope addresses, and does not affect message headers.
|
||||||
# Think Sendmail rule set \fBS0\fR, if you like. Use \fBcanonical\fR(5)
|
# Think Sendmail rule set \fBS0\fR, if you like. Use \fBcanonical\fR(5)
|
||||||
# mapping to rewrite header and envelope addresses in general.
|
# mapping to rewrite header and envelope addresses in general.
|
||||||
#
|
#
|
||||||
# Normally, the file serves as input to the \fBpostmap\fR(1) command.
|
# Normally, the \fBvirtual\fR table is specified as a text file that
|
||||||
|
# serves as input to the \fBpostmap\fR(1) command.
|
||||||
# The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
|
# The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
|
||||||
# is used for fast searching by the mail system. Execute the command
|
# is used for fast searching by the mail system. Execute the command
|
||||||
# \fBpostmap /etc/postfix/virtual\fR in order to rebuild the indexed
|
# \fBpostmap /etc/postfix/virtual\fR in order to rebuild the indexed
|
||||||
# file after changing the virtual table.
|
# file after changing the text file.
|
||||||
#
|
#
|
||||||
# When the table is provided via other means such as NIS, LDAP
|
# When the table is provided via other means such as NIS, LDAP
|
||||||
# or SQL, the same lookups are done as for ordinary indexed files.
|
# or SQL, the same lookups are done as for ordinary indexed files.
|
||||||
@@ -27,11 +28,22 @@
|
|||||||
# Alternatively, the table can be provided as a regular-expression
|
# Alternatively, the table can be provided as a regular-expression
|
||||||
# map where patterns are given as regular expressions. In that case,
|
# map where patterns are given as regular expressions. In that case,
|
||||||
# the lookups are done in a slightly different way as described below.
|
# the lookups are done in a slightly different way as described below.
|
||||||
# TABLE FORMAT
|
# POSTFIX-STYLE VIRTUAL DOMAINS
|
||||||
# .ad
|
# .ad
|
||||||
# .fi
|
# .fi
|
||||||
# Typical support for a virtual domain looks like the following:
|
# With a Postfix-style virtual domain, the virtual domain has its
|
||||||
|
# own user name space. Local (i.e. non-virtual) usernames are not
|
||||||
|
# visible in a Postfix-style virtual domain. In particular, local
|
||||||
|
# \fBaliases\fR(5) and mailing lists are not visible in a
|
||||||
|
# Postfix-style virtual domain.
|
||||||
#
|
#
|
||||||
|
# Use a Sendmail-style virtual domain (see below) if local usernames,
|
||||||
|
# \fBaliases\fR(5) or mailing lists should be visible in that virtual
|
||||||
|
# domain.
|
||||||
|
#
|
||||||
|
# Support for a Postfix-style virtual domain looks like:
|
||||||
|
# .sp
|
||||||
|
# /etc/postfix/virtual:
|
||||||
# .in +4
|
# .in +4
|
||||||
# .nf
|
# .nf
|
||||||
# \fIvirtual.domain anything\fR (right-hand content does not matter)
|
# \fIvirtual.domain anything\fR (right-hand content does not matter)
|
||||||
@@ -41,9 +53,62 @@
|
|||||||
# .fi
|
# .fi
|
||||||
# .in -4
|
# .in -4
|
||||||
#
|
#
|
||||||
# With this, the SMTP server accepts mail for \fIvirtual.domain\fR and
|
# The \fIvirtual.domain anything\fR entry is required for a
|
||||||
# rejects mail for \fIunknown\fR@\fIvirtual.domain\fR as undeliverable.
|
# Postfix-style virtual domain.
|
||||||
#
|
#
|
||||||
|
# Do not list the virtual domain in the \fBmain.cf mydestination\fR
|
||||||
|
# configuration parameter. Such an entry is required only for a
|
||||||
|
# Sendmail-style virtual domain.
|
||||||
|
#
|
||||||
|
# With a Postfix-style virtual domain, the Postfix SMTP server
|
||||||
|
# accepts mail for \fIknown-user@virtual.domain\fR and rejects
|
||||||
|
# mail for \fIunknown-user\fR@\fIvirtual.domain\fR as undeliverable.
|
||||||
|
# SENDMAIL-STYLE VIRTUAL DOMAINS
|
||||||
|
# .ad
|
||||||
|
# .fi
|
||||||
|
# With a Sendmail-style virtual domain, every local (i.e. non-virtual)
|
||||||
|
# username is visible in the virtual domain. In particular, every
|
||||||
|
# local alias and mailing list is visible in a Sendmail-style virtual
|
||||||
|
# domain.
|
||||||
|
#
|
||||||
|
# Use a Postfix-style virtual domain (see above) if local usernames,
|
||||||
|
# \fBaliases\fR(5) or mailing lists should not be visible in that
|
||||||
|
# virtual domain.
|
||||||
|
#
|
||||||
|
# Support for a Sendmail-style virtual domain looks like:
|
||||||
|
# .sp
|
||||||
|
# /etc/postfix/main.cf:
|
||||||
|
# .in +4
|
||||||
|
# .nf
|
||||||
|
# mydestination = $myhostname localhost.$mydomain $mydomain
|
||||||
|
# .ti +4
|
||||||
|
# \fIvirtual.domain\fR
|
||||||
|
# .fi
|
||||||
|
# .in -4
|
||||||
|
# .sp
|
||||||
|
# /etc/postfix/virtual:
|
||||||
|
# .in +4
|
||||||
|
# .nf
|
||||||
|
# \fIuser1@virtual.domain address1\fR
|
||||||
|
# \fIuser2@virtual.domain address2, address3\fR
|
||||||
|
# .fi
|
||||||
|
# .in -4
|
||||||
|
#
|
||||||
|
# The \fBmain.cf mydestination\fR entry is required for a Sendmail-style
|
||||||
|
# virtual domain.
|
||||||
|
#
|
||||||
|
# Do not specify a \fIvirtual.domain whatever\fR entry in the
|
||||||
|
# virtual table. Such an entry is required only with a
|
||||||
|
# Postfix-style virtual domain.
|
||||||
|
#
|
||||||
|
# With a Sendmail-style virtual domain, the Postfix local delivery
|
||||||
|
# agent delivers mail for an unknown \fIuser\fR@\fIvirtual.domain\fR
|
||||||
|
# to a local (i.e. non-virtual) user that has the same name; if no
|
||||||
|
# such recipient exists, the Postfix local delivery agent bounces the
|
||||||
|
# mail to the sender.
|
||||||
|
# TABLE FORMAT
|
||||||
|
# .ad
|
||||||
|
# .fi
|
||||||
# The format of the virtual table is as follows, mappings being
|
# The format of the virtual table is as follows, mappings being
|
||||||
# tried in the order as listed in this manual page:
|
# tried in the order as listed in this manual page:
|
||||||
# .IP "blanks and comments"
|
# .IP "blanks and comments"
|
||||||
@@ -94,11 +159,11 @@
|
|||||||
# or \fBpcre_table\fR(5).
|
# or \fBpcre_table\fR(5).
|
||||||
#
|
#
|
||||||
# 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, \fIuser@domain\fR mail addresses are not
|
# address being looked up. Thus, \fIuser@domain\fR mail addresses are not
|
||||||
# broken up into their \fIuser\fR and \fI@domain\fR constituent parts,
|
# broken up into their \fIuser\fR and \fI@domain\fR constituent parts,
|
||||||
# nor is \fIuser+foo\fR broken up into \fIuser\fR and \fIfoo\fR.
|
# nor is \fIuser+foo\fR broken up into \fIuser\fR and \fIfoo\fR.
|
||||||
#
|
#
|
||||||
# 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 normal indexed file lookups, with
|
# Results are the same as with normal indexed file lookups, with
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* Version of this program.
|
* Version of this program.
|
||||||
*/
|
*/
|
||||||
#define VAR_MAIL_VERSION "mail_version"
|
#define VAR_MAIL_VERSION "mail_version"
|
||||||
#define DEF_MAIL_VERSION "Snapshot-20001109"
|
#define DEF_MAIL_VERSION "Snapshot-20001118"
|
||||||
extern char *var_mail_version;
|
extern char *var_mail_version;
|
||||||
|
|
||||||
/* LICENSE
|
/* LICENSE
|
||||||
|
@@ -256,6 +256,9 @@
|
|||||||
/* .fi
|
/* .fi
|
||||||
/* .IP \fBalias_maps\fR
|
/* .IP \fBalias_maps\fR
|
||||||
/* List of alias databases.
|
/* List of alias databases.
|
||||||
|
/* .IP \fBbiff\fR
|
||||||
|
/* Enable or disable notification of new mail via the
|
||||||
|
/* \fBcomsat\fR network service.
|
||||||
/* .IP \fBexpand_owner_alias\fR
|
/* .IP \fBexpand_owner_alias\fR
|
||||||
/* When delivering to an alias that has an owner- companion alias,
|
/* When delivering to an alias that has an owner- companion alias,
|
||||||
/* set the envelope sender address to the right-hand side of the
|
/* set the envelope sender address to the right-hand side of the
|
||||||
|
@@ -177,9 +177,8 @@ static int deliver_switch(LOCAL_STATE state, USER_ATTR usr_attr)
|
|||||||
* $HOME/.forward file, then mailbox delivery. Back off when the user's
|
* $HOME/.forward file, then mailbox delivery. Back off when the user's
|
||||||
* home directory does not exist.
|
* home directory does not exist.
|
||||||
*/
|
*/
|
||||||
if ((mypwd = mypwnam(state.msg_attr.user)) == 0)
|
|
||||||
return (deliver_unknown(state, usr_attr));
|
|
||||||
if (var_stat_home_dir
|
if (var_stat_home_dir
|
||||||
|
&& (mypwd = mypwnam(state.msg_attr.user)) != 0
|
||||||
&& stat_as(mypwd->pw_dir, &st, mypwd->pw_uid, mypwd->pw_gid) < 0)
|
&& stat_as(mypwd->pw_dir, &st, mypwd->pw_uid, mypwd->pw_gid) < 0)
|
||||||
return (defer_append(BOUNCE_FLAG_KEEP,
|
return (defer_append(BOUNCE_FLAG_KEEP,
|
||||||
BOUNCE_ATTR(state.msg_attr),
|
BOUNCE_ATTR(state.msg_attr),
|
||||||
|
@@ -143,6 +143,7 @@
|
|||||||
#include <stringops.h>
|
#include <stringops.h>
|
||||||
#include <myflock.h>
|
#include <myflock.h>
|
||||||
#include <watchdog.h>
|
#include <watchdog.h>
|
||||||
|
#include <clean_env.h>
|
||||||
|
|
||||||
/* Global library. */
|
/* Global library. */
|
||||||
|
|
||||||
@@ -183,6 +184,12 @@ int main(int argc, char **argv)
|
|||||||
if (getenv(CONF_ENV_DEBUG))
|
if (getenv(CONF_ENV_DEBUG))
|
||||||
debug_me = 1;
|
debug_me = 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Ad-hoc environment filter, to enforce consistent behavior whether
|
||||||
|
* Postfix is started by hand, or at system boot time.
|
||||||
|
*/
|
||||||
|
clean_env();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Don't die when a process goes away unexpectedly.
|
* Don't die when a process goes away unexpectedly.
|
||||||
*/
|
*/
|
||||||
@@ -202,12 +209,16 @@ int main(int argc, char **argv)
|
|||||||
* Some systems such as AIX have a huge per-process open file limit. In
|
* Some systems such as AIX have a huge per-process open file limit. In
|
||||||
* those cases, limit the search for potential file descriptor leaks to
|
* those cases, limit the search for potential file descriptor leaks to
|
||||||
* just the first couple hundred.
|
* just the first couple hundred.
|
||||||
|
*
|
||||||
|
* The Debian post-installation script passes an open file descriptor into
|
||||||
|
* the master process and waits forever for someone to close it. Because
|
||||||
|
* of this we have to close descriptors > 2, and pray that doing so does
|
||||||
|
* not break things.
|
||||||
*/
|
*/
|
||||||
if (fd_limit > 500)
|
if (fd_limit > 500)
|
||||||
fd_limit = 500;
|
fd_limit = 500;
|
||||||
for (fd = 3; fd < fd_limit; fd++)
|
for (fd = 3; fd < fd_limit; fd++)
|
||||||
if ((n = fcntl(fd, F_GETFD, 0)) >= 0 && (n & FD_CLOEXEC) == 0)
|
(void) close(fd);
|
||||||
fcntl(fd, F_SETFD, n | FD_CLOEXEC);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize logging and exit handler.
|
* Initialize logging and exit handler.
|
||||||
|
@@ -51,7 +51,8 @@
|
|||||||
/* structure members. A null result means that the file could not be
|
/* structure members. A null result means that the file could not be
|
||||||
/* read or that the file contained incorrect information. Recipient
|
/* read or that the file contained incorrect information. Recipient
|
||||||
/* limit imposed this time is based on the position of the message
|
/* limit imposed this time is based on the position of the message
|
||||||
/* job(s) on corresponding transport job list(s).
|
/* job(s) on corresponding transport job list(s). It's considered
|
||||||
|
/* an error to call this when the recipient slots can't be allocated.
|
||||||
/*
|
/*
|
||||||
/* qmgr_message_free() destroys an in-core message structure and makes
|
/* qmgr_message_free() destroys an in-core message structure and makes
|
||||||
/* the resources available for reuse. It is an error to destroy
|
/* the resources available for reuse. It is an error to destroy
|
||||||
@@ -288,7 +289,7 @@ static int qmgr_message_read(QMGR_MESSAGE *message)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* If we re-open this file, skip over on-file recipient records that we
|
* If we re-open this file, skip over on-file recipient records that we
|
||||||
* already looked at, and reset the in-core recipient address list.
|
* already looked at, and refill the in-core recipient address list.
|
||||||
*
|
*
|
||||||
* For the first time, the message recipient limit is calculated from the
|
* For the first time, the message recipient limit is calculated from the
|
||||||
* global recipient limit. This is to avoid reading little recipients
|
* global recipient limit. This is to avoid reading little recipients
|
||||||
@@ -302,6 +303,8 @@ static int qmgr_message_read(QMGR_MESSAGE *message)
|
|||||||
if (message->rcpt_offset) {
|
if (message->rcpt_offset) {
|
||||||
if (message->rcpt_list.len)
|
if (message->rcpt_list.len)
|
||||||
msg_panic("%s: recipient list not empty on recipient reload", message->queue_id);
|
msg_panic("%s: recipient list not empty on recipient reload", message->queue_id);
|
||||||
|
if (message->rcpt_limit <= message->rcpt_count)
|
||||||
|
msg_panic("%s: no recipient slots available", message->queue_id);
|
||||||
if (vstream_fseek(message->fp, message->rcpt_offset, SEEK_SET) < 0)
|
if (vstream_fseek(message->fp, message->rcpt_offset, SEEK_SET) < 0)
|
||||||
msg_fatal("seek file %s: %m", VSTREAM_PATH(message->fp));
|
msg_fatal("seek file %s: %m", VSTREAM_PATH(message->fp));
|
||||||
message->rcpt_offset = 0;
|
message->rcpt_offset = 0;
|
||||||
|
@@ -116,7 +116,9 @@ QMGR_PEER *qmgr_peer_select(QMGR_JOB *job)
|
|||||||
if (queue->window > queue->busy_refcount && peer->entry_list.next != 0) {
|
if (queue->window > queue->busy_refcount && peer->entry_list.next != 0) {
|
||||||
QMGR_LIST_ROTATE(job->peer_list, peer, peers);
|
QMGR_LIST_ROTATE(job->peer_list, peer, peers);
|
||||||
if (msg_verbose)
|
if (msg_verbose)
|
||||||
msg_info("qmgr_peer_select: %s %s", job->message->queue_id, queue->name);
|
msg_info("qmgr_peer_select: %s %s %s (%d of %d)",
|
||||||
|
job->message->queue_id, queue->transport->name, queue->name,
|
||||||
|
queue->busy_refcount + 1, queue->window);
|
||||||
return (peer);
|
return (peer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -141,11 +141,12 @@ void qmgr_queue_unthrottle(QMGR_QUEUE *queue)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Increase the destination's concurrency limit until we reach the
|
* Increase the destination's concurrency limit until we reach the
|
||||||
* transport's concurrency limit.
|
* transport's concurrency limit. Allow for a margin the size of the
|
||||||
|
* initial destination concurrency, so that we're not too gentle.
|
||||||
*/
|
*/
|
||||||
if (transport->dest_concurrency_limit == 0
|
if (transport->dest_concurrency_limit == 0
|
||||||
|| transport->dest_concurrency_limit > queue->window)
|
|| transport->dest_concurrency_limit > queue->window)
|
||||||
if (queue->window <= queue->busy_refcount)
|
if (queue->window <= queue->busy_refcount + transport->init_dest_concurrency)
|
||||||
queue->window++;
|
queue->window++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -143,11 +143,12 @@ void qmgr_queue_unthrottle(QMGR_QUEUE *queue)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Increase the destination's concurrency limit until we reach the
|
* Increase the destination's concurrency limit until we reach the
|
||||||
* transport's concurrency limit.
|
* transport's concurrency limit. Allow for a margin the size of the
|
||||||
|
* initial destination concurrency, so that we're not too gentle.
|
||||||
*/
|
*/
|
||||||
if (transport->dest_concurrency_limit == 0
|
if (transport->dest_concurrency_limit == 0
|
||||||
|| transport->dest_concurrency_limit > queue->window)
|
|| transport->dest_concurrency_limit > queue->window)
|
||||||
if (queue->window <= queue->busy_refcount)
|
if (queue->window <= queue->busy_refcount + transport->init_dest_concurrency)
|
||||||
queue->window++;
|
queue->window++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -59,6 +59,8 @@
|
|||||||
/* .IP "\fB-F \fIfull_name\fR
|
/* .IP "\fB-F \fIfull_name\fR
|
||||||
/* Set the sender full name. This is used only with messages that
|
/* Set the sender full name. This is used only with messages that
|
||||||
/* have no \fBFrom:\fR message header.
|
/* have no \fBFrom:\fR message header.
|
||||||
|
/* .IP "\fB-G\fR (ignored)"
|
||||||
|
/* Gateway (relay) submission, as opposed to initial user submission.
|
||||||
/* .IP \fB-I\fR
|
/* .IP \fB-I\fR
|
||||||
/* Initialize alias database. See the \fBnewaliases\fR
|
/* Initialize alias database. See the \fBnewaliases\fR
|
||||||
/* command above.
|
/* command above.
|
||||||
@@ -568,7 +570,7 @@ static void flush_queue(void)
|
|||||||
|
|
||||||
/* chat - send command and examine reply */
|
/* chat - send command and examine reply */
|
||||||
|
|
||||||
static void chat(VSTREAM * fp, VSTRING * buf, const char *fmt,...)
|
static void chat(VSTREAM *fp, VSTRING *buf, const char *fmt,...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
@@ -791,7 +793,7 @@ int main(int argc, char **argv)
|
|||||||
optind++;
|
optind++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ((c = GETOPT(argc, argv, "B:C:F:IN:R:UX:b:ce:f:h:imno:p:r:q:tvx")) <= 0)
|
if ((c = GETOPT(argc, argv, "B:C:F:GIN:R:UX:b:ce:f:h:imno:p:r:q:tvx")) <= 0)
|
||||||
break;
|
break;
|
||||||
switch (c) {
|
switch (c) {
|
||||||
default:
|
default:
|
||||||
@@ -805,6 +807,8 @@ int main(int argc, char **argv)
|
|||||||
case 'F': /* full name */
|
case 'F': /* full name */
|
||||||
full_name = optarg;
|
full_name = optarg;
|
||||||
break;
|
break;
|
||||||
|
case 'G': /* gateway submission */
|
||||||
|
break;
|
||||||
case 'I': /* newaliases */
|
case 'I': /* newaliases */
|
||||||
mode = SM_MODE_NEWALIAS;
|
mode = SM_MODE_NEWALIAS;
|
||||||
break;
|
break;
|
||||||
|
@@ -124,6 +124,9 @@
|
|||||||
/* .IP \fBsmtpd_timeout\fR
|
/* .IP \fBsmtpd_timeout\fR
|
||||||
/* Limit the time to send a server response and to receive a client
|
/* Limit the time to send a server response and to receive a client
|
||||||
/* request.
|
/* request.
|
||||||
|
/* .IP \fBsoft_bounce\fR
|
||||||
|
/* Change hard (5xx) reject responses into soft (4xx) reject responses.
|
||||||
|
/* This can be useful for testing purposes.
|
||||||
/* .SH "Resource controls"
|
/* .SH "Resource controls"
|
||||||
/* .ad
|
/* .ad
|
||||||
/* .fi
|
/* .fi
|
||||||
@@ -861,6 +864,9 @@ static int data_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *unused_argv)
|
|||||||
* XXX Force an empty record when the queue file content begins with
|
* XXX Force an empty record when the queue file content begins with
|
||||||
* whitespace, so that it won't be considered as being part of our own
|
* whitespace, so that it won't be considered as being part of our own
|
||||||
* Received: header. What an ugly Kluge.
|
* Received: header. What an ugly Kluge.
|
||||||
|
*
|
||||||
|
* XXX Deal with UNIX-style From_ lines at the start of message content
|
||||||
|
* because sendmail permits it.
|
||||||
*/
|
*/
|
||||||
if (vstream_fflush(state->cleanup))
|
if (vstream_fflush(state->cleanup))
|
||||||
state->err = CLEANUP_STAT_WRITE;
|
state->err = CLEANUP_STAT_WRITE;
|
||||||
@@ -873,11 +879,14 @@ static int data_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *unused_argv)
|
|||||||
start = vstring_str(state->buffer);
|
start = vstring_str(state->buffer);
|
||||||
len = VSTRING_LEN(state->buffer);
|
len = VSTRING_LEN(state->buffer);
|
||||||
if (first) {
|
if (first) {
|
||||||
|
if (strncmp(start + strspn(start, ">"), "From ", 5) == 0) {
|
||||||
|
rec_fprintf(state->cleanup, curr_rec_type,
|
||||||
|
"Mbox-Line: %s", start);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
first = 0;
|
first = 0;
|
||||||
if (len > 0 && ISSPACE(start[0]))
|
if (len > 0 && ISSPACE(start[0]))
|
||||||
rec_put(state->cleanup, REC_TYPE_NORM, "", 0);
|
rec_put(state->cleanup, REC_TYPE_NORM, "", 0);
|
||||||
else if (strncmp(start + strspn(start, ">"), "From ", 5) == 0)
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
if (prev_rec_type != REC_TYPE_CONT
|
if (prev_rec_type != REC_TYPE_CONT
|
||||||
&& *start == '.' && (++start, --len) == 0)
|
&& *start == '.' && (++start, --len) == 0)
|
||||||
|
@@ -28,6 +28,8 @@
|
|||||||
/*
|
/*
|
||||||
/* smtpd_chat_reply() formats a server reply, sends it to the
|
/* smtpd_chat_reply() formats a server reply, sends it to the
|
||||||
/* client, and appends a copy to the SMTP transaction log.
|
/* client, and appends a copy to the SMTP transaction log.
|
||||||
|
/* When soft_bounce is enabled, all 5xx (reject) reponses are
|
||||||
|
/* replaced by 4xx (try again).
|
||||||
/*
|
/*
|
||||||
/* smtpd_chat_notify() sends a copy of the SMTP transaction log
|
/* smtpd_chat_notify() sends a copy of the SMTP transaction log
|
||||||
/* to the postmaster for review. The postmaster notice is sent only
|
/* to the postmaster for review. The postmaster notice is sent only
|
||||||
@@ -138,6 +140,8 @@ void smtpd_chat_reply(SMTPD_STATE *state, char *format,...)
|
|||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
vstring_vsprintf(state->buffer, format, ap);
|
vstring_vsprintf(state->buffer, format, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
if (var_soft_bounce && STR(state->buffer)[0] == '5')
|
||||||
|
STR(state->buffer)[0] = '4';
|
||||||
smtp_chat_append(state, "Out: ");
|
smtp_chat_append(state, "Out: ");
|
||||||
|
|
||||||
if (msg_verbose)
|
if (msg_verbose)
|
||||||
|
@@ -1956,52 +1956,45 @@ char *smtpd_check_rcptmap(SMTPD_STATE *state, char *recipient)
|
|||||||
if (!resolve_local(domain))
|
if (!resolve_local(domain))
|
||||||
SMTPD_CHECK_RCPT_RETURN(0);
|
SMTPD_CHECK_RCPT_RETURN(0);
|
||||||
|
|
||||||
/*
|
#define NOMATCH(map, rcpt) \
|
||||||
* Reject mail to unknown addresses in domains that match $mydestination
|
(mail_addr_find(map, rcpt, (char **) 0) == 0 && dict_errno == 0)
|
||||||
* or $inet_interfaces (Postfix local). Reject mail to unknown addresses
|
|
||||||
* in Postfix virtual domains (Postfix virtual). Accept mail to other
|
|
||||||
* domains. Toss any extension information found by the lookup routines.
|
|
||||||
*/
|
|
||||||
#define NOP ((char **) 0)
|
|
||||||
|
|
||||||
if (resolve_local(domain)) {
|
/*
|
||||||
if (*var_virtual_maps
|
* Reject mail to unknown addresses in Postfix-style virtual domains.
|
||||||
&& maps_find(virtual_maps, domain, 0)) {
|
*/
|
||||||
msg_warn("virtual domain \"%s\" is listed in $mydestination",
|
if (*var_virtual_maps && maps_find(virtual_maps, domain, 0)) {
|
||||||
domain);
|
if (NOMATCH(rcpt_canon_maps, STR(reply.recipient))
|
||||||
msg_warn("the $local_recipient_maps feature requires that no");
|
&& NOMATCH(canonical_maps, STR(reply.recipient))
|
||||||
msg_warn("virtual domains are listed in $mydestination");
|
&& NOMATCH(relocated_maps, STR(reply.recipient))
|
||||||
msg_warn("be sure to specify the required \"%s whatever\"",
|
&& NOMATCH(virtual_maps, STR(reply.recipient))) {
|
||||||
domain);
|
|
||||||
msg_warn("entry in the virtual map, as explained in the man");
|
|
||||||
msg_warn("page and in the FAQ entry for virtual domains");
|
|
||||||
SMTPD_CHECK_RCPT_RETURN(0);
|
|
||||||
}
|
|
||||||
dict_errno = 0;
|
|
||||||
if (*var_local_rcpt_maps
|
|
||||||
&& !mail_addr_find(rcpt_canon_maps, STR(reply.recipient), NOP)
|
|
||||||
&& !mail_addr_find(canonical_maps, STR(reply.recipient), NOP)
|
|
||||||
&& !mail_addr_find(relocated_maps, STR(reply.recipient), NOP)
|
|
||||||
&& !mail_addr_find(local_rcpt_maps, STR(reply.recipient), NOP)) {
|
|
||||||
(void) smtpd_check_reject(state, MAIL_ERROR_BOUNCE,
|
(void) smtpd_check_reject(state, MAIL_ERROR_BOUNCE,
|
||||||
"%d <%s>: User unknown",
|
"%d <%s>: User unknown", 550, recipient);
|
||||||
dict_errno ? 450 : 550, recipient);
|
|
||||||
SMTPD_CHECK_RCPT_RETURN(STR(error_text));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
dict_errno = 0;
|
|
||||||
if (*var_virtual_maps
|
|
||||||
&& !mail_addr_find(rcpt_canon_maps, STR(reply.recipient), NOP)
|
|
||||||
&& !mail_addr_find(canonical_maps, STR(reply.recipient), NOP)
|
|
||||||
&& !mail_addr_find(relocated_maps, STR(reply.recipient), NOP)
|
|
||||||
&& !mail_addr_find(virtual_maps, STR(reply.recipient), NOP)
|
|
||||||
&& maps_find(virtual_maps, domain, 0)) {
|
|
||||||
(void) smtpd_check_reject(state, MAIL_ERROR_BOUNCE,
|
|
||||||
"%d <%s>: User unknown",
|
|
||||||
dict_errno ? 450 : 550, recipient);
|
|
||||||
SMTPD_CHECK_RCPT_RETURN(STR(error_text));
|
SMTPD_CHECK_RCPT_RETURN(STR(error_text));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reject mail to unknown addresses in local domains (domains that match
|
||||||
|
* $mydestination or $inet_interfaces). Accept mail for addresses in
|
||||||
|
* Sendmail-style virtual domains.
|
||||||
|
*/
|
||||||
|
if (*var_local_rcpt_maps && resolve_local(domain)) {
|
||||||
|
if (NOMATCH(relocated_maps, STR(reply.recipient))
|
||||||
|
&& NOMATCH(rcpt_canon_maps, STR(reply.recipient))
|
||||||
|
&& NOMATCH(canonical_maps, STR(reply.recipient))
|
||||||
|
&& NOMATCH(relocated_maps, STR(reply.recipient))
|
||||||
|
&& NOMATCH(virtual_maps, STR(reply.recipient))
|
||||||
|
&& NOMATCH(local_rcpt_maps, STR(reply.recipient))) {
|
||||||
|
(void) smtpd_check_reject(state, MAIL_ERROR_BOUNCE,
|
||||||
|
"%d <%s>: User unknown", 550, recipient);
|
||||||
|
SMTPD_CHECK_RCPT_RETURN(STR(error_text));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Accept all other addresses - including addresses that passed the above
|
||||||
|
* tests because of some table lookup problem.
|
||||||
|
*/
|
||||||
SMTPD_CHECK_RCPT_RETURN(0);
|
SMTPD_CHECK_RCPT_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -47,6 +47,8 @@ OK
|
|||||||
>>> client foo 123.123.123.123
|
>>> client foo 123.123.123.123
|
||||||
OK
|
OK
|
||||||
>>> helo foo.
|
>>> helo foo.
|
||||||
|
./smtpd_check: warning: valid_hostname: misplaced delimiter: foo.
|
||||||
|
./smtpd_check: warning: valid_hostname: misplaced delimiter: foo.
|
||||||
./smtpd_check: reject: HELO from foo[123.123.123.123]: 450 <foo.>: Helo command rejected: Host not found
|
./smtpd_check: reject: HELO from foo[123.123.123.123]: 450 <foo.>: Helo command rejected: Host not found
|
||||||
450 <foo.>: Helo command rejected: Host not found
|
450 <foo.>: Helo command rejected: Host not found
|
||||||
>>> helo foo
|
>>> helo foo
|
||||||
@@ -65,6 +67,8 @@ OK
|
|||||||
OK
|
OK
|
||||||
>>> helo 123.123.123.123
|
>>> helo 123.123.123.123
|
||||||
./smtpd_check: warning: valid_hostname: numeric hostname: 123.123.123.123
|
./smtpd_check: warning: valid_hostname: numeric hostname: 123.123.123.123
|
||||||
|
./smtpd_check: warning: valid_hostname: numeric hostname: 123.123.123.123
|
||||||
|
./smtpd_check: warning: valid_hostname: numeric hostname: 123.123.123.123
|
||||||
./smtpd_check: reject: HELO from foo[123.123.123.123]: 450 <123.123.123.123>: Helo command rejected: Host not found
|
./smtpd_check: reject: HELO from foo[123.123.123.123]: 450 <123.123.123.123>: Helo command rejected: Host not found
|
||||||
450 <123.123.123.123>: Helo command rejected: Host not found
|
450 <123.123.123.123>: Helo command rejected: Host not found
|
||||||
>>> helo_restrictions permit_naked_ip_address,reject_invalid_hostname,reject_unknown_hostname
|
>>> helo_restrictions permit_naked_ip_address,reject_invalid_hostname,reject_unknown_hostname
|
||||||
|
@@ -47,6 +47,8 @@ OK
|
|||||||
>>> client foo 123.123.123.123
|
>>> client foo 123.123.123.123
|
||||||
OK
|
OK
|
||||||
>>> helo foo.
|
>>> helo foo.
|
||||||
|
./smtpd_check: warning: valid_hostname: misplaced delimiter: foo.
|
||||||
|
./smtpd_check: warning: valid_hostname: misplaced delimiter: foo.
|
||||||
./smtpd_check: reject: HELO from foo[123.123.123.123]: 450 <foo.>: Helo command rejected: Host not found
|
./smtpd_check: reject: HELO from foo[123.123.123.123]: 450 <foo.>: Helo command rejected: Host not found
|
||||||
450 <foo.>: Helo command rejected: Host not found
|
450 <foo.>: Helo command rejected: Host not found
|
||||||
>>> helo foo
|
>>> helo foo
|
||||||
|
@@ -38,6 +38,8 @@
|
|||||||
void clean_env(void)
|
void clean_env(void)
|
||||||
{
|
{
|
||||||
char *TZ;
|
char *TZ;
|
||||||
|
char *DISPLAY;
|
||||||
|
char *XAUTHORITY;
|
||||||
extern char **environ;
|
extern char **environ;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -45,6 +47,8 @@ void clean_env(void)
|
|||||||
* configurable.
|
* configurable.
|
||||||
*/
|
*/
|
||||||
TZ = getenv("TZ");
|
TZ = getenv("TZ");
|
||||||
|
DISPLAY = getenv("DISPLAY");
|
||||||
|
XAUTHORITY = getenv("XAUTHORITY");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Truncate the process environment, if available. On some systems
|
* Truncate the process environment, if available. On some systems
|
||||||
@@ -58,6 +62,10 @@ void clean_env(void)
|
|||||||
*/
|
*/
|
||||||
if (TZ && setenv("TZ", TZ, 1))
|
if (TZ && setenv("TZ", TZ, 1))
|
||||||
msg_fatal("setenv: %m");
|
msg_fatal("setenv: %m");
|
||||||
|
if (DISPLAY && setenv("DISPLAY", DISPLAY, 1))
|
||||||
|
msg_fatal("setenv: %m");
|
||||||
|
if (XAUTHORITY && setenv("XAUTHORITY", XAUTHORITY, 1))
|
||||||
|
msg_fatal("setenv: %m");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update the process environment with configurable initial values.
|
* Update the process environment with configurable initial values.
|
||||||
|
@@ -676,15 +676,17 @@ DICT *dict_ldap_open(const char *ldapsource, int dummy, int dict_flags)
|
|||||||
domainlist =
|
domainlist =
|
||||||
mystrdup((char *) get_mail_conf_str(vstring_str(config_param),
|
mystrdup((char *) get_mail_conf_str(vstring_str(config_param),
|
||||||
"", 0, 0));
|
"", 0, 0));
|
||||||
if (domainlist) {
|
if (*domainlist) {
|
||||||
dict_ldap->domain = match_list_init(domainlist, 1, match_string);
|
dict_ldap->domain = match_list_init(domainlist, 1, match_string);
|
||||||
if (dict_ldap->domain == NULL)
|
if (dict_ldap->domain == NULL)
|
||||||
msg_warn("%s: domain match list creation using \"%s\" failed, will continue without it", myname, domainlist);
|
msg_warn("%s: domain match list creation using \"%s\" failed, will continue without it", myname, domainlist);
|
||||||
if (msg_verbose)
|
if (msg_verbose)
|
||||||
msg_info("%s: domain list created using \"%s\"", myname,
|
msg_info("%s: domain list created using \"%s\"", myname,
|
||||||
domainlist);
|
domainlist);
|
||||||
myfree(domainlist);
|
} else {
|
||||||
|
dict_ldap->domain = NULL;
|
||||||
}
|
}
|
||||||
|
myfree(domainlist);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* get configured value of "ldapsource_timeout"; default to 10 seconds
|
* get configured value of "ldapsource_timeout"; default to 10 seconds
|
||||||
|
Reference in New Issue
Block a user