mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-30 13:48:06 +00:00
snapshot-20001118
This commit is contained in:
parent
5d6408c2f3
commit
8908b7e5da
@ -4445,3 +4445,53 @@ Apologies for any names omitted.
|
||||
|
||||
Cleanup: changed prototype of internal function that did
|
||||
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,
|
||||
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
|
||||
=================================================
|
||||
|
||||
|
@ -43,16 +43,17 @@ decode: root
|
||||
#
|
||||
# DESCRIPTION
|
||||
# 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
|
||||
# result, an indexed file in dbm or db format, is used for
|
||||
# fast lookup by the mail system. Execute the command
|
||||
# newaliases in order to rebuild the indexed file after
|
||||
# The file serves as input to the postalias(1) command. The
|
||||
# result, an indexed file in dbm or db format, is used for
|
||||
# fast lookup by the mail system. Execute the command
|
||||
# newaliases in order to rebuild the indexed file after
|
||||
# changing the Postfix alias database.
|
||||
#
|
||||
# The input and output file formats are expected to be com-
|
||||
# patible with Sendmail version 8, and are expected to be
|
||||
# The input and output file formats are expected to be com-
|
||||
# patible with Sendmail version 8, and are expected to be
|
||||
# suitable for the use as NIS maps.
|
||||
#
|
||||
# Users can control delivery of their own mail by setting up
|
||||
@ -66,57 +67,56 @@ decode: root
|
||||
#
|
||||
# name: value1, value2, ...
|
||||
#
|
||||
# o Lines that begin with whitespace continue the pre-
|
||||
# o Lines that begin with whitespace continue the pre-
|
||||
# vious line.
|
||||
#
|
||||
# o Blank lines are ignored, as are lines beginning
|
||||
# o Blank lines are ignored, as are lines beginning
|
||||
# with `#'.
|
||||
#
|
||||
# The name is a local address (no domain part). Use double
|
||||
# quotes when the name contains any special characters such
|
||||
# as whitespace, `#', `:', or `@'. The name is folded to
|
||||
# The name is a local address (no domain part). Use double
|
||||
# quotes when the name contains any special characters such
|
||||
# as whitespace, `#', `:', or `@'. The name is folded to
|
||||
# lowercase, in order to make database lookups case insensi-
|
||||
# tive.
|
||||
#
|
||||
# In addition, when an alias exists for owner-name, 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
|
||||
# errors to the owner of a mailing list, who is in a better
|
||||
# position to deal with mailing list delivery problems than
|
||||
# errors to the owner of a mailing list, who is in a better
|
||||
# position to deal with mailing list delivery problems than
|
||||
# the originator of the undelivered mail.
|
||||
#
|
||||
# The value contains one or more of the following:
|
||||
#
|
||||
# address
|
||||
# Mail is forwarded to address, which is compatible
|
||||
#
|
||||
# 1
|
||||
#
|
||||
# ALIASES(5) ALIASES(5)
|
||||
#
|
||||
# address
|
||||
# Mail is forwarded to address, which is compatible
|
||||
# with the RFC 822 standard.
|
||||
#
|
||||
# /file/name
|
||||
# Mail is appended to /file/name. See local(8) for
|
||||
# details of delivery to file. Delivery is not lim-
|
||||
# ited to regular files. For example, to dispose of
|
||||
# Mail is appended to /file/name. See local(8) for
|
||||
# details of delivery to file. Delivery is not lim-
|
||||
# ited to regular files. For example, to dispose of
|
||||
# unwanted mail, deflect it to /dev/null.
|
||||
#
|
||||
# |command
|
||||
# Mail is piped into command. Commands that contain
|
||||
# special characters, such as whitespace, should be
|
||||
# enclosed between double quotes. See local(8) for
|
||||
# Mail is piped into command. Commands that contain
|
||||
# special characters, such as whitespace, should be
|
||||
# enclosed between double quotes. See local(8) for
|
||||
# details of delivery to command.
|
||||
#
|
||||
# When the command fails, a limited amount of command
|
||||
# output is mailed back to the sender. The file
|
||||
# /usr/include/sysexits.h defines the expected exit
|
||||
# status codes. For example, use |"exit 67" to simu-
|
||||
# late a "user unknown" error, and |"exit 0" to
|
||||
# output is mailed back to the sender. The file
|
||||
# /usr/include/sysexits.h defines the expected exit
|
||||
# status codes. For example, use |"exit 67" to simu-
|
||||
# late a "user unknown" error, and |"exit 0" to
|
||||
# implement an expensive black hole.
|
||||
#
|
||||
# :include:/file/name
|
||||
# Mail is sent to the destinations listed in the
|
||||
# Mail is sent to the destinations listed in the
|
||||
# named file. Lines in :include: files have the same
|
||||
# syntax as the right-hand side of alias entries.
|
||||
#
|
||||
@ -128,37 +128,37 @@ decode: root
|
||||
#
|
||||
# ADDRESS EXTENSION
|
||||
# When alias database search fails, and the recipient local-
|
||||
# part contains the optional recipient delimiter (e.g.,
|
||||
# user+foo), the search is repeated for the unextended
|
||||
# part contains the optional recipient delimiter (e.g.,
|
||||
# user+foo), the search is repeated for the unextended
|
||||
# address (e.g., user).
|
||||
#
|
||||
# CONFIGURATION PARAMETERS
|
||||
# The following main.cf parameters are especially relevant
|
||||
# to this topic. See the Postfix main.cf file for syntax
|
||||
# details and for default values. Use the postfix reload
|
||||
# The following main.cf parameters are especially relevant
|
||||
# to this topic. See the Postfix main.cf file for syntax
|
||||
# details and for default values. Use the postfix reload
|
||||
# command after a configuration change.
|
||||
#
|
||||
# alias_maps
|
||||
# List of alias databases.
|
||||
#
|
||||
# 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
|
||||
# file.
|
||||
# command.
|
||||
#
|
||||
# 2
|
||||
#
|
||||
# ALIASES(5) ALIASES(5)
|
||||
#
|
||||
# allow_mail_to_files
|
||||
# Restrict the usage of mail delivery to external
|
||||
# file.
|
||||
#
|
||||
# owner_request_special
|
||||
# Give special treatment to owner-xxx and xxx-request
|
||||
# addresses.
|
||||
#
|
||||
# recipient_delimiter
|
||||
# Delimiter that separates recipients from address
|
||||
# Delimiter that separates recipients from address
|
||||
# extensions.
|
||||
#
|
||||
# STANDARDS
|
||||
@ -169,7 +169,7 @@ decode: root
|
||||
# postalias(1) alias database management
|
||||
#
|
||||
# LICENSE
|
||||
# The Secure Mailer license must be distributed with this
|
||||
# The Secure Mailer license must be distributed with this
|
||||
# software.
|
||||
#
|
||||
# AUTHOR(S)
|
||||
|
@ -8,50 +8,51 @@
|
||||
# postmap /etc/postfix/canonical
|
||||
#
|
||||
# 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
|
||||
# the cleanup(8) daemon. The address mapping is recursive.
|
||||
#
|
||||
# Normally, the file serves as input to the postmap(1) com-
|
||||
# mand. The result, an indexed file in dbm or db format, is
|
||||
# used for fast searching by the mail system. Execute the
|
||||
# command postmap /etc/postfix/canonical in order to rebuild
|
||||
# the indexed file after changing the canonical table.
|
||||
# Normally, the canonical table is specified as a text file
|
||||
# that serves as input to the postmap(1) command. The
|
||||
# result, an indexed file in dbm or db format, is used for
|
||||
# fast searching by the mail system. Execute the command
|
||||
# postmap /etc/postfix/canonical in order to rebuild the
|
||||
# indexed file after changing the text file.
|
||||
#
|
||||
# When the table is provided via other means such as NIS,
|
||||
# LDAP or SQL, the same lookups are done as for ordinary
|
||||
# When the table is provided via other means such as NIS,
|
||||
# LDAP or SQL, the same lookups are done as for ordinary
|
||||
# indexed files.
|
||||
#
|
||||
# Alternatively, the table can be provided as a regular-
|
||||
# Alternatively, the table can be provided as a regular-
|
||||
# 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.
|
||||
#
|
||||
# The canonical mapping affects both message header
|
||||
# The canonical mapping affects both message header
|
||||
# addresses (i.e. addresses that appear inside messages) and
|
||||
# message envelope addresses (for example, the addresses
|
||||
# that are used in SMTP protocol commands). Think Sendmail
|
||||
# message envelope addresses (for example, the addresses
|
||||
# that are used in SMTP protocol commands). Think Sendmail
|
||||
# rule set S3, if you like.
|
||||
#
|
||||
# Typically, one would use the canonical table to replace
|
||||
# login names by Firstname.Lastname, or to clean up
|
||||
# Typically, one would use the canonical table to replace
|
||||
# login names by Firstname.Lastname, or to clean up
|
||||
# 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.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# TABLE FORMAT
|
||||
# The format of the canonical table is as follows:
|
||||
#
|
||||
# blanks and comments
|
||||
# Blank lines are ignored, as are lines beginning
|
||||
# Blank lines are ignored, as are lines beginning
|
||||
# with `#'.
|
||||
#
|
||||
# leading whitespace
|
||||
# Lines that begin with whitespace continue the pre-
|
||||
# Lines that begin with whitespace continue the pre-
|
||||
# vious line.
|
||||
#
|
||||
# 1
|
||||
@ -59,78 +60,78 @@
|
||||
# CANONICAL(5) CANONICAL(5)
|
||||
#
|
||||
# pattern result
|
||||
# When pattern matches a mail address, replace it by
|
||||
# When pattern matches a mail address, replace it by
|
||||
# the corresponding result.
|
||||
#
|
||||
# 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:
|
||||
#
|
||||
# user@domain address
|
||||
# user@domain is replaced by address. This form has
|
||||
# user@domain is replaced by address. This form has
|
||||
# the highest precedence.
|
||||
#
|
||||
# This form useful to clean up addresses produced by
|
||||
# legacy mail systems. It can also be used to pro-
|
||||
# duce Firstname.Lastname style addresses, but see
|
||||
# This form useful to clean up addresses produced by
|
||||
# legacy mail systems. It can also be used to pro-
|
||||
# duce Firstname.Lastname style addresses, but see
|
||||
# below for a simpler solution.
|
||||
#
|
||||
# user address
|
||||
# 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.
|
||||
#
|
||||
# This form is useful for replacing login names by
|
||||
# This form is useful for replacing login names by
|
||||
# Firstname.Lastname.
|
||||
#
|
||||
# @domain address
|
||||
# Every address in domain is replaced by address.
|
||||
# Every address in domain is replaced by address.
|
||||
# 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.
|
||||
#
|
||||
# ADDRESS EXTENSION
|
||||
# When table lookup fails, and the address localpart con-
|
||||
# tains the optional recipient delimiter (e.g.,
|
||||
# user+foo@domain), the search is repeated for the unex-
|
||||
# tended address (e.g. user@domain), and the unmatched
|
||||
# When table lookup fails, and the address localpart con-
|
||||
# tains the optional recipient delimiter (e.g.,
|
||||
# user+foo@domain), the search is repeated for the unex-
|
||||
# tended address (e.g. user@domain), and the unmatched
|
||||
# extension is propagated to the result of table lookup. The
|
||||
# matching order is: user+foo@domain, user@domain, user+foo,
|
||||
# user, and @domain.
|
||||
#
|
||||
# REGULAR EXPRESSION TABLES
|
||||
# This section describes how the table lookups change when
|
||||
# This section describes how the table lookups change when
|
||||
# the table is given in the form of regular expressions. For
|
||||
# a description of regular expression lookup table syntax,
|
||||
# a description of regular expression lookup table syntax,
|
||||
# see regexp_table(5) or pcre_table(5).
|
||||
#
|
||||
# Each pattern is a regular expression that is applied to
|
||||
# Each pattern is a regular expression that is applied to
|
||||
# the entire address being looked up. Thus, user@domain mail
|
||||
# addresses are not broken up into their user and @domain
|
||||
# addresses are not broken up into their user and @domain
|
||||
# constituent parts, nor is user+foo broken up into user and
|
||||
# foo.
|
||||
#
|
||||
# Patterns are applied in the order as specified in the
|
||||
# Patterns are applied in the order as specified in the
|
||||
#
|
||||
# 2
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Results are the same as with normal indexed file lookups,
|
||||
# with the additional feature that parenthesized substrings
|
||||
# from the pattern can be interpolated as $1, $2 and so on.
|
||||
# Results are the same as with normal indexed file lookups,
|
||||
# with the additional feature that parenthesized substrings
|
||||
# from the pattern can be interpolated as $1, $2 and so on.
|
||||
#
|
||||
# BUGS
|
||||
# The table format does not understand quoting conventions.
|
||||
# The table format does not understand quoting conventions.
|
||||
#
|
||||
# CONFIGURATION PARAMETERS
|
||||
# The following main.cf parameters are especially relevant
|
||||
# to this topic. See the Postfix main.cf file for syntax
|
||||
# details and for default values. Use the postfix reload
|
||||
# The following main.cf parameters are especially relevant
|
||||
# to this topic. See the Postfix main.cf file for syntax
|
||||
# details and for default values. Use the postfix reload
|
||||
# command after a configuration change.
|
||||
#
|
||||
# canonical_maps
|
||||
@ -147,19 +148,19 @@
|
||||
# Other parameters of interest:
|
||||
#
|
||||
# inet_interfaces
|
||||
# The network interface addresses that this system
|
||||
# The network interface addresses that this system
|
||||
# receives mail on.
|
||||
#
|
||||
# masquerade_domains
|
||||
# List of domains that hide their subdomain struc-
|
||||
# List of domains that hide their subdomain struc-
|
||||
# ture.
|
||||
#
|
||||
# masquerade_exceptions
|
||||
# List of user names that are not subject to address
|
||||
# List of user names that are not subject to address
|
||||
# masquerading.
|
||||
#
|
||||
# mydestination
|
||||
# List of domains that this mail system considers
|
||||
# List of domains that this mail system considers
|
||||
# local.
|
||||
#
|
||||
# myorigin
|
||||
@ -182,7 +183,7 @@
|
||||
# regexp_table(5) format of POSIX regular expression tables
|
||||
#
|
||||
# LICENSE
|
||||
# The Secure Mailer license must be distributed with this
|
||||
# The Secure Mailer license must be distributed with this
|
||||
# software.
|
||||
#
|
||||
# AUTHOR(S)
|
||||
|
@ -40,6 +40,7 @@ masquerade_domains =
|
||||
#
|
||||
# By default, address masquerading makes no exceptions.
|
||||
#
|
||||
#masquerade_exceptions = root,mailer-daemon
|
||||
#masquerade_exceptions = root
|
||||
masquerade_exceptions =
|
||||
|
||||
|
@ -8,45 +8,103 @@
|
||||
# postmap /etc/postfix/virtual
|
||||
#
|
||||
# DESCRIPTION
|
||||
# The optional virtual table specifies redirections for
|
||||
# local and non-local recipients or domains. The redirec-
|
||||
# tions are used by the cleanup(8) daemon. The redirections
|
||||
# are recursive.
|
||||
# The optional virtual table specifies address redirections
|
||||
# for local and non-local recipients or domains. The redi-
|
||||
# rections are used by the cleanup(8) daemon. The redirec-
|
||||
# tions are recursive.
|
||||
#
|
||||
# The virtual redirection is applied only to the recipient
|
||||
# envelope address, and does not affect message headers.
|
||||
# The virtual redirection is applied only to recipient enve-
|
||||
# lope addresses, and does not affect message headers.
|
||||
# Think Sendmail rule set S0, if you like. Use canonical(5)
|
||||
# mapping to rewrite header and envelope addresses in gen-
|
||||
# eral.
|
||||
#
|
||||
# Normally, the file serves as input to the postmap(1) com-
|
||||
# mand. The result, an indexed file in dbm or db format, is
|
||||
# used for fast searching by the mail system. Execute the
|
||||
# command postmap /etc/postfix/virtual in order to rebuild
|
||||
# the indexed file after changing the virtual table.
|
||||
# Normally, the virtual table is specified as a text file
|
||||
# that serves as input to the postmap(1) command. The
|
||||
# result, an indexed file in dbm or db format, is used for
|
||||
# fast searching by the mail system. Execute the command
|
||||
# postmap /etc/postfix/virtual in order to rebuild the
|
||||
# indexed file after changing the text file.
|
||||
#
|
||||
# When the table is provided via other means such as NIS,
|
||||
# LDAP or SQL, the same lookups are done as for ordinary
|
||||
# When the table is provided via other means such as NIS,
|
||||
# LDAP or SQL, the same lookups are done as for ordinary
|
||||
# indexed files.
|
||||
#
|
||||
# Alternatively, the table can be provided as a regular-
|
||||
# Alternatively, the table can be provided as a regular-
|
||||
# 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.
|
||||
#
|
||||
# TABLE FORMAT
|
||||
# Typical support for a virtual domain looks like the fol-
|
||||
# lowing:
|
||||
# POSTFIX-STYLE VIRTUAL DOMAINS
|
||||
# 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 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)
|
||||
# postmaster@virtual.domain postmaster
|
||||
# user1@virtual.domain address1
|
||||
# user2@virtual.domain address2, address3
|
||||
#
|
||||
# With this, the SMTP server accepts mail for virtual.domain
|
||||
# and rejects mail for unknown@virtual.domain as undeliver-
|
||||
# The virtual.domain anything entry is required for a
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# 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
|
||||
# being tried in the order as listed in this manual page:
|
||||
#
|
||||
@ -54,13 +112,14 @@
|
||||
# Blank lines are ignored, as are lines beginning
|
||||
# with `#'.
|
||||
#
|
||||
# 1
|
||||
# leading whitespace
|
||||
# Lines that begin with whitespace continue the
|
||||
#
|
||||
# 2
|
||||
#
|
||||
# VIRTUAL(5) VIRTUAL(5)
|
||||
#
|
||||
# leading whitespace
|
||||
# Lines that begin with whitespace continue the pre-
|
||||
# vious line.
|
||||
# previous line.
|
||||
#
|
||||
# pattern result
|
||||
# When pattern matches a mail address, replace it by
|
||||
@ -113,11 +172,12 @@
|
||||
# constituent parts, nor is user+foo broken up into user and
|
||||
# foo.
|
||||
#
|
||||
# 2
|
||||
# Patterns are applied in the order as specified in the
|
||||
#
|
||||
# 3
|
||||
#
|
||||
# VIRTUAL(5) VIRTUAL(5)
|
||||
#
|
||||
# Patterns are applied in the order as specified in the
|
||||
# table, until a pattern is found that matches the search
|
||||
# string.
|
||||
#
|
||||
@ -170,5 +230,5 @@
|
||||
# P.O. Box 704
|
||||
# Yorktown Heights, NY 10598, USA
|
||||
#
|
||||
# 3
|
||||
# 4
|
||||
#
|
||||
|
@ -13,16 +13,17 @@ ALIASES(5) ALIASES(5)
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
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
|
||||
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
|
||||
<b>newaliases</b> in order to rebuild the indexed file after
|
||||
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
|
||||
fast lookup by the mail system. Execute the command
|
||||
<b>newaliases</b> in order to rebuild the indexed file after
|
||||
changing the Postfix alias database.
|
||||
|
||||
The input and output file formats are expected to be com-
|
||||
patible with Sendmail version 8, and are expected to be
|
||||
The input and output file formats are expected to be com-
|
||||
patible with Sendmail version 8, and are expected to be
|
||||
suitable for the use as NIS maps.
|
||||
|
||||
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>
|
||||
|
||||
<b>o</b> Lines that begin with whitespace continue the pre-
|
||||
<b>o</b> Lines that begin with whitespace continue the pre-
|
||||
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 `#'.
|
||||
|
||||
The <i>name</i> is a local address (no domain part). Use double
|
||||
quotes when the name contains any special characters such
|
||||
as whitespace, `#', `:', or `@'. The <i>name</i> is folded to
|
||||
The <i>name</i> is a local address (no domain part). Use double
|
||||
quotes when the name contains any special characters such
|
||||
as whitespace, `#', `:', or `@'. The <i>name</i> is folded to
|
||||
lowercase, in order to make database lookups case insensi-
|
||||
tive.
|
||||
|
||||
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
|
||||
errors to the owner of a mailing list, who is in a better
|
||||
position to deal with mailing list delivery problems than
|
||||
errors to the owner of a mailing list, who is in a better
|
||||
position to deal with mailing list delivery problems than
|
||||
the originator of the undelivered mail.
|
||||
|
||||
The <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)
|
||||
|
||||
|
||||
<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.
|
||||
|
||||
<i>/file/name</i>
|
||||
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-
|
||||
ited to regular files. For example, to dispose of
|
||||
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-
|
||||
ited to regular files. For example, to dispose of
|
||||
unwanted mail, deflect it to <b>/dev/null</b>.
|
||||
|
||||
|<i>command</i>
|
||||
Mail is piped into <i>command</i>. Commands that contain
|
||||
special characters, such as whitespace, should be
|
||||
enclosed between double quotes. See <a href="local.8.html"><b>local</b>(8)</a> for
|
||||
Mail is piped into <i>command</i>. Commands that contain
|
||||
special characters, such as whitespace, should be
|
||||
enclosed between double quotes. See <a href="local.8.html"><b>local</b>(8)</a> for
|
||||
details of delivery to command.
|
||||
|
||||
When the command fails, a limited amount of command
|
||||
output is mailed back to the sender. The file
|
||||
<b>/usr/include/sysexits.h</b> defines the expected exit
|
||||
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
|
||||
output is mailed back to the sender. The file
|
||||
<b>/usr/include/sysexits.h</b> defines the expected exit
|
||||
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
|
||||
implement an expensive black hole.
|
||||
|
||||
<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
|
||||
syntax as the right-hand side of alias entries.
|
||||
|
||||
@ -105,26 +107,24 @@ ALIASES(5) ALIASES(5)
|
||||
|
||||
<b>ADDRESS</b> <b>EXTENSION</b>
|
||||
When alias database search fails, and the recipient local-
|
||||
part contains the optional recipient delimiter (e.g.,
|
||||
<i>user+foo</i>), the search is repeated for the unextended
|
||||
part contains the optional recipient delimiter (e.g.,
|
||||
<i>user+foo</i>), the search is repeated for the unextended
|
||||
address (e.g., <i>user</i>).
|
||||
|
||||
<b>CONFIGURATION</b> <b>PARAMETERS</b>
|
||||
The following <b>main.cf</b> parameters are especially relevant
|
||||
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>
|
||||
The following <b>main.cf</b> parameters are especially relevant
|
||||
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>
|
||||
command after a configuration change.
|
||||
|
||||
<b>alias</b><i>_</i><b>maps</b>
|
||||
List of alias databases.
|
||||
|
||||
<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.
|
||||
|
||||
<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)
|
||||
|
||||
|
||||
<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>
|
||||
Give special treatment to <b>owner-</b><i>xxx</i> and <i>xxx</i><b>-request</b>
|
||||
addresses.
|
||||
|
||||
<b>recipient</b><i>_</i><b>delimiter</b>
|
||||
Delimiter that separates recipients from address
|
||||
Delimiter that separates recipients from address
|
||||
extensions.
|
||||
|
||||
<b>STANDARDS</b>
|
||||
@ -153,7 +157,7 @@ ALIASES(5) ALIASES(5)
|
||||
<a href="postalias.1.html">postalias(1)</a> alias database management
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<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>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
|
||||
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-
|
||||
mand. The result, an indexed file in <b>dbm</b> or <b>db</b> format, is
|
||||
used for fast searching by the mail system. Execute the
|
||||
command <b>postmap</b> <b>/etc/postfix/canonical</b> in order to rebuild
|
||||
the indexed file after changing the canonical table.
|
||||
Normally, the <b>canonical</b> table is specified as a text file
|
||||
that serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> command. The
|
||||
result, an indexed file in <b>dbm</b> or <b>db</b> format, is used for
|
||||
fast searching by the mail system. Execute the command
|
||||
<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,
|
||||
LDAP or SQL, the same lookups are done as for ordinary
|
||||
When the table is provided via other means such as NIS,
|
||||
LDAP or SQL, the same lookups are done as for ordinary
|
||||
indexed files.
|
||||
|
||||
Alternatively, the table can be provided as a regular-
|
||||
Alternatively, the table can be provided as a regular-
|
||||
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.
|
||||
|
||||
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
|
||||
message envelope addresses (for example, the addresses
|
||||
that are used in SMTP protocol commands). Think Sendmail
|
||||
message envelope addresses (for example, the addresses
|
||||
that are used in SMTP protocol commands). Think Sendmail
|
||||
rule set <b>S3</b>, if you like.
|
||||
|
||||
Typically, one would use the <b>canonical</b> table to replace
|
||||
login names by <i>Firstname.Lastname</i>, or to clean up
|
||||
Typically, one would use the <b>canonical</b> table to replace
|
||||
login names by <i>Firstname.Lastname</i>, or to clean up
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
<b>TABLE</b> <b>FORMAT</b>
|
||||
The format of the <b>canonical</b> table is as follows:
|
||||
|
||||
blanks and comments
|
||||
Blank lines are ignored, as are lines beginning
|
||||
Blank lines are ignored, as are lines beginning
|
||||
with `#'.
|
||||
|
||||
leading whitespace
|
||||
Lines that begin with whitespace continue the pre-
|
||||
Lines that begin with whitespace continue the pre-
|
||||
vious line.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1
|
||||
|
||||
|
||||
@ -72,59 +72,59 @@ CANONICAL(5) CANONICAL(5)
|
||||
|
||||
|
||||
<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>.
|
||||
|
||||
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:
|
||||
|
||||
<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.
|
||||
|
||||
This form useful to clean up addresses produced by
|
||||
legacy mail systems. It can also be used to pro-
|
||||
duce <i>Firstname.Lastname</i> style addresses, but see
|
||||
This form useful to clean up addresses produced by
|
||||
legacy mail systems. It can also be used to pro-
|
||||
duce <i>Firstname.Lastname</i> style addresses, but see
|
||||
below for a simpler solution.
|
||||
|
||||
<i>user</i> <i>address</i>
|
||||
<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>.
|
||||
|
||||
This form is useful for replacing login names by
|
||||
This form is useful for replacing login names by
|
||||
<i>Firstname.Lastname</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.
|
||||
|
||||
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>.
|
||||
|
||||
<b>ADDRESS</b> <b>EXTENSION</b>
|
||||
When table lookup fails, and the address localpart con-
|
||||
tains the optional recipient delimiter (e.g.,
|
||||
<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
|
||||
When table lookup fails, and the address localpart con-
|
||||
tains the optional recipient delimiter (e.g.,
|
||||
<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
|
||||
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>,
|
||||
<i>user</i>, and @<i>domain</i>.
|
||||
|
||||
<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
|
||||
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>.
|
||||
|
||||
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
|
||||
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
|
||||
<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)
|
||||
|
||||
|
||||
table, until a pattern is found that matches the search
|
||||
table, until a pattern is found that matches the search
|
||||
string.
|
||||
|
||||
Results are the same as with normal indexed file lookups,
|
||||
with the additional feature that parenthesized substrings
|
||||
from the pattern can be interpolated as <b>$1</b>, <b>$2</b> and so on.
|
||||
Results are the same as with normal indexed file lookups,
|
||||
with the additional feature that parenthesized substrings
|
||||
from the pattern can be interpolated as <b>$1</b>, <b>$2</b> and so on.
|
||||
|
||||
<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>
|
||||
The following <b>main.cf</b> parameters are especially relevant
|
||||
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>
|
||||
The following <b>main.cf</b> parameters are especially relevant
|
||||
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>
|
||||
command after a configuration change.
|
||||
|
||||
<b>canonical</b><i>_</i><b>maps</b>
|
||||
@ -167,19 +167,19 @@ CANONICAL(5) CANONICAL(5)
|
||||
Other parameters of interest:
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<b>mydestination</b>
|
||||
List of domains that this mail system considers
|
||||
List of domains that this mail system considers
|
||||
local.
|
||||
|
||||
<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
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<b>AUTHOR(S)</b>
|
||||
|
@ -128,7 +128,7 @@ addresses</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>
|
||||
|
||||
<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="#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="#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="#virtual_command">Commands and mailing lists don't work in Postfix virtual maps</a>
|
||||
|
||||
</ul>
|
||||
|
||||
<a name="virtual_domains"><h3>Virtual domains</h3>
|
||||
|
||||
<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
|
||||
unknown virtual users</a>
|
||||
<li><a href="#unknown_virtual_loop">Mail for unknown users in
|
||||
virtual domains fails with "mail loops back to myself"</a>
|
||||
|
||||
<li><a href="#virtual_setup">Mail for unknown virtual users fails
|
||||
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
|
||||
<li><a href="#virtual_relay">Postfix refuses mail for virtual
|
||||
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
|
||||
mailbox</a>
|
||||
@ -1480,10 +1479,41 @@ To find out the location for your system, execute the command
|
||||
|
||||
<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>
|
||||
|
||||
See elsewhere for how to reject mail for <a href="#virtual_setup">unknown
|
||||
virtual</a> users.
|
||||
See elsewhere for how to reject mail for <a
|
||||
href="#unknown_virtual_accept">unknown users in virtual domains</a>.
|
||||
|
||||
<p>
|
||||
|
||||
@ -1527,9 +1557,9 @@ The only way to find out is to try.
|
||||
|
||||
<p>
|
||||
|
||||
By default, the Postfix SMTP server does know about Postfix <a
|
||||
href="#virtual_setup">virtual</a> maps, and will reject mail for
|
||||
<i>unknown@virtual.domain</i> without further configuration.
|
||||
By default, the Postfix SMTP server is aware of Postfix <a
|
||||
href="virtual.5.html">virtual</a> maps, and will accept mail for
|
||||
<i>known-user@virtual.domain</i> without further configuration.
|
||||
|
||||
<hr>
|
||||
|
||||
@ -1928,68 +1958,37 @@ sense to make it moderated.
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
Solution: specify a Postfix-style virtual domain or a Sendmail-style
|
||||
virtual domain.
|
||||
|
||||
<p>
|
||||
|
||||
Solution:
|
||||
|
||||
<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.
|
||||
Be sure to follow instructions in the <a href="virtual.5.html">
|
||||
virtual</a> manual page.
|
||||
|
||||
<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,
|
||||
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
|
||||
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>
|
||||
|
||||
<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)
|
||||
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-
|
||||
sponding destinations.
|
||||
|
||||
@ -78,8 +78,8 @@ FLUSH(8) FLUSH(8)
|
||||
Refresh all non-empty per-destination logfiles, by
|
||||
simulating send requests (see above) for the corre-
|
||||
sponding destinations. This can be incredibly
|
||||
expensive when logging is enabled for all deferred
|
||||
mail, and is not recommended.
|
||||
expensive when logging is enabled for many destina-
|
||||
tions, and is not recommended.
|
||||
|
||||
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.
|
||||
@ -115,12 +115,12 @@ FLUSH(8) FLUSH(8)
|
||||
tion file.
|
||||
|
||||
Upon receipt of a request to deliver all mail for an eli-
|
||||
gible destination, this server requests delivery of all
|
||||
messages that are listed in that destination's logfile,
|
||||
regardless of the recipients of those messages. This is
|
||||
not an issue for mail that is sent to a <b>relay</b><i>_</i><b>domains</b> des-
|
||||
tination because such mail typically only has recipients
|
||||
in one domain.
|
||||
gible destination, the <b>flush</b> server requests delivery of
|
||||
all messages that are listed in that destination's log-
|
||||
file, regardless of the recipients of those messages. This
|
||||
is not an issue for mail that is sent to a <b>relay</b><i>_</i><b>domains</b>
|
||||
destination because such mail typically only has recipi-
|
||||
ents in one domain.
|
||||
|
||||
<b>FILES</b>
|
||||
/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>
|
||||
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>
|
||||
When delivering to an alias that has an owner- com-
|
||||
panion alias, set the envelope sender address to
|
||||
the right-hand side of the owner alias, instead
|
||||
panion alias, set the envelope sender address to
|
||||
the right-hand side of the owner alias, instead
|
||||
using of the left-hand side address.
|
||||
|
||||
<b>forward</b><i>_</i><b>path</b>
|
||||
Search list for .forward files. The names are sub-
|
||||
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)
|
||||
|
||||
|
||||
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.
|
||||
|
||||
<b>owner</b><i>_</i><b>request</b><i>_</i><b>special</b>
|
||||
@ -343,10 +347,10 @@ LOCAL(8) LOCAL(8)
|
||||
addresses.
|
||||
|
||||
<b>prepend</b><i>_</i><b>delivered</b><i>_</i><b>header</b>
|
||||
Prepend an optional <b>Delivered-To:</b> header upon
|
||||
external forwarding, delivery to command or file.
|
||||
Specify zero or more of: <b>command,</b> <b>file,</b> <b>forward</b>.
|
||||
Turning off <b>Delivered-To:</b> when forwarding mail is
|
||||
Prepend an optional <b>Delivered-To:</b> header upon
|
||||
external forwarding, delivery to command or file.
|
||||
Specify zero or more of: <b>command,</b> <b>file,</b> <b>forward</b>.
|
||||
Turning off <b>Delivered-To:</b> when forwarding mail is
|
||||
not recommended.
|
||||
|
||||
<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>
|
||||
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>fallback</b><i>_</i><b>transport</b>
|
||||
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>.
|
||||
|
||||
<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-
|
||||
style delivery.
|
||||
|
||||
<b>luser</b><i>_</i><b>relay</b>
|
||||
Destination (<i>@domain</i> or <i>address</i>) for non-existent
|
||||
users. The <i>address</i> is subjected to <i>$name</i> expan-
|
||||
Destination (<i>@domain</i> or <i>address</i>) for non-existent
|
||||
users. The <i>address</i> is subjected to <i>$name</i> expan-
|
||||
sion.
|
||||
|
||||
<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.
|
||||
|
||||
<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
|
||||
(exception: root). The string is subject to $name
|
||||
(exception: root). The string is subject to $name
|
||||
expansions.
|
||||
|
||||
<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
|
||||
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)
|
||||
|
||||
|
||||
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>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.
|
||||
|
||||
<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.
|
||||
|
||||
<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>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.
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<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
|
||||
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>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-
|
||||
ery. The default limit is taken from the
|
||||
Limit the number of recipients per message deliv-
|
||||
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>Security</b> <b>controls</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.
|
||||
|
||||
<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.
|
||||
|
||||
<b>command</b><i>_</i><b>expansion</b><i>_</i><b>filter</b>
|
||||
What characters are allowed to appear in $name
|
||||
expansions of mailbox_command. Illegal characters
|
||||
What characters are allowed to appear in $name
|
||||
expansions of mailbox_command. Illegal characters
|
||||
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)
|
||||
|
||||
|
||||
<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>
|
||||
What characters are allowed to appear in $name
|
||||
expansions of forward_path. Illegal characters are
|
||||
What characters are allowed to appear in $name
|
||||
expansions of forward_path. Illegal characters are
|
||||
replaced by underscores.
|
||||
|
||||
<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.
|
||||
|
||||
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.
|
||||
|
||||
<b>SEE</b> <b>ALSO</b>
|
||||
@ -487,7 +491,7 @@ LOCAL(8) LOCAL(8)
|
||||
<a href="qmgr.8.html">qmgr(8)</a> queue manager
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<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
|
||||
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.
|
||||
|
||||
<b>-N</b> <i>dsn</i> (ignored)
|
||||
Delivery status notification control. Currently,
|
||||
Delivery status notification control. Currently,
|
||||
Postfix does not implement <b>DSN</b>.
|
||||
|
||||
<b>-R</b> <i>return_limit</i> (ignored)
|
||||
Limit the size of bounced mail. Use the
|
||||
<b>bounce</b><i>_</i><b>size</b><i>_</i><b>limit</b> configuration parameter instead.
|
||||
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>-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
|
||||
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b> configuration parameters instead.
|
||||
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>-U</b> (ignored)
|
||||
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.
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<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
|
||||
from standard input, and write responses to stan-
|
||||
<b>-bs</b> Stand-alone SMTP server mode. Read SMTP commands
|
||||
from standard input, and write responses to stan-
|
||||
dard output. This mode of operation is implemented
|
||||
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)
|
||||
|
||||
|
||||
<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)
|
||||
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.
|
||||
|
||||
<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
|
||||
<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
|
||||
input.
|
||||
|
||||
<b>-m</b> (ignored)
|
||||
@ -152,45 +157,40 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
Backwards compatibility.
|
||||
|
||||
<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.
|
||||
|
||||
<b>-o7</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>.
|
||||
|
||||
<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
|
||||
<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
|
||||
input.
|
||||
|
||||
<b>-om</b> (ignored)
|
||||
The sender is never eliminated from alias etc.
|
||||
The sender is never eliminated from alias etc.
|
||||
expansions.
|
||||
|
||||
<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.
|
||||
|
||||
<b>-r</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.
|
||||
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.
|
||||
|
||||
<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>-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)
|
||||
|
||||
|
||||
<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
|
||||
flush" service.
|
||||
|
||||
<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>-t</b> Extract recipients from message headers. This
|
||||
requires that no recipients be specified on the
|
||||
<b>-t</b> Extract recipients from message headers. This
|
||||
requires that no recipients be specified on the
|
||||
command line.
|
||||
|
||||
<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.
|
||||
|
||||
<b>SECURITY</b>
|
||||
By design, this program is not set-user (or group) id.
|
||||
However, it must handle data from untrusted users or
|
||||
untrusted machines. Thus, the usual precautions need to
|
||||
By design, this program is not set-user (or group) id.
|
||||
However, it must handle data from untrusted users or
|
||||
untrusted machines. Thus, the usual precautions need to
|
||||
be taken against malicious inputs.
|
||||
|
||||
<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.
|
||||
|
||||
<b>ENVIRONMENT</b>
|
||||
@ -237,7 +243,7 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
|
||||
<b>MAIL</b><i>_</i><b>DEBUG</b>
|
||||
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.
|
||||
|
||||
<b>FILES</b>
|
||||
@ -245,18 +251,12 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
/etc/postfix, configuration files
|
||||
|
||||
<b>CONFIGURATION</b> <b>PARAMETERS</b>
|
||||
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
|
||||
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
|
||||
configuration change.
|
||||
|
||||
<b>alias</b><i>_</i><b>database</b>
|
||||
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.
|
||||
Default alias database(s) for <b>newaliases</b>. The
|
||||
|
||||
|
||||
|
||||
@ -269,6 +269,13 @@ 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>
|
||||
Default alias etc. database type. On many UNIX sys-
|
||||
tems the default type is either <b>dbm</b> or <b>hash</b>.
|
||||
@ -278,51 +285,44 @@ SENDMAIL(1) SENDMAIL(1)
|
||||
initialized.
|
||||
|
||||
<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>
|
||||
parameter.
|
||||
|
||||
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b>
|
||||
List of domain or network patterns. When a remote
|
||||
host matches a pattern, increase the verbose log-
|
||||
ging level by the amount specified in the
|
||||
List of domain or network patterns. When a remote
|
||||
host matches a pattern, increase the verbose log-
|
||||
ging level by the amount specified in the
|
||||
<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>
|
||||
List of domains that will receive "fast flush" ser-
|
||||
vice (default: all domains that this system is
|
||||
willing to relay mail to). This greatly improves
|
||||
the performance of the SMTP <b>ETRN</b> request, and of
|
||||
the <b>sendmail</b> <b>-qR</b> command. For domains not in the
|
||||
vice (default: all domains that this system is
|
||||
willing to relay mail to). This greatly improves
|
||||
the performance of the SMTP <b>ETRN</b> request, and of
|
||||
the <b>sendmail</b> <b>-qR</b> command. For domains not in the
|
||||
list, Postfix simply attempts to deliver all queued
|
||||
mail.
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<b>hopcount</b><i>_</i><b>limit</b>
|
||||
Limit the number of <b>Received:</b> message headers.
|
||||
|
||||
<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.
|
||||
|
||||
<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>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)
|
||||
|
||||
|
||||
<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.
|
||||
|
||||
<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.
|
||||
|
||||
<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="showq.8.html">showq(8)</a> list mail queue
|
||||
<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
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<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
|
||||
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>line</b><i>_</i><b>length</b><i>_</i><b>limit</b>
|
||||
Limit the amount of memory in bytes used for the
|
||||
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)
|
||||
|
||||
|
||||
<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>
|
||||
Minimal amount of free space in bytes in the queue
|
||||
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-
|
||||
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)
|
||||
|
||||
|
||||
<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.
|
||||
|
||||
<b>restriction</b><i>_</i><b>classes</b>
|
||||
@ -319,10 +323,6 @@ SMTPD(8) SMTPD(8)
|
||||
Server response when a client violates the
|
||||
<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)
|
||||
|
||||
|
||||
<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>
|
||||
The Secure Mailer license must be distributed with this
|
||||
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>DESCRIPTION</b>
|
||||
The optional <b>virtual</b> table specifies redirections for
|
||||
local and non-local recipients or domains. The redirec-
|
||||
tions are used by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon. The redirections
|
||||
are recursive.
|
||||
The optional <b>virtual</b> table specifies address redirections
|
||||
for local and non-local recipients or domains. The redi-
|
||||
rections are used by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon. The redirec-
|
||||
tions are recursive.
|
||||
|
||||
The <b>virtual</b> redirection is applied only to the recipient
|
||||
envelope address, and does not affect message headers.
|
||||
The <b>virtual</b> redirection is applied only to recipient enve-
|
||||
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>
|
||||
mapping to rewrite header and envelope addresses in gen-
|
||||
eral.
|
||||
|
||||
Normally, the file serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> com-
|
||||
mand. The result, an indexed file in <b>dbm</b> or <b>db</b> format, is
|
||||
used for fast searching by the mail system. Execute the
|
||||
command <b>postmap</b> <b>/etc/postfix/virtual</b> in order to rebuild
|
||||
the indexed file after changing the virtual table.
|
||||
Normally, the <b>virtual</b> table is specified as a text file
|
||||
that serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a> command. The
|
||||
result, an indexed file in <b>dbm</b> or <b>db</b> format, is used for
|
||||
fast searching by the mail system. Execute the command
|
||||
<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,
|
||||
LDAP or SQL, the same lookups are done as for ordinary
|
||||
When the table is provided via other means such as NIS,
|
||||
LDAP or SQL, the same lookups are done as for ordinary
|
||||
indexed files.
|
||||
|
||||
Alternatively, the table can be provided as a regular-
|
||||
Alternatively, the table can be provided as a regular-
|
||||
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.
|
||||
|
||||
<b>TABLE</b> <b>FORMAT</b>
|
||||
Typical support for a virtual domain looks like the fol-
|
||||
lowing:
|
||||
<b>POSTFIX-STYLE</b> <b>VIRTUAL</b> <b>DOMAINS</b>
|
||||
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 <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>postmaster@virtual.domain</i> <i>postmaster</i>
|
||||
<i>user1@virtual.domain</i> <i>address1</i>
|
||||
<i>user2@virtual.domain</i> <i>address2,</i> <i>address3</i>
|
||||
|
||||
With this, the SMTP server accepts mail for <i>virtual.domain</i>
|
||||
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 `#'.
|
||||
|
||||
|
||||
The <i>virtual.domain</i> <i>anything</i> entry is required for a
|
||||
|
||||
|
||||
|
||||
@ -71,9 +71,73 @@ 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
|
||||
Lines that begin with whitespace continue the pre-
|
||||
vious line.
|
||||
Lines that begin with whitespace continue the
|
||||
|
||||
|
||||
|
||||
2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
VIRTUAL(5) VIRTUAL(5)
|
||||
|
||||
|
||||
previous line.
|
||||
|
||||
<i>pattern</i> <i>result</i>
|
||||
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
|
||||
<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)
|
||||
|
||||
|
||||
Patterns are applied in the order as specified in the
|
||||
table, until a pattern is found that matches the search
|
||||
string.
|
||||
|
||||
@ -194,7 +259,8 @@ VIRTUAL(5) VIRTUAL(5)
|
||||
|
||||
|
||||
|
||||
3
|
||||
|
||||
4
|
||||
|
||||
|
||||
</pre> </body> </html>
|
||||
|
@ -65,6 +65,8 @@ files are kept in \fB/etc/postfix\fR.
|
||||
.IP "\fB-F \fIfull_name\fR
|
||||
Set the sender full name. This is used only with messages that
|
||||
have no \fBFrom:\fR message header.
|
||||
.IP "\fB-G\fR (ignored)"
|
||||
Gateway (relay) submission, as opposed to initial user submission.
|
||||
.IP \fB-I\fR
|
||||
Initialize alias database. See the \fBnewaliases\fR
|
||||
command above.
|
||||
|
@ -14,7 +14,8 @@ format of the Postfix alias database
|
||||
.ad
|
||||
.fi
|
||||
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
|
||||
result, an indexed file in \fBdbm\fR or \fBdb\fR format, is
|
||||
|
@ -12,15 +12,16 @@ format of Postfix canonical table
|
||||
.SH DESCRIPTION
|
||||
.ad
|
||||
.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
|
||||
\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,
|
||||
is used for fast searching by the mail system. Execute the command
|
||||
\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
|
||||
or SQL, the same lookups are done as for ordinary indexed files.
|
||||
|
@ -12,20 +12,21 @@ format of Postfix virtual table
|
||||
.SH DESCRIPTION
|
||||
.ad
|
||||
.fi
|
||||
The optional \fBvirtual\fR table specifies redirections for local
|
||||
and non-local recipients or domains. The redirections are used by
|
||||
the \fBcleanup\fR(8) daemon. The redirections are recursive.
|
||||
The optional \fBvirtual\fR table specifies address redirections for
|
||||
local and non-local recipients or domains. The redirections are used
|
||||
by the \fBcleanup\fR(8) daemon. The redirections are recursive.
|
||||
|
||||
The \fBvirtual\fR redirection is applied only to the recipient
|
||||
envelope address, and does not affect message headers.
|
||||
The \fBvirtual\fR redirection is applied only to recipient
|
||||
envelope addresses, and does not affect message headers.
|
||||
Think Sendmail rule set \fBS0\fR, if you like. Use \fBcanonical\fR(5)
|
||||
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,
|
||||
is used for fast searching by the mail system. Execute the command
|
||||
\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
|
||||
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
|
||||
map where patterns are given as regular expressions. In that case,
|
||||
the lookups are done in a slightly different way as described below.
|
||||
.SH TABLE FORMAT
|
||||
.SH POSTFIX-STYLE VIRTUAL DOMAINS
|
||||
.na
|
||||
.nf
|
||||
.ad
|
||||
.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
|
||||
.nf
|
||||
\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
|
||||
.in -4
|
||||
|
||||
With this, the SMTP server accepts mail for \fIvirtual.domain\fR and
|
||||
rejects mail for \fIunknown\fR@\fIvirtual.domain\fR as undeliverable.
|
||||
The \fIvirtual.domain anything\fR entry is required for a
|
||||
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
|
||||
tried in the order as listed in this manual page:
|
||||
.IP "blanks and comments"
|
||||
|
@ -50,7 +50,7 @@ This wakeup request from the master is an alternative way to
|
||||
request \fBFLUSH_REQ_REFRESH\fR.
|
||||
.IP "\fBFLUSH_REQ_REFRESH\fR (completes in the background)"
|
||||
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.
|
||||
.sp
|
||||
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
|
||||
send requests (see above) for the corresponding destinations.
|
||||
This can be incredibly expensive when logging is enabled for
|
||||
all deferred mail, and is not recommended.
|
||||
many destinations, and is not recommended.
|
||||
.sp
|
||||
Delete empty per-destination logfiles that were not updated in
|
||||
\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.
|
||||
|
||||
Upon receipt of a request to deliver all mail for an eligible
|
||||
destination, this server requests delivery of all messages that
|
||||
are listed in that destination's logfile, regardless of the
|
||||
destination, the \fBflush\fR server requests delivery of all messages
|
||||
that are listed in that destination's logfile, regardless of the
|
||||
recipients of those messages. This is not an issue for mail
|
||||
that is sent to a \fBrelay_domains\fR destination because
|
||||
such mail typically only has recipients in one domain.
|
||||
|
@ -284,6 +284,9 @@ a configuration change.
|
||||
.fi
|
||||
.IP \fBalias_maps\fR
|
||||
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
|
||||
When delivering to an alias that has an owner- companion alias,
|
||||
set the envelope sender address to the right-hand side of the
|
||||
|
@ -138,6 +138,9 @@ per message delivery.
|
||||
.IP \fBsmtpd_timeout\fR
|
||||
Limit the time to send a server response and to receive a client
|
||||
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"
|
||||
.ad
|
||||
.fi
|
||||
|
@ -8,7 +8,8 @@
|
||||
# \fBnewaliases\fR
|
||||
# DESCRIPTION
|
||||
# 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
|
||||
# result, an indexed file in \fBdbm\fR or \fBdb\fR format, is
|
||||
|
@ -6,15 +6,16 @@
|
||||
# SYNOPSIS
|
||||
# \fBpostmap /etc/postfix/canonical\fR
|
||||
# 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
|
||||
# \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,
|
||||
# is used for fast searching by the mail system. Execute the command
|
||||
# \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
|
||||
# or SQL, the same lookups are done as for ordinary indexed files.
|
||||
|
@ -6,20 +6,21 @@
|
||||
# SYNOPSIS
|
||||
# \fBpostmap /etc/postfix/virtual\fR
|
||||
# DESCRIPTION
|
||||
# The optional \fBvirtual\fR table specifies redirections for local
|
||||
# and non-local recipients or domains. The redirections are used by
|
||||
# the \fBcleanup\fR(8) daemon. The redirections are recursive.
|
||||
# The optional \fBvirtual\fR table specifies address redirections for
|
||||
# local and non-local recipients or domains. The redirections are used
|
||||
# by the \fBcleanup\fR(8) daemon. The redirections are recursive.
|
||||
#
|
||||
# The \fBvirtual\fR redirection is applied only to the recipient
|
||||
# envelope address, and does not affect message headers.
|
||||
# The \fBvirtual\fR redirection is applied only to recipient
|
||||
# envelope addresses, and does not affect message headers.
|
||||
# Think Sendmail rule set \fBS0\fR, if you like. Use \fBcanonical\fR(5)
|
||||
# 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,
|
||||
# is used for fast searching by the mail system. Execute the command
|
||||
# \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
|
||||
# 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
|
||||
# map where patterns are given as regular expressions. In that case,
|
||||
# the lookups are done in a slightly different way as described below.
|
||||
# TABLE FORMAT
|
||||
# POSTFIX-STYLE VIRTUAL DOMAINS
|
||||
# .ad
|
||||
# .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
|
||||
# .nf
|
||||
# \fIvirtual.domain anything\fR (right-hand content does not matter)
|
||||
@ -41,9 +53,62 @@
|
||||
# .fi
|
||||
# .in -4
|
||||
#
|
||||
# With this, the SMTP server accepts mail for \fIvirtual.domain\fR and
|
||||
# rejects mail for \fIunknown\fR@\fIvirtual.domain\fR as undeliverable.
|
||||
# The \fIvirtual.domain anything\fR entry is required for a
|
||||
# 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
|
||||
# tried in the order as listed in this manual page:
|
||||
# .IP "blanks and comments"
|
||||
@ -94,11 +159,11 @@
|
||||
# or \fBpcre_table\fR(5).
|
||||
#
|
||||
# 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,
|
||||
# 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.
|
||||
#
|
||||
# Results are the same as with normal indexed file lookups, with
|
||||
|
@ -15,7 +15,7 @@
|
||||
* Version of this program.
|
||||
*/
|
||||
#define VAR_MAIL_VERSION "mail_version"
|
||||
#define DEF_MAIL_VERSION "Snapshot-20001109"
|
||||
#define DEF_MAIL_VERSION "Snapshot-20001118"
|
||||
extern char *var_mail_version;
|
||||
|
||||
/* LICENSE
|
||||
|
@ -256,6 +256,9 @@
|
||||
/* .fi
|
||||
/* .IP \fBalias_maps\fR
|
||||
/* 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
|
||||
/* When delivering to an alias that has an owner- companion alias,
|
||||
/* 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 directory does not exist.
|
||||
*/
|
||||
if ((mypwd = mypwnam(state.msg_attr.user)) == 0)
|
||||
return (deliver_unknown(state, usr_attr));
|
||||
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)
|
||||
return (defer_append(BOUNCE_FLAG_KEEP,
|
||||
BOUNCE_ATTR(state.msg_attr),
|
||||
|
@ -143,6 +143,7 @@
|
||||
#include <stringops.h>
|
||||
#include <myflock.h>
|
||||
#include <watchdog.h>
|
||||
#include <clean_env.h>
|
||||
|
||||
/* Global library. */
|
||||
|
||||
@ -183,6 +184,12 @@ int main(int argc, char **argv)
|
||||
if (getenv(CONF_ENV_DEBUG))
|
||||
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.
|
||||
*/
|
||||
@ -202,12 +209,16 @@ int main(int argc, char **argv)
|
||||
* 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
|
||||
* 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)
|
||||
fd_limit = 500;
|
||||
for (fd = 3; fd < fd_limit; fd++)
|
||||
if ((n = fcntl(fd, F_GETFD, 0)) >= 0 && (n & FD_CLOEXEC) == 0)
|
||||
fcntl(fd, F_SETFD, n | FD_CLOEXEC);
|
||||
(void) close(fd);
|
||||
|
||||
/*
|
||||
* Initialize logging and exit handler.
|
||||
|
@ -51,7 +51,8 @@
|
||||
/* structure members. A null result means that the file could not be
|
||||
/* read or that the file contained incorrect information. Recipient
|
||||
/* 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
|
||||
/* 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
|
||||
* 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
|
||||
* 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_list.len)
|
||||
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)
|
||||
msg_fatal("seek file %s: %m", VSTREAM_PATH(message->fp));
|
||||
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) {
|
||||
QMGR_LIST_ROTATE(job->peer_list, peer, peers);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -141,11 +141,12 @@ void qmgr_queue_unthrottle(QMGR_QUEUE *queue)
|
||||
|
||||
/*
|
||||
* 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
|
||||
|| transport->dest_concurrency_limit > queue->window)
|
||||
if (queue->window <= queue->busy_refcount)
|
||||
if (queue->window <= queue->busy_refcount + transport->init_dest_concurrency)
|
||||
queue->window++;
|
||||
}
|
||||
|
||||
|
@ -143,11 +143,12 @@ void qmgr_queue_unthrottle(QMGR_QUEUE *queue)
|
||||
|
||||
/*
|
||||
* 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
|
||||
|| transport->dest_concurrency_limit > queue->window)
|
||||
if (queue->window <= queue->busy_refcount)
|
||||
if (queue->window <= queue->busy_refcount + transport->init_dest_concurrency)
|
||||
queue->window++;
|
||||
}
|
||||
|
||||
|
@ -59,6 +59,8 @@
|
||||
/* .IP "\fB-F \fIfull_name\fR
|
||||
/* Set the sender full name. This is used only with messages that
|
||||
/* have no \fBFrom:\fR message header.
|
||||
/* .IP "\fB-G\fR (ignored)"
|
||||
/* Gateway (relay) submission, as opposed to initial user submission.
|
||||
/* .IP \fB-I\fR
|
||||
/* Initialize alias database. See the \fBnewaliases\fR
|
||||
/* command above.
|
||||
@ -568,7 +570,7 @@ static void flush_queue(void)
|
||||
|
||||
/* 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;
|
||||
|
||||
@ -791,7 +793,7 @@ int main(int argc, char **argv)
|
||||
optind++;
|
||||
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;
|
||||
switch (c) {
|
||||
default:
|
||||
@ -805,6 +807,8 @@ int main(int argc, char **argv)
|
||||
case 'F': /* full name */
|
||||
full_name = optarg;
|
||||
break;
|
||||
case 'G': /* gateway submission */
|
||||
break;
|
||||
case 'I': /* newaliases */
|
||||
mode = SM_MODE_NEWALIAS;
|
||||
break;
|
||||
|
@ -124,6 +124,9 @@
|
||||
/* .IP \fBsmtpd_timeout\fR
|
||||
/* Limit the time to send a server response and to receive a client
|
||||
/* 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"
|
||||
/* .ad
|
||||
/* .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
|
||||
* whitespace, so that it won't be considered as being part of our own
|
||||
* 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))
|
||||
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);
|
||||
len = VSTRING_LEN(state->buffer);
|
||||
if (first) {
|
||||
if (strncmp(start + strspn(start, ">"), "From ", 5) == 0) {
|
||||
rec_fprintf(state->cleanup, curr_rec_type,
|
||||
"Mbox-Line: %s", start);
|
||||
continue;
|
||||
}
|
||||
first = 0;
|
||||
if (len > 0 && ISSPACE(start[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
|
||||
&& *start == '.' && (++start, --len) == 0)
|
||||
|
@ -28,6 +28,8 @@
|
||||
/*
|
||||
/* smtpd_chat_reply() formats a server reply, sends it to the
|
||||
/* 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
|
||||
/* 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);
|
||||
vstring_vsprintf(state->buffer, format, ap);
|
||||
va_end(ap);
|
||||
if (var_soft_bounce && STR(state->buffer)[0] == '5')
|
||||
STR(state->buffer)[0] = '4';
|
||||
smtp_chat_append(state, "Out: ");
|
||||
|
||||
if (msg_verbose)
|
||||
|
@ -1956,52 +1956,45 @@ char *smtpd_check_rcptmap(SMTPD_STATE *state, char *recipient)
|
||||
if (!resolve_local(domain))
|
||||
SMTPD_CHECK_RCPT_RETURN(0);
|
||||
|
||||
/*
|
||||
* Reject mail to unknown addresses in domains that match $mydestination
|
||||
* 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)
|
||||
#define NOMATCH(map, rcpt) \
|
||||
(mail_addr_find(map, rcpt, (char **) 0) == 0 && dict_errno == 0)
|
||||
|
||||
if (resolve_local(domain)) {
|
||||
if (*var_virtual_maps
|
||||
&& maps_find(virtual_maps, domain, 0)) {
|
||||
msg_warn("virtual domain \"%s\" is listed in $mydestination",
|
||||
domain);
|
||||
msg_warn("the $local_recipient_maps feature requires that no");
|
||||
msg_warn("virtual domains are listed in $mydestination");
|
||||
msg_warn("be sure to specify the required \"%s whatever\"",
|
||||
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)) {
|
||||
/*
|
||||
* Reject mail to unknown addresses in Postfix-style virtual domains.
|
||||
*/
|
||||
if (*var_virtual_maps && maps_find(virtual_maps, domain, 0)) {
|
||||
if (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))) {
|
||||
(void) smtpd_check_reject(state, MAIL_ERROR_BOUNCE,
|
||||
"%d <%s>: User unknown",
|
||||
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);
|
||||
"%d <%s>: User unknown", 550, recipient);
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -47,6 +47,8 @@ OK
|
||||
>>> client foo 123.123.123.123
|
||||
OK
|
||||
>>> 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
|
||||
450 <foo.>: Helo command rejected: Host not found
|
||||
>>> helo foo
|
||||
@ -65,6 +67,8 @@ OK
|
||||
OK
|
||||
>>> 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: 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
|
||||
>>> helo_restrictions permit_naked_ip_address,reject_invalid_hostname,reject_unknown_hostname
|
||||
|
@ -47,6 +47,8 @@ OK
|
||||
>>> client foo 123.123.123.123
|
||||
OK
|
||||
>>> 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
|
||||
450 <foo.>: Helo command rejected: Host not found
|
||||
>>> helo foo
|
||||
|
@ -38,6 +38,8 @@
|
||||
void clean_env(void)
|
||||
{
|
||||
char *TZ;
|
||||
char *DISPLAY;
|
||||
char *XAUTHORITY;
|
||||
extern char **environ;
|
||||
|
||||
/*
|
||||
@ -45,6 +47,8 @@ void clean_env(void)
|
||||
* configurable.
|
||||
*/
|
||||
TZ = getenv("TZ");
|
||||
DISPLAY = getenv("DISPLAY");
|
||||
XAUTHORITY = getenv("XAUTHORITY");
|
||||
|
||||
/*
|
||||
* Truncate the process environment, if available. On some systems
|
||||
@ -58,6 +62,10 @@ void clean_env(void)
|
||||
*/
|
||||
if (TZ && setenv("TZ", TZ, 1))
|
||||
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.
|
||||
|
@ -676,15 +676,17 @@ DICT *dict_ldap_open(const char *ldapsource, int dummy, int dict_flags)
|
||||
domainlist =
|
||||
mystrdup((char *) get_mail_conf_str(vstring_str(config_param),
|
||||
"", 0, 0));
|
||||
if (domainlist) {
|
||||
if (*domainlist) {
|
||||
dict_ldap->domain = match_list_init(domainlist, 1, match_string);
|
||||
if (dict_ldap->domain == NULL)
|
||||
msg_warn("%s: domain match list creation using \"%s\" failed, will continue without it", myname, domainlist);
|
||||
if (msg_verbose)
|
||||
msg_info("%s: domain list created using \"%s\"", myname,
|
||||
domainlist);
|
||||
myfree(domainlist);
|
||||
} else {
|
||||
dict_ldap->domain = NULL;
|
||||
}
|
||||
myfree(domainlist);
|
||||
|
||||
/*
|
||||
* get configured value of "ldapsource_timeout"; default to 10 seconds
|
||||
|
Loading…
x
Reference in New Issue
Block a user