From: Wietse Venema
Forward secrecy protects network communication in the absence +of active attacks, i.e. no forged DNS replies, and no forged TLS +server certificates. If active attacks are a concern, then you will +need to authenticate the remote SMTP server in a secure manner. +For example, by the fingerprint of the public key or certificate. +Conventional PKI relies on too many trusted parties.
+Topics covered in this document:
- main.cf:
- # Postfix ≥ 2.6
- smtpd_tls_eecdh_grade = strong
- # All versions of Postfix:
- smtpd_tls_dh1024_param_file = ${config_directory}/dh2048.pem
- smtpd_tls_dh512_param_file = ${config_directory}/dh512.pem
+/etc/postfix/main.cf:
+ # Postfix ≥ 2.6
+ smtpd_tls_eecdh_grade = strong
+ # All versions of Postfix:
+ smtpd_tls_dh1024_param_file = ${config_directory}/dh2048.pem
+ smtpd_tls_dh512_param_file = ${config_directory}/dh512.pem
@@ -285,14 +294,76 @@ need to adjust the submission entry in master.cf acc
-master.cf:
- submission inet n - n - - smtpd
- # Some submission clients may not yet do 2048-bit EDH, if such
- # clients use your MSA, configure 1024-bit EDH instead:
- -o smtpd_tls_dh1024_param_file=${config_directory}/dh1024.pem
- -o smtpd_tls_security_level=encrypt
- -o smtpd_sasl_auth_enable=yes
- ...
+/etc/postfix/master.cf:
+ submission inet n - n - - smtpd
+ # Some submission clients may not yet do 2048-bit EDH, if such
+ # clients use your MSA, configure 1024-bit EDH instead:
+ -o smtpd_tls_dh1024_param_file=${config_directory}/dh1024.pem
+ -o smtpd_tls_security_level=encrypt
+ -o smtpd_sasl_auth_enable=yes
+ ...
+
+
+
+Postfix reports TLS connection information in several ways:
+ +With "smtp_tls_loglevel = 1" and "smtpd_tls_loglevel = 1", +the Postfix SMTP client and server will log information about, among +others, the remote peer certificate or public-key verification +status, the negotiated cipher, and key lengths. The general logfile +format is:
+ +++ ++postfix/smtp[xxx]: Trusted TLS connection established to host.example.com[192.168.0.2]:25: TLSv1 with cipher XXX (YYY/ZZZ bits) + +postfix/smtpd[xxx]: Untrusted TLS connection established from host.example.com[192.168.0.2]: TLSv1 with cipher XXX (YYY/ZZZ bits) ++
With "smtpd_tls_received_header = yes", the Postfix SMTP +server will record similar information in the Received: header in +the form of comments (text inside parentheses). The general format +is:
+ +++ ++Received: from host.example.com (host.example.com [192.168.0.2]) + (using TLSv1 with cipher XXX (YYY/ZZZ bits)) + (Client CN "host.example.com", Issuer "Wietse Venema" (not verified)) ++
There are dozens of ciphers that support forward secrecy. What +follows is the beginning of a list of 51 ciphers available with +OpenSSL 1.0.1e:
+ +
+
+$ openssl ciphers -v \
+ 'aNULL:-aNULL:kEECDH:kEDH:+RC4:!eNULL:!EXPORT:!LOW:@STRENGTH' |
+ awk '{printf "%-32s %s\n", $1, $3}'
+AECDH-AES256-SHA Kx=ECDH
+ECDHE-RSA-AES256-GCM-SHA384 Kx=ECDH
+ECDHE-ECDSA-AES256-GCM-SHA384 Kx=ECDH
+ECDHE-RSA-AES256-SHA384 Kx=ECDH
+ECDHE-ECDSA-AES256-SHA384 Kx=ECDH
+ECDHE-RSA-AES256-SHA Kx=ECDH
+ECDHE-ECDSA-AES256-SHA Kx=ECDH
+ADH-AES256-GCM-SHA384 Kx=DH
+ADH-AES256-SHA256 Kx=DH
+ADH-AES256-SHA Kx=DH
+ADH-CAMELLIA256-SHA Kx=DH
+DHE-DSS-AES256-GCM-SHA384 Kx=DH
+DHE-RSA-AES256-GCM-SHA384 Kx=DH
+DHE-RSA-AES256-SHA256 Kx=DH
+...
diff --git a/postfix/html/Makefile.in b/postfix/html/Makefile.in
index a9d4b1169..5a2ae6b37 100644
--- a/postfix/html/Makefile.in
+++ b/postfix/html/Makefile.in
@@ -24,7 +24,7 @@ CONFIG = access.5.html aliases.5.html canonical.5.html relocated.5.html \
master.5.html nisplus_table.5.html generic.5.html bounce.5.html \
postfix-wrapper.5.html sqlite_table.5.html socketmap_table.5.html
OTHER = postfix-manuals.html
-AWK = awk '{ print; if (NR == 2) print ".pl 9999\n.ll 65" }'
+AWK = awk '{ print; if (NR == 2) print ".pl 99999\n.ll 78" }'
MAN2HTML = man2html -t "Postfix manual - `IFS=.; set \`echo $@\`; echo \"$$1($$2)\"`"
NROFF = GROFF_NO_SGR=1 nroff
diff --git a/postfix/html/access.5.html b/postfix/html/access.5.html
index 6c7a904d2..29a68b96c 100644
--- a/postfix/html/access.5.html
+++ b/postfix/html/access.5.html
@@ -17,110 +17,96 @@ ACCESS(5) ACCESS(5)
postmap -q - /etc/postfix/access <inputfile
DESCRIPTION
- This document describes access control on remote SMTP
- client information: host names, network addresses, and
- envelope sender or recipient addresses; it is implemented
- by the Postfix SMTP server. See header_checks(5) or
- body_checks(5) for access control on the content of email
- messages.
-
- Normally, the access(5) 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/access" to rebuild an indexed file
+ This document describes access control on remote SMTP client informa-
+ tion: host names, network addresses, and envelope sender or recipient
+ addresses; it is implemented by the Postfix SMTP server. See
+ header_checks(5) or body_checks(5) for access control on the content of
+ email messages.
+
+ Normally, the access(5) 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/access" to rebuild an indexed file
after changing the corresponding text file.
- When the table is provided via other means such as NIS,
- LDAP or SQL, the same lookups are done as for ordinary
- indexed files.
+ 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-
- expression map where patterns are given as regular expres-
- sions, or lookups can be directed to TCP-based server. In
- those cases, the lookups are done in a slightly different
- way as described below under "REGULAR EXPRESSION TABLES"
- or "TCP-BASED TABLES".
+ Alternatively, the table can be provided as a regular-expression map
+ where patterns are given as regular expressions, or lookups can be
+ directed to TCP-based server. In those cases, the lookups are done in a
+ slightly different way as described below under "REGULAR EXPRESSION
+ TABLES" or "TCP-BASED TABLES".
CASE FOLDING
- The search string is folded to lowercase before database
- lookup. As of Postfix 2.3, the search string is not case
- folded with database types such as regexp: or pcre: whose
- lookup fields can match both upper and lower case.
+ The search string is folded to lowercase before database lookup. As of
+ Postfix 2.3, the search string is not case folded with database types
+ such as regexp: or pcre: whose lookup fields can match both upper and
+ lower case.
TABLE FORMAT
The input format for the postmap(1) command is as follows:
pattern action
- When pattern matches a mail address, domain or host
- address, perform the corresponding action.
+ When pattern matches a mail address, domain or host address,
+ perform the corresponding action.
blank lines and comments
- Empty lines and whitespace-only lines are ignored,
- as are lines whose first non-whitespace character
- is a `#'.
+ Empty lines and whitespace-only lines are ignored, as are lines
+ whose first non-whitespace character is a `#'.
multi-line text
- A logical line starts with non-whitespace text. A
- line that starts with whitespace continues a logi-
- cal line.
+ A logical line starts with non-whitespace text. A line that
+ starts with whitespace continues a logical line.
EMAIL ADDRESS PATTERNS
- With lookups from indexed files such as DB or DBM, or from
- networked tables such as NIS, LDAP or SQL, patterns are
- tried in the order as listed below:
+ With lookups from indexed files such as DB or DBM, or from networked
+ tables such as NIS, LDAP or SQL, patterns are tried in the order as
+ listed below:
user@domain
Matches the specified mail address.
domain.tld
- Matches domain.tld as the domain part of an email
- address.
+ Matches domain.tld as the domain part of an email address.
- The pattern domain.tld also matches subdomains, but
- only when the string smtpd_access_maps is listed in
- the Postfix parent_domain_matches_subdomains con-
- figuration setting.
+ The pattern domain.tld also matches subdomains, but only when
+ the string smtpd_access_maps is listed in the Postfix par-
+ ent_domain_matches_subdomains configuration setting.
.domain.tld
- Matches subdomains of domain.tld, but only when the
- string smtpd_access_maps is not listed in the Post-
- fix parent_domain_matches_subdomains configuration
- setting.
+ Matches subdomains of domain.tld, but only when the string
+ smtpd_access_maps is not listed in the Postfix par-
+ ent_domain_matches_subdomains configuration setting.
- user@ Matches all mail addresses with the specified user
- part.
+ user@ Matches all mail addresses with the specified user part.
- Note: lookup of the null sender address is not possible
- with some types of lookup table. By default, Postfix uses
- <> as the lookup key for such addresses. The value is
- specified with the smtpd_null_access_lookup_key parameter
- in the Postfix main.cf file.
+ Note: lookup of the null sender address is not possible with some types
+ of lookup table. By default, Postfix uses <> as the lookup key for such
+ addresses. The value is specified with the smtpd_null_access_lookup_key
+ parameter in the Postfix main.cf file.
EMAIL ADDRESS EXTENSION
- When a mail address localpart contains the optional recip-
- ient delimiter (e.g., user+foo@domain), the lookup order
- becomes: user+foo@domain, user@domain, domain, user+foo@,
- and user@.
+ When a mail address localpart contains the optional recipient delimiter
+ (e.g., user+foo@domain), the lookup order becomes: user+foo@domain,
+ user@domain, domain, user+foo@, and user@.
HOST NAME/ADDRESS PATTERNS
- With lookups from indexed files such as DB or DBM, or from
- networked tables such as NIS, LDAP or SQL, the following
- lookup patterns are examined in the order as listed:
+ With lookups from indexed files such as DB or DBM, or from networked
+ tables such as NIS, LDAP or SQL, the following lookup patterns are
+ examined in the order as listed:
domain.tld
Matches domain.tld.
- The pattern domain.tld also matches subdomains, but
- only when the string smtpd_access_maps is listed in
- the Postfix parent_domain_matches_subdomains con-
- figuration setting.
+ The pattern domain.tld also matches subdomains, but only when
+ the string smtpd_access_maps is listed in the Postfix par-
+ ent_domain_matches_subdomains configuration setting.
.domain.tld
- Matches subdomains of domain.tld, but only when the
- string smtpd_access_maps is not listed in the Post-
- fix parent_domain_matches_subdomains configuration
- setting.
+ Matches subdomains of domain.tld, but only when the string
+ smtpd_access_maps is not listed in the Postfix par-
+ ent_domain_matches_subdomains configuration setting.
net.work.addr.ess
@@ -128,23 +114,21 @@ ACCESS(5) ACCESS(5)
net.work
- net Matches the specified IPv4 host address or subnet-
- work. An IPv4 host address is a sequence of four
- decimal octets separated by ".".
+ net Matches the specified IPv4 host address or subnetwork. An IPv4
+ host address is a sequence of four decimal octets separated by
+ ".".
- Subnetworks are matched by repeatedly truncating
- the last ".octet" from the remote IPv4 host address
- string until a match is found in the access table,
- or until further truncation is not possible.
+ Subnetworks are matched by repeatedly truncating the last
+ ".octet" from the remote IPv4 host address string until a match
+ is found in the access table, or until further truncation is not
+ possible.
- NOTE 1: The access map lookup key must be in canon-
- ical form: do not specify unnecessary null charac-
- ters, and do not enclose network address informa-
- tion with "[]" characters.
+ NOTE 1: The access map lookup key must be in canonical form: do
+ not specify unnecessary null characters, and do not enclose net-
+ work address information with "[]" characters.
- NOTE 2: use the cidr lookup table type to specify
- network/netmask patterns. See cidr_table(5) for
- details.
+ NOTE 2: use the cidr lookup table type to specify network/net-
+ mask patterns. See cidr_table(5) for details.
net:work:addr:ess
@@ -152,27 +136,25 @@ ACCESS(5) ACCESS(5)
net:work
- net Matches the specified IPv6 host address or subnet-
- work. An IPv6 host address is a sequence of three
- to eight hexadecimal octet pairs separated by ":".
+ net Matches the specified IPv6 host address or subnetwork. An IPv6
+ host address is a sequence of three to eight hexadecimal octet
+ pairs separated by ":".
- Subnetworks are matched by repeatedly truncating
- the last ":octetpair" from the remote IPv6 host
- address string until a match is found in the access
- table, or until further truncation is not possible.
+ Subnetworks are matched by repeatedly truncating the last
+ ":octetpair" from the remote IPv6 host address string until a
+ match is found in the access table, or until further truncation
+ is not possible.
- NOTE 1: the truncation and comparison are done with
- the string representation of the IPv6 host address.
- Thus, not all the ":" subnetworks will be tried.
+ NOTE 1: the truncation and comparison are done with the string
+ representation of the IPv6 host address. Thus, not all the ":"
+ subnetworks will be tried.
- NOTE 2: The access map lookup key must be in canon-
- ical form: do not specify unnecessary null charac-
- ters, and do not enclose network address informa-
- tion with "[]" characters.
+ NOTE 2: The access map lookup key must be in canonical form: do
+ not specify unnecessary null characters, and do not enclose net-
+ work address information with "[]" characters.
- NOTE 3: use the cidr lookup table type to specify
- network/netmask patterns. See cidr_table(5) for
- details.
+ NOTE 3: use the cidr lookup table type to specify network/net-
+ mask patterns. See cidr_table(5) for details.
IPv6 support is available in Postfix 2.2 and later.
@@ -180,77 +162,72 @@ ACCESS(5) ACCESS(5)
OK Accept the address etc. that matches the pattern.
all-numerical
- An all-numerical result is treated as OK. This for-
- mat is generated by address-based relay authoriza-
- tion schemes such as pop-before-smtp.
+ An all-numerical result is treated as OK. This format is gener-
+ ated by address-based relay authorization schemes such as pop-
+ before-smtp.
For other accept actions, see "OTHER ACTIONS" below.
REJECT ACTIONS
- Postfix version 2.3 and later support enhanced status
- codes as defined in RFC 3463. When no code is specified
- at the beginning of the text below, Postfix inserts a
- default enhanced status code of "5.7.1" in the case of
- reject actions, and "4.7.1" in the case of defer actions.
- See "ENHANCED STATUS CODES" below.
+ Postfix version 2.3 and later support enhanced status codes as defined
+ in RFC 3463. When no code is specified at the beginning of the text
+ below, Postfix inserts a default enhanced status code of "5.7.1" in the
+ case of reject actions, and "4.7.1" in the case of defer actions. See
+ "ENHANCED STATUS CODES" below.
4NN text
5NN text
- Reject the address etc. that matches the pattern,
- and respond with the numerical three-digit code and
- text. 4NN means "try again later", while 5NN means
- "do not try again".
+ Reject the address etc. that matches the pattern, and respond
+ with the numerical three-digit code and text. 4NN means "try
+ again later", while 5NN means "do not try again".
- The following responses have special meaning for
- the Postfix SMTP server:
+ The following responses have special meaning for the Postfix
+ SMTP server:
421 text (Postfix 2.3 and later)
521 text (Postfix 2.6 and later)
- After responding with the numerical three-
- digit code and text, disconnect immediately
- from the SMTP client. This frees up SMTP
- server resources so that they can be made
+ After responding with the numerical three-digit code and
+ text, disconnect immediately from the SMTP client. This
+ frees up SMTP server resources so that they can be made
available to another SMTP client.
- Note: The "521" response should be used only
- with botnets and other malware where inter-
- operability is of no concern. The "send 521
- and disconnect" behavior is NOT defined in
- the SMTP standard.
+ Note: The "521" response should be used only with botnets
+ and other malware where interoperability is of no con-
+ cern. The "send 521 and disconnect" behavior is NOT
+ defined in the SMTP standard.
REJECT optional text...
- Reject the address etc. that matches the pattern.
- Reply with "$access_map_reject_code optional
- text..." when the optional text is specified, oth-
- erwise reply with a generic error response message.
+ Reject the address etc. that matches the pattern. Reply with
+ "$access_map_reject_code optional text..." when the optional
+ text is specified, otherwise reply with a generic error response
+ message.
DEFER optional text...
- Reject the address etc. that matches the pattern.
- Reply with "$access_map_defer_code optional
- text..." when the optional text is specified, oth-
- erwise reply with a generic error response message.
+ Reject the address etc. that matches the pattern. Reply with
+ "$access_map_defer_code optional text..." when the optional text
+ is specified, otherwise reply with a generic error response mes-
+ sage.
This feature is available in Postfix 2.6 and later.
DEFER_IF_REJECT optional text...
- Defer the request if some later restriction would
- result in a REJECT action. Reply with
- "$access_map_defer_code 4.7.1 optional text..."
- when the optional text is specified, otherwise
- reply with a generic error response message.
+ Defer the request if some later restriction would result in a
+ REJECT action. Reply with "$access_map_defer_code 4.7.1 optional
+ text..." when the optional text is specified, otherwise reply
+ with a generic error response message.
Prior to Postfix 2.6, the SMTP reply code is 450.
This feature is available in Postfix 2.1 and later.
DEFER_IF_PERMIT optional text...
- Defer the request if some later restriction would
- result in a an explicit or implicit PERMIT action.
- Reply with "$access_map_defer_code 4.7.1 optional
- text..." when the optional text is specified, oth-
- erwise reply with a generic error response message.
+ Defer the request if some later restriction would result in a an
+ explicit or implicit PERMIT action. Reply with
+ "$access_map_defer_code 4.7.1 optional text..." when the
+ optional text is specified, otherwise reply with a generic error
+ response message.
Prior to Postfix 2.6, the SMTP reply code is 450.
@@ -260,192 +237,166 @@ ACCESS(5) ACCESS(5)
OTHER ACTIONS
restriction...
- Apply the named UCE restriction(s) (permit, reject,
+ Apply the named UCE restriction(s) (permit, reject,
reject_unauth_destination, and so on).
BCC user@domain
- Send one copy of the message to the specified
- recipient.
+ Send one copy of the message to the specified recipient.
- If multiple BCC actions are specified within the
- same SMTP MAIL transaction, only the last action
- will be used.
+ If multiple BCC actions are specified within the same SMTP MAIL
+ transaction, only the last action will be used.
- This feature is not part of the stable Postfix
- release.
+ This feature is not part of the stable Postfix release.
DISCARD optional text...
- Claim successful delivery and silently discard the
- message. Log the optional text if specified, oth-
- erwise log a generic message.
+ Claim successful delivery and silently discard the message. Log
+ the optional text if specified, otherwise log a generic message.
- Note: this action currently affects all recipients
- of the message. To discard only one recipient
- without discarding the entire message, use the
- transport(5) table to direct mail to the discard(8)
- service.
+ Note: this action currently affects all recipients of the mes-
+ sage. To discard only one recipient without discarding the
+ entire message, use the transport(5) table to direct mail to the
+ discard(8) service.
This feature is available in Postfix 2.0 and later.
- DUNNO Pretend that the lookup key was not found. This
- prevents Postfix from trying substrings of the
- lookup key (such as a subdomain name, or a network
- address subnetwork).
+ DUNNO Pretend that the lookup key was not found. This prevents Postfix
+ from trying substrings of the lookup key (such as a subdomain
+ name, or a network address subnetwork).
This feature is available in Postfix 2.0 and later.
FILTER transport:destination
- After the message is queued, send the entire mes-
- sage through the specified external content filter.
- The transport name specifies the first field of a
- mail delivery agent definition in master.cf; the
- syntax of the next-hop destination is described in
- the manual page of the corresponding delivery
- agent. More information about external content
- filters is in the Postfix FILTER_README file.
-
- Note 1: do not use $number regular expression sub-
- stitutions for transport or destination unless you
- know that the information has a trusted origin.
-
- Note 2: this action overrides the main.cf con-
- tent_filter setting, and affects all recipients of
- the message. In the case that multiple FILTER
- actions fire, only the last one is executed.
-
- Note 3: the purpose of the FILTER command is to
- override message routing. To override the recipi-
- ent's transport but not the next-hop destination,
- specify an empty filter destination (Postfix 2.7
- and later), or specify a transport:destination that
- delivers through a different Postfix instance
- (Postfix 2.6 and earlier). Other options are using
- the recipient-dependent transport_maps or the sen-
- der-dependent sender_dependent_default_transport-
- _maps features.
+ After the message is queued, send the entire message through the
+ specified external content filter. The transport name specifies
+ the first field of a mail delivery agent definition in mas-
+ ter.cf; the syntax of the next-hop destination is described in
+ the manual page of the corresponding delivery agent. More
+ information about external content filters is in the Postfix
+ FILTER_README file.
+
+ Note 1: do not use $number regular expression substitutions for
+ transport or destination unless you know that the information
+ has a trusted origin.
+
+ Note 2: this action overrides the main.cf content_filter set-
+ ting, and affects all recipients of the message. In the case
+ that multiple FILTER actions fire, only the last one is exe-
+ cuted.
+
+ Note 3: the purpose of the FILTER command is to override message
+ routing. To override the recipient's transport but not the
+ next-hop destination, specify an empty filter destination (Post-
+ fix 2.7 and later), or specify a transport:destination that
+ delivers through a different Postfix instance (Postfix 2.6 and
+ earlier). Other options are using the recipient-dependent trans-
+ port_maps or the sender-dependent sender_dependent_default-
+ _transport_maps features.
This feature is available in Postfix 2.0 and later.
HOLD optional text...
- Place the message on the hold queue, where it will
- sit until someone either deletes it or releases it
- for delivery. Log the optional text if specified,
- otherwise log a generic message.
+ Place the message on the hold queue, where it will sit until
+ someone either deletes it or releases it for delivery. Log the
+ optional text if specified, otherwise log a generic message.
- Mail that is placed on hold can be examined with
- the postcat(1) command, and can be destroyed or
- released with the postsuper(1) command.
+ Mail that is placed on hold can be examined with the postcat(1)
+ command, and can be destroyed or released with the postsuper(1)
+ command.
- Note: use "postsuper -r" to release mail that was
- kept on hold for a significant fraction of $maxi-
- mal_queue_lifetime or $bounce_queue_lifetime, or
- longer. Use "postsuper -H" only for mail that will
- not expire within a few delivery attempts.
+ Note: use "postsuper -r" to release mail that was kept on hold
+ for a significant fraction of $maximal_queue_lifetime or
+ $bounce_queue_lifetime, or longer. Use "postsuper -H" only for
+ mail that will not expire within a few delivery attempts.
- Note: this action currently affects all recipients
- of the message.
+ Note: this action currently affects all recipients of the mes-
+ sage.
This feature is available in Postfix 2.0 and later.
PREPEND headername: headervalue
- Prepend the specified message header to the mes-
- sage. When more than one PREPEND action executes,
- the first prepended header appears before the sec-
- ond etc. prepended header.
+ Prepend the specified message header to the message. When more
+ than one PREPEND action executes, the first prepended header
+ appears before the second etc. prepended header.
- Note: this action must execute before the message
- content is received; it cannot execute in the con-
- text of smtpd_end_of_data_restrictions.
+ Note: this action must execute before the message content is
+ received; it cannot execute in the context of
+ smtpd_end_of_data_restrictions.
This feature is available in Postfix 2.1 and later.
REDIRECT user@domain
- After the message is queued, send the message to
- the specified address instead of the intended
- recipient(s).
+ After the message is queued, send the message to the specified
+ address instead of the intended recipient(s).
- Note: this action overrides the FILTER action, and
- currently affects all recipients of the message.
+ Note: this action overrides the FILTER action, and currently
+ affects all recipients of the message.
This feature is available in Postfix 2.1 and later.
WARN optional text...
- Log a warning with the optional text, together with
- client information and if available, with helo,
- sender, recipient and protocol information.
+ Log a warning with the optional text, together with client
+ information and if available, with helo, sender, recipient and
+ protocol information.
This feature is available in Postfix 2.1 and later.
ENHANCED STATUS CODES
- Postfix version 2.3 and later support enhanced status
- codes as defined in RFC 3463. When an enhanced status
- code is specified in an access table, it is subject to
- modification. The following transformations are needed
- when the same access table is used for client, helo,
- sender, or recipient access restrictions; they happen
- regardless of whether Postfix replies to a MAIL FROM, RCPT
- TO or other SMTP command.
-
- o When a sender address matches a REJECT action, the
- Postfix SMTP server will transform a recipient DSN
- status (e.g., 4.1.1-4.1.6) into the corresponding
- sender DSN status, and vice versa.
-
- o When non-address information matches a REJECT
- action (such as the HELO command argument or the
- client hostname/address), the Postfix SMTP server
- will transform a sender or recipient DSN status
- into a generic non-address DSN status (e.g.,
- 4.0.0).
+ Postfix version 2.3 and later support enhanced status codes as defined
+ in RFC 3463. When an enhanced status code is specified in an access
+ table, it is subject to modification. The following transformations are
+ needed when the same access table is used for client, helo, sender, or
+ recipient access restrictions; they happen regardless of whether Post-
+ fix replies to a MAIL FROM, RCPT TO or other SMTP command.
+
+ o When a sender address matches a REJECT action, the Postfix SMTP
+ server will transform a recipient DSN status (e.g., 4.1.1-4.1.6)
+ into the corresponding sender DSN status, and vice versa.
+
+ o When non-address information matches a REJECT action (such as
+ the HELO command argument or the client hostname/address), the
+ Postfix SMTP server will transform a sender or recipient DSN
+ status into a generic non-address DSN status (e.g., 4.0.0).
REGULAR EXPRESSION TABLES
- This section describes how the table lookups change when
- the table is given in the form of regular expressions. For
- a description of regular expression lookup table syntax,
- see regexp_table(5) or pcre_table(5).
-
- Each pattern is a regular expression that is applied to
- the entire string being looked up. Depending on the appli-
- cation, that string is an entire client hostname, an
- entire client IP address, or an entire mail address. Thus,
- no parent domain or parent network search is done,
- user@domain mail addresses are not broken up into their
- user@ and domain constituent parts, nor is user+foo broken
- up into user and foo.
-
- Patterns are applied in the order as specified in the ta-
- ble, until a pattern is found that matches the search
- string.
-
- Actions are the same as with indexed file lookups, with
- the additional feature that parenthesized substrings from
- the pattern can be interpolated as $1, $2 and so on.
+ This section describes how the table lookups change when the table is
+ given in the form of regular expressions. For a description of regular
+ expression lookup table syntax, see regexp_table(5) or pcre_table(5).
+
+ Each pattern is a regular expression that is applied to the entire
+ string being looked up. Depending on the application, that string is an
+ entire client hostname, an entire client IP address, or an entire mail
+ address. Thus, no parent domain or parent network search is done,
+ user@domain mail addresses are not broken up into their user@ and
+ domain constituent parts, nor is user+foo broken up into user and foo.
+
+ Patterns are applied in the order as specified in the table, until a
+ pattern is found that matches the search string.
+
+ Actions are the same as with indexed file lookups, with the additional
+ feature that parenthesized substrings from the pattern can be interpo-
+ lated as $1, $2 and so on.
TCP-BASED TABLES
- This section describes how the table lookups change when
- lookups are directed to a TCP-based server. For a descrip-
- tion of the TCP client/server lookup protocol, see tcp_ta-
- ble(5). This feature is not available up to and including
- Postfix version 2.4.
-
- Each lookup operation uses the entire query string once.
- Depending on the application, that string is an entire
- client hostname, an entire client IP address, or an entire
- mail address. Thus, no parent domain or parent network
- search is done, user@domain mail addresses are not broken
- up into their user@ and domain constituent parts, nor is
+ This section describes how the table lookups change when lookups are
+ directed to a TCP-based server. For a description of the TCP
+ client/server lookup protocol, see tcp_table(5). This feature is not
+ available up to and including Postfix version 2.4.
+
+ Each lookup operation uses the entire query string once. Depending on
+ the application, that string is an entire client hostname, an entire
+ client IP address, or an entire mail address. Thus, no parent domain
+ or parent network search is done, user@domain mail addresses are not
+ broken up into their user@ and domain constituent parts, nor is
user+foo broken up into user and foo.
Actions are the same as with indexed file lookups.
EXAMPLE
- The following example uses an indexed file, so that the
- order of table entries does not matter. The example per-
- mits access by the client at address 1.2.3.4 but rejects
- all other clients in 1.2.3.0/24. Instead of hash lookup
- tables, some systems use dbm. Use the command "postconf
- -m" to find out what lookup tables Postfix supports on
- your system.
+ The following example uses an indexed file, so that the order of table
+ entries does not matter. The example permits access by the client at
+ address 1.2.3.4 but rejects all other clients in 1.2.3.0/24. Instead of
+ hash lookup tables, some systems use dbm. Use the command "postconf
+ -m" to find out what lookup tables Postfix supports on your system.
/etc/postfix/main.cf:
smtpd_client_restrictions =
@@ -455,11 +406,11 @@ ACCESS(5) ACCESS(5)
1.2.3 REJECT
1.2.3.4 OK
- Execute the command "postmap /etc/postfix/access" after
- editing the file.
+ Execute the command "postmap /etc/postfix/access" after editing the
+ file.
BUGS
- The table format does not understand quoting conventions.
+ The table format does not understand quoting conventions.
SEE ALSO
postmap(1), Postfix lookup table manager
@@ -472,8 +423,7 @@ ACCESS(5) ACCESS(5)
DATABASE_README, Postfix lookup table overview
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
AUTHOR(S)
Wietse Venema
diff --git a/postfix/html/aliases.5.html b/postfix/html/aliases.5.html
index aa1b053e0..c550f7dda 100644
--- a/postfix/html/aliases.5.html
+++ b/postfix/html/aliases.5.html
@@ -13,31 +13,27 @@ ALIASES(5) ALIASES(5)
newaliases
DESCRIPTION
- The aliases(5) table provides a system-wide mechanism to
- redirect mail for local recipients. The redirections are
- processed by the Postfix local(8) delivery agent.
-
- Normally, the aliases(5) table is specified as a text file
- that serves as input to the postalias(1) command. The
- result, an indexed file in dbm or db format, is used for
- fast lookup by the mail system. Execute the command
- newaliases in order to rebuild the indexed file after
+ The aliases(5) table provides a system-wide mechanism to redirect mail
+ for local recipients. The redirections are processed by the Postfix
+ local(8) delivery agent.
+
+ Normally, the aliases(5) table is specified as a text file that serves
+ as input to the postalias(1) command. The result, an indexed file in
+ dbm or db format, is used for fast lookup by the mail system. Execute
+ the command newaliases in order to rebuild the indexed file after
changing the Postfix alias database.
- When the table is provided via other means such as NIS,
- LDAP or SQL, the same lookups are done as for ordinary
- indexed files.
+ 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-
- expression map where patterns are given as regular expres-
- sions. In this case, the lookups are done in a slightly
- different way as described below under "REGULAR EXPRESSION
- TABLES".
+ Alternatively, the table can be provided as a regular-expression map
+ where patterns are given as regular expressions. In this case, the
+ lookups are done in a slightly different way as described below under
+ "REGULAR EXPRESSION TABLES".
- Users can control delivery of their own mail by setting up
- .forward files in their home directory. Lines in per-user
- .forward files have the same syntax as the right-hand side
- of aliases(5) entries.
+ Users can control delivery of their own mail by setting up .forward
+ files in their home directory. Lines in per-user .forward files have
+ the same syntax as the right-hand side of aliases(5) entries.
The format of the alias database input file is as follows:
@@ -45,158 +41,137 @@ ALIASES(5) ALIASES(5)
name: value1, value2, ...
- o Empty lines and whitespace-only lines are ignored,
- as are lines whose first non-whitespace character
- is a `#'.
+ o Empty lines and whitespace-only lines are ignored, as are lines
+ whose first non-whitespace character is a `#'.
- o A logical line starts with non-whitespace text. A
- line that starts with whitespace continues a logi-
- cal line.
+ o A logical line starts with non-whitespace text. A line that
+ starts with whitespace continues a logical line.
- The name is a local address (no domain part). Use double
- quotes when the name contains any special characters such
- as whitespace, `#', `:', or `@'. The name is folded to
- lowercase, in order to make database lookups case insensi-
- tive.
+ 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 insensitive.
- In addition, when an alias exists for owner-name, delivery
- diagnostics are directed to that address, instead of to
- the originator of the message. This is typically used to
- direct delivery errors to the maintainer of a mailing
- list, who is in a better position to deal with mailing
- list delivery problems than the originator of the undeliv-
- ered mail.
+ In addition, when an alias exists for owner-name, delivery diagnostics
+ are directed to that address, instead of to the originator of the mes-
+ sage. This is typically used to direct delivery errors to the main-
+ tainer 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
- with the RFC 822 standard.
+ 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
- unwanted mail, deflect it to /dev/null.
+ Mail is appended to /file/name. See local(8) for details of
+ delivery to file. Delivery is not limited to regular files.
+ For example, to dispose of unwanted mail, deflect it to
+ /dev/null.
|command
- Mail is piped into command. Commands that contain
- special characters, such as whitespace, should be
- enclosed between double quotes. 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
- implement an expensive black hole.
+ Mail is piped into command. Commands that contain special char-
+ acters, 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 simulate a "user unknown" error, and "|exit 0" to imple-
+ ment an expensive black hole.
:include:/file/name
- 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.
+ 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.
- A destination can be any destination that is
- described in this manual page. However, delivery to
- "|command" and /file/name is disallowed by default.
- To enable, edit the allow_mail_to_commands and
- allow_mail_to_files configuration parameters.
+ A destination can be any destination that is described in this
+ manual page. However, delivery to "|command" and /file/name is
+ disallowed by default. To enable, edit the allow_mail_to_com-
+ mands and allow_mail_to_files configuration parameters.
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
- address (e.g., user).
+ When alias database search fails, and the recipient localpart contains
+ the optional recipient delimiter (e.g., user+foo), the search is
+ repeated for the unextended address (e.g., user).
- The propagate_unmatched_extensions parameter controls
- whether an unmatched address extension (+foo) is propa-
- gated to the result of table lookup.
+ The propagate_unmatched_extensions parameter controls whether an
+ unmatched address extension (+foo) is propagated to the result of table
+ lookup.
CASE FOLDING
- The local(8) delivery agent always folds the search string
- to lowercase before database lookup.
+ The local(8) delivery agent always folds the search string to lowercase
+ before database lookup.
REGULAR EXPRESSION TABLES
- This section describes how the table lookups change when
- the table is given in the form of regular expressions. For
- a description of regular expression lookup table syntax,
- see regexp_table(5) or pcre_table(5). NOTE: these formats
- do not use ":" at the end of a pattern.
+ This section describes how the table lookups change when the table is
+ given in the form of regular expressions. For a description of regular
+ expression lookup table syntax, see regexp_table(5) or pcre_table(5).
+ NOTE: these formats do not use ":" at the end of a pattern.
- Each regular expression is applied to the entire search
- string. Thus, a search string user+foo is not broken up
- into user and foo.
+ Each regular expression is applied to the entire search string. Thus, a
+ search string user+foo is not broken up into user and foo.
- Regular expressions are applied in the order as specified
- in the table, until a regular expression is found that
- matches the search string.
+ Regular expressions are applied in the order as specified in the table,
+ until a regular expression is found that matches the search string.
- Lookup results are the same as with indexed file lookups.
- For security reasons there is no support for $1, $2 etc.
- substring interpolation.
+ Lookup results are the same as with indexed file lookups. For security
+ reasons there is no support for $1, $2 etc. substring interpolation.
SECURITY
- The local(8) delivery agent disallows regular expression
- substitution of $1 etc. in alias_maps, because that would
- open a security hole.
+ The local(8) delivery agent disallows regular expression substitution
+ of $1 etc. in alias_maps, because that would open a security hole.
- The local(8) delivery agent will silently ignore requests
- to use the proxymap(8) server within alias_maps. Instead
- it will open the table directly. Before Postfix version
- 2.2, the local(8) delivery agent will terminate with a
- fatal error.
+ The local(8) delivery agent will silently ignore requests to use the
+ proxymap(8) server within alias_maps. Instead it will open the table
+ directly. Before Postfix version 2.2, the local(8) delivery agent will
+ terminate with a fatal error.
CONFIGURATION PARAMETERS
- The following main.cf parameters are especially relevant.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The following main.cf parameters are especially relevant. The text
+ below provides only a parameter summary. See postconf(5) for more
+ details including examples.
alias_database
- List of alias databases that are updated by the
- newaliases(1) command.
+ List of alias databases that are updated by the newaliases(1)
+ command.
alias_maps
- List of alias databases queried by the local(8)
- delivery agent.
+ List of alias databases queried by the local(8) delivery agent.
allow_mail_to_commands
- Restrict the usage of mail delivery to external
- command.
+ Restrict the usage of mail delivery to external command.
allow_mail_to_files
- Restrict the usage of mail delivery to external
- file.
+ Restrict the usage of mail delivery to external file.
expand_owner_alias
- 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
- using of the left-hand side address.
+ When delivering to an alias that has an owner- companion alias,
+ set the envelope sender address to the right-hand side of the
+ owner alias, instead using of the left-hand side address.
propagate_unmatched_extensions
- A list of address rewriting or forwarding mecha-
- nisms that propagate an address extension from the
- original address to the result. Specify zero or
- more of canonical, virtual, alias, forward,
- include, or generic.
+ A list of address rewriting or forwarding mechanisms that propa-
+ gate an address extension from the original address to the
+ result. Specify zero or more of canonical, virtual, alias, for-
+ ward, include, or generic.
owner_request_special
- Give special treatment to owner-listname and list-
- name-request addresses.
+ Give special treatment to owner-listname and listname-request
+ addresses.
recipient_delimiter
- Delimiter that separates recipients from address
- extensions.
+ Delimiter that separates recipients from address extensions.
Available in Postfix version 2.3 and later:
frozen_delivered_to
- Update the local(8) delivery agent's Delivered-To:
- address (see prepend_delivered_header) only once,
- at the start of a delivery; do not update the
- Delivered-To: address while expanding aliases or
- .forward files.
+ Update the local(8) delivery agent's Delivered-To: address (see
+ prepend_delivered_header) only once, at the start of a delivery;
+ do not update the Delivered-To: address while expanding aliases
+ or .forward files.
STANDARDS
RFC 822 (ARPA Internet Text Messages)
@@ -211,8 +186,7 @@ ALIASES(5) ALIASES(5)
DATABASE_README, Postfix lookup table overview
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
AUTHOR(S)
Wietse Venema
diff --git a/postfix/html/anvil.8.html b/postfix/html/anvil.8.html
index b081554c9..0bd441baa 100644
--- a/postfix/html/anvil.8.html
+++ b/postfix/html/anvil.8.html
@@ -13,36 +13,34 @@ ANVIL(8) ANVIL(8)
anvil [generic Postfix daemon options]
DESCRIPTION
- The Postfix anvil(8) server maintains statistics about
- client connection counts or client request rates. This
- information can be used to defend against clients that
- hammer a server with either too many simultaneous ses-
- sions, or with too many successive requests within a con-
- figurable time interval. This server is designed to run
- under control by the Postfix master(8) server.
-
- In the following text, ident specifies a (service, client)
- combination. The exact syntax of that information is
- application-dependent; the anvil(8) server does not care.
+ The Postfix anvil(8) server maintains statistics about client connec-
+ tion counts or client request rates. This information can be used to
+ defend against clients that hammer a server with either too many simul-
+ taneous sessions, or with too many successive requests within a config-
+ urable time interval. This server is designed to run under control by
+ the Postfix master(8) server.
+
+ In the following text, ident specifies a (service, client) combination.
+ The exact syntax of that information is application-dependent; the
+ anvil(8) server does not care.
CONNECTION COUNT/RATE CONTROL
- To register a new connection send the following request to
- the anvil(8) server:
+ To register a new connection send the following request to the anvil(8)
+ server:
request=connect
ident=string
- The anvil(8) server answers with the number of simultane-
- ous connections and the number of connections per unit
- time for the (service, client) combination specified with
- ident:
+ The anvil(8) server answers with the number of simultaneous connections
+ and the number of connections per unit time for the (service, client)
+ combination specified with ident:
status=0
count=number
rate=number
- To register a disconnect event send the following request
- to the anvil(8) server:
+ To register a disconnect event send the following request to the
+ anvil(8) server:
request=disconnect
ident=string
@@ -52,159 +50,151 @@ ANVIL(8) ANVIL(8)
status=0
MESSAGE RATE CONTROL
- To register a message delivery request send the following
- request to the anvil(8) server:
+ To register a message delivery request send the following request to
+ the anvil(8) server:
request=message
ident=string
- The anvil(8) server answers with the number of message
- delivery requests per unit time for the (service, client)
- combination specified with ident:
+ The anvil(8) server answers with the number of message delivery
+ requests per unit time for the (service, client) combination specified
+ with ident:
status=0
rate=number
RECIPIENT RATE CONTROL
- To register a recipient request send the following request
- to the anvil(8) server:
+ To register a recipient request send the following request to the
+ anvil(8) server:
request=recipient
ident=string
- The anvil(8) server answers with the number of recipient
- addresses per unit time for the (service, client) combina-
- tion specified with ident:
+ The anvil(8) server answers with the number of recipient addresses per
+ unit time for the (service, client) combination specified with ident:
status=0
rate=number
TLS SESSION NEGOTIATION RATE CONTROL
- The features described in this section are available with
- Postfix 2.3 and later.
+ The features described in this section are available with Postfix 2.3
+ and later.
- To register a request for a new (i.e. not cached) TLS ses-
- sion send the following request to the anvil(8) server:
+ To register a request for a new (i.e. not cached) TLS session send the
+ following request to the anvil(8) server:
request=newtls
ident=string
- The anvil(8) server answers with the number of new TLS
- session requests per unit time for the (service, client)
- combination specified with ident:
+ The anvil(8) server answers with the number of new TLS session requests
+ per unit time for the (service, client) combination specified with
+ ident:
status=0
rate=number
- To retrieve new TLS session request rate information with-
- out updating the counter information, send:
+ To retrieve new TLS session request rate information without updating
+ the counter information, send:
request=newtls_report
ident=string
- The anvil(8) server answers with the number of new TLS
- session requests per unit time for the (service, client)
- combination specified with ident:
+ The anvil(8) server answers with the number of new TLS session requests
+ per unit time for the (service, client) combination specified with
+ ident:
status=0
rate=number
SECURITY
- The anvil(8) server does not talk to the network or to
- local users, and can run chrooted at fixed low privilege.
+ The anvil(8) server does not talk to the network or to local users, and
+ can run chrooted at fixed low privilege.
- The anvil(8) server maintains an in-memory table with
- information about recent clients requests. No persistent
- state is kept because standard system library routines are
- not sufficiently robust for update-intensive applications.
+ The anvil(8) server maintains an in-memory table with information about
+ recent clients requests. No persistent state is kept because standard
+ system library routines are not sufficiently robust for update-inten-
+ sive applications.
- Although the in-memory state is kept only temporarily,
- this may require a lot of memory on systems that handle
- connections from many remote clients. To reduce memory
- usage, reduce the time unit over which state is kept.
+ Although the in-memory state is kept only temporarily, this may require
+ a lot of memory on systems that handle connections from many remote
+ clients. To reduce memory usage, reduce the time unit over which state
+ is kept.
DIAGNOSTICS
Problems and transactions are logged to syslogd(8).
- Upon exit, and every anvil_status_update_time seconds, the
- server logs the maximal count and rate values measured,
- together with (service, client) information and the time
- of day associated with those events. In order to avoid
- unnecessary overhead, no measurements are done for activ-
- ity that isn't concurrency limited or rate limited.
+ Upon exit, and every anvil_status_update_time seconds, the server logs
+ the maximal count and rate values measured, together with (service,
+ client) information and the time of day associated with those events.
+ In order to avoid unnecessary overhead, no measurements are done for
+ activity that isn't concurrency limited or rate limited.
BUGS
- Systems behind network address translating routers or
- proxies appear to have the same client address and can run
- into connection count and/or rate limits falsely.
-
- In this preliminary implementation, a count (or rate) lim-
- ited server process can have only one remote client at a
- time. If a server process reports multiple simultaneous
- clients, state is kept only for the last reported client.
-
- The anvil(8) server automatically discards client request
- information after it expires. To prevent the anvil(8)
- server from discarding client request rate information too
- early or too late, a rate limited service should always
- register connect/disconnect events even when it does not
- explicitly limit them.
+ Systems behind network address translating routers or proxies appear to
+ have the same client address and can run into connection count and/or
+ rate limits falsely.
+
+ In this preliminary implementation, a count (or rate) limited server
+ process can have only one remote client at a time. If a server process
+ reports multiple simultaneous clients, state is kept only for the last
+ reported client.
+
+ The anvil(8) server automatically discards client request information
+ after it expires. To prevent the anvil(8) server from discarding
+ client request rate information too early or too late, a rate limited
+ service should always register connect/disconnect events even when it
+ does not explicitly limit them.
CONFIGURATION PARAMETERS
- On low-traffic mail systems, changes to main.cf are picked
- up automatically as anvil(8) processes run for only a lim-
- ited amount of time. On other mail systems, use the com-
- mand "postfix reload" to speed up a change.
+ On low-traffic mail systems, changes to main.cf are picked up automati-
+ cally as anvil(8) processes run for only a limited amount of time. On
+ other mail systems, use the command "postfix reload" to speed up a
+ change.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The text below provides only a parameter summary. See postconf(5) for
+ more details including examples.
anvil_rate_time_unit (60s)
- The time unit over which client connection rates
- and other rates are calculated.
+ The time unit over which client connection rates and other rates
+ are calculated.
anvil_status_update_time (600s)
- How frequently the anvil(8) connection and rate
- limiting server logs peak usage information.
+ How frequently the anvil(8) connection and rate limiting server
+ logs peak usage information.
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
- master.cf configuration files.
+ The default location of the Postfix main.cf and master.cf con-
+ figuration files.
daemon_timeout (18000s)
- How much time a Postfix daemon process may take to
- handle a request before it is terminated by a
- built-in watchdog timer.
+ How much time a Postfix daemon process may take to handle a
+ request before it is terminated by a built-in watchdog timer.
ipc_timeout (3600s)
- The time limit for sending or receiving information
- over an internal communication channel.
+ The time limit for sending or receiving information over an
+ internal communication channel.
max_idle (100s)
- The maximum amount of time that an idle Postfix
- daemon process waits for an incoming connection
- before terminating voluntarily.
+ The maximum amount of time that an idle Postfix daemon process
+ waits for an incoming connection before terminating voluntarily.
max_use (100)
- The maximal number of incoming connections that a
- Postfix daemon process will service before termi-
- nating voluntarily.
+ The maximal number of incoming connections that a Postfix daemon
+ process will service before terminating voluntarily.
process_id (read-only)
- The process ID of a Postfix command or daemon
- process.
+ The process ID of a Postfix command or daemon process.
process_name (read-only)
- The process name of a Postfix command or daemon
- process.
+ The process name of a Postfix command or daemon process.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- The mail system name that is prepended to the
- process name in syslog records, so that "smtpd"
- becomes, for example, "postfix/smtpd".
+ The mail system name that is prepended to the process name in
+ syslog records, so that "smtpd" becomes, for example, "post-
+ fix/smtpd".
SEE ALSO
smtpd(8), Postfix SMTP server
@@ -215,8 +205,7 @@ ANVIL(8) ANVIL(8)
TUNING_README, performance tuning
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
HISTORY
The anvil service is available in Postfix 2.2 and later.
diff --git a/postfix/html/bounce.5.html b/postfix/html/bounce.5.html
index 2c0e46eee..1c0860e97 100644
--- a/postfix/html/bounce.5.html
+++ b/postfix/html/bounce.5.html
@@ -15,58 +15,52 @@ BOUNCE(5) BOUNCE(5)
postconf -b [template_file]
DESCRIPTION
- The Postfix bounce(8) server produces delivery status
- notification (DSN) messages for undeliverable mail,
- delayed mail, successful delivery or address verification
- requests.
+ The Postfix bounce(8) server produces delivery status notification
+ (DSN) messages for undeliverable mail, delayed mail, successful deliv-
+ ery or address verification requests.
- By default, these notifications are generated from built-
- in templates with message headers and message text. Sites
- can override the built-in information by specifying a
- bounce template file with the bounce_template_file config-
- uration parameter.
+ By default, these notifications are generated from built-in templates
+ with message headers and message text. Sites can override the built-in
+ information by specifying a bounce template file with the bounce_tem-
+ plate_file configuration parameter.
- This document describes the general procedure to create a
- bounce template file, followed by the specific details of
- bounce template formats.
+ This document describes the general procedure to create a bounce tem-
+ plate file, followed by the specific details of bounce template for-
+ mats.
GENERAL PROCEDURE
- To create a customized bounce template file, create a tem-
- porary copy of the file /etc/postfix/bounce.cf.default and
- edit the temporary file.
+ To create a customized bounce template file, create a temporary copy of
+ the file /etc/postfix/bounce.cf.default and edit the temporary file.
- To preview the results of $name expansions in the template
- text, use the command
+ To preview the results of $name expansions in the template text, use
+ the command
postconf -b temporary_file
- Errors in the template will be reported to the standard
- error stream and to the syslog daemon.
+ Errors in the template will be reported to the standard error stream
+ and to the syslog daemon.
- While previewing the text, be sure to pay particular
- attention to the expansion of time value parameters that
- appear in the delayed mail notification text.
+ While previewing the text, be sure to pay particular attention to the
+ expansion of time value parameters that appear in the delayed mail
+ notification text.
- Once the result is satisfactory, copy the template to the
- Postfix configuration directory and specify in main.cf
- something like:
+ Once the result is satisfactory, copy the template to the Postfix con-
+ figuration directory and specify in main.cf something like:
/etc/postfix/main.cf:
bounce_template_file = /etc/postfix/bounce.cf
TEMPLATE FILE FORMAT
- The template file can specify templates for failed mail,
- delayed mail, successful delivery or for address verifica-
- tion. These templates are named failure_template,
- delay_template, success_template and verify_template,
- respectively. You can but do not have to specify all four
- templates in a bounce template file.
-
- Each template starts with "template_name = <<EOF" and ends
- with a line that contains the word "EOF" only. You can
- change the word EOF, but you can't enclose it in quotes as
- with the shell or with Perl (template_name = <<'EOF').
- Here is an example:
+ The template file can specify templates for failed mail, delayed mail,
+ successful delivery or for address verification. These templates are
+ named failure_template, delay_template, success_template and ver-
+ ify_template, respectively. You can but do not have to specify all
+ four templates in a bounce template file.
+
+ Each template starts with "template_name = <<EOF" and ends with a line
+ that contains the word "EOF" only. You can change the word EOF, but you
+ can't enclose it in quotes as with the shell or with Perl (tem-
+ plate_name = <<'EOF'). Here is an example:
# The failure template is used for undeliverable mail.
@@ -89,100 +83,86 @@ BOUNCE(5) BOUNCE(5)
The mail system
EOF
- The usage and specification of bounce templates is subject
- to the following restrictions:
+ The usage and specification of bounce templates is subject to the fol-
+ lowing restrictions:
- o No special meaning is given to the backslash char-
- acter or to leading whitespace; these are always
- taken literally.
+ o No special meaning is given to the backslash character or to
+ leading whitespace; these are always taken literally.
- o Inside the << context, the "$" character is spe-
- cial. To produce a "$" character as output, specify
- "$$".
+ o Inside the << context, the "$" character is special. To produce
+ a "$" character as output, specify "$$".
- o Outside the << context, lines beginning with "#"
- are ignored, as are empty lines, and lines consist-
- ing of whitespace only.
+ o Outside the << context, lines beginning with "#" are ignored, as
+ are empty lines, and lines consisting of whitespace only.
- Examples of all templates can be found in the file
- bounce.cf.default in the Postfix configuration directory.
+ Examples of all templates can be found in the file bounce.cf.default in
+ the Postfix configuration directory.
TEMPLATE HEADER FORMAT
- The first portion of a bounce template consists of
- optional template headers. Some become message headers in
- the delivery status notification; some control the format-
- ting of that notification. Headers not specified in a tem-
- plate will be left at their default value.
+ The first portion of a bounce template consists of optional template
+ headers. Some become message headers in the delivery status notifica-
+ tion; some control the formatting of that notification. Headers not
+ specified in a template will be left at their default value.
The following headers are supported:
Charset:
- The MIME character set of the template message
- text. See the "TEMPLATE MESSAGE TEXT FORMAT"
- description below.
+ The MIME character set of the template message text. See the
+ "TEMPLATE MESSAGE TEXT FORMAT" description below.
- From: The sender address in the message header of the
- delivery status notification.
+ From: The sender address in the message header of the delivery status
+ notification.
Subject:
- The subject in the message header of the delivery
- status notification that is returned to the sender.
+ The subject in the message header of the delivery status notifi-
+ cation that is returned to the sender.
Postmaster-Subject:
- The subject that will be used in Postmaster copies
- of undeliverable or delayed mail notifications.
- These copies are sent under control of the
- notify_classes configuration parameter.
+ The subject that will be used in Postmaster copies of undeliver-
+ able or delayed mail notifications. These copies are sent under
+ control of the notify_classes configuration parameter.
- The usage and specification of template message headers is
- subject to the following restrictions:
+ The usage and specification of template message headers is subject to
+ the following restrictions:
- o Template message header names can be specified in
- upper case, lower case or mixed case. Postfix
- always produces bounce message header labels of the
- form "From:" and "Subject:".
+ o Template message header names can be specified in upper case,
+ lower case or mixed case. Postfix always produces bounce message
+ header labels of the form "From:" and "Subject:".
- o Template message headers must not span multiple
- lines.
+ o Template message headers must not span multiple lines.
- o Template message headers do not support $parameter
- expansions.
+ o Template message headers do not support $parameter expansions.
- o Template message headers must contain ASCII charac-
- ters only, and must not contain ASCII null charac-
- ters.
+ o Template message headers must contain ASCII characters only, and
+ must not contain ASCII null characters.
TEMPLATE MESSAGE TEXT FORMAT
- The second portion of a bounce template consists of mes-
- sage text. As the above example shows, template message
- text may contain main.cf $parameters. Besides the parame-
- ters that are defined in main.cf, the following parameters
- are treated specially depending on the suffix that is
- appended to their name.
+ The second portion of a bounce template consists of message text. As
+ the above example shows, template message text may contain main.cf
+ $parameters. Besides the parameters that are defined in main.cf, the
+ following parameters are treated specially depending on the suffix that
+ is appended to their name.
delay_warning_time_suffix
- Expands into the value of the delay_warning_time
- parameter, expressed in the time unit specified by
- suffix, which is one of seconds, minutes, hours,
- days, or weeks.
+ Expands into the value of the delay_warning_time parameter,
+ expressed in the time unit specified by suffix, which is one of
+ seconds, minutes, hours, days, or weeks.
maximal_queue_lifetime_suffix
- Expands into the value of the maximal_queue_life-
- time parameter, expressed in the time unit speci-
- fied by suffix. See above under delay_warning_time
- for possible suffix values.
-
- The usage and specification of template message text is
- subject to the following restrictions:
-
- o The template message text is not sent in Postmaster
- copies of delivery status notifications.
-
- o If the template message text contains non-ASCII
- characters, Postfix requires that the Charset: tem-
- plate header is updated. Specify an appropriate
- superset of US-ASCII. A superset is needed because
- Postfix appends ASCII text after the message tem-
+ Expands into the value of the maximal_queue_lifetime parameter,
+ expressed in the time unit specified by suffix. See above under
+ delay_warning_time for possible suffix values.
+
+ The usage and specification of template message text is subject to the
+ following restrictions:
+
+ o The template message text is not sent in Postmaster copies of
+ delivery status notifications.
+
+ o If the template message text contains non-ASCII characters,
+ Postfix requires that the Charset: template header is updated.
+ Specify an appropriate superset of US-ASCII. A superset is
+ needed because Postfix appends ASCII text after the message tem-
plate when it sends a delivery status notification.
SEE ALSO
@@ -190,12 +170,11 @@ BOUNCE(5) BOUNCE(5)
postconf(5), configuration parameters
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
HISTORY
- The Postfix bounce template format was originally devel-
- oped by Nicolas Riendeau.
+ The Postfix bounce template format was originally developed by Nicolas
+ Riendeau.
AUTHOR(S)
Wietse Venema
diff --git a/postfix/html/bounce.8.html b/postfix/html/bounce.8.html
index 4896b1f11..8d7d38f08 100644
--- a/postfix/html/bounce.8.html
+++ b/postfix/html/bounce.8.html
@@ -13,34 +13,30 @@ BOUNCE(8) BOUNCE(8)
bounce [generic Postfix daemon options]
DESCRIPTION
- The bounce(8) daemon maintains per-message log files with
- delivery status information. Each log file is named after
- the queue file that it corresponds to, and is kept in a
- queue subdirectory named after the service name in the
- master.cf file (either bounce, defer or trace). This pro-
- gram expects to be run from the master(8) process manager.
-
- The bounce(8) daemon processes two types of service
- requests:
-
- o Append a recipient (non-)delivery status record to
- a per-message log file.
-
- o Enqueue a delivery status notification message,
- with a copy of a per-message log file and of the
- corresponding message. When the delivery status
- notification message is enqueued successfully, the
- per-message log file is deleted.
-
- The software does a best notification effort. A non-deliv-
- ery notification is sent even when the log file or the
- original message cannot be read.
-
- Optionally, a bounce (defer, trace) client can request
- that the per-message log file be deleted when the
- requested operation fails. This is used by clients that
- cannot retry transactions by themselves, and that depend
- on retry logic in their own client.
+ The bounce(8) daemon maintains per-message log files with delivery sta-
+ tus information. Each log file is named after the queue file that it
+ corresponds to, and is kept in a queue subdirectory named after the
+ service name in the master.cf file (either bounce, defer or trace).
+ This program expects to be run from the master(8) process manager.
+
+ The bounce(8) daemon processes two types of service requests:
+
+ o Append a recipient (non-)delivery status record to a per-message
+ log file.
+
+ o Enqueue a delivery status notification message, with a copy of a
+ per-message log file and of the corresponding message. When the
+ delivery status notification message is enqueued successfully,
+ the per-message log file is deleted.
+
+ The software does a best notification effort. A non-delivery notifica-
+ tion is sent even when the log file or the original message cannot be
+ read.
+
+ Optionally, a bounce (defer, trace) client can request that the per-
+ message log file be deleted when the requested operation fails. This
+ is used by clients that cannot retry transactions by themselves, and
+ that depend on retry logic in their own client.
STANDARDS
RFC 822 (ARPA Internet Text Messages)
@@ -55,104 +51,94 @@ BOUNCE(8) BOUNCE(8)
Problems and transactions are logged to syslogd(8).
CONFIGURATION PARAMETERS
- Changes to main.cf are picked up automatically, as
- bounce(8) processes run for only a limited amount of time.
- Use the command "postfix reload" to speed up a change.
+ Changes to main.cf are picked up automatically, as bounce(8) processes
+ run for only a limited amount of time. Use the command "postfix reload"
+ to speed up a change.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The text below provides only a parameter summary. See postconf(5) for
+ more details including examples.
2bounce_notice_recipient (postmaster)
- The recipient of undeliverable mail that cannot be
- returned to the sender.
+ The recipient of undeliverable mail that cannot be returned to
+ the sender.
backwards_bounce_logfile_compatibility (yes)
- Produce additional bounce(8) logfile records that
- can be read by Postfix versions before 2.0.
+ Produce additional bounce(8) logfile records that can be read by
+ Postfix versions before 2.0.
bounce_notice_recipient (postmaster)
- The recipient of postmaster notifications with the
- message headers of mail that Postfix did not
- deliver and of SMTP conversation transcripts of
- mail that Postfix did not receive.
+ The recipient of postmaster notifications with the message head-
+ ers of mail that Postfix did not deliver and of SMTP conversa-
+ tion transcripts of mail that Postfix did not receive.
bounce_size_limit (50000)
- The maximal amount of original message text that is
- sent in a non-delivery notification.
+ The maximal amount of original message text that is sent in a
+ non-delivery notification.
bounce_template_file (empty)
- Pathname of a configuration file with bounce mes-
- sage templates.
+ Pathname of a configuration file with bounce message templates.
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
- master.cf configuration files.
+ The default location of the Postfix main.cf and master.cf con-
+ figuration files.
daemon_timeout (18000s)
- How much time a Postfix daemon process may take to
- handle a request before it is terminated by a
- built-in watchdog timer.
+ How much time a Postfix daemon process may take to handle a
+ request before it is terminated by a built-in watchdog timer.
delay_notice_recipient (postmaster)
- The recipient of postmaster notifications with the
- message headers of mail that cannot be delivered
- within $delay_warning_time time units.
+ The recipient of postmaster notifications with the message head-
+ ers of mail that cannot be delivered within $delay_warning_time
+ time units.
deliver_lock_attempts (20)
- The maximal number of attempts to acquire an exclu-
- sive lock on a mailbox file or bounce(8) logfile.
+ The maximal number of attempts to acquire an exclusive lock on a
+ mailbox file or bounce(8) logfile.
deliver_lock_delay (1s)
- The time between attempts to acquire an exclusive
- lock on a mailbox file or bounce(8) logfile.
+ The time between attempts to acquire an exclusive lock on a
+ mailbox file or bounce(8) logfile.
ipc_timeout (3600s)
- The time limit for sending or receiving information
- over an internal communication channel.
+ The time limit for sending or receiving information over an
+ internal communication channel.
internal_mail_filter_classes (empty)
- What categories of Postfix-generated mail are sub-
- ject to before-queue content inspection by
- non_smtpd_milters, header_checks and body_checks.
+ What categories of Postfix-generated mail are subject to before-
+ queue content inspection by non_smtpd_milters, header_checks and
+ body_checks.
mail_name (Postfix)
- The mail system name that is displayed in Received:
- headers, in the SMTP greeting banner, and in
- bounced mail.
+ The mail system name that is displayed in Received: headers, in
+ the SMTP greeting banner, and in bounced mail.
max_idle (100s)
- The maximum amount of time that an idle Postfix
- daemon process waits for an incoming connection
- before terminating voluntarily.
+ The maximum amount of time that an idle Postfix daemon process
+ waits for an incoming connection before terminating voluntarily.
max_use (100)
- The maximal number of incoming connections that a
- Postfix daemon process will service before termi-
- nating voluntarily.
+ The maximal number of incoming connections that a Postfix daemon
+ process will service before terminating voluntarily.
notify_classes (resource, software)
- The list of error classes that are reported to the
- postmaster.
+ The list of error classes that are reported to the postmaster.
process_id (read-only)
- The process ID of a Postfix command or daemon
- process.
+ The process ID of a Postfix command or daemon process.
process_name (read-only)
- The process name of a Postfix command or daemon
- process.
+ The process name of a Postfix command or daemon process.
queue_directory (see 'postconf -d' output)
- The location of the Postfix top-level queue direc-
- tory.
+ The location of the Postfix top-level queue directory.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- The mail system name that is prepended to the
- process name in syslog records, so that "smtpd"
- becomes, for example, "postfix/smtpd".
+ The mail system name that is prepended to the process name in
+ syslog records, so that "smtpd" becomes, for example, "post-
+ fix/smtpd".
FILES
/var/spool/postfix/bounce/* non-delivery records
@@ -168,8 +154,7 @@ BOUNCE(8) BOUNCE(8)
syslogd(8), system logging
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
AUTHOR(S)
Wietse Venema
diff --git a/postfix/html/canonical.5.html b/postfix/html/canonical.5.html
index 58c522cef..1c405c373 100644
--- a/postfix/html/canonical.5.html
+++ b/postfix/html/canonical.5.html
@@ -17,247 +17,222 @@ CANONICAL(5) CANONICAL(5)
postmap -q - /etc/postfix/canonical <inputfile
DESCRIPTION
- The optional canonical(5) table specifies an address map-
- ping for local and non-local addresses. The mapping is
- used by the cleanup(8) daemon, before mail is stored into
- the queue. The address mapping is recursive.
-
- Normally, the canonical(5) 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" to rebuild an indexed
- file after changing the corresponding text file.
-
- When the table is provided via other means such as NIS,
- LDAP or SQL, the same lookups are done as for ordinary
- indexed files.
-
- Alternatively, the table can be provided as a regular-
- expression map where patterns are given as regular expres-
- sions, or lookups can be directed to TCP-based server. In
- those cases, the lookups are done in a slightly different
- way as described below under "REGULAR EXPRESSION TABLES"
- or "TCP-BASED TABLES".
-
- By default the canonical(5) mapping affects both message
- header addresses (i.e. addresses that appear inside mes-
- sages) and message envelope addresses (for example, the
- addresses that are used in SMTP protocol commands). This
- is controlled with the canonical_classes parameter.
-
- NOTE: Postfix versions 2.2 and later rewrite message head-
- ers from remote SMTP clients only if the client matches
- the local_header_rewrite_clients parameter, or if the
- remote_header_rewrite_domain configuration parameter spec-
- ifies a non-empty value. To get the behavior before Post-
- fix 2.2, specify "local_header_rewrite_clients =
+ The optional canonical(5) table specifies an address mapping for local
+ and non-local addresses. The mapping is used by the cleanup(8) daemon,
+ before mail is stored into the queue. The address mapping is recur-
+ sive.
+
+ Normally, the canonical(5) 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" to rebuild an
+ indexed file after changing the corresponding text file.
+
+ When the table is provided via other means such as NIS, LDAP or SQL,
+ the same lookups are done as for ordinary indexed files.
+
+ Alternatively, the table can be provided as a regular-expression map
+ where patterns are given as regular expressions, or lookups can be
+ directed to TCP-based server. In those cases, the lookups are done in a
+ slightly different way as described below under "REGULAR EXPRESSION
+ TABLES" or "TCP-BASED TABLES".
+
+ By default the canonical(5) 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). This is controlled with the canonical_classes
+ parameter.
+
+ NOTE: Postfix versions 2.2 and later rewrite message headers from
+ remote SMTP clients only if the client matches the local_header_re-
+ write_clients parameter, or if the remote_header_rewrite_domain config-
+ uration parameter specifies a non-empty value. To get the behavior
+ before Postfix 2.2, specify "local_header_rewrite_clients =
static:all".
- Typically, one would use the canonical(5) table to replace
- login names by Firstname.Lastname, or to clean up
- addresses produced by legacy mail systems.
+ Typically, one would use the canonical(5) table to replace login names
+ by Firstname.Lastname, or to clean up addresses produced by legacy mail
+ systems.
- The canonical(5) mapping is not to be confused with vir-
- tual alias support or with local aliasing. To change the
- destination but not the headers, use the virtual(5) or
- aliases(5) map instead.
+ The canonical(5) mapping is not to be confused with virtual alias sup-
+ port or with local aliasing. To change the destination but not the
+ headers, use the virtual(5) or aliases(5) map instead.
CASE FOLDING
- The search string is folded to lowercase before database
- lookup. As of Postfix 2.3, the search string is not case
- folded with database types such as regexp: or pcre: whose
- lookup fields can match both upper and lower case.
+ The search string is folded to lowercase before database lookup. As of
+ Postfix 2.3, the search string is not case folded with database types
+ such as regexp: or pcre: whose lookup fields can match both upper and
+ lower case.
TABLE FORMAT
The input format for the postmap(1) command is as follows:
pattern address
- When pattern matches a mail address, replace it by
- the corresponding address.
+ When pattern matches a mail address, replace it by the corre-
+ sponding address.
blank lines and comments
- Empty lines and whitespace-only lines are ignored,
- as are lines whose first non-whitespace character
- is a `#'.
+ Empty lines and whitespace-only lines are ignored, as are lines
+ whose first non-whitespace character is a `#'.
multi-line text
- A logical line starts with non-whitespace text. A
- line that starts with whitespace continues a logi-
- cal line.
+ A logical line starts with non-whitespace text. A line that
+ starts with whitespace continues a logical line.
TABLE SEARCH ORDER
- With lookups from indexed files such as DB or DBM, or from
- networked tables such as NIS, LDAP or SQL, patterns are
- tried in the order as listed below:
+ With lookups from indexed files such as DB or DBM, or from networked
+ tables such as NIS, LDAP or SQL, patterns are tried in the order as
+ listed below:
user@domain address
- Replace user@domain by address. This form has the
- highest precedence.
+ Replace user@domain by address. This form has the highest prece-
+ dence.
- This is 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.
+ This is useful to clean up addresses produced by legacy mail
+ systems. It can also be used to produce Firstname.Lastname
+ style addresses, but see below for a simpler solution.
user address
- Replace user@site by address when site is equal to
- $myorigin, when site is listed in $mydestination,
- or when it is listed in $inet_interfaces or
- $proxy_interfaces.
+ Replace user@site by address when site is equal to $myorigin,
+ when site is listed in $mydestination, or when it is listed in
+ $inet_interfaces or $proxy_interfaces.
- This form is useful for replacing login names by
- Firstname.Lastname.
+ This form is useful for replacing login names by Firstname.Last-
+ name.
@domain address
- Replace other addresses in domain by address. This
- form has the lowest precedence.
-
- Note: @domain is a wild-card. When this form is
- applied to recipient addresses, the Postfix SMTP
- server accepts mail for any recipient in domain,
- regardless of whether that recipient exists. This
- may turn your mail system into a backscatter
- source: Postfix first accepts mail for non-existent
- recipients and then tries to return that mail as
- "undeliverable" to the often forged sender address.
+ Replace other addresses in domain by address. This form has the
+ lowest precedence.
+
+ Note: @domain is a wild-card. When this form is applied to
+ recipient addresses, the Postfix SMTP server accepts mail for
+ any recipient in domain, regardless of whether that recipient
+ exists. This may turn your mail system into a backscatter
+ source: Postfix first accepts mail for non-existent recipients
+ and then tries to return that mail as "undeliverable" to the
+ often forged sender address.
RESULT ADDRESS REWRITING
The lookup result is subject to address rewriting:
- o When the result has the form @otherdomain, the
- result becomes the same user in otherdomain.
+ o When the result has the form @otherdomain, the result becomes
+ the same user in otherdomain.
- o When "append_at_myorigin=yes", append "@$myorigin"
- to addresses without "@domain".
+ o When "append_at_myorigin=yes", append "@$myorigin" to addresses
+ without "@domain".
- o When "append_dot_mydomain=yes", append ".$mydomain"
- to addresses without ".domain".
+ o When "append_dot_mydomain=yes", append ".$mydomain" to addresses
+ without ".domain".
ADDRESS EXTENSION
- When a mail address localpart contains the optional recip-
- ient delimiter (e.g., user+foo@domain), the lookup order
- becomes: user+foo@domain, user@domain, user+foo, user, and
- @domain.
+ When a mail address localpart contains the optional recipient delimiter
+ (e.g., user+foo@domain), the lookup order becomes: user+foo@domain,
+ user@domain, user+foo, user, and @domain.
- The propagate_unmatched_extensions parameter controls
- whether an unmatched address extension (+foo) is propa-
- gated to the result of table lookup.
+ The propagate_unmatched_extensions parameter controls whether an
+ unmatched address extension (+foo) is propagated to the result of table
+ lookup.
REGULAR EXPRESSION TABLES
- This section describes how the table lookups change when
- the table is given in the form of regular expressions. For
- a description of regular expression lookup table syntax,
- see regexp_table(5) or pcre_table(5).
+ This section describes how the table lookups change when the table is
+ given in the form of regular expressions. For a description of regular
+ expression lookup table syntax, see regexp_table(5) or pcre_table(5).
- 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
- constituent parts, nor is user+foo broken up into user and
- foo.
+ Each pattern is a regular expression that is applied to the entire
+ address being looked up. Thus, user@domain mail addresses are not bro-
+ ken up into their user and @domain constituent parts, nor is user+foo
+ broken up into user and foo.
- Patterns are applied in the order as specified in the ta-
- ble, until a pattern is found that matches the search
- string.
+ 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 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 indexed file lookups, with the additional
+ feature that parenthesized substrings from the pattern can be interpo-
+ lated as $1, $2 and so on.
TCP-BASED TABLES
- This section describes how the table lookups change when
- lookups are directed to a TCP-based server. For a descrip-
- tion of the TCP client/server lookup protocol, see tcp_ta-
- ble(5). This feature is not available up to and including
- Postfix version 2.4.
+ This section describes how the table lookups change when lookups are
+ directed to a TCP-based server. For a description of the TCP
+ client/server lookup protocol, see tcp_table(5). This feature is not
+ available up to and including Postfix version 2.4.
- Each lookup operation uses the entire address once. Thus,
- user@domain mail addresses are not broken up into their
- user and @domain constituent parts, nor is user+foo broken
- up into user and foo.
+ Each lookup operation uses the entire address once. Thus, user@domain
+ mail addresses are not broken up into their user and @domain con-
+ stituent parts, nor is user+foo broken up into user and foo.
Results are the same as with indexed file lookups.
BUGS
- The table format does not understand quoting conventions.
+ The table format does not understand quoting conventions.
CONFIGURATION PARAMETERS
- The following main.cf parameters are especially relevant.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The following main.cf parameters are especially relevant. The text
+ below provides only a parameter summary. See postconf(5) for more
+ details including examples.
canonical_classes
- What addresses are subject to canonical address
- mapping.
+ What addresses are subject to canonical address mapping.
canonical_maps
List of canonical mapping tables.
recipient_canonical_maps
- Address mapping lookup table for envelope and
- header recipient addresses.
+ Address mapping lookup table for envelope and header recipient
+ addresses.
sender_canonical_maps
- Address mapping lookup table for envelope and
- header sender addresses.
+ Address mapping lookup table for envelope and header sender
+ addresses.
propagate_unmatched_extensions
- A list of address rewriting or forwarding mecha-
- nisms that propagate an address extension from the
- original address to the result. Specify zero or
- more of canonical, virtual, alias, forward,
- include, or generic.
+ A list of address rewriting or forwarding mechanisms that propa-
+ gate an address extension from the original address to the
+ result. Specify zero or more of canonical, virtual, alias, for-
+ ward, include, or generic.
Other parameters of interest:
inet_interfaces
- The network interface addresses that this system
- receives mail on. You need to stop and start Post-
- fix when this parameter changes.
+ The network interface addresses that this system receives mail
+ on. You need to stop and start Postfix when this parameter
+ changes.
local_header_rewrite_clients
- Rewrite message header addresses in mail from these
- clients and update incomplete addresses with the
- domain name in $myorigin or $mydomain; either don't
- rewrite message headers from other clients at all,
- or rewrite message headers and update incomplete
- addresses with the domain specified in the
- remote_header_rewrite_domain parameter.
+ Rewrite message header addresses in mail from these clients and
+ update incomplete addresses with the domain name in $myorigin or
+ $mydomain; either don't rewrite message headers from other
+ clients at all, or rewrite message headers and update incomplete
+ addresses with the domain specified in the remote_header_re-
+ write_domain parameter.
proxy_interfaces
- Other interfaces that this machine receives mail on
- by way of a proxy agent or network address transla-
- tor.
+ Other interfaces that this machine receives mail on by way of a
+ proxy agent or network address translator.
masquerade_classes
- List of address classes subject to masquerading:
- zero or more of envelope_sender, envelope_recipi-
- ent, header_sender, header_recipient.
+ List of address classes subject to masquerading: zero or more of
+ envelope_sender, envelope_recipient, header_sender,
+ header_recipient.
masquerade_domains
- List of domains that hide their subdomain struc-
- ture.
+ List of domains that hide their subdomain structure.
masquerade_exceptions
- List of user names that are not subject to address
- masquerading.
+ List of user names that are not subject to address masquerading.
mydestination
- List of domains that this mail system considers
- local.
+ List of domains that this mail system considers local.
myorigin
The domain that is appended to locally-posted mail.
owner_request_special
- Give special treatment to owner-xxx and xxx-request
- addresses.
+ Give special treatment to owner-xxx and xxx-request addresses.
remote_header_rewrite_domain
- Don't rewrite message headers from remote clients
- at all when this parameter is empty; otherwise, re-
- write message headers and append the specified
- domain name to incomplete addresses.
+ Don't rewrite message headers from remote clients at all when
+ this parameter is empty; otherwise, rewrite message headers and
+ append the specified domain name to incomplete addresses.
SEE ALSO
cleanup(8), canonicalize and enqueue mail
@@ -270,8 +245,7 @@ CANONICAL(5) CANONICAL(5)
ADDRESS_REWRITING_README, address rewriting guide
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
AUTHOR(S)
Wietse Venema
diff --git a/postfix/html/cidr_table.5.html b/postfix/html/cidr_table.5.html
index 18cb8206a..cfc36b0c5 100644
--- a/postfix/html/cidr_table.5.html
+++ b/postfix/html/cidr_table.5.html
@@ -15,66 +15,57 @@ CIDR_TABLE(5) CIDR_TABLE(5)
postmap -q - cidr:/etc/postfix/filename <inputfile
DESCRIPTION
- The Postfix mail system uses optional lookup tables.
- These tables are usually in dbm or db format. Alterna-
- tively, lookup tables can be specified in CIDR (Classless
- Inter-Domain Routing) form. In this case, each input is
- compared against a list of patterns. When a match is
- found, the corresponding result is returned and the search
- is terminated.
+ The Postfix mail system uses optional lookup tables. These tables are
+ usually in dbm or db format. Alternatively, lookup tables can be spec-
+ ified in CIDR (Classless Inter-Domain Routing) form. In this case, each
+ input is compared against a list of patterns. When a match is found,
+ the corresponding result is returned and the search is terminated.
- To find out what types of lookup tables your Postfix sys-
- tem supports use the "postconf -m" command.
+ To find out what types of lookup tables your Postfix system supports
+ use the "postconf -m" command.
- To test lookup tables, use the "postmap -q" command as
- described in the SYNOPSIS above.
+ To test lookup tables, use the "postmap -q" command as described in the
+ SYNOPSIS above.
TABLE FORMAT
The general form of a Postfix CIDR table is:
network_address/network_mask result
- When a search string matches the specified network
- block, use the corresponding result value. Specify
- 0.0.0.0/0 to match every IPv4 address, and ::/0 to
- match every IPv6 address.
+ When a search string matches the specified network block, use
+ the corresponding result value. Specify 0.0.0.0/0 to match every
+ IPv4 address, and ::/0 to match every IPv6 address.
- An IPv4 network address is a sequence of four deci-
- mal octets separated by ".", and an IPv6 network
- address is a sequence of three to eight hexadecimal
- octet pairs separated by ":".
+ An IPv4 network address is a sequence of four decimal octets
+ separated by ".", and an IPv6 network address is a sequence of
+ three to eight hexadecimal octet pairs separated by ":".
- The network_mask is the number of high-order bits
- in the network_address that the search string must
- match.
+ The network_mask is the number of high-order bits in the net-
+ work_address that the search string must match.
- Before comparisons are made, lookup keys and table
- entries are converted from string to binary. There-
- fore table entries will be matched regardless of
- redundant zero characters.
+ Before comparisons are made, lookup keys and table entries are
+ converted from string to binary. Therefore table entries will be
+ matched regardless of redundant zero characters.
- Note: address information may be enclosed inside
- "[]" but this form is not required.
+ Note: address information may be enclosed inside "[]" but this
+ form is not required.
IPv6 support is available in Postfix 2.2 and later.
network_address result
- When a search string matches the specified network
- address, use the corresponding result value.
+ When a search string matches the specified network address, use
+ the corresponding result value.
blank lines and comments
- Empty lines and whitespace-only lines are ignored,
- as are lines whose first non-whitespace character
- is a `#'.
+ Empty lines and whitespace-only lines are ignored, as are lines
+ whose first non-whitespace character is a `#'.
multi-line text
- A logical line starts with non-whitespace text. A
- line that starts with whitespace continues a logi-
- cal line.
+ A logical line starts with non-whitespace text. A line that
+ starts with whitespace continues a logical line.
TABLE SEARCH ORDER
- Patterns are applied in the order as specified in the ta-
- ble, until a pattern is found that matches the search
- string.
+ Patterns are applied in the order as specified in the table, until a
+ pattern is found that matches the search string.
EXAMPLE SMTPD ACCESS MAP
/etc/postfix/main.cf:
diff --git a/postfix/html/cleanup.8.html b/postfix/html/cleanup.8.html
index b12dd0f1c..a3489bd6b 100644
--- a/postfix/html/cleanup.8.html
+++ b/postfix/html/cleanup.8.html
@@ -13,46 +13,40 @@ CLEANUP(8) CLEANUP(8)
cleanup [generic Postfix daemon options]
DESCRIPTION
- The cleanup(8) daemon processes inbound mail, inserts it
- into the incoming mail queue, and informs the queue man-
- ager of its arrival.
+ The cleanup(8) daemon processes inbound mail, inserts it into the
+ incoming mail queue, and informs the queue manager of its arrival.
- The cleanup(8) daemon always performs the following trans-
- formations:
+ The cleanup(8) daemon always performs the following transformations:
- o Insert missing message headers: (Resent-) From:,
- To:, Message-Id:, and Date:.
+ o Insert missing message headers: (Resent-) From:, To:, Message-
+ Id:, and Date:.
- o Transform envelope and header addresses to the
- standard user@fully-qualified-domain form that is
- expected by other Postfix programs. This task is
- delegated to the trivial-rewrite(8) daemon.
+ o Transform envelope and header addresses to the standard
+ user@fully-qualified-domain form that is expected by other Post-
+ fix programs. This task is delegated to the trivial-rewrite(8)
+ daemon.
o Eliminate duplicate envelope recipient addresses.
The following address transformations are optional:
- o Optionally, rewrite all envelope and header
- addresses according to the mappings specified in
- the canonical(5) lookup tables.
+ o Optionally, rewrite all envelope and header addresses according
+ to the mappings specified in the canonical(5) lookup tables.
- o Optionally, masquerade envelope sender addresses
- and message header addresses (i.e. strip host or
- domain information below all domains listed in the
- masquerade_domains parameter, except for user names
- listed in masquerade_exceptions). By default,
- address masquerading does not affect envelope
- recipients.
+ o Optionally, masquerade envelope sender addresses and message
+ header addresses (i.e. strip host or domain information below
+ all domains listed in the masquerade_domains parameter, except
+ for user names listed in masquerade_exceptions). By default,
+ address masquerading does not affect envelope recipients.
- o Optionally, expand envelope recipients according to
- information found in the virtual(5) lookup tables.
+ o Optionally, expand envelope recipients according to information
+ found in the virtual(5) lookup tables.
- The cleanup(8) daemon performs sanity checks on the con-
- tent of each message. When it finds a problem, by default
- it returns a diagnostic status to the client, and leaves
- it up to the client to deal with the problem. Alterna-
- tively, the client can request the cleanup(8) daemon to
- bounce the message back to the sender in case of trouble.
+ The cleanup(8) daemon performs sanity checks on the content of each
+ message. When it finds a problem, by default it returns a diagnostic
+ status to the client, and leaves it up to the client to deal with the
+ problem. Alternatively, the client can request the cleanup(8) daemon to
+ bounce the message back to the sender in case of trouble.
STANDARDS
RFC 822 (ARPA Internet Text Messages)
@@ -67,176 +61,158 @@ CLEANUP(8) CLEANUP(8)
Problems and transactions are logged to syslogd(8).
BUGS
- Table-driven rewriting rules make it hard to express if
- then else and other logical relationships.
+ Table-driven rewriting rules make it hard to express if then else and
+ other logical relationships.
CONFIGURATION PARAMETERS
- Changes to main.cf are picked up automatically, as
- cleanup(8) processes run for only a limited amount of
- time. Use the command "postfix reload" to speed up a
- change.
+ Changes to main.cf are picked up automatically, as cleanup(8) processes
+ run for only a limited amount of time. Use the command "postfix reload"
+ to speed up a change.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The text below provides only a parameter summary. See postconf(5) for
+ more details including examples.
COMPATIBILITY CONTROLS
undisclosed_recipients_header (see 'postconf -d' output)
- Message header that the Postfix cleanup(8) server
- inserts when a message contains no To: or Cc: mes-
- sage header.
+ Message header that the Postfix cleanup(8) server inserts when a
+ message contains no To: or Cc: message header.
Available in Postfix version 2.1 only:
enable_errors_to (no)
- Report mail delivery errors to the address speci-
- fied with the non-standard Errors-To: message
- header, instead of the envelope sender address
- (this feature is removed with Postfix version 2.2,
- is turned off by default with Postfix version 2.1,
- and is always turned on with older Postfix ver-
- sions).
+ Report mail delivery errors to the address specified with the
+ non-standard Errors-To: message header, instead of the envelope
+ sender address (this feature is removed with Postfix version
+ 2.2, is turned off by default with Postfix version 2.1, and is
+ always turned on with older Postfix versions).
Available in Postfix version 2.6 and later:
always_add_missing_headers (no)
- Always add (Resent-) From:, To:, Date: or Message-
- ID: headers when not present.
+ Always add (Resent-) From:, To:, Date: or Message-ID: headers
+ when not present.
Available in Postfix version 2.9 and later:
enable_long_queue_ids (no)
- Enable long, non-repeating, queue IDs (queue file
- names).
+ Enable long, non-repeating, queue IDs (queue file names).
BUILT-IN CONTENT FILTERING CONTROLS
- Postfix built-in content filtering is meant to stop a
- flood of worms or viruses. It is not a general content
- filter.
+ Postfix built-in content filtering is meant to stop a flood of worms or
+ viruses. It is not a general content filter.
body_checks (empty)
- Optional lookup tables for content inspection as
- specified in the body_checks(5) manual page.
+ Optional lookup tables for content inspection as specified in
+ the body_checks(5) manual page.
header_checks (empty)
- Optional lookup tables for content inspection of
- primary non-MIME message headers, as specified in
- the header_checks(5) manual page.
+ Optional lookup tables for content inspection of primary non-
+ MIME message headers, as specified in the header_checks(5) man-
+ ual page.
Available in Postfix version 2.0 and later:
body_checks_size_limit (51200)
- How much text in a message body segment (or attach-
- ment, if you prefer to use that term) is subjected
- to body_checks inspection.
+ How much text in a message body segment (or attachment, if you
+ prefer to use that term) is subjected to body_checks inspection.
mime_header_checks ($header_checks)
- Optional lookup tables for content inspection of
- MIME related message headers, as described in the
- header_checks(5) manual page.
+ Optional lookup tables for content inspection of MIME related
+ message headers, as described in the header_checks(5) manual
+ page.
nested_header_checks ($header_checks)
- Optional lookup tables for content inspection of
- non-MIME message headers in attached messages, as
- described in the header_checks(5) manual page.
+ Optional lookup tables for content inspection of non-MIME mes-
+ sage headers in attached messages, as described in the
+ header_checks(5) manual page.
Available in Postfix version 2.3 and later:
message_reject_characters (empty)
- The set of characters that Postfix will reject in
- message content.
+ The set of characters that Postfix will reject in message con-
+ tent.
message_strip_characters (empty)
- The set of characters that Postfix will remove from
- message content.
+ The set of characters that Postfix will remove from message con-
+ tent.
BEFORE QUEUE MILTER CONTROLS
- As of version 2.3, Postfix supports the Sendmail version 8
- Milter (mail filter) protocol. When mail is not received
- via the smtpd(8) server, the cleanup(8) server will simu-
- late SMTP events to the extent that this is possible. For
- details see the MILTER_README document.
+ As of version 2.3, Postfix supports the Sendmail version 8 Milter (mail
+ filter) protocol. When mail is not received via the smtpd(8) server,
+ the cleanup(8) server will simulate SMTP events to the extent that this
+ is possible. For details see the MILTER_README document.
non_smtpd_milters (empty)
- A list of Milter (mail filter) applications for new
- mail that does not arrive via the Postfix smtpd(8)
- server.
+ A list of Milter (mail filter) applications for new mail that
+ does not arrive via the Postfix smtpd(8) server.
milter_protocol (6)
- The mail filter protocol version and optional pro-
- tocol extensions for communication with a Milter
- application; prior to Postfix 2.6 the default pro-
- tocol is 2.
+ The mail filter protocol version and optional protocol exten-
+ sions for communication with a Milter application; prior to
+ Postfix 2.6 the default protocol is 2.
milter_default_action (tempfail)
- The default action when a Milter (mail filter)
- application is unavailable or mis-configured.
+ The default action when a Milter (mail filter) application is
+ unavailable or mis-configured.
milter_macro_daemon_name ($myhostname)
- The {daemon_name} macro value for Milter (mail fil-
- ter) applications.
+ The {daemon_name} macro value for Milter (mail filter) applica-
+ tions.
milter_macro_v ($mail_name $mail_version)
- The {v} macro value for Milter (mail filter) appli-
- cations.
+ The {v} macro value for Milter (mail filter) applications.
milter_connect_timeout (30s)
- The time limit for connecting to a Milter (mail
- filter) application, and for negotiating protocol
- options.
+ The time limit for connecting to a Milter (mail filter) applica-
+ tion, and for negotiating protocol options.
milter_command_timeout (30s)
- The time limit for sending an SMTP command to a
- Milter (mail filter) application, and for receiving
- the response.
+ The time limit for sending an SMTP command to a Milter (mail
+ filter) application, and for receiving the response.
milter_content_timeout (300s)
- The time limit for sending message content to a
- Milter (mail filter) application, and for receiving
- the response.
+ The time limit for sending message content to a Milter (mail
+ filter) application, and for receiving the response.
milter_connect_macros (see 'postconf -d' output)
- The macros that are sent to Milter (mail filter)
- applications after completion of an SMTP connec-
- tion.
+ The macros that are sent to Milter (mail filter) applications
+ after completion of an SMTP connection.
milter_helo_macros (see 'postconf -d' output)
- The macros that are sent to Milter (mail filter)
- applications after the SMTP HELO or EHLO command.
+ The macros that are sent to Milter (mail filter) applications
+ after the SMTP HELO or EHLO command.
milter_mail_macros (see 'postconf -d' output)
- The macros that are sent to Milter (mail filter)
- applications after the SMTP MAIL FROM command.
+ The macros that are sent to Milter (mail filter) applications
+ after the SMTP MAIL FROM command.
milter_rcpt_macros (see 'postconf -d' output)
- The macros that are sent to Milter (mail filter)
- applications after the SMTP RCPT TO command.
+ The macros that are sent to Milter (mail filter) applications
+ after the SMTP RCPT TO command.
milter_data_macros (see 'postconf -d' output)
- The macros that are sent to version 4 or higher
- Milter (mail filter) applications after the SMTP
- DATA command.
+ The macros that are sent to version 4 or higher Milter (mail
+ filter) applications after the SMTP DATA command.
milter_unknown_command_macros (see 'postconf -d' output)
- The macros that are sent to version 3 or higher
- Milter (mail filter) applications after an unknown
- SMTP command.
+ The macros that are sent to version 3 or higher Milter (mail
+ filter) applications after an unknown SMTP command.
milter_end_of_data_macros (see 'postconf -d' output)
- The macros that are sent to Milter (mail filter)
- applications after the message end-of-data.
+ The macros that are sent to Milter (mail filter) applications
+ after the message end-of-data.
Available in Postfix version 2.5 and later:
milter_end_of_header_macros (see 'postconf -d' output)
- The macros that are sent to Milter (mail filter)
- applications after the end of the message header.
+ The macros that are sent to Milter (mail filter) applications
+ after the end of the message header.
Available in Postfix version 2.7 and later:
milter_header_checks (empty)
- Optional lookup tables for content inspection of
- message headers that are produced by Milter appli-
- cations.
+ Optional lookup tables for content inspection of message headers
+ that are produced by Milter applications.
MIME PROCESSING CONTROLS
Available in Postfix version 2.0 and later:
@@ -245,253 +221,226 @@ CLEANUP(8) CLEANUP(8)
Turn off MIME processing while receiving mail.
mime_boundary_length_limit (2048)
- The maximal length of MIME multipart boundary
- strings.
+ The maximal length of MIME multipart boundary strings.
mime_nesting_limit (100)
- The maximal recursion level that the MIME processor
- will handle.
+ The maximal recursion level that the MIME processor will handle.
strict_8bitmime (no)
- Enable both strict_7bit_headers and strict_8bit-
- mime_body.
+ Enable both strict_7bit_headers and strict_8bitmime_body.
strict_7bit_headers (no)
Reject mail with 8-bit text in message headers.
strict_8bitmime_body (no)
- Reject 8-bit message body text without 8-bit MIME
- content encoding information.
+ Reject 8-bit message body text without 8-bit MIME content encod-
+ ing information.
strict_mime_encoding_domain (no)
- Reject mail with invalid Content-Transfer-Encoding:
- information for the message/* or multipart/* MIME
- content types.
+ Reject mail with invalid Content-Transfer-Encoding: information
+ for the message/* or multipart/* MIME content types.
Available in Postfix version 2.5 and later:
detect_8bit_encoding_header (yes)
- Automatically detect 8BITMIME body content by look-
- ing at Content-Transfer-Encoding: message headers;
- historically, this behavior was hard-coded to be
- "always on".
+ Automatically detect 8BITMIME body content by looking at Con-
+ tent-Transfer-Encoding: message headers; historically, this
+ behavior was hard-coded to be "always on".
AUTOMATIC BCC RECIPIENT CONTROLS
- Postfix can automatically add BCC (blind carbon copy) when
- mail enters the mail system:
+ Postfix can automatically add BCC (blind carbon copy) when mail enters
+ the mail system:
always_bcc (empty)
- Optional address that receives a "blind carbon
- copy" of each message that is received by the Post-
- fix mail system.
+ Optional address that receives a "blind carbon copy" of each
+ message that is received by the Postfix mail system.
Available in Postfix version 2.1 and later:
sender_bcc_maps (empty)
- Optional BCC (blind carbon-copy) address lookup
- tables, indexed by sender address.
+ Optional BCC (blind carbon-copy) address lookup tables, indexed
+ by sender address.
recipient_bcc_maps (empty)
- Optional BCC (blind carbon-copy) address lookup
- tables, indexed by recipient address.
+ Optional BCC (blind carbon-copy) address lookup tables, indexed
+ by recipient address.
ADDRESS TRANSFORMATION CONTROLS
- Address rewriting is delegated to the trivial-rewrite(8)
- daemon. The cleanup(8) server implements table driven
- address mapping.
+ Address rewriting is delegated to the trivial-rewrite(8) daemon. The
+ cleanup(8) server implements table driven address mapping.
empty_address_recipient (MAILER-DAEMON)
- The recipient of mail addressed to the null
- address.
+ The recipient of mail addressed to the null address.
canonical_maps (empty)
- Optional address mapping lookup tables for message
- headers and envelopes.
+ Optional address mapping lookup tables for message headers and
+ envelopes.
recipient_canonical_maps (empty)
- Optional address mapping lookup tables for envelope
- and header recipient addresses.
+ Optional address mapping lookup tables for envelope and header
+ recipient addresses.
sender_canonical_maps (empty)
- Optional address mapping lookup tables for envelope
- and header sender addresses.
+ Optional address mapping lookup tables for envelope and header
+ sender addresses.
- masquerade_classes (envelope_sender, header_sender,
- header_recipient)
+ masquerade_classes (envelope_sender, header_sender, header_recipient)
What addresses are subject to address masquerading.
masquerade_domains (empty)
- Optional list of domains whose subdomain structure
- will be stripped off in email addresses.
+ Optional list of domains whose subdomain structure will be
+ stripped off in email addresses.
masquerade_exceptions (empty)
- Optional list of user names that are not subjected
- to address masquerading, even when their address
- matches $masquerade_domains.
+ Optional list of user names that are not subjected to address
+ masquerading, even when their address matches $masquer-
+ ade_domains.
propagate_unmatched_extensions (canonical, virtual)
- What address lookup tables copy an address exten-
- sion from the lookup key to the lookup result.
+ What address lookup tables copy an address extension from the
+ lookup key to the lookup result.
Available before Postfix version 2.0:
virtual_maps (empty)
- Optional lookup tables with a) names of domains for
- which all addresses are aliased to addresses in
- other local or remote domains, and b) addresses
- that are aliased to addresses in other local or
- remote domains.
+ Optional lookup tables with a) names of domains for which all
+ addresses are aliased to addresses in other local or remote
+ domains, and b) addresses that are aliased to addresses in other
+ local or remote domains.
Available in Postfix version 2.0 and later:
virtual_alias_maps ($virtual_maps)
- Optional lookup tables that alias specific mail
- addresses or domains to other local or remote
- address.
+ Optional lookup tables that alias specific mail addresses or
+ domains to other local or remote address.
Available in Postfix version 2.2 and later:
- canonical_classes (envelope_sender, envelope_recipient,
- header_sender, header_recipient)
- What addresses are subject to canonical_maps
- address mapping.
-
- recipient_canonical_classes (envelope_recipient,
+ canonical_classes (envelope_sender, envelope_recipient, header_sender,
header_recipient)
- What addresses are subject to recipient_canoni-
- cal_maps address mapping.
+ What addresses are subject to canonical_maps address mapping.
+
+ recipient_canonical_classes (envelope_recipient, header_recipient)
+ What addresses are subject to recipient_canonical_maps address
+ mapping.
sender_canonical_classes (envelope_sender, header_sender)
- What addresses are subject to sender_canonical_maps
- address mapping.
+ What addresses are subject to sender_canonical_maps address map-
+ ping.
remote_header_rewrite_domain (empty)
- Don't rewrite message headers from remote clients
- at all when this parameter is empty; otherwise, re-
- write message headers and append the specified
- domain name to incomplete addresses.
+ Don't rewrite message headers from remote clients at all when
+ this parameter is empty; otherwise, rewrite message headers and
+ append the specified domain name to incomplete addresses.
RESOURCE AND RATE CONTROLS
duplicate_filter_limit (1000)
- The maximal number of addresses remembered by the
- address duplicate filter for aliases(5) or vir-
- tual(5) alias expansion, or for showq(8) queue dis-
- plays.
+ The maximal number of addresses remembered by the address dupli-
+ cate filter for aliases(5) or virtual(5) alias expansion, or for
+ showq(8) queue displays.
header_size_limit (102400)
- The maximal amount of memory in bytes for storing a
- message header.
+ The maximal amount of memory in bytes for storing a message
+ header.
hopcount_limit (50)
- The maximal number of Received: message headers
- that is allowed in the primary message headers.
+ The maximal number of Received: message headers that is allowed
+ in the primary message headers.
in_flow_delay (1s)
- Time to pause before accepting a new message, when
- the message arrival rate exceeds the message deliv-
- ery rate.
+ Time to pause before accepting a new message, when the message
+ arrival rate exceeds the message delivery rate.
message_size_limit (10240000)
- The maximal size in bytes of a message, including
- envelope information.
+ The maximal size in bytes of a message, including envelope
+ information.
Available in Postfix version 2.0 and later:
header_address_token_limit (10240)
- The maximal number of address tokens are allowed in
- an address message header.
+ The maximal number of address tokens are allowed in an address
+ message header.
mime_boundary_length_limit (2048)
- The maximal length of MIME multipart boundary
- strings.
+ The maximal length of MIME multipart boundary strings.
mime_nesting_limit (100)
- The maximal recursion level that the MIME processor
- will handle.
+ The maximal recursion level that the MIME processor will handle.
queue_file_attribute_count_limit (100)
- The maximal number of (name=value) attributes that
- may be stored in a Postfix queue file.
+ The maximal number of (name=value) attributes that may be stored
+ in a Postfix queue file.
Available in Postfix version 2.1 and later:
virtual_alias_expansion_limit (1000)
- The maximal number of addresses that virtual alias
- expansion produces from each original recipient.
+ The maximal number of addresses that virtual alias expansion
+ produces from each original recipient.
virtual_alias_recursion_limit (1000)
- The maximal nesting depth of virtual alias expan-
- sion.
+ The maximal nesting depth of virtual alias expansion.
MISCELLANEOUS CONTROLS
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
- master.cf configuration files.
+ The default location of the Postfix main.cf and master.cf con-
+ figuration files.
daemon_timeout (18000s)
- How much time a Postfix daemon process may take to
- handle a request before it is terminated by a
- built-in watchdog timer.
+ How much time a Postfix daemon process may take to handle a
+ request before it is terminated by a built-in watchdog timer.
delay_logging_resolution_limit (2)
- The maximal number of digits after the decimal
- point when logging sub-second delay values.
+ The maximal number of digits after the decimal point when log-
+ ging sub-second delay values.
delay_warning_time (0h)
- The time after which the sender receives a copy of
- the message headers of mail that is still queued.
+ The time after which the sender receives a copy of the message
+ headers of mail that is still queued.
ipc_timeout (3600s)
- The time limit for sending or receiving information
- over an internal communication channel.
+ The time limit for sending or receiving information over an
+ internal communication channel.
max_idle (100s)
- The maximum amount of time that an idle Postfix
- daemon process waits for an incoming connection
- before terminating voluntarily.
+ The maximum amount of time that an idle Postfix daemon process
+ waits for an incoming connection before terminating voluntarily.
max_use (100)
- The maximal number of incoming connections that a
- Postfix daemon process will service before termi-
- nating voluntarily.
+ The maximal number of incoming connections that a Postfix daemon
+ process will service before terminating voluntarily.
myhostname (see 'postconf -d' output)
The internet hostname of this mail system.
myorigin ($myhostname)
- The domain name that locally-posted mail appears to
- come from, and that locally posted mail is deliv-
- ered to.
+ The domain name that locally-posted mail appears to come from,
+ and that locally posted mail is delivered to.
process_id (read-only)
- The process ID of a Postfix command or daemon
- process.
+ The process ID of a Postfix command or daemon process.
process_name (read-only)
- The process name of a Postfix command or daemon
- process.
+ The process name of a Postfix command or daemon process.
queue_directory (see 'postconf -d' output)
- The location of the Postfix top-level queue direc-
- tory.
+ The location of the Postfix top-level queue directory.
soft_bounce (no)
- Safety net to keep mail queued that would otherwise
- be returned to the sender.
+ Safety net to keep mail queued that would otherwise be returned
+ to the sender.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- The mail system name that is prepended to the
- process name in syslog records, so that "smtpd"
- becomes, for example, "postfix/smtpd".
+ The mail system name that is prepended to the process name in
+ syslog records, so that "smtpd" becomes, for example, "post-
+ fix/smtpd".
Available in Postfix version 2.1 and later:
enable_original_recipient (yes)
- Enable support for the X-Original-To message
- header.
+ Enable support for the X-Original-To message header.
FILES
/etc/postfix/canonical*, canonical mapping table
@@ -514,8 +463,7 @@ CLEANUP(8) CLEANUP(8)
CONTENT_INSPECTION_README content inspection
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
AUTHOR(S)
Wietse Venema
diff --git a/postfix/html/defer.8.html b/postfix/html/defer.8.html
index 4896b1f11..8d7d38f08 100644
--- a/postfix/html/defer.8.html
+++ b/postfix/html/defer.8.html
@@ -13,34 +13,30 @@ BOUNCE(8) BOUNCE(8)
bounce [generic Postfix daemon options]
DESCRIPTION
- The bounce(8) daemon maintains per-message log files with
- delivery status information. Each log file is named after
- the queue file that it corresponds to, and is kept in a
- queue subdirectory named after the service name in the
- master.cf file (either bounce, defer or trace). This pro-
- gram expects to be run from the master(8) process manager.
-
- The bounce(8) daemon processes two types of service
- requests:
-
- o Append a recipient (non-)delivery status record to
- a per-message log file.
-
- o Enqueue a delivery status notification message,
- with a copy of a per-message log file and of the
- corresponding message. When the delivery status
- notification message is enqueued successfully, the
- per-message log file is deleted.
-
- The software does a best notification effort. A non-deliv-
- ery notification is sent even when the log file or the
- original message cannot be read.
-
- Optionally, a bounce (defer, trace) client can request
- that the per-message log file be deleted when the
- requested operation fails. This is used by clients that
- cannot retry transactions by themselves, and that depend
- on retry logic in their own client.
+ The bounce(8) daemon maintains per-message log files with delivery sta-
+ tus information. Each log file is named after the queue file that it
+ corresponds to, and is kept in a queue subdirectory named after the
+ service name in the master.cf file (either bounce, defer or trace).
+ This program expects to be run from the master(8) process manager.
+
+ The bounce(8) daemon processes two types of service requests:
+
+ o Append a recipient (non-)delivery status record to a per-message
+ log file.
+
+ o Enqueue a delivery status notification message, with a copy of a
+ per-message log file and of the corresponding message. When the
+ delivery status notification message is enqueued successfully,
+ the per-message log file is deleted.
+
+ The software does a best notification effort. A non-delivery notifica-
+ tion is sent even when the log file or the original message cannot be
+ read.
+
+ Optionally, a bounce (defer, trace) client can request that the per-
+ message log file be deleted when the requested operation fails. This
+ is used by clients that cannot retry transactions by themselves, and
+ that depend on retry logic in their own client.
STANDARDS
RFC 822 (ARPA Internet Text Messages)
@@ -55,104 +51,94 @@ BOUNCE(8) BOUNCE(8)
Problems and transactions are logged to syslogd(8).
CONFIGURATION PARAMETERS
- Changes to main.cf are picked up automatically, as
- bounce(8) processes run for only a limited amount of time.
- Use the command "postfix reload" to speed up a change.
+ Changes to main.cf are picked up automatically, as bounce(8) processes
+ run for only a limited amount of time. Use the command "postfix reload"
+ to speed up a change.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The text below provides only a parameter summary. See postconf(5) for
+ more details including examples.
2bounce_notice_recipient (postmaster)
- The recipient of undeliverable mail that cannot be
- returned to the sender.
+ The recipient of undeliverable mail that cannot be returned to
+ the sender.
backwards_bounce_logfile_compatibility (yes)
- Produce additional bounce(8) logfile records that
- can be read by Postfix versions before 2.0.
+ Produce additional bounce(8) logfile records that can be read by
+ Postfix versions before 2.0.
bounce_notice_recipient (postmaster)
- The recipient of postmaster notifications with the
- message headers of mail that Postfix did not
- deliver and of SMTP conversation transcripts of
- mail that Postfix did not receive.
+ The recipient of postmaster notifications with the message head-
+ ers of mail that Postfix did not deliver and of SMTP conversa-
+ tion transcripts of mail that Postfix did not receive.
bounce_size_limit (50000)
- The maximal amount of original message text that is
- sent in a non-delivery notification.
+ The maximal amount of original message text that is sent in a
+ non-delivery notification.
bounce_template_file (empty)
- Pathname of a configuration file with bounce mes-
- sage templates.
+ Pathname of a configuration file with bounce message templates.
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
- master.cf configuration files.
+ The default location of the Postfix main.cf and master.cf con-
+ figuration files.
daemon_timeout (18000s)
- How much time a Postfix daemon process may take to
- handle a request before it is terminated by a
- built-in watchdog timer.
+ How much time a Postfix daemon process may take to handle a
+ request before it is terminated by a built-in watchdog timer.
delay_notice_recipient (postmaster)
- The recipient of postmaster notifications with the
- message headers of mail that cannot be delivered
- within $delay_warning_time time units.
+ The recipient of postmaster notifications with the message head-
+ ers of mail that cannot be delivered within $delay_warning_time
+ time units.
deliver_lock_attempts (20)
- The maximal number of attempts to acquire an exclu-
- sive lock on a mailbox file or bounce(8) logfile.
+ The maximal number of attempts to acquire an exclusive lock on a
+ mailbox file or bounce(8) logfile.
deliver_lock_delay (1s)
- The time between attempts to acquire an exclusive
- lock on a mailbox file or bounce(8) logfile.
+ The time between attempts to acquire an exclusive lock on a
+ mailbox file or bounce(8) logfile.
ipc_timeout (3600s)
- The time limit for sending or receiving information
- over an internal communication channel.
+ The time limit for sending or receiving information over an
+ internal communication channel.
internal_mail_filter_classes (empty)
- What categories of Postfix-generated mail are sub-
- ject to before-queue content inspection by
- non_smtpd_milters, header_checks and body_checks.
+ What categories of Postfix-generated mail are subject to before-
+ queue content inspection by non_smtpd_milters, header_checks and
+ body_checks.
mail_name (Postfix)
- The mail system name that is displayed in Received:
- headers, in the SMTP greeting banner, and in
- bounced mail.
+ The mail system name that is displayed in Received: headers, in
+ the SMTP greeting banner, and in bounced mail.
max_idle (100s)
- The maximum amount of time that an idle Postfix
- daemon process waits for an incoming connection
- before terminating voluntarily.
+ The maximum amount of time that an idle Postfix daemon process
+ waits for an incoming connection before terminating voluntarily.
max_use (100)
- The maximal number of incoming connections that a
- Postfix daemon process will service before termi-
- nating voluntarily.
+ The maximal number of incoming connections that a Postfix daemon
+ process will service before terminating voluntarily.
notify_classes (resource, software)
- The list of error classes that are reported to the
- postmaster.
+ The list of error classes that are reported to the postmaster.
process_id (read-only)
- The process ID of a Postfix command or daemon
- process.
+ The process ID of a Postfix command or daemon process.
process_name (read-only)
- The process name of a Postfix command or daemon
- process.
+ The process name of a Postfix command or daemon process.
queue_directory (see 'postconf -d' output)
- The location of the Postfix top-level queue direc-
- tory.
+ The location of the Postfix top-level queue directory.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- The mail system name that is prepended to the
- process name in syslog records, so that "smtpd"
- becomes, for example, "postfix/smtpd".
+ The mail system name that is prepended to the process name in
+ syslog records, so that "smtpd" becomes, for example, "post-
+ fix/smtpd".
FILES
/var/spool/postfix/bounce/* non-delivery records
@@ -168,8 +154,7 @@ BOUNCE(8) BOUNCE(8)
syslogd(8), system logging
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
AUTHOR(S)
Wietse Venema
diff --git a/postfix/html/discard.8.html b/postfix/html/discard.8.html
index ff5574a86..2cd427aab 100644
--- a/postfix/html/discard.8.html
+++ b/postfix/html/discard.8.html
@@ -13,28 +13,24 @@ DISCARD(8) DISCARD(8)
discard [generic Postfix daemon options]
DESCRIPTION
- The Postfix discard(8) delivery agent processes delivery
- requests from the queue manager. Each request specifies a
- queue file, a sender address, a next-hop destination that
- is treated as the reason for discarding the mail, and
- recipient information. The reason may be prefixed with an
- RFC 3463-compatible detail code. This program expects to
+ The Postfix discard(8) delivery agent processes delivery requests from
+ the queue manager. Each request specifies a queue file, a sender
+ address, a next-hop destination that is treated as the reason for dis-
+ carding the mail, and recipient information. The reason may be pre-
+ fixed with an RFC 3463-compatible detail code. This program expects to
be run from the master(8) process manager.
- The discard(8) delivery agent pretends to deliver all
- recipients in the delivery request, logs the "next-hop"
- destination as the reason for discarding the mail, updates
- the queue file, and either marks recipients as finished or
- informs the queue manager that delivery should be tried
- again at a later time.
+ The discard(8) delivery agent pretends to deliver all recipients in the
+ delivery request, logs the "next-hop" destination as the reason for
+ discarding the mail, updates the queue file, and either marks recipi-
+ ents as finished or informs the queue manager that delivery should be
+ tried again at a later time.
- Delivery status reports are sent to the trace(8) daemon as
- appropriate.
+ Delivery status reports are sent to the trace(8) daemon as appropriate.
SECURITY
- The discard(8) mailer is not security-sensitive. It does
- not talk to the network, and can be run chrooted at fixed
- low privilege.
+ The discard(8) mailer is not security-sensitive. It does not talk to
+ the network, and can be run chrooted at fixed low privilege.
STANDARDS
RFC 3463 (Enhanced Status Codes)
@@ -42,68 +38,61 @@ DISCARD(8) DISCARD(8)
DIAGNOSTICS
Problems and transactions are logged to syslogd(8).
- Depending on the setting of the notify_classes parameter,
- the postmaster is notified of bounces and of other trou-
- ble.
+ Depending on the setting of the notify_classes parameter, the postmas-
+ ter is notified of bounces and of other trouble.
CONFIGURATION PARAMETERS
- Changes to main.cf are picked up automatically as dis-
- card(8) processes run for only a limited amount of time.
- Use the command "postfix reload" to speed up a change.
+ Changes to main.cf are picked up automatically as discard(8) processes
+ run for only a limited amount of time. Use the command "postfix reload"
+ to speed up a change.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The text below provides only a parameter summary. See postconf(5) for
+ more details including examples.
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
- master.cf configuration files.
+ The default location of the Postfix main.cf and master.cf con-
+ figuration files.
daemon_timeout (18000s)
- How much time a Postfix daemon process may take to
- handle a request before it is terminated by a
- built-in watchdog timer.
+ How much time a Postfix daemon process may take to handle a
+ request before it is terminated by a built-in watchdog timer.
delay_logging_resolution_limit (2)
- The maximal number of digits after the decimal
- point when logging sub-second delay values.
+ The maximal number of digits after the decimal point when log-
+ ging sub-second delay values.
double_bounce_sender (double-bounce)
- The sender address of postmaster notifications that
- are generated by the mail system.
+ The sender address of postmaster notifications that are gener-
+ ated by the mail system.
ipc_timeout (3600s)
- The time limit for sending or receiving information
- over an internal communication channel.
+ The time limit for sending or receiving information over an
+ internal communication channel.
max_idle (100s)
- The maximum amount of time that an idle Postfix
- daemon process waits for an incoming connection
- before terminating voluntarily.
+ The maximum amount of time that an idle Postfix daemon process
+ waits for an incoming connection before terminating voluntarily.
max_use (100)
- The maximal number of incoming connections that a
- Postfix daemon process will service before termi-
- nating voluntarily.
+ The maximal number of incoming connections that a Postfix daemon
+ process will service before terminating voluntarily.
process_id (read-only)
- The process ID of a Postfix command or daemon
- process.
+ The process ID of a Postfix command or daemon process.
process_name (read-only)
- The process name of a Postfix command or daemon
- process.
+ The process name of a Postfix command or daemon process.
queue_directory (see 'postconf -d' output)
- The location of the Postfix top-level queue direc-
- tory.
+ The location of the Postfix top-level queue directory.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- The mail system name that is prepended to the
- process name in syslog records, so that "smtpd"
- becomes, for example, "postfix/smtpd".
+ The mail system name that is prepended to the process name in
+ syslog records, so that "smtpd" becomes, for example, "post-
+ fix/smtpd".
SEE ALSO
qmgr(8), queue manager
@@ -115,8 +104,7 @@ DISCARD(8) DISCARD(8)
syslogd(8), system logging
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
HISTORY
This service was introduced with Postfix version 2.2.
diff --git a/postfix/html/dnsblog.8.html b/postfix/html/dnsblog.8.html
index 84ff7371e..67e4d8302 100644
--- a/postfix/html/dnsblog.8.html
+++ b/postfix/html/dnsblog.8.html
@@ -13,68 +13,62 @@ DNSBLOG(8) DNSBLOG(8)
dnsblog [generic Postfix daemon options]
DESCRIPTION
- The dnsblog(8) server implements an ad-hoc DNS
- white/blacklist lookup service. This may eventually be
- replaced by an UDP client that is built directly into the
- postscreen(8) server.
+ The dnsblog(8) server implements an ad-hoc DNS white/blacklist lookup
+ service. This may eventually be replaced by an UDP client that is built
+ directly into the postscreen(8) server.
PROTOCOL
- With each connection, the dnsblog(8) server receives a DNS
- white/blacklist domain name, IP address, and an ID. If
- the address is listed under the DNS white/blacklist, the
- dnsblog(8) server logs the match and replies with the
- query arguments plus an address list with the resulting IP
- addresses separated by whitespace. Otherwise it replies
- with the query arguments plus an empty address list.
- Finally, The dnsblog(8) server closes the connection.
+ With each connection, the dnsblog(8) server receives a DNS white/black-
+ list domain name, IP address, and an ID. If the address is listed
+ under the DNS white/blacklist, the dnsblog(8) server logs the match and
+ replies with the query arguments plus an address list with the result-
+ ing IP addresses separated by whitespace. Otherwise it replies with
+ the query arguments plus an empty address list. Finally, The dns-
+ blog(8) server closes the connection.
DIAGNOSTICS
Problems and transactions are logged to syslogd(8).
CONFIGURATION PARAMETERS
- Changes to main.cf are picked up automatically, as dns-
- blog(8) processes run for only a limited amount of time.
- Use the command "postfix reload" to speed up a change.
+ Changes to main.cf are picked up automatically, as dnsblog(8) processes
+ run for only a limited amount of time. Use the command "postfix reload"
+ to speed up a change.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The text below provides only a parameter summary. See postconf(5) for
+ more details including examples.
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
- master.cf configuration files.
+ The default location of the Postfix main.cf and master.cf con-
+ figuration files.
daemon_timeout (18000s)
- How much time a Postfix daemon process may take to
- handle a request before it is terminated by a
- built-in watchdog timer.
+ How much time a Postfix daemon process may take to handle a
+ request before it is terminated by a built-in watchdog timer.
postscreen_dnsbl_sites (empty)
- Optional list of DNS white/blacklist domains, fil-
- ters and weight factors.
+ Optional list of DNS white/blacklist domains, filters and weight
+ factors.
ipc_timeout (3600s)
- The time limit for sending or receiving information
- over an internal communication channel.
+ The time limit for sending or receiving information over an
+ internal communication channel.
process_id (read-only)
- The process ID of a Postfix command or daemon
- process.
+ The process ID of a Postfix command or daemon process.
process_name (read-only)
- The process name of a Postfix command or daemon
- process.
+ The process name of a Postfix command or daemon process.
queue_directory (see 'postconf -d' output)
- The location of the Postfix top-level queue direc-
- tory.
+ The location of the Postfix top-level queue directory.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- The mail system name that is prepended to the
- process name in syslog records, so that "smtpd"
- becomes, for example, "postfix/smtpd".
+ The mail system name that is prepended to the process name in
+ syslog records, so that "smtpd" becomes, for example, "post-
+ fix/smtpd".
SEE ALSO
smtpd(8), Postfix SMTP server
@@ -82,8 +76,7 @@ DNSBLOG(8) DNSBLOG(8)
syslogd(5), system logging
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
HISTORY
This service was introduced with Postfix version 2.8.
diff --git a/postfix/html/error.8.html b/postfix/html/error.8.html
index 63778d23a..0d4b79844 100644
--- a/postfix/html/error.8.html
+++ b/postfix/html/error.8.html
@@ -13,28 +13,25 @@ ERROR(8) ERROR(8)
error [generic Postfix daemon options]
DESCRIPTION
- The Postfix error(8) delivery agent processes delivery
- requests from the queue manager. Each request specifies a
- queue file, a sender address, the reason for non-delivery
- (specified as the next-hop destination), and recipient
- information. The reason may be prefixed with an RFC
- 3463-compatible detail code; if none is specified a
- default 4.0.0 or 5.0.0 code is used instead. This program
- expects to be run from the master(8) process manager.
-
- Depending on the service name in master.cf, error or
- retry, the server bounces or defers all recipients in the
- delivery request using the "next-hop" information as the
- reason for non-delivery. The retry service name is sup-
- ported as of Postfix 2.4.
-
- Delivery status reports are sent to the bounce(8),
- defer(8) or trace(8) daemon as appropriate.
+ The Postfix error(8) delivery agent processes delivery requests from
+ the queue manager. Each request specifies a queue file, a sender
+ address, the reason for non-delivery (specified as the next-hop desti-
+ nation), and recipient information. The reason may be prefixed with an
+ RFC 3463-compatible detail code; if none is specified a default 4.0.0
+ or 5.0.0 code is used instead. This program expects to be run from the
+ master(8) process manager.
+
+ Depending on the service name in master.cf, error or retry, the server
+ bounces or defers all recipients in the delivery request using the
+ "next-hop" information as the reason for non-delivery. The retry ser-
+ vice name is supported as of Postfix 2.4.
+
+ Delivery status reports are sent to the bounce(8), defer(8) or trace(8)
+ daemon as appropriate.
SECURITY
- The error(8) mailer is not security-sensitive. It does not
- talk to the network, and can be run chrooted at fixed low
- privilege.
+ The error(8) mailer is not security-sensitive. It does not talk to the
+ network, and can be run chrooted at fixed low privilege.
STANDARDS
RFC 3463 (Enhanced Status Codes)
@@ -42,82 +39,73 @@ ERROR(8) ERROR(8)
DIAGNOSTICS
Problems and transactions are logged to syslogd(8).
- Depending on the setting of the notify_classes parameter,
- the postmaster is notified of bounces and of other trou-
- ble.
+ Depending on the setting of the notify_classes parameter, the postmas-
+ ter is notified of bounces and of other trouble.
CONFIGURATION PARAMETERS
- Changes to main.cf are picked up automatically as error(8)
- processes run for only a limited amount of time. Use the
- command "postfix reload" to speed up a change.
+ Changes to main.cf are picked up automatically as error(8) processes
+ run for only a limited amount of time. Use the command "postfix reload"
+ to speed up a change.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The text below provides only a parameter summary. See postconf(5) for
+ more details including examples.
2bounce_notice_recipient (postmaster)
- The recipient of undeliverable mail that cannot be
- returned to the sender.
+ The recipient of undeliverable mail that cannot be returned to
+ the sender.
bounce_notice_recipient (postmaster)
- The recipient of postmaster notifications with the
- message headers of mail that Postfix did not
- deliver and of SMTP conversation transcripts of
- mail that Postfix did not receive.
+ The recipient of postmaster notifications with the message head-
+ ers of mail that Postfix did not deliver and of SMTP conversa-
+ tion transcripts of mail that Postfix did not receive.
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
- master.cf configuration files.
+ The default location of the Postfix main.cf and master.cf con-
+ figuration files.
daemon_timeout (18000s)
- How much time a Postfix daemon process may take to
- handle a request before it is terminated by a
- built-in watchdog timer.
+ How much time a Postfix daemon process may take to handle a
+ request before it is terminated by a built-in watchdog timer.
delay_logging_resolution_limit (2)
- The maximal number of digits after the decimal
- point when logging sub-second delay values.
+ The maximal number of digits after the decimal point when log-
+ ging sub-second delay values.
double_bounce_sender (double-bounce)
- The sender address of postmaster notifications that
- are generated by the mail system.
+ The sender address of postmaster notifications that are gener-
+ ated by the mail system.
ipc_timeout (3600s)
- The time limit for sending or receiving information
- over an internal communication channel.
+ The time limit for sending or receiving information over an
+ internal communication channel.
max_idle (100s)
- The maximum amount of time that an idle Postfix
- daemon process waits for an incoming connection
- before terminating voluntarily.
+ The maximum amount of time that an idle Postfix daemon process
+ waits for an incoming connection before terminating voluntarily.
max_use (100)
- The maximal number of incoming connections that a
- Postfix daemon process will service before termi-
- nating voluntarily.
+ The maximal number of incoming connections that a Postfix daemon
+ process will service before terminating voluntarily.
notify_classes (resource, software)
- The list of error classes that are reported to the
- postmaster.
+ The list of error classes that are reported to the postmaster.
process_id (read-only)
- The process ID of a Postfix command or daemon
- process.
+ The process ID of a Postfix command or daemon process.
process_name (read-only)
- The process name of a Postfix command or daemon
- process.
+ The process name of a Postfix command or daemon process.
queue_directory (see 'postconf -d' output)
- The location of the Postfix top-level queue direc-
- tory.
+ The location of the Postfix top-level queue directory.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- The mail system name that is prepended to the
- process name in syslog records, so that "smtpd"
- becomes, for example, "postfix/smtpd".
+ The mail system name that is prepended to the process name in
+ syslog records, so that "smtpd" becomes, for example, "post-
+ fix/smtpd".
SEE ALSO
qmgr(8), queue manager
@@ -129,8 +117,7 @@ ERROR(8) ERROR(8)
syslogd(8), system logging
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
AUTHOR(S)
Wietse Venema
diff --git a/postfix/html/flush.8.html b/postfix/html/flush.8.html
index 1c76677cb..be939188f 100644
--- a/postfix/html/flush.8.html
+++ b/postfix/html/flush.8.html
@@ -13,146 +13,130 @@ FLUSH(8) FLUSH(8)
flush [generic Postfix daemon options]
DESCRIPTION
- The flush(8) server maintains a record of deferred mail by
- destination. This information is used to improve the per-
- formance of the SMTP ETRN request, and of its command-line
- equivalent, "sendmail -qR" or "postqueue -f". This pro-
- gram expects to be run from the master(8) process manager.
-
- The record is implemented as a per-destination logfile
- with as contents the queue IDs of deferred mail. A logfile
- is append-only, and is truncated when delivery is
- requested for the corresponding destination. A destination
- is the part on the right-hand side of the right-most @ in
+ The flush(8) server maintains a record of deferred mail by destination.
+ This information is used to improve the performance of the SMTP ETRN
+ request, and of its command-line equivalent, "sendmail -qR" or
+ "postqueue -f". This program expects to be run from the master(8)
+ process manager.
+
+ The record is implemented as a per-destination logfile with as contents
+ the queue IDs of deferred mail. A logfile is append-only, and is trun-
+ cated when delivery is requested for the corresponding destination. A
+ destination is the part on the right-hand side of the right-most @ in
an email address.
- Per-destination logfiles of deferred mail are maintained
- only for eligible destinations. The list of eligible des-
- tinations is specified with the fast_flush_domains config-
- uration parameter, which defaults to $relay_domains.
+ Per-destination logfiles of deferred mail are maintained only for eli-
+ gible destinations. The list of eligible destinations is specified with
+ the fast_flush_domains configuration parameter, which defaults to
+ $relay_domains.
This server implements the following requests:
add sitename queueid
- Inform the flush(8) server that the message with
- the specified queue ID is queued for the specified
- destination.
+ Inform the flush(8) server that the message with the specified
+ queue ID is queued for the specified destination.
send_site sitename
- Request delivery of mail that is queued for the
- specified destination.
+ Request delivery of mail that is queued for the specified desti-
+ nation.
send_file queueid
Request delivery of the specified deferred message.
refresh
- Refresh non-empty per-destination logfiles that
- were not read in $fast_flush_refresh_time hours, by
- simulating send requests (see above) for the corre-
- sponding destinations.
+ Refresh non-empty per-destination logfiles that were not read in
+ $fast_flush_refresh_time hours, by simulating send requests (see
+ above) for the corresponding destinations.
- Delete empty per-destination logfiles that were not
- updated in $fast_flush_purge_time days.
+ Delete empty per-destination logfiles that were not updated in
+ $fast_flush_purge_time days.
This request completes in the background.
purge Do a refresh for all per-destination logfiles.
SECURITY
- The flush(8) server is not security-sensitive. It does not
- talk to the network, and it does not talk to local users.
- The fast flush server can run chrooted at fixed low privi-
- lege.
+ The flush(8) server is not security-sensitive. It does not talk to the
+ network, and it does not talk to local users. The fast flush server
+ can run chrooted at fixed low privilege.
DIAGNOSTICS
Problems and transactions are logged to syslogd(8).
BUGS
- Fast flush logfiles are truncated only after a "send"
- request, not when mail is actually delivered, and there-
- fore can accumulate outdated or redundant data. In order
- to maintain sanity, "refresh" must be executed periodi-
- cally. This can be automated with a suitable wakeup timer
- setting in the master.cf configuration file.
-
- Upon receipt of a request to deliver mail for an eligible
- destination, the flush(8) 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 relay_domains des-
- tination because such mail typically only has recipients
- in one domain.
+ Fast flush logfiles are truncated only after a "send" request, not when
+ mail is actually delivered, and therefore can accumulate outdated or
+ redundant data. In order to maintain sanity, "refresh" must be executed
+ periodically. This can be automated with a suitable wakeup timer set-
+ ting in the master.cf configuration file.
+
+ Upon receipt of a request to deliver mail for an eligible destination,
+ the flush(8) 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 relay_domains
+ destination because such mail typically only has recipients in one
+ domain.
CONFIGURATION PARAMETERS
- Changes to main.cf are picked up automatically as flush(8)
- processes run for only a limited amount of time. Use the
- command "postfix reload" to speed up a change.
+ Changes to main.cf are picked up automatically as flush(8) processes
+ run for only a limited amount of time. Use the command "postfix reload"
+ to speed up a change.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The text below provides only a parameter summary. See postconf(5) for
+ more details including examples.
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
- master.cf configuration files.
+ The default location of the Postfix main.cf and master.cf con-
+ figuration files.
daemon_timeout (18000s)
- How much time a Postfix daemon process may take to
- handle a request before it is terminated by a
- built-in watchdog timer.
+ How much time a Postfix daemon process may take to handle a
+ request before it is terminated by a built-in watchdog timer.
fast_flush_domains ($relay_domains)
- Optional list of destinations that are eligible for
- per-destination logfiles with mail that is queued
- to those destinations.
+ Optional list of destinations that are eligible for per-destina-
+ tion logfiles with mail that is queued to those destinations.
fast_flush_refresh_time (12h)
- The time after which a non-empty but unread per-
- destination "fast flush" logfile needs to be
- refreshed.
+ The time after which a non-empty but unread per-destination
+ "fast flush" logfile needs to be refreshed.
fast_flush_purge_time (7d)
- The time after which an empty per-destination "fast
- flush" logfile is deleted.
+ The time after which an empty per-destination "fast flush" log-
+ file is deleted.
ipc_timeout (3600s)
- The time limit for sending or receiving information
- over an internal communication channel.
+ The time limit for sending or receiving information over an
+ internal communication channel.
max_idle (100s)
- The maximum amount of time that an idle Postfix
- daemon process waits for an incoming connection
- before terminating voluntarily.
+ The maximum amount of time that an idle Postfix daemon process
+ waits for an incoming connection before terminating voluntarily.
max_use (100)
- The maximal number of incoming connections that a
- Postfix daemon process will service before termi-
- nating voluntarily.
+ The maximal number of incoming connections that a Postfix daemon
+ process will service before terminating voluntarily.
- parent_domain_matches_subdomains (see 'postconf -d' out-
- put)
- What Postfix features match subdomains of
- "domain.tld" automatically, instead of requiring an
- explicit ".domain.tld" pattern.
+ parent_domain_matches_subdomains (see 'postconf -d' output)
+ What Postfix features match subdomains of "domain.tld" automati-
+ cally, instead of requiring an explicit ".domain.tld" pattern.
process_id (read-only)
- The process ID of a Postfix command or daemon
- process.
+ The process ID of a Postfix command or daemon process.
process_name (read-only)
- The process name of a Postfix command or daemon
- process.
+ The process name of a Postfix command or daemon process.
queue_directory (see 'postconf -d' output)
- The location of the Postfix top-level queue direc-
- tory.
+ The location of the Postfix top-level queue directory.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- The mail system name that is prepended to the
- process name in syslog records, so that "smtpd"
- becomes, for example, "postfix/smtpd".
+ The mail system name that is prepended to the process name in
+ syslog records, so that "smtpd" becomes, for example, "post-
+ fix/smtpd".
FILES
/var/spool/postfix/flush, "fast flush" logfiles.
@@ -169,8 +153,7 @@ FLUSH(8) FLUSH(8)
ETRN_README, Postfix ETRN howto
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
HISTORY
This service was introduced with Postfix version 1.0.
diff --git a/postfix/html/generic.5.html b/postfix/html/generic.5.html
index 9baffcd21..473ecc747 100644
--- a/postfix/html/generic.5.html
+++ b/postfix/html/generic.5.html
@@ -17,148 +17,132 @@ GENERIC(5) GENERIC(5)
postmap -q - /etc/postfix/generic <inputfile
DESCRIPTION
- The optional generic(5) table specifies an address mapping
- that applies when mail is delivered. This is the opposite
- of canonical(5) mapping, which applies when mail is
- received.
-
- Typically, one would use the generic(5) table on a system
- that does not have a valid Internet domain name and that
- uses something like localdomain.local instead. The
- generic(5) table is then used by the smtp(8) client to
- transform local mail addresses into valid Internet mail
- addresses when mail has to be sent across the Internet.
- See the EXAMPLE section at the end of this document.
-
- The generic(5) 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).
-
- Normally, the generic(5) 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/generic" to rebuild an indexed file
+ The optional generic(5) table specifies an address mapping that applies
+ when mail is delivered. This is the opposite of canonical(5) mapping,
+ which applies when mail is received.
+
+ Typically, one would use the generic(5) table on a system that does not
+ have a valid Internet domain name and that uses something like localdo-
+ main.local instead. The generic(5) table is then used by the smtp(8)
+ client to transform local mail addresses into valid Internet mail
+ addresses when mail has to be sent across the Internet. See the EXAM-
+ PLE section at the end of this document.
+
+ The generic(5) 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).
+
+ Normally, the generic(5) 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/generic" to rebuild an indexed file
after changing the corresponding text file.
- When the table is provided via other means such as NIS,
- LDAP or SQL, the same lookups are done as for ordinary
- indexed files.
+ 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-
- expression map where patterns are given as regular expres-
- sions, or lookups can be directed to TCP-based server. In
- those case, the lookups are done in a slightly different
- way as described below under "REGULAR EXPRESSION TABLES"
- or "TCP-BASED TABLES".
+ Alternatively, the table can be provided as a regular-expression map
+ where patterns are given as regular expressions, or lookups can be
+ directed to TCP-based server. In those case, the lookups are done in a
+ slightly different way as described below under "REGULAR EXPRESSION
+ TABLES" or "TCP-BASED TABLES".
CASE FOLDING
- The search string is folded to lowercase before database
- lookup. As of Postfix 2.3, the search string is not case
- folded with database types such as regexp: or pcre: whose
- lookup fields can match both upper and lower case.
+ The search string is folded to lowercase before database lookup. As of
+ Postfix 2.3, the search string is not case folded with database types
+ such as regexp: or pcre: whose lookup fields can match both upper and
+ lower case.
TABLE FORMAT
The input format for the postmap(1) command is as follows:
pattern result
- When pattern matches a mail address, replace it by
- the corresponding result.
+ When pattern matches a mail address, replace it by the corre-
+ sponding result.
blank lines and comments
- Empty lines and whitespace-only lines are ignored,
- as are lines whose first non-whitespace character
- is a `#'.
+ Empty lines and whitespace-only lines are ignored, as are lines
+ whose first non-whitespace character is a `#'.
multi-line text
- A logical line starts with non-whitespace text. A
- line that starts with whitespace continues a logi-
- cal line.
+ A logical line starts with non-whitespace text. A line that
+ starts with whitespace continues a logical line.
TABLE SEARCH ORDER
- With lookups from indexed files such as DB or DBM, or from
- networked tables such as NIS, LDAP or SQL, patterns are
- tried in the order as listed below:
+ With lookups from indexed files such as DB or DBM, or from networked
+ tables such as NIS, LDAP or SQL, patterns are tried in the order as
+ listed below:
user@domain address
- Replace user@domain by address. This form has the
- highest precedence.
+ Replace user@domain by address. This form has the highest prece-
+ dence.
user address
- Replace user@site by address when site is equal to
- $myorigin, when site is listed in $mydestination,
- or when it is listed in $inet_interfaces or
- $proxy_interfaces.
+ Replace user@site by address when site is equal to $myorigin,
+ when site is listed in $mydestination, or when it is listed in
+ $inet_interfaces or $proxy_interfaces.
@domain address
- Replace other addresses in domain by address. This
- form has the lowest precedence.
+ Replace other addresses in domain by address. This form has the
+ lowest precedence.
RESULT ADDRESS REWRITING
The lookup result is subject to address rewriting:
- o When the result has the form @otherdomain, the
- result becomes the same user in otherdomain.
+ o When the result has the form @otherdomain, the result becomes
+ the same user in otherdomain.
- o When "append_at_myorigin=yes", append "@$myorigin"
- to addresses without "@domain".
+ o When "append_at_myorigin=yes", append "@$myorigin" to addresses
+ without "@domain".
- o When "append_dot_mydomain=yes", append ".$mydomain"
- to addresses without ".domain".
+ o When "append_dot_mydomain=yes", append ".$mydomain" to addresses
+ without ".domain".
ADDRESS EXTENSION
- When a mail address localpart contains the optional recip-
- ient delimiter (e.g., user+foo@domain), the lookup order
- becomes: user+foo@domain, user@domain, user+foo, user, and
- @domain.
+ When a mail address localpart contains the optional recipient delimiter
+ (e.g., user+foo@domain), the lookup order becomes: user+foo@domain,
+ user@domain, user+foo, user, and @domain.
- The propagate_unmatched_extensions parameter controls
- whether an unmatched address extension (+foo) is propa-
- gated to the result of table lookup.
+ The propagate_unmatched_extensions parameter controls whether an
+ unmatched address extension (+foo) is propagated to the result of table
+ lookup.
REGULAR EXPRESSION TABLES
- This section describes how the table lookups change when
- the table is given in the form of regular expressions. For
- a description of regular expression lookup table syntax,
- see regexp_table(5) or pcre_table(5).
+ This section describes how the table lookups change when the table is
+ given in the form of regular expressions. For a description of regular
+ expression lookup table syntax, see regexp_table(5) or pcre_table(5).
- 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
- constituent parts, nor is user+foo broken up into user and
- foo.
+ Each pattern is a regular expression that is applied to the entire
+ address being looked up. Thus, user@domain mail addresses are not bro-
+ ken up into their user and @domain constituent parts, nor is user+foo
+ broken up into user and foo.
- Patterns are applied in the order as specified in the ta-
- ble, until a pattern is found that matches the search
- string.
+ 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 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 indexed file lookups, with the additional
+ feature that parenthesized substrings from the pattern can be interpo-
+ lated as $1, $2 and so on.
TCP-BASED TABLES
- This section describes how the table lookups change when
- lookups are directed to a TCP-based server. For a descrip-
- tion of the TCP client/server lookup protocol, see tcp_ta-
- ble(5). This feature is not available up to and including
- Postfix version 2.4.
+ This section describes how the table lookups change when lookups are
+ directed to a TCP-based server. For a description of the TCP
+ client/server lookup protocol, see tcp_table(5). This feature is not
+ available up to and including Postfix version 2.4.
- Each lookup operation uses the entire address once. Thus,
- user@domain mail addresses are not broken up into their
- user and @domain constituent parts, nor is user+foo broken
- up into user and foo.
+ Each lookup operation uses the entire address once. Thus, user@domain
+ mail addresses are not broken up into their user and @domain con-
+ stituent parts, nor is user+foo broken up into user and foo.
Results are the same as with indexed file lookups.
EXAMPLE
- The following shows a generic mapping with an indexed
- file. When mail is sent to a remote host via SMTP, this
- replaces his@localdomain.local by his ISP mail address,
- replaces her@localdomain.local by her ISP mail address,
- and replaces other local addresses by his ISP account,
- with an address extension of +local (this example assumes
- that the ISP supports "+" style address extensions).
+ The following shows a generic mapping with an indexed file. When mail
+ is sent to a remote host via SMTP, this replaces his@localdomain.local
+ by his ISP mail address, replaces her@localdomain.local by her ISP mail
+ address, and replaces other local addresses by his ISP account, with an
+ address extension of +local (this example assumes that the ISP supports
+ "+" style address extensions).
/etc/postfix/main.cf:
smtp_generic_maps = hash:/etc/postfix/generic
@@ -168,53 +152,48 @@ GENERIC(5) GENERIC(5)
her@localdomain.local heraccount@herisp.example
@localdomain.local hisaccount+local@hisisp.example
- Execute the command "postmap /etc/postfix/generic" when-
- ever the table is changed. Instead of hash, some systems
- use dbm database files. To find out what tables your sys-
- tem supports use the command "postconf -m".
+ Execute the command "postmap /etc/postfix/generic" whenever the table
+ is changed. Instead of hash, some systems use dbm database files. To
+ find out what tables your system supports use the command "postconf
+ -m".
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.
- The text below provides only a parameter summary. See
- postconf(5) for more details including examples.
+ The following main.cf parameters are especially relevant. The text
+ below provides only a parameter summary. See postconf(5) for more
+ details including examples.
smtp_generic_maps
- Address mapping lookup table for envelope and
- header sender and recipient addresses while deliv-
- ering mail via SMTP.
+ Address mapping lookup table for envelope and header sender and
+ recipient addresses while delivering mail via SMTP.
propagate_unmatched_extensions
- A list of address rewriting or forwarding mecha-
- nisms that propagate an address extension from the
- original address to the result. Specify zero or
- more of canonical, virtual, alias, forward,
- include, or generic.
+ A list of address rewriting or forwarding mechanisms that propa-
+ gate an address extension from the original address to the
+ result. Specify zero or more of canonical, virtual, alias, for-
+ ward, include, or generic.
Other parameters of interest:
inet_interfaces
- The network interface addresses that this system
- receives mail on. You need to stop and start Post-
- fix when this parameter changes.
+ The network interface addresses that this system receives mail
+ on. You need to stop and start Postfix when this parameter
+ changes.
proxy_interfaces
- Other interfaces that this machine receives mail on
- by way of a proxy agent or network address transla-
- tor.
+ Other interfaces that this machine receives mail on by way of a
+ proxy agent or network address translator.
mydestination
- List of domains that this mail system considers
- local.
+ List of domains that this mail system considers local.
myorigin
The domain that is appended to locally-posted mail.
owner_request_special
- Give special treatment to owner-xxx and xxx-request
- addresses.
+ Give special treatment to owner-xxx and xxx-request addresses.
SEE ALSO
postmap(1), Postfix lookup table manager
@@ -227,8 +206,7 @@ GENERIC(5) GENERIC(5)
STANDARD_CONFIGURATION_README, configuration examples
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
HISTORY
A genericstable feature appears in the Sendmail MTA.
diff --git a/postfix/html/header_checks.5.html b/postfix/html/header_checks.5.html
index 85fda866a..6f1e86fc5 100644
--- a/postfix/html/header_checks.5.html
+++ b/postfix/html/header_checks.5.html
@@ -26,74 +26,67 @@ HEADER_CHECKS(5) HEADER_CHECKS(5)
postmap -q - pcre:/etc/postfix/filename <inputfile
DESCRIPTION
- This document describes access control on the content of
- message headers and message body lines; it is implemented
- by the Postfix cleanup(8) server before mail is queued.
- See access(5) for access control on remote SMTP client
- information.
-
- Each message header or message body line is compared
- against a list of patterns. When a match is found the
- corresponding action is executed, and the matching process
- is repeated for the next message header or message body
- line.
-
- Note: message headers are examined one logical header at a
- time, even when a message header spans multiple lines.
- Body lines are always examined one line at a time.
-
- For examples, see the EXAMPLES section at the end of this
- manual page.
-
- Postfix header or body_checks are designed to stop a flood
- of mail from worms or viruses; they do not decode attach-
- ments, and they do not unzip archives. See the documents
- referenced below in the README FILES section if you need
- more sophisticated content analysis.
+ This document describes access control on the content of message head-
+ ers and message body lines; it is implemented by the Postfix cleanup(8)
+ server before mail is queued. See access(5) for access control on
+ remote SMTP client information.
+
+ Each message header or message body line is compared against a list of
+ patterns. When a match is found the corresponding action is executed,
+ and the matching process is repeated for the next message header or
+ message body line.
+
+ Note: message headers are examined one logical header at a time, even
+ when a message header spans multiple lines. Body lines are always exam-
+ ined one line at a time.
+
+ For examples, see the EXAMPLES section at the end of this manual page.
+
+ Postfix header or body_checks are designed to stop a flood of mail from
+ worms or viruses; they do not decode attachments, and they do not unzip
+ archives. See the documents referenced below in the README FILES sec-
+ tion if you need more sophisticated content analysis.
FILTERS WHILE RECEIVING MAIL
- Postfix implements the following four built-in content
- inspection classes while receiving mail:
+ Postfix implements the following four built-in content inspection
+ classes while receiving mail:
header_checks (default: empty)
- These are applied to initial message headers
- (except for the headers that are processed with
- mime_header_checks).
+ These are applied to initial message headers (except for the
+ headers that are processed with mime_header_checks).
mime_header_checks (default: $header_checks)
- These are applied to MIME related message headers
- only.
+ These are applied to MIME related message headers only.
This feature is available in Postfix 2.0 and later.
nested_header_checks (default: $header_checks)
- These are applied to message headers of attached
- email messages (except for the headers that are
- processed with mime_header_checks).
+ These are applied to message headers of attached email messages
+ (except for the headers that are processed with
+ mime_header_checks).
This feature is available in Postfix 2.0 and later.
body_checks
- These are applied to all other content, including
- multi-part message boundaries.
+ These are applied to all other content, including multi-part
+ message boundaries.
- With Postfix versions before 2.0, all content after
- the initial message headers is treated as body con-
- tent.
+ With Postfix versions before 2.0, all content after the initial
+ message headers is treated as body content.
FILTERS AFTER RECEIVING MAIL
- Postfix supports a subset of the built-in content inspec-
- tion classes after the message is received:
+ Postfix supports a subset of the built-in content inspection classes
+ after the message is received:
milter_header_checks (default: empty)
- These are applied to headers that are added with
- Milter applications.
+ These are applied to headers that are added with Milter applica-
+ tions.
This feature is available in Postfix 2.7 and later.
FILTERS WHILE DELIVERING MAIL
- Postfix supports all four content inspection classes while
- delivering mail via SMTP.
+ Postfix supports all four content inspection classes while delivering
+ mail via SMTP.
smtp_header_checks (default: empty)
@@ -102,350 +95,303 @@ HEADER_CHECKS(5) HEADER_CHECKS(5)
smtp_nested_header_checks (default: empty)
smtp_body_checks (default: empty)
- These features are available in Postfix 2.5 and
- later.
+ These features are available in Postfix 2.5 and later.
COMPATIBILITY
- With Postfix version 2.2 and earlier specify "postmap -fq"
- to query a table that contains case sensitive patterns. By
- default, regexp: and pcre: patterns are case insensitive.
+ With Postfix version 2.2 and earlier specify "postmap -fq" to query a
+ table that contains case sensitive patterns. By default, regexp: and
+ pcre: patterns are case insensitive.
TABLE FORMAT
- This document assumes that header and body_checks rules
- are specified in the form of Postfix regular expression
- lookup tables. Usually the best performance is obtained
- with pcre (Perl Compatible Regular Expression) tables. The
- regexp (POSIX regular expressions) tables are usually
- slower, but more widely available. Use the command "post-
- conf -m" to find out what lookup table types your Postfix
- system supports.
-
- The general format of Postfix regular expression tables is
- given below. For a discussion of specific pattern or
- flags syntax, see pcre_table(5) or regexp_table(5),
- respectively.
+ This document assumes that header and body_checks rules are specified
+ in the form of Postfix regular expression lookup tables. Usually the
+ best performance is obtained with pcre (Perl Compatible Regular Expres-
+ sion) tables. The regexp (POSIX regular expressions) tables are usually
+ slower, but more widely available. Use the command "postconf -m" to
+ find out what lookup table types your Postfix system supports.
+
+ The general format of Postfix regular expression tables is given below.
+ For a discussion of specific pattern or flags syntax, see pcre_table(5)
+ or regexp_table(5), respectively.
/pattern/flags action
- When /pattern/ matches the input string, execute
- the corresponding action. See below for a list of
- possible actions.
+ When /pattern/ matches the input string, execute the correspond-
+ ing action. See below for a list of possible actions.
!/pattern/flags action
- When /pattern/ does not match the input string,
- execute the corresponding action.
+ When /pattern/ does not match the input string, execute the cor-
+ responding action.
if /pattern/flags
- endif Match the input string against the patterns between
- if and endif, if and only if the same input string
- also matches /pattern/. The if..endif can nest.
+ endif Match the input string against the patterns between if and
+ endif, if and only if the same input string also matches /pat-
+ tern/. The if..endif can nest.
- Note: do not prepend whitespace to patterns inside
- if..endif.
+ Note: do not prepend whitespace to patterns inside if..endif.
if !/pattern/flags
- endif Match the input string against the patterns between
- if and endif, if and only if the same input string
- does not match /pattern/. The if..endif can nest.
+ endif Match the input string against the patterns between if and
+ endif, if and only if the same input string does not match /pat-
+ tern/. The if..endif can nest.
blank lines and comments
- Empty lines and whitespace-only lines are ignored,
- as are lines whose first non-whitespace character
- is a `#'.
+ Empty lines and whitespace-only lines are ignored, as are lines
+ whose first non-whitespace character is a `#'.
multi-line text
- A pattern/action line starts with non-whitespace
- text. A line that starts with whitespace continues
- a logical line.
+ A pattern/action line starts with non-whitespace text. A line
+ that starts with whitespace continues a logical line.
TABLE SEARCH ORDER
- For each line of message input, the patterns are applied
- in the order as specified in the table. When a pattern is
- found that matches the input line, the corresponding
- action is executed and then the next input line is
- inspected.
+ For each line of message input, the patterns are applied in the order
+ as specified in the table. When a pattern is found that matches the
+ input line, the corresponding action is executed and then the next
+ input line is inspected.
TEXT SUBSTITUTION
- Substitution of substrings from the matched expression
- into the action string is possible using the conventional
- Perl syntax ($1, $2, etc.). The macros in the result
- string may need to be written as ${n} or $(n) if they
- aren't followed by whitespace.
+ Substitution of substrings from the matched expression into the action
+ string is possible using the conventional Perl syntax ($1, $2, etc.).
+ The macros in the result string may need to be written as ${n} or $(n)
+ if they aren't followed by whitespace.
- Note: since negated patterns (those preceded by !) return
- a result when the expression does not match, substitutions
- are not available for negated patterns.
+ Note: since negated patterns (those preceded by !) return a result when
+ the expression does not match, substitutions are not available for
+ negated patterns.
ACTIONS
- Action names are case insensitive. They are shown in upper
- case for consistency with other Postfix documentation.
+ Action names are case insensitive. They are shown in upper case for
+ consistency with other Postfix documentation.
DISCARD optional text...
- Claim successful delivery and silently discard the
- message. Log the optional text if specified, oth-
- erwise log a generic message.
+ Claim successful delivery and silently discard the message. Log
+ the optional text if specified, otherwise log a generic message.
- Note: this action disables further header or
- body_checks inspection of the current message and
- affects all recipients. To discard only one recip-
- ient without discarding the entire message, use the
- transport(5) table to direct mail to the discard(8)
- service.
+ Note: this action disables further header or body_checks inspec-
+ tion of the current message and affects all recipients. To dis-
+ card only one recipient without discarding the entire message,
+ use the transport(5) table to direct mail to the discard(8) ser-
+ vice.
This feature is available in Postfix 2.0 and later.
- This feature is not supported with smtp header/body
- checks.
+ This feature is not supported with smtp header/body checks.
- DUNNO Pretend that the input line did not match any pat-
- tern, and inspect the next input line. This action
- can be used to shorten the table search.
+ DUNNO Pretend that the input line did not match any pattern, and
+ inspect the next input line. This action can be used to shorten
+ the table search.
- For backwards compatibility reasons, Postfix also
- accepts OK but it is (and always has been) treated
- as DUNNO.
+ For backwards compatibility reasons, Postfix also accepts OK but
+ it is (and always has been) treated as DUNNO.
This feature is available in Postfix 2.1 and later.
FILTER transport:destination
- After the message is queued, send the entire mes-
- sage through the specified external content filter.
- The transport name specifies the first field of a
- mail delivery agent definition in master.cf; the
- syntax of the next-hop destination is described in
- the manual page of the corresponding delivery
- agent. More information about external content
- filters is in the Postfix FILTER_README file.
-
- Note 1: do not use $number regular expression sub-
- stitutions for transport or destination unless you
- know that the information has a trusted origin.
-
- Note 2: this action overrides the main.cf con-
- tent_filter setting, and affects all recipients of
- the message. In the case that multiple FILTER
- actions fire, only the last one is executed.
-
- Note 3: the purpose of the FILTER command is to
- override message routing. To override the recipi-
- ent's transport but not the next-hop destination,
- specify an empty filter destination (Postfix 2.7
- and later), or specify a transport:destination that
- delivers through a different Postfix instance
- (Postfix 2.6 and earlier). Other options are using
- the recipient-dependent transport_maps or the sen-
- der-dependent sender_dependent_default_transport-
- _maps features.
+ After the message is queued, send the entire message through the
+ specified external content filter. The transport name specifies
+ the first field of a mail delivery agent definition in mas-
+ ter.cf; the syntax of the next-hop destination is described in
+ the manual page of the corresponding delivery agent. More
+ information about external content filters is in the Postfix
+ FILTER_README file.
+
+ Note 1: do not use $number regular expression substitutions for
+ transport or destination unless you know that the information
+ has a trusted origin.
+
+ Note 2: this action overrides the main.cf content_filter set-
+ ting, and affects all recipients of the message. In the case
+ that multiple FILTER actions fire, only the last one is exe-
+ cuted.
+
+ Note 3: the purpose of the FILTER command is to override message
+ routing. To override the recipient's transport but not the
+ next-hop destination, specify an empty filter destination (Post-
+ fix 2.7 and later), or specify a transport:destination that
+ delivers through a different Postfix instance (Postfix 2.6 and
+ earlier). Other options are using the recipient-dependent trans-
+ port_maps or the sender-dependent sender_dependent_default-
+ _transport_maps features.
This feature is available in Postfix 2.0 and later.
- This feature is not supported with smtp header/body
- checks.
+ This feature is not supported with smtp header/body checks.
HOLD optional text...
- Arrange for the message to be placed on the hold
- queue, and inspect the next input line. The mes-
- sage remains on hold until someone either deletes
- it or releases it for delivery. Log the optional
- text if specified, otherwise log a generic message.
-
- Mail that is placed on hold can be examined with
- the postcat(1) command, and can be destroyed or
- released with the postsuper(1) command.
-
- Note: use "postsuper -r" to release mail that was
- kept on hold for a significant fraction of $maxi-
- mal_queue_lifetime or $bounce_queue_lifetime, or
- longer. Use "postsuper -H" only for mail that will
- not expire within a few delivery attempts.
-
- Note: this action affects all recipients of the
- message.
+ Arrange for the message to be placed on the hold queue, and
+ inspect the next input line. The message remains on hold until
+ someone either deletes it or releases it for delivery. Log the
+ optional text if specified, otherwise log a generic message.
+
+ Mail that is placed on hold can be examined with the postcat(1)
+ command, and can be destroyed or released with the postsuper(1)
+ command.
+
+ Note: use "postsuper -r" to release mail that was kept on hold
+ for a significant fraction of $maximal_queue_lifetime or
+ $bounce_queue_lifetime, or longer. Use "postsuper -H" only for
+ mail that will not expire within a few delivery attempts.
+
+ Note: this action affects all recipients of the message.
This feature is available in Postfix 2.0 and later.
- This feature is not supported with smtp header/body
- checks.
+ This feature is not supported with smtp header/body checks.
- IGNORE Delete the current line from the input, and inspect
- the next input line.
+ IGNORE Delete the current line from the input, and inspect the next
+ input line.
INFO optional text...
- Log an "info:" record with the optional text... (or
- log a generic text), and inspect the next input
- line. This action is useful for routine logging or
- for debugging.
+ Log an "info:" record with the optional text... (or log a
+ generic text), and inspect the next input line. This action is
+ useful for routine logging or for debugging.
This feature is available in Postfix 2.8 and later.
PREPEND text...
- Prepend one line with the specified text, and
- inspect the next input line.
+ Prepend one line with the specified text, and inspect the next
+ input line.
Notes:
- o The prepended text is output on a separate
- line, immediately before the input that
- triggered the PREPEND action.
+ o The prepended text is output on a separate line, immedi-
+ ately before the input that triggered the PREPEND action.
- o The prepended text is not considered part of
- the input stream: it is not subject to
- header/body checks or address rewriting, and
- it does not affect the way that Postfix adds
- missing message headers.
+ o The prepended text is not considered part of the input
+ stream: it is not subject to header/body checks or
+ address rewriting, and it does not affect the way that
+ Postfix adds missing message headers.
- o When prepending text before a message header
- line, the prepended text must begin with a
- valid message header label.
+ o When prepending text before a message header line, the
+ prepended text must begin with a valid message header
+ label.
- o This action cannot be used to prepend multi-
- line text.
+ o This action cannot be used to prepend multi-line text.
This feature is available in Postfix 2.1 and later.
- This feature is not supported with mil-
- ter_header_checks.
+ This feature is not supported with milter_header_checks.
REDIRECT user@domain
- Write a message redirection request to the queue
- file, and inspect the next input line. After the
- message is queued, it will be sent to the specified
- address instead of the intended recipient(s).
-
- Note: this action overrides the FILTER action, and
- affects all recipients of the message. If multiple
- REDIRECT actions fire, only the last one is exe-
- cuted.
+ Write a message redirection request to the queue file, and
+ inspect the next input line. After the message is queued, it
+ will be sent to the specified address instead of the intended
+ recipient(s).
+
+ Note: this action overrides the FILTER action, and affects all
+ recipients of the message. If multiple REDIRECT actions fire,
+ only the last one is executed.
This feature is available in Postfix 2.1 and later.
- This feature is not supported with smtp header/body
- checks.
+ This feature is not supported with smtp header/body checks.
REPLACE text...
- Replace the current line with the specified text,
- and inspect the next input line.
+ Replace the current line with the specified text, and inspect
+ the next input line.
- This feature is available in Postfix 2.2 and later.
- The description below applies to Postfix 2.2.2 and
- later.
+ This feature is available in Postfix 2.2 and later. The descrip-
+ tion below applies to Postfix 2.2.2 and later.
Notes:
- o When replacing a message header line, the
- replacement text must begin with a valid
- header label.
+ o When replacing a message header line, the replacement
+ text must begin with a valid header label.
- o The replaced text remains part of the input
- stream. Unlike the result from the PREPEND
- action, a replaced message header may be
- subject to address rewriting and may affect
- the way that Postfix adds missing message
+ o The replaced text remains part of the input stream.
+ Unlike the result from the PREPEND action, a replaced
+ message header may be subject to address rewriting and
+ may affect the way that Postfix adds missing message
headers.
REJECT optional text...
- Reject the entire message. Reply with optional
- text... when the optional text is specified, other-
- wise reply with a generic error message.
+ Reject the entire message. Reply with optional text... when the
+ optional text is specified, otherwise reply with a generic error
+ message.
- Note: this action disables further header or
- body_checks inspection of the current message and
- affects all recipients.
+ Note: this action disables further header or body_checks inspec-
+ tion of the current message and affects all recipients.
- Postfix version 2.3 and later support enhanced sta-
- tus codes. When no code is specified at the begin-
- ning of optional text..., Postfix inserts a default
- enhanced status code of "5.7.1".
+ Postfix version 2.3 and later support enhanced status codes.
+ When no code is specified at the beginning of optional text...,
+ Postfix inserts a default enhanced status code of "5.7.1".
- This feature is not supported with smtp header/body
- checks.
+ This feature is not supported with smtp header/body checks.
WARN optional text...
- Log a "warning:" record with the optional text...
- (or log a generic text), and inspect the next input
- line. This action is useful for debugging and for
- testing a pattern before applying more drastic
- actions.
+ Log a "warning:" record with the optional text... (or log a
+ generic text), and inspect the next input line. This action is
+ useful for debugging and for testing a pattern before applying
+ more drastic actions.
BUGS
- Empty lines never match, because some map types mis-behave
- when given a zero-length search string. This limitation
- may be removed for regular expression tables in a future
- release.
+ Empty lines never match, because some map types mis-behave when given a
+ zero-length search string. This limitation may be removed for regular
+ expression tables in a future release.
- Many people overlook the main limitations of header and
- body_checks rules.
+ Many people overlook the main limitations of header and body_checks
+ rules.
- o These rules operate on one logical message header
- or one body line at a time. A decision made for one
- line is not carried over to the next line.
+ o These rules operate on one logical message header or one body
+ line at a time. A decision made for one line is not carried over
+ to the next line.
- o If text in the message body is encoded (RFC 2045)
- then the rules need to be specified for the encoded
- form.
+ o If text in the message body is encoded (RFC 2045) then the rules
+ need to be specified for the encoded form.
- o Likewise, when message headers are encoded (RFC
- 2047) then the rules need to be specified for the
- encoded form.
+ o Likewise, when message headers are encoded (RFC 2047) then the
+ rules need to be specified for the encoded form.
- Message headers added by the cleanup(8) daemon itself are
- excluded from inspection. Examples of such message headers
- are From:, To:, Message-ID:, Date:.
+ Message headers added by the cleanup(8) daemon itself are excluded from
+ inspection. Examples of such message headers are From:, To:, Message-
+ ID:, Date:.
- Message headers deleted by the cleanup(8) daemon will be
- examined before they are deleted. Examples are: Bcc:, Con-
- tent-Length:, Return-Path:.
+ Message headers deleted by the cleanup(8) daemon will be examined
+ before they are deleted. Examples are: Bcc:, Content-Length:, Return-
+ Path:.
CONFIGURATION PARAMETERS
body_checks
- Lookup tables with content filter rules for message
- body lines. These filters see one physical line at
- a time, in chunks of at most $line_length_limit
- bytes.
+ Lookup tables with content filter rules for message body lines.
+ These filters see one physical line at a time, in chunks of at
+ most $line_length_limit bytes.
body_checks_size_limit
- The amount of content per message body segment
- (attachment) that is subjected to $body_checks fil-
- tering.
+ The amount of content per message body segment (attachment) that
+ is subjected to $body_checks filtering.
header_checks
mime_header_checks (default: $header_checks)
nested_header_checks (default: $header_checks)
- Lookup tables with content filter rules for message
- header lines: respectively, these are applied to
- the initial message headers (not including MIME
- headers), to the MIME headers anywhere in the mes-
- sage, and to the initial headers of attached mes-
- sages.
-
- Note: these filters see one logical message header
- at a time, even when a message header spans multi-
- ple lines. Message headers that are longer than
- $header_size_limit characters are truncated.
+ Lookup tables with content filter rules for message header
+ lines: respectively, these are applied to the initial message
+ headers (not including MIME headers), to the MIME headers any-
+ where in the message, and to the initial headers of attached
+ messages.
+
+ Note: these filters see one logical message header at a time,
+ even when a message header spans multiple lines. Message headers
+ that are longer than $header_size_limit characters are trun-
+ cated.
disable_mime_input_processing
- While receiving mail, give no special treatment to
- MIME related message headers; all text after the
- initial message headers is considered to be part of
- the message body. This means that header_checks is
- applied to all the initial message headers, and
- that body_checks is applied to the remainder of the
- message.
+ While receiving mail, give no special treatment to MIME related
+ message headers; all text after the initial message headers is
+ considered to be part of the message body. This means that
+ header_checks is applied to all the initial message headers, and
+ that body_checks is applied to the remainder of the message.
- Note: when used in this manner, body_checks will
- process a multi-line message header one line at a
- time.
+ Note: when used in this manner, body_checks will process a
+ multi-line message header one line at a time.
EXAMPLES
- Header pattern to block attachments with bad file name
- extensions. For convenience, the PCRE /x flag is speci-
- fied, so that there is no need to collapse the pattern
- into a single line of text. The purpose of the
- [[:xdigit:]] sub-expressions is to recognize Windows CLSID
- strings.
+ Header pattern to block attachments with bad file name extensions. For
+ convenience, the PCRE /x flag is specified, so that there is no need to
+ collapse the pattern into a single line of text. The purpose of the
+ [[:xdigit:]] sub-expressions is to recognize Windows CLSID strings.
/etc/postfix/main.cf:
header_checks = pcre:/etc/postfix/header_checks.pcre
@@ -460,8 +406,7 @@ HEADER_CHECKS(5) HEADER_CHECKS(5)
vb[esx]?|vxd|ws[cfh]))(\?=)?"?\s*(;|$)/x
REJECT Attachment name "$2" may not end with ".$4"
- Body pattern to stop a specific HTML browser vulnerability
- exploit.
+ Body pattern to stop a specific HTML browser vulnerability exploit.
/etc/postfix/main.cf:
body_checks = regexp:/etc/postfix/body_checks
@@ -488,8 +433,7 @@ HEADER_CHECKS(5) HEADER_CHECKS(5)
BACKSCATTER_README, blocking returned forged mail
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
AUTHOR(S)
Wietse Venema
diff --git a/postfix/html/ldap_table.5.html b/postfix/html/ldap_table.5.html
index 90cee5509..1c5e4a3d2 100644
--- a/postfix/html/ldap_table.5.html
+++ b/postfix/html/ldap_table.5.html
@@ -15,72 +15,60 @@ LDAP_TABLE(5) LDAP_TABLE(5)
postmap -q - ldap:/etc/postfix/filename <inputfile
DESCRIPTION
- The Postfix mail system uses optional tables for address
- rewriting or mail routing. These tables are usually in dbm
- or db format.
+ The Postfix mail system uses optional tables for address rewriting or
+ mail routing. These tables are usually in dbm or db format.
- Alternatively, lookup tables can be specified as LDAP
- databases.
+ Alternatively, lookup tables can be specified as LDAP databases.
- In order to use LDAP lookups, define an LDAP source as a
- lookup table in main.cf, for example:
+ In order to use LDAP lookups, define an LDAP source as a lookup table
+ in main.cf, for example:
alias_maps = ldap:/etc/postfix/ldap-aliases.cf
- The file /etc/postfix/ldap-aliases.cf has the same format
- as the Postfix main.cf file, and can specify the parame-
- ters described below. An example is given at the end of
- this manual.
+ The file /etc/postfix/ldap-aliases.cf has the same format as the Post-
+ fix main.cf file, and can specify the parameters described below. An
+ example is given at the end of this manual.
- This configuration method is available with Postfix ver-
- sion 2.1 and later. See the section "BACKWARDS COMPATI-
- BILITY" below for older Postfix versions.
+ This configuration method is available with Postfix version 2.1 and
+ later. See the section "BACKWARDS COMPATIBILITY" below for older Post-
+ fix versions.
- For details about LDAP SSL and STARTTLS, see the section
- on SSL and STARTTLS below.
+ For details about LDAP SSL and STARTTLS, see the section on SSL and
+ STARTTLS below.
BACKWARDS COMPATIBILITY
- For backwards compatibility with Postfix version 2.0 and
- earlier, LDAP parameters can also be defined in main.cf.
- Specify as LDAP source a name that doesn't begin with a
- slash or a dot. The LDAP parameters will then be accessi-
- ble as the name you've given the source in its definition,
- an underscore, and the name of the parameter. For exam-
- ple, if the map is specified as "ldap:ldapsource", the
- "server_host" parameter below would be defined in main.cf
- as "ldapsource_server_host".
-
- Note: with this form, the passwords for the LDAP sources
- are written in main.cf, which is normally world-readable.
- Support for this form will be removed in a future Postfix
- version.
-
- For backwards compatibility with the pre 2.2 LDAP clients,
- result_filter can for now be used instead of result_for-
- mat, when the latter parameter is not also set. The new
- name better reflects the function of the parameter. This
- compatibility interface may be removed in a future
- release.
+ For backwards compatibility with Postfix version 2.0 and earlier, LDAP
+ parameters can also be defined in main.cf. Specify as LDAP source a
+ name that doesn't begin with a slash or a dot. The LDAP parameters
+ will then be accessible as the name you've given the source in its def-
+ inition, an underscore, and the name of the parameter. For example, if
+ the map is specified as "ldap:ldapsource", the "server_host" parameter
+ below would be defined in main.cf as "ldapsource_server_host".
+
+ Note: with this form, the passwords for the LDAP sources are written in
+ main.cf, which is normally world-readable. Support for this form will
+ be removed in a future Postfix version.
+
+ For backwards compatibility with the pre 2.2 LDAP clients, result_fil-
+ ter can for now be used instead of result_format, when the latter
+ parameter is not also set. The new name better reflects the function
+ of the parameter. This compatibility interface may be removed in a
+ future release.
LIST MEMBERSHIP
- When using LDAP to store lists such as $mynetworks,
- $mydestination, $relay_domains, $local_recipient_maps,
- etc., it is important to understand that the table must
- store each list member as a separate key. The table lookup
- verifies the *existence* of the key. See "Postfix lists
- versus tables" in the DATABASE_README document for a dis-
- cussion.
+ When using LDAP to store lists such as $mynetworks, $mydestination,
+ $relay_domains, $local_recipient_maps, etc., it is important to under-
+ stand that the table must store each list member as a separate key. The
+ table lookup verifies the *existence* of the key. See "Postfix lists
+ versus tables" in the DATABASE_README document for a discussion.
- Do NOT create tables that return the full list of domains
- in $mydestination or $relay_domains etc., or IP addresses
- in $mynetworks.
+ Do NOT create tables that return the full list of domains in $mydesti-
+ nation or $relay_domains etc., or IP addresses in $mynetworks.
- DO create tables with each matching item as a key and with
- an arbitrary value. With LDAP databases it is not uncommon
- to return the key itself.
+ DO create tables with each matching item as a key and with an arbitrary
+ value. With LDAP databases it is not uncommon to return the key itself.
- For example, NEVER do this in a map defining $mydestina-
- tion:
+ For example, NEVER do this in a map defining $mydestination:
query_filter = domain=*
result_attribute = domain
@@ -91,35 +79,33 @@ LDAP_TABLE(5) LDAP_TABLE(5)
result_attribute = domain
GENERAL LDAP PARAMETERS
- In the text below, default values are given in parenthe-
- ses. Note: don't use quotes in these variables; at least,
- not until the Postfix configuration routines understand
- how to deal with quoted strings.
+ In the text below, default values are given in parentheses. Note:
+ don't use quotes in these variables; at least, not until the Postfix
+ configuration routines understand how to deal with quoted strings.
server_host (default: localhost)
- The name of the host running the LDAP server, e.g.
+ The name of the host running the LDAP server, e.g.
server_host = ldap.example.com
- Depending on the LDAP client library you're using,
- it should be possible to specify multiple servers
- here, with the library trying them in order should
- the first one fail. It should also be possible to
- give each server in the list a different port
- (overriding server_port below), by naming them like
+ Depending on the LDAP client library you're using, it should be
+ possible to specify multiple servers here, with the library try-
+ ing them in order should the first one fail. It should also be
+ possible to give each server in the list a different port (over-
+ riding server_port below), by naming them like
server_host = ldap.example.com:1444
- With OpenLDAP, a (list of) LDAP URLs can be used to
- specify both the hostname(s) and the port(s):
+ With OpenLDAP, a (list of) LDAP URLs can be used to specify both
+ the hostname(s) and the port(s):
server_host = ldap://ldap.example.com:1444
ldap://ldap2.example.com:1444
- All LDAP URLs accepted by the OpenLDAP library are
- supported, including connections over UNIX domain
- sockets, and LDAP SSL (the last one provided that
- OpenLDAP was compiled with support for SSL):
+ All LDAP URLs accepted by the OpenLDAP library are supported,
+ including connections over UNIX domain sockets, and LDAP SSL
+ (the last one provided that OpenLDAP was compiled with support
+ for SSL):
server_host = ldapi://%2Fsome%2Fpath
ldaps://ldap.example.com:636
@@ -130,305 +116,256 @@ LDAP_TABLE(5) LDAP_TABLE(5)
server_port = 778
timeout (default: 10 seconds)
- The number of seconds a search can take before tim-
- ing out, e.g.
+ The number of seconds a search can take before timing out, e.g.
timeout = 5
search_base (No default; you must configure this)
- The RFC2253 base DN at which to conduct the search,
- e.g.
+ The RFC2253 base DN at which to conduct the search, e.g.
search_base = dc=your, dc=com
- With Postfix 2.2 and later this parameter supports
- the following '%' expansions:
+ With Postfix 2.2 and later this parameter supports the following
+ '%' expansions:
%% This is replaced by a literal '%' character.
- %s This is replaced by the input key. RFC 2253
- quoting is used to make sure that the input
- key does not add unexpected metacharacters.
-
- %u When the input key is an address of the form
- user@domain, %u is replaced by the (RFC
- 2253) quoted local part of the address.
- Otherwise, %u is replaced by the entire
- search string. If the localpart is empty,
- the search is suppressed and returns no
- results.
-
- %d When the input key is an address of the form
- user@domain, %d is replaced by the (RFC
- 2253) quoted domain part of the address.
- Otherwise, the search is suppressed and
- returns no results.
+ %s This is replaced by the input key. RFC 2253 quoting is
+ used to make sure that the input key does not add unex-
+ pected metacharacters.
- %[SUD] For the search_base parameter, the upper-
- case equivalents of the above expansions
- behave identically to their lower-case
- counter-parts. With the result_format param-
- eter (previously called result_filter see
- the COMPATIBILITY section and below), they
- expand to the corresponding components of
- input key rather than the result value.
-
- %[1-9] The patterns %1, %2, ... %9 are replaced by
- the corresponding most significant component
- of the input key's domain. If the input key
- is user@mail.example.com, then %1 is com, %2
- is example and %3 is mail. If the input key
- is unqualified or does not have enough
- domain components to satisfy all the speci-
- fied patterns, the search is suppressed and
+ %u When the input key is an address of the form user@domain,
+ %u is replaced by the (RFC 2253) quoted local part of the
+ address. Otherwise, %u is replaced by the entire search
+ string. If the localpart is empty, the search is sup-
+ pressed and returns no results.
+
+ %d When the input key is an address of the form user@domain,
+ %d is replaced by the (RFC 2253) quoted domain part of
+ the address. Otherwise, the search is suppressed and
returns no results.
+ %[SUD] For the search_base parameter, the upper-case equivalents
+ of the above expansions behave identically to their
+ lower-case counter-parts. With the result_format parame-
+ ter (previously called result_filter see the COMPATIBIL-
+ ITY section and below), they expand to the corresponding
+ components of input key rather than the result value.
+
+ %[1-9] The patterns %1, %2, ... %9 are replaced by the corre-
+ sponding most significant component of the input key's
+ domain. If the input key is user@mail.example.com, then
+ %1 is com, %2 is example and %3 is mail. If the input key
+ is unqualified or does not have enough domain components
+ to satisfy all the specified patterns, the search is sup-
+ pressed and returns no results.
+
query_filter (default: mailacceptinggeneralid=%s)
- The RFC2254 filter used to search the directory,
- where %s is a substitute for the address Postfix is
- trying to resolve, e.g.
+ The RFC2254 filter used to search the directory, where %s is a
+ substitute for the address Postfix is trying to resolve, e.g.
query_filter = (&(mail=%s)(paid_up=true))
- This parameter supports the following '%' expan-
- sions:
+ This parameter supports the following '%' expansions:
- %% This is replaced by a literal '%' character.
- (Postfix 2.2 and later).
-
- %s This is replaced by the input key. RFC 2254
- quoting is used to make sure that the input
- key does not add unexpected metacharacters.
-
- %u When the input key is an address of the form
- user@domain, %u is replaced by the (RFC
- 2254) quoted local part of the address.
- Otherwise, %u is replaced by the entire
- search string. If the localpart is empty,
- the search is suppressed and returns no
- results.
-
- %d When the input key is an address of the form
- user@domain, %d is replaced by the (RFC
- 2254) quoted domain part of the address.
- Otherwise, the search is suppressed and
- returns no results.
+ %% This is replaced by a literal '%' character. (Postfix 2.2
+ and later).
- %[SUD] The upper-case equivalents of the above
- expansions behave in the query_filter param-
- eter identically to their lower-case
- counter-parts. With the result_format param-
- eter (previously called result_filter see
- the COMPATIBILITY section and below), they
- expand to the corresponding components of
- input key rather than the result value.
+ %s This is replaced by the input key. RFC 2254 quoting is
+ used to make sure that the input key does not add unex-
+ pected metacharacters.
- The above %S, %U and %D expansions are
- available with Postfix 2.2 and later.
+ %u When the input key is an address of the form user@domain,
+ %u is replaced by the (RFC 2254) quoted local part of the
+ address. Otherwise, %u is replaced by the entire search
+ string. If the localpart is empty, the search is sup-
+ pressed and returns no results.
- %[1-9] The patterns %1, %2, ... %9 are replaced by
- the corresponding most significant component
- of the input key's domain. If the input key
- is user@mail.example.com, then %1 is com, %2
- is example and %3 is mail. If the input key
- is unqualified or does not have enough
- domain components to satisfy all the speci-
- fied patterns, the search is suppressed and
+ %d When the input key is an address of the form user@domain,
+ %d is replaced by the (RFC 2254) quoted domain part of
+ the address. Otherwise, the search is suppressed and
returns no results.
- The above %1, ..., %9 expansions are avail-
- able with Postfix 2.2 and later.
+ %[SUD] The upper-case equivalents of the above expansions behave
+ in the query_filter parameter identically to their lower-
+ case counter-parts. With the result_format parameter
+ (previously called result_filter see the COMPATIBILITY
+ section and below), they expand to the corresponding com-
+ ponents of input key rather than the result value.
+
+ The above %S, %U and %D expansions are available with
+ Postfix 2.2 and later.
+
+ %[1-9] The patterns %1, %2, ... %9 are replaced by the corre-
+ sponding most significant component of the input key's
+ domain. If the input key is user@mail.example.com, then
+ %1 is com, %2 is example and %3 is mail. If the input key
+ is unqualified or does not have enough domain components
+ to satisfy all the specified patterns, the search is sup-
+ pressed and returns no results.
+
+ The above %1, ..., %9 expansions are available with Post-
+ fix 2.2 and later.
- The "domain" parameter described below limits the
- input keys to addresses in matching domains. When
- the "domain" parameter is non-empty, LDAP queries
- for unqualified addresses or addresses in non-
- matching domains are suppressed and return no
- results.
+ The "domain" parameter described below limits the input keys to
+ addresses in matching domains. When the "domain" parameter is
+ non-empty, LDAP queries for unqualified addresses or addresses
+ in non-matching domains are suppressed and return no results.
- NOTE: DO NOT put quotes around the query_filter
- parameter.
+ NOTE: DO NOT put quotes around the query_filter parameter.
result_format (default: %s)
- Called result_filter in Postfix releases prior to
- 2.2. Format template applied to result attributes.
- Most commonly used to append (or prepend) text to
- the result. This parameter supports the following
- '%' expansions:
+ Called result_filter in Postfix releases prior to 2.2. Format
+ template applied to result attributes. Most commonly used to
+ append (or prepend) text to the result. This parameter supports
+ the following '%' expansions:
- %% This is replaced by a literal '%' character.
- (Postfix 2.2 and later).
+ %% This is replaced by a literal '%' character. (Postfix 2.2
+ and later).
- %s This is replaced by the value of the result
- attribute. When result is empty it is
- skipped.
+ %s This is replaced by the value of the result attribute.
+ When result is empty it is skipped.
- %u When the result attribute value is an
- address of the form user@domain, %u is
- replaced by the local part of the address.
- When the result has an empty localpart it is
+ %u When the result attribute value is an address of the form
+ user@domain, %u is replaced by the local part of the
+ address. When the result has an empty localpart it is
skipped.
- %d When a result attribute value is an address
- of the form user@domain, %d is replaced by
- the domain part of the attribute value. When
- the result is unqualified it is skipped.
+ %d When a result attribute value is an address of the form
+ user@domain, %d is replaced by the domain part of the
+ attribute value. When the result is unqualified it is
+ skipped.
%[SUD1-9]
- The upper-case and decimal digit expansions
- interpolate the parts of the input key
- rather than the result. Their behavior is
- identical to that described with query_fil-
- ter, and in fact because the input key is
- known in advance, lookups whose key does not
- contain all the information specified in the
- result template are suppressed and return no
- results.
-
- The above %S, %U, %D and %1, ..., %9 expan-
- sions are available with Postfix 2.2 and
- later.
-
- For example, using "result_format = smtp:[%s]"
- allows one to use a mailHost attribute as the basis
- of a transport(5) table. After applying the result
- format, multiple values are concatenated as comma
- separated strings. The expansion_limit and
- size_limit parameters explained below allow one to
- restrict the number of values in the result, which
- is especially useful for maps that should return a
- single value.
-
- The default value %s specifies that each attribute
- value should be used as is.
-
- This parameter was called result_filter in Postfix
- releases prior to 2.2. If no "result_format" is
- specified, the value of "result_filter" will be
- used instead before resorting to the default value.
- This provides compatibility with old configuration
- files.
+ The upper-case and decimal digit expansions interpolate
+ the parts of the input key rather than the result. Their
+ behavior is identical to that described with query_fil-
+ ter, and in fact because the input key is known in
+ advance, lookups whose key does not contain all the
+ information specified in the result template are sup-
+ pressed and return no results.
+
+ The above %S, %U, %D and %1, ..., %9 expansions are
+ available with Postfix 2.2 and later.
+
+ For example, using "result_format = smtp:[%s]" allows one to use
+ a mailHost attribute as the basis of a transport(5) table. After
+ applying the result format, multiple values are concatenated as
+ comma separated strings. The expansion_limit and size_limit
+ parameters explained below allow one to restrict the number of
+ values in the result, which is especially useful for maps that
+ should return a single value.
+
+ The default value %s specifies that each attribute value should
+ be used as is.
+
+ This parameter was called result_filter in Postfix releases
+ prior to 2.2. If no "result_format" is specified, the value of
+ "result_filter" will be used instead before resorting to the
+ default value. This provides compatibility with old configura-
+ tion files.
NOTE: DO NOT put quotes around the result format!
domain (default: no domain list)
- This is a list of domain names, paths to files, or
- dictionaries. When specified, only fully qualified
- search keys with a *non-empty* localpart and a
- matching domain are eligible for lookup: 'user'
- lookups, bare domain lookups and "@domain" lookups
- are not performed. This can significantly reduce
- the query load on the LDAP server.
+ This is a list of domain names, paths to files, or dictionaries.
+ When specified, only fully qualified search keys with a *non-
+ empty* localpart and a matching domain are eligible for lookup:
+ 'user' lookups, bare domain lookups and "@domain" lookups are
+ not performed. This can significantly reduce the query load on
+ the LDAP server.
domain = postfix.org, hash:/etc/postfix/searchdomains
- It is best not to use LDAP to store the domains
- eligible for LDAP lookups.
+ It is best not to use LDAP to store the domains eligible for
+ LDAP lookups.
- NOTE: DO NOT define this parameter for local(8)
- aliases.
+ NOTE: DO NOT define this parameter for local(8) aliases.
This feature is available in Postfix 1.0 and later.
result_attribute (default: maildrop)
- The attribute(s) Postfix will read from any direc-
- tory entries returned by the lookup, to be resolved
- to an email address.
+ The attribute(s) Postfix will read from any directory entries
+ returned by the lookup, to be resolved to an email address.
result_attribute = mailbox, maildrop
- Don't rely on the default value ("maildrop"). Set
- the result_attribute explicitly in all ldap table
- configuration files. This is particularly relevant
- when no result_attribute is applicable, e.g. cases
- in which leaf_result_attribute and/or termi-
- nal_result_attribute are used instead. The default
- value is harmless if "maildrop" is also listed as a
- leaf or terminal result attribute, but it is best
- to not leave this to chance.
+ Don't rely on the default value ("maildrop"). Set the
+ result_attribute explicitly in all ldap table configuration
+ files. This is particularly relevant when no result_attribute is
+ applicable, e.g. cases in which leaf_result_attribute and/or
+ terminal_result_attribute are used instead. The default value is
+ harmless if "maildrop" is also listed as a leaf or terminal
+ result attribute, but it is best to not leave this to chance.
special_result_attribute (default: empty)
- The attribute(s) of directory entries that can con-
- tain DNs or RFC 2255 LDAP URLs. If found, a recur-
- sive search is performed to retrieve the entry ref-
- erenced by the DN, or the entries matched by the
- URL query.
+ The attribute(s) of directory entries that can contain DNs or
+ RFC 2255 LDAP URLs. If found, a recursive search is performed to
+ retrieve the entry referenced by the DN, or the entries matched
+ by the URL query.
special_result_attribute = memberdn
- DN recursion retrieves the same result_attributes
- as the main query, including the special attributes
- for further recursion.
-
- URL processing retrieves only those attributes that
- are included in both the URL definition and as
- result attributes (ordinary, special, leaf or ter-
- minal) in the Postfix table definition. If the URL
- lists any of the table's special result attributes,
- these are retrieved and used recursively. A URL
- that does not specify any attribute selection, is
- equivalent (RFC 2255) to a URL that selects all
- attributes, in which case the selected attributes
- will be the full set of result attributes in the
+ DN recursion retrieves the same result_attributes as the main
+ query, including the special attributes for further recursion.
+
+ URL processing retrieves only those attributes that are included
+ in both the URL definition and as result attributes (ordinary,
+ special, leaf or terminal) in the Postfix table definition. If
+ the URL lists any of the table's special result attributes,
+ these are retrieved and used recursively. A URL that does not
+ specify any attribute selection, is equivalent (RFC 2255) to a
+ URL that selects all attributes, in which case the selected
+ attributes will be the full set of result attributes in the
Postfix table.
- If an LDAP URL attribute-descriptor or the corre-
- sponding Postfix LDAP table result attribute (but
- not both) uses RFC 2255 sub-type options
- ("attr;option"), the attribute requested from the
- LDAP server will include the sub-type option. In
- all other cases, the URL attribute and the table
- attribute must match exactly. Attributes with
- options in both the URL and the Postfix table are
- requested only when the options are identical. LDAP
- attribute-descriptor options are very rarely used,
- most LDAP users will not need to concern themselves
- with this level of nuanced detail.
+ If an LDAP URL attribute-descriptor or the corresponding Postfix
+ LDAP table result attribute (but not both) uses RFC 2255 sub-
+ type options ("attr;option"), the attribute requested from the
+ LDAP server will include the sub-type option. In all other
+ cases, the URL attribute and the table attribute must match
+ exactly. Attributes with options in both the URL and the Postfix
+ table are requested only when the options are identical. LDAP
+ attribute-descriptor options are very rarely used, most LDAP
+ users will not need to concern themselves with this level of
+ nuanced detail.
terminal_result_attribute (default: empty)
- When one or more terminal result attributes are
- found in an LDAP entry, all other result attributes
- are ignored and only the terminal result attributes
- are returned. This is useful for delegating expan-
- sion of group members to a particular host, by
- using an optional "maildrop" attribute on selected
- groups to route the group to a specific host, where
- the group is expanded, possibly via mailing-list
- manager or other special processing.
+ When one or more terminal result attributes are found in an LDAP
+ entry, all other result attributes are ignored and only the ter-
+ minal result attributes are returned. This is useful for dele-
+ gating expansion of group members to a particular host, by using
+ an optional "maildrop" attribute on selected groups to route the
+ group to a specific host, where the group is expanded, possibly
+ via mailing-list manager or other special processing.
result_attribute =
terminal_result_attribute = maildrop
- When using terminal and/or leaf result attributes,
- the result_attribute is best set to an empty value
- when it is not used, or else explicitly set to the
- desired value, even if it is the default value
- "maildrop".
+ When using terminal and/or leaf result attributes, the
+ result_attribute is best set to an empty value when it is not
+ used, or else explicitly set to the desired value, even if it is
+ the default value "maildrop".
- This feature is available with Postfix 2.4 or
- later.
+ This feature is available with Postfix 2.4 or later.
leaf_result_attribute (default: empty)
- When one or more special result attributes are
- found in a non-terminal (see above) LDAP entry,
- leaf result attributes are excluded from the expan-
- sion of that entry. This is useful when expanding
- groups and the desired mail address attribute(s) of
- the member objects obtained via DN or URI recursion
- are also present in the group object. To only
- return the attribute values from the leaf objects
- and not the containing group, add the attribute to
- the leaf_result_attribute list, and not the
- result_attribute list, which is always expanded.
- Note, the default value of "result_attribute" is
- not empty, you may want to set it explicitly empty
- when using "leaf_result_attribute" to expand the
- group to a list of member DN addresses. If groups
- have both member DN references AND attributes that
- hold multiple string valued rfc822 addresses, then
- the string attributes go in "result_attribute".
- The attributes that represent the email addresses
- of objects referenced via a DN (or LDAP URI) go in
+ When one or more special result attributes are found in a non-
+ terminal (see above) LDAP entry, leaf result attributes are
+ excluded from the expansion of that entry. This is useful when
+ expanding groups and the desired mail address attribute(s) of
+ the member objects obtained via DN or URI recursion are also
+ present in the group object. To only return the attribute values
+ from the leaf objects and not the containing group, add the
+ attribute to the leaf_result_attribute list, and not the
+ result_attribute list, which is always expanded. Note, the
+ default value of "result_attribute" is not empty, you may want
+ to set it explicitly empty when using "leaf_result_attribute" to
+ expand the group to a list of member DN addresses. If groups
+ have both member DN references AND attributes that hold multiple
+ string valued rfc822 addresses, then the string attributes go in
+ "result_attribute". The attributes that represent the email
+ addresses of objects referenced via a DN (or LDAP URI) go in
"leaf_result_attribute".
result_attribute = memberaddr
@@ -436,24 +373,21 @@ LDAP_TABLE(5) LDAP_TABLE(5)
terminal_result_attribute = maildrop
leaf_result_attribute = mail
- When using terminal and/or leaf result attributes,
- the result_attribute is best set to an empty value
- when it is not used, or else explicitly set to the
- desired value, even if it is the default value
- "maildrop".
+ When using terminal and/or leaf result attributes, the
+ result_attribute is best set to an empty value when it is not
+ used, or else explicitly set to the desired value, even if it is
+ the default value "maildrop".
- This feature is available with Postfix 2.4 or
- later.
+ This feature is available with Postfix 2.4 or later.
scope (default: sub)
- The LDAP search scope: sub, base, or one. These
- translate into LDAP_SCOPE_SUBTREE, LDAP_SCOPE_BASE,
- and LDAP_SCOPE_ONELEVEL.
+ The LDAP search scope: sub, base, or one. These translate into
+ LDAP_SCOPE_SUBTREE, LDAP_SCOPE_BASE, and LDAP_SCOPE_ONELEVEL.
bind (default: yes)
- Whether or how to bind to the LDAP server. Newer
- LDAP implementations don't require clients to bind,
- which saves time. Example:
+ Whether or how to bind to the LDAP server. Newer LDAP implemen-
+ tations don't require clients to bind, which saves time. Exam-
+ ple:
# Don't bind
bind = no
@@ -462,92 +396,80 @@ LDAP_TABLE(5) LDAP_TABLE(5)
# Use SASL bind
bind = sasl
- Postfix versions prior to 2.8 only support "bind =
- no" which means don't bind, and "bind = yes" which
- means do a SIMPLE bind. Postfix 2.8 and later also
- supports "bind = SASL" when compiled with LDAP SASL
- support as described in LDAP_README, it also adds
- the synonyms "bind = none" and "bind = simple" for
- "bind = no" and "bind = yes" respectively. See the
- SASL section below for additional parameters avail-
- able with "bind = sasl".
-
- If you do need to bind, you might consider config-
- uring Postfix to connect to the local machine on a
- port that's an SSL tunnel to your LDAP server. If
- your LDAP server doesn't natively support SSL, put
- a tunnel (wrapper, proxy, whatever you want to call
- it) on that system too. This should prevent the
- password from traversing the network in the clear.
+ Postfix versions prior to 2.8 only support "bind = no" which
+ means don't bind, and "bind = yes" which means do a SIMPLE bind.
+ Postfix 2.8 and later also supports "bind = SASL" when compiled
+ with LDAP SASL support as described in LDAP_README, it also adds
+ the synonyms "bind = none" and "bind = simple" for "bind = no"
+ and "bind = yes" respectively. See the SASL section below for
+ additional parameters available with "bind = sasl".
+
+ If you do need to bind, you might consider configuring Postfix
+ to connect to the local machine on a port that's an SSL tunnel
+ to your LDAP server. If your LDAP server doesn't natively sup-
+ port SSL, put a tunnel (wrapper, proxy, whatever you want to
+ call it) on that system too. This should prevent the password
+ from traversing the network in the clear.
bind_dn (default: empty)
- If you do have to bind, do it with this distin-
- guished name. Example:
+ If you do have to bind, do it with this distinguished name.
+ Example:
bind_dn = uid=postfix, dc=your, dc=com
- With "bind = sasl" (see above) the DN may be
- optional for some SASL mechanisms, don't specify a
- DN if not needed.
+ With "bind = sasl" (see above) the DN may be optional for some
+ SASL mechanisms, don't specify a DN if not needed.
bind_pw (default: empty)
- The password for the distinguished name above. If
- you have to use this, you probably want to make the
- map configuration file readable only by the Postfix
- user. When using the obsolete ldap:ldapsource syn-
- tax, with map parameters in main.cf, it is not pos-
- sible to securely store the bind password. This is
- because main.cf needs to be world readable to allow
- local accounts to submit mail via the sendmail com-
- mand. Example:
+ The password for the distinguished name above. If you have to
+ use this, you probably want to make the map configuration file
+ readable only by the Postfix user. When using the obsolete
+ ldap:ldapsource syntax, with map parameters in main.cf, it is
+ not possible to securely store the bind password. This is
+ because main.cf needs to be world readable to allow local
+ accounts to submit mail via the sendmail command. Example:
bind_pw = postfixpw
- With "bind = sasl" (see above) the password may be
- optional for some SASL mechanisms, don't specify a
- password if not needed.
+ With "bind = sasl" (see above) the password may be optional for
+ some SASL mechanisms, don't specify a password if not needed.
cache (IGNORED with a warning)
cache_expiry (IGNORED with a warning)
cache_size (IGNORED with a warning)
- The above parameters are NO LONGER SUPPORTED by
- Postfix. Cache support has been dropped from
- OpenLDAP as of release 2.1.13.
+ The above parameters are NO LONGER SUPPORTED by Postfix. Cache
+ support has been dropped from OpenLDAP as of release 2.1.13.
recursion_limit (default: 1000)
- A limit on the nesting depth of DN and URL special
- result attribute evaluation. The limit must be a
- non-zero positive number.
+ A limit on the nesting depth of DN and URL special result
+ attribute evaluation. The limit must be a non-zero positive num-
+ ber.
expansion_limit (default: 0)
- A limit on the total number of result elements
- returned (as a comma separated list) by a lookup
- against the map. A setting of zero disables the
- limit. Lookups fail with a temporary error if the
- limit is exceeded. Setting the limit to 1 ensures
- that lookups do not return multiple values.
+ A limit on the total number of result elements returned (as a
+ comma separated list) by a lookup against the map. A setting of
+ zero disables the limit. Lookups fail with a temporary error if
+ the limit is exceeded. Setting the limit to 1 ensures that
+ lookups do not return multiple values.
size_limit (default: $expansion_limit)
- A limit on the number of LDAP entries returned by
- any single LDAP search performed as part of the
- lookup. A setting of 0 disables the limit. Expan-
- sion of DN and URL references involves nested LDAP
- queries, each of which is separately subjected to
+ A limit on the number of LDAP entries returned by any single
+ LDAP search performed as part of the lookup. A setting of 0 dis-
+ ables the limit. Expansion of DN and URL references involves
+ nested LDAP queries, each of which is separately subjected to
this limit.
- Note: even a single LDAP entry can generate multi-
- ple lookup results, via multiple result attributes
- and/or multi-valued result attributes. This limit
- caps the per search resource utilization on the
- LDAP server, not the final multiplicity of the
- lookup result. It is analogous to the "-z" option
- of "ldapsearch".
+ Note: even a single LDAP entry can generate multiple lookup
+ results, via multiple result attributes and/or multi-valued
+ result attributes. This limit caps the per search resource uti-
+ lization on the LDAP server, not the final multiplicity of the
+ lookup result. It is analogous to the "-z" option of
+ "ldapsearch".
dereference (default: 0)
- When to dereference LDAP aliases. (Note that this
- has nothing do with Postfix aliases.) The permitted
- values are those legal for the OpenLDAP/UM LDAP
- implementations:
+ When to dereference LDAP aliases. (Note that this has nothing do
+ with Postfix aliases.) The permitted values are those legal for
+ the OpenLDAP/UM LDAP implementations:
0 never
@@ -557,55 +479,47 @@ LDAP_TABLE(5) LDAP_TABLE(5)
3 always
- See ldap.h or the ldap_open(3) or ldapsearch(1) man
- pages for more information. And if you're using an
- LDAP package that has other possible values, please
- bring it to the attention of the postfix-
- users@postfix.org mailing list.
+ See ldap.h or the ldap_open(3) or ldapsearch(1) man pages for
+ more information. And if you're using an LDAP package that has
+ other possible values, please bring it to the attention of the
+ postfix-users@postfix.org mailing list.
chase_referrals (default: 0)
- Sets (or clears) LDAP_OPT_REFERRALS (requires LDAP
- version 3 support).
+ Sets (or clears) LDAP_OPT_REFERRALS (requires LDAP version 3
+ support).
version (default: 2)
Specifies the LDAP protocol version to use.
debuglevel (default: 0)
- What level to set for debugging in the OpenLDAP
- libraries.
+ What level to set for debugging in the OpenLDAP libraries.
LDAP SASL PARAMETERS
- If you're using the OpenLDAP libraries compiled with SASL
- support, Postfix 2.8 and later built with LDAP SASL sup-
- port as described in LDAP_README can authenticate to LDAP
- servers via SASL.
-
- This enables authentication to the LDAP server via mecha-
- nisms other than a simple password. The added flexibility
- has a cost: it is no longer practical to set an explicit
- timeout on the duration of an LDAP bind operation. Under
- adverse conditions, whether a SASL bind times out, or if
- it does, the duration of the timeout is determined by the
+ If you're using the OpenLDAP libraries compiled with SASL support,
+ Postfix 2.8 and later built with LDAP SASL support as described in
+ LDAP_README can authenticate to LDAP servers via SASL.
+
+ This enables authentication to the LDAP server via mechanisms other
+ than a simple password. The added flexibility has a cost: it is no
+ longer practical to set an explicit timeout on the duration of an LDAP
+ bind operation. Under adverse conditions, whether a SASL bind times
+ out, or if it does, the duration of the timeout is determined by the
LDAP and SASL libraries.
- It is best to use tables that use SASL binds via prox-
- ymap(8), this way the requesting process can time-out the
- proxymap request. This also lets you tailer the process
- environment by overriding the proxymap(8) import_environ-
- ment setting in master.cf(5). Special environment settings
- may be needed to configure GSSAPI credential caches or
- other SASL mechanism specific options. The GSSAPI creden-
- tials used for LDAP lookups may need to be different than
- say those used for the Postfix SMTP client to authenticate
- to remote servers.
-
- Using SASL mechanisms requires LDAP protocol version 3,
- the default protocol version is 2 for backwards compati-
- bility. You must set "version = 3" in addition to "bind =
- sasl".
-
- The following parameters are relevant to using LDAP with
- SASL
+ It is best to use tables that use SASL binds via proxymap(8), this way
+ the requesting process can time-out the proxymap request. This also
+ lets you tailer the process environment by overriding the proxymap(8)
+ import_environment setting in master.cf(5). Special environment set-
+ tings may be needed to configure GSSAPI credential caches or other SASL
+ mechanism specific options. The GSSAPI credentials used for LDAP
+ lookups may need to be different than say those used for the Postfix
+ SMTP client to authenticate to remote servers.
+
+ Using SASL mechanisms requires LDAP protocol version 3, the default
+ protocol version is 2 for backwards compatibility. You must set "ver-
+ sion = 3" in addition to "bind = sasl".
+
+ The following parameters are relevant to using LDAP with SASL
sasl_mechs (default: empty)
Space separated list of SASL mechanism(s) to try.
@@ -614,20 +528,18 @@ LDAP_TABLE(5) LDAP_TABLE(5)
SASL Realm to use, if applicable.
sasl_authz_id (default: empty)
- The SASL authorization identity to assert, if
- applicable.
+ The SASL authorization identity to assert, if applicable.
sasl_minssf (default: 0)
- The minimum required sasl security factor required
- to establish a connection.
+ The minimum required sasl security factor required to establish
+ a connection.
LDAP SSL AND STARTTLS PARAMETERS
- If you're using the OpenLDAP libraries compiled with SSL
- support, Postfix can connect to LDAP SSL servers and can
- issue the STARTTLS command.
+ If you're using the OpenLDAP libraries compiled with SSL support, Post-
+ fix can connect to LDAP SSL servers and can issue the STARTTLS command.
- LDAP SSL service can be requested by using a LDAP SSL URL
- in the server_host parameter:
+ LDAP SSL service can be requested by using a LDAP SSL URL in the
+ server_host parameter:
server_host = ldaps://ldap.example.com:636
@@ -635,111 +547,93 @@ LDAP_TABLE(5) LDAP_TABLE(5)
start_tls = yes
- Both forms require LDAP protocol version 3, which has to
- be set explicitly with:
+ Both forms require LDAP protocol version 3, which has to be set explic-
+ itly with:
version = 3
- If any of the Postfix programs querying the map is config-
- ured in master.cf to run chrooted, all the certificates
- and keys involved have to be copied to the chroot jail. Of
- course, the private keys should only be readable by the
- user "postfix".
+ If any of the Postfix programs querying the map is configured in mas-
+ ter.cf to run chrooted, all the certificates and keys involved have to
+ be copied to the chroot jail. Of course, the private keys should only
+ be readable by the user "postfix".
- The following parameters are relevant to LDAP SSL and
- STARTTLS:
+ The following parameters are relevant to LDAP SSL and STARTTLS:
start_tls (default: no)
- Whether or not to issue STARTTLS upon connection to
- the server. Don't set this with LDAP SSL (the SSL
- session is setup automatically when the TCP connec-
- tion is opened).
-
- tls_ca_cert_dir (No default; set either this or
- tls_ca_cert_file)
- Directory containing X509 Certificate Authority
- certificates in PEM format which are to be recog-
- nized by the client in SSL/TLS connections. The
- files each contain one CA certificate. The files
- are looked up by the CA subject name hash value,
- which must hence be available. If more than one CA
- certificate with the same name hash value exist,
- the extension must be different (e.g. 9d66eef0.0,
- 9d66eef0.1 etc). The search is performed in the
- ordering of the extension number, regardless of
- other properties of the certificates. Use the
- c_rehash utility (from the OpenSSL distribution) to
- create the necessary links.
-
- tls_ca_cert_file (No default; set either this or
- tls_ca_cert_dir)
- File containing the X509 Certificate Authority cer-
- tificates in PEM format which are to be recognized
- by the client in SSL/TLS connections. This setting
- takes precedence over tls_ca_cert_dir.
+ Whether or not to issue STARTTLS upon connection to the server.
+ Don't set this with LDAP SSL (the SSL session is setup automati-
+ cally when the TCP connection is opened).
+
+ tls_ca_cert_dir (No default; set either this or tls_ca_cert_file)
+ Directory containing X509 Certificate Authority certificates in
+ PEM format which are to be recognized by the client in SSL/TLS
+ connections. The files each contain one CA certificate. The
+ files are looked up by the CA subject name hash value, which
+ must hence be available. If more than one CA certificate with
+ the same name hash value exist, the extension must be different
+ (e.g. 9d66eef0.0, 9d66eef0.1 etc). The search is performed in
+ the ordering of the extension number, regardless of other prop-
+ erties of the certificates. Use the c_rehash utility (from the
+ OpenSSL distribution) to create the necessary links.
+
+ tls_ca_cert_file (No default; set either this or tls_ca_cert_dir)
+ File containing the X509 Certificate Authority certificates in
+ PEM format which are to be recognized by the client in SSL/TLS
+ connections. This setting takes precedence over tls_ca_cert_dir.
tls_cert (No default; you must set this)
- File containing client's X509 certificate to be
- used by the client in SSL/ TLS connections.
+ File containing client's X509 certificate to be used by the
+ client in SSL/ TLS connections.
tls_key (No default; you must set this)
- File containing the private key corresponding to
- the above tls_cert.
+ File containing the private key corresponding to the above
+ tls_cert.
tls_require_cert (default: no)
- Whether or not to request server's X509 certificate
- and check its validity when establishing SSL/TLS
- connections. The supported values are no and yes.
-
- With no, the server certificate trust chain is not
- checked, but with OpenLDAP prior to 2.1.13, the
- name in the server certificate must still match the
- LDAP server name. With OpenLDAP 2.0.0 to 2.0.11 the
- server name is not necessarily what you specified,
- rather it is determined (by reverse lookup) from
- the IP address of the LDAP server connection. With
- OpenLDAP prior to 2.0.13, subjectAlternativeName
- extensions in the LDAP server certificate are
- ignored: the server name must match the subject
- CommonName. The no setting corresponds to the never
- value of TLS_REQCERT in LDAP client configuration
- files.
-
- Don't use TLS with OpenLDAP 2.0.x (and especially
- with x <= 11) if you can avoid it.
-
- With yes, the server certificate must be issued by
- a trusted CA, and not be expired. The LDAP server
- name must match one of the name(s) found in the
- certificate (see above for OpenLDAP library version
- dependent behavior). The yes setting corresponds to
- the demand value of TLS_REQCERT in LDAP client con-
- figuration files.
-
- The "try" and "allow" values of TLS_REQCERT have no
- equivalents here. They are not available with
- OpenLDAP 2.0, and in any case have questionable
- security properties. Either you want TLS verified
- LDAP connections, or you don't.
-
- The yes value only works correctly with Postfix 2.5
- and later, or with OpenLDAP 2.0. Earlier Postfix
- releases or later OpenLDAP releases don't work
- together with this setting. Support for LDAP over
- TLS was added to Postfix based on the OpenLDAP 2.0
- API.
+ Whether or not to request server's X509 certificate and check
+ its validity when establishing SSL/TLS connections. The sup-
+ ported values are no and yes.
+
+ With no, the server certificate trust chain is not checked, but
+ with OpenLDAP prior to 2.1.13, the name in the server certifi-
+ cate must still match the LDAP server name. With OpenLDAP 2.0.0
+ to 2.0.11 the server name is not necessarily what you specified,
+ rather it is determined (by reverse lookup) from the IP address
+ of the LDAP server connection. With OpenLDAP prior to 2.0.13,
+ subjectAlternativeName extensions in the LDAP server certificate
+ are ignored: the server name must match the subject CommonName.
+ The no setting corresponds to the never value of TLS_REQCERT in
+ LDAP client configuration files.
+
+ Don't use TLS with OpenLDAP 2.0.x (and especially with x <= 11)
+ if you can avoid it.
+
+ With yes, the server certificate must be issued by a trusted CA,
+ and not be expired. The LDAP server name must match one of the
+ name(s) found in the certificate (see above for OpenLDAP library
+ version dependent behavior). The yes setting corresponds to the
+ demand value of TLS_REQCERT in LDAP client configuration files.
+
+ The "try" and "allow" values of TLS_REQCERT have no equivalents
+ here. They are not available with OpenLDAP 2.0, and in any case
+ have questionable security properties. Either you want TLS veri-
+ fied LDAP connections, or you don't.
+
+ The yes value only works correctly with Postfix 2.5 and later,
+ or with OpenLDAP 2.0. Earlier Postfix releases or later OpenLDAP
+ releases don't work together with this setting. Support for LDAP
+ over TLS was added to Postfix based on the OpenLDAP 2.0 API.
tls_random_file (No default)
- Path of a file to obtain random bits from when
- /dev/[u]random is not available, to be used by the
- client in SSL/TLS connections.
+ Path of a file to obtain random bits from when /dev/[u]random is
+ not available, to be used by the client in SSL/TLS connections.
tls_cipher_suite (No default)
Cipher suite to use in SSL/TLS negotiations.
EXAMPLE
- Here's a basic example for using LDAP to look up local(8)
- aliases. Assume that in main.cf, you have:
+ Here's a basic example for using LDAP to look up local(8) aliases.
+ Assume that in main.cf, you have:
alias_maps = hash:/etc/aliases,
ldap:/etc/postfix/ldap-aliases.cf
@@ -749,15 +643,13 @@ LDAP_TABLE(5) LDAP_TABLE(5)
server_host = ldap.example.com
search_base = dc=example, dc=com
- Upon receiving mail for a local address "ldapuser" that
- isn't found in the /etc/aliases database, Postfix will
- search the LDAP server listening at port 389 on ldap.exam-
- ple.com. It will bind anonymously, search for any direc-
- tory entries whose mailacceptinggeneralid attribute is
- "ldapuser", read the "maildrop" attributes of those found,
- and build a list of their maildrops, which will be treated
- as RFC822 addresses to which the message will be deliv-
- ered.
+ Upon receiving mail for a local address "ldapuser" that isn't found in
+ the /etc/aliases database, Postfix will search the LDAP server listen-
+ ing at port 389 on ldap.example.com. It will bind anonymously, search
+ for any directory entries whose mailacceptinggeneralid attribute is
+ "ldapuser", read the "maildrop" attributes of those found, and build a
+ list of their maildrops, which will be treated as RFC822 addresses to
+ which the message will be delivered.
SEE ALSO
postmap(1), Postfix lookup table manager
@@ -770,14 +662,12 @@ LDAP_TABLE(5) LDAP_TABLE(5)
LDAP_README, Postfix LDAP client guide
LICENSE
- The Secure Mailer license must be distributed with this
- software.
+ The Secure Mailer license must be distributed with this software.
AUTHOR(S)
- Carsten Hoeger, Hery Rakotoarisoa, John Hensley, Keith
- Stevenson, LaMont Jones, Liviu Daia, Manuel Guesdon, Mike
- Mattice, Prabhat K Singh, Sami Haahtinen, Samuel Tardieu,
- Victor Duchovni, and many others.
+ Carsten Hoeger, Hery Rakotoarisoa, John Hensley, Keith Stevenson, LaM-
+ ont Jones, Liviu Daia, Manuel Guesdon, Mike Mattice, Prabhat K Singh,
+ Sami Haahtinen, Samuel Tardieu, Victor Duchovni, and many others.
LDAP_TABLE(5)