From: Wietse Venema SMTP clients outside the SMTP server's network need a different
way to get "same network" privileges. To address this need, Postfix
-supports SASL authentication (RFC 4954, formerly RFC 2554). With
+supports SASL authentication (RFC 4954, formerly RFC 2554). With
this a remote SMTP client can authenticate to the Postfix SMTP
server, and the Postfix SMTP client can authenticate to a remote
SMTP server. Once a client is authenticated, a server can give it
@@ -1564,7 +1564,7 @@ encoded authentication information: The mmencode command is part of the metamail
software. Using Perl MIME::Base64: Using Perl MIME::Base64 (from http://www.cpan.org/):
@@ -1573,7 +1573,7 @@ software.
MIME::Base64 is available from http://www.cpan.org/.
+If the username or password contain "@", you must specify "\@".
Using the gen-auth script:
diff --git a/postfix/html/SMTPD_PROXY_README.html b/postfix/html/SMTPD_PROXY_README.html index 06bfcaa29..17dc7c2b6 100644 --- a/postfix/html/SMTPD_PROXY_README.html +++ b/postfix/html/SMTPD_PROXY_README.html @@ -199,8 +199,8 @@ usual.The content filter itself is not described here. You can use any filter that is SMTP enabled. For non-SMTP capable content filtering software, Bennett Todd's SMTP proxy implements a nice -PERL/SMTP content filtering framework. See: -http://bent.latency.net/smtpprox/.
+Perl-based framework. See: http://bent.latency.net/smtpprox/ or +https://github.com/jnorell/smtpprox.diff --git a/postfix/html/SMTPUTF8_README.html b/postfix/html/SMTPUTF8_README.html new file mode 100644 index 000000000..74f48a42c --- /dev/null +++ b/postfix/html/SMTPUTF8_README.html @@ -0,0 +1,303 @@ + + + + + + ++Postfix SMTPUTF8 support + + + + + + + ++ +
+Postfix SMTPUTF8 support +
+ +Overview
+ +This document describes Postfix support for Email Address +Internationalization (EAI) as defined in RFC 6531 (SMTPUTF8 extension), +RFC 6532 (Internationalized email headers) and RFC 6533 (Internationalized +delivery status notifications). Introduced with Postfix version +2.12, this fully supports UTF-8 email addresses and UTF-8 message +header values.
+ +Topics covered in this document:
+ ++ +
+ +- Enabling Postfix SMTPUTF8 support + +
- Using Postfix SMTPUTF8 support + +
- SMTPUTF8 autodetection + +
- Limitations of the current implementation + +
- Compatibility with pre-SMTPUTF8 environments + +
- Building with/without SMTPUTF8 support + +
- Credits + +
Enabling Postfix SMTPUTF8 support
+ +By default, Postfix SMTPUTF8 support is disabled. Thus, Postfix +should work exactly as it has worked before SMTPUTF8 support was +implemented.
+ +Before turning on SMTPUTF8 support in Postfix, you need to +verify that the rest of your email infrastructure can handle UTF-8 +email addresses and message header values, including SMTPUTF8 +protocol support in SMTP-based content filters (Amavisd), LMTP +servers (Dovecot), and down-stream SMTP servers.
+ +SMTPUTF8 support is enabled by setting the smtputf8_enable +parameter in main.cf:
+ +++ ++# postconf "smtputf8_enable = yes" +# postfix reload ++With SMTPUTF8 support enabled, Postfix changes behavior as follows:
+ ++ +
+ +UTF-8 is permitted in the myorigin parameter value. However, +the myhostname and mydomain parameters must specify ASCII-only +domain names. This limitation may be removed later.
+ +The Postfix SMTP server announces SMTPUTF8 support in the +EHLO response.
+ ++220 server.example.com ESMTP Postfix +EHLO client.example.com +250-server.example.com +250-PIPELINING +250-SIZE 10240000 +250-VRFY +250-ETRN +250-STARTTLS +250-AUTH PLAIN LOGIN +250-ENHANCEDSTATUSCODES +250-8BITMIME +250-DSN +250 SMTPUTF8 ++ +The Postfix SMTP server accepts the SMTPUTF8 request in +MAIL FROM and VRFY commands.
+ ++MAIL FROM:<address> SMTPUTF8 ... + +VRFY address SMTPUTF8 ++ +The Postfix SMTP client may issue the SMTPUTF8 request in +MAIL FROM commands.
+ +Postfix already permitted UTF-8 in message header values +and in address localparts. This does not change.
+ +The Postfix SMTP server accepts UTF-8 in email address +domains, but only after the remote SMTP client client issues the +SMTPUTF8 request in MAIL FROM or VRFY commands.
+ +Using Postfix SMTPUTF8 support
+ +After Postfix SMTPUTF8 support is turned on, Postfix behavior +will depend on 1) whether a remote SMTP client requests SMTPUTF8 +support, 2) the presence of UTF-8 content in the message envelope +and headers, and 3) whether a down-stream SMTP (or LMTP) server +announces SMTPUTF8 support.
+ ++ +
+ +When the Postfix SMTP server receives a message WITHOUT +the SMTPUTF8 request, Postfix handles the message as it has always +done (at least that is the default, see autodetection below). +Specifically, the Postfix SMTP server does not accept UTF-8 in the +envelope sender domain name or envelope recipient domain name, and +the Postfix SMTP client does not issue the SMTPUTF8 request when +delivering that message an SMTP or LMTP server that announces +SMTPUTF8 support (again, that is the default). Postfix will accept +UTF-8 in message header values and in the localpart of envelope +sender and recipient addresses, because it has always done that. +
+ +When the Postfix SMTP server receives a message WITH the +SMTPUTF8 request, Postfix will issue the SMTPUTF8 request when +delivering that message to an SMTP or LMTP server that announces +SMTPUTF8 support. This is not configurable.
+ +When a message is received with the SMTPUTF8 request, +Postfix will deliver the message to a non-SMTPUTF8 SMTP or LMTP +server ONLY if:
+ ++ +
+ +No message header value contains UTF-8.
+ +The envelope sender address contains no UTF-8,
+ +No envelope recipient address for that specific + SMTP/LMTP delivery transaction contains UTF-8.
+ ++ +NOTE: Recipients in other email delivery + transactions for that same message may still contain UTF-8. +
Otherwise, Postfix will return the recipient(s) for that + email delivery transaction as undeliverable. The delivery status + notification message will be an SMTPUTF8 message. It will therefore + be subject to the same restrictions as email that is received + with the SMTPUTF8 request.
+ +When the Postfix SMTP server receives a message with the +SMTPUTF8 request, that request also applies after the message is +forwarded via a virtual or local alias, or $HOME/.forward file. +
+ +SMTPUTF8 autodetection
+ +This section applies only to systems that have SMTPUTF8 support +turned on (smtputf8_enable = yes).
+ +For compatibility with pre-SMTPUTF8 environments, Postfix does +not automatically set the "SMTPUTF8 requested" flag on messages +from non-SMTPUTF8 clients that contain an UTF-8 header value or +UTF-8 address localpart. This would make such messages undeliverable +to non-SMTPUTF8 servers, and could be a barrier to SMTPUTF8 adoption. +
+ +By default, Postfix sets the "SMTPUTF8 requested" flag only on +address verification probes and on Postfix sendmail submissions +that contain UTF-8 in the sender address, UTF-8 in a recipient +address, or UTF-8 in a message header value.
+ +++ ++/etc/postfix/main.cf: + smtputf8_autodetect_classes = sendmail, verify ++However, if you have a non-ASCII myorigin or mydomain setting, +or if you have a configuration that introduces UTF-8 addresses with +virtual aliases, canonical mappings, or BCC mappings, then you may +have to apply SMTPUTF8 autodetection to all email:
+ +++ ++/etc/postfix/main.cf: + smtputf8_autodetect_classes = all ++This will, of course, also flag email that was received without +SMTPUTF8 request, but that contains UTF-8 in a sender address +localpart, receiver address localpart, or message header value. +Such email was not standards-compliant, but Postfix would have +delivered it if SMTPUTF8 support was disabled.
+ +Limitations of the current implementation +
+ +"Internationalized" domain names can appear in two forms: the +UTF-8 form, and the ASCII (xn--mumble) form.
+ +No characterset canonicalization for non-ASCII domain names. +
+ +Postfix currently does not translate domain names from UTF-8 +into ASCII (or ASCII into UTF-8) before looking up the domain name +in mydestination, relay_domains, access tables, etc., before logging +the domain name, or before using the domain name in a policy daemon +or Milter request. You will have to configure both UTF-8 and ASCII +forms in Postfix configuration files; and both forms will have to +be handled by logfile tools, policy daemons and Milters.
+ +No case canonicalization for non-ASCII characters.
+ +Postfix currently does not case-fold non-ASCII characters when +looking up an "Internationalized" domain name in mydestination, +relay_domains, access maps, etc. Some non-ASCII scripts do not +distinguish between upper and lower case, some have different numbers +of upper and lower case characters.
+ +Compatibility with pre-SMTPUTF8 +environments
+ +Mailing lists with UTF-8 and non-UTF-8 subscribers
+ +With Postfix, there is no need to split mailing lists into UTF-8 and +non-UTF-8 members. Postfix will try to deliver the non-UTF8 subscribers +over "traditional" non-SMTPUTF8 sessions, as long as the message +has an ASCII envelope sender address and all-ASCII header values. +The mailing list manager will have to apply RFC 2047 encoding to +satisfy that last condition.
+ +Pre-existing non-ASCII email flows
+ +In pre-SMTPUTF8 environments, email with UTF-8 in address +localparts (and in headers) works just fine because the vast majority +of email software including Postfix is perfectly capable of handling +such email, even if pre-SMTPUTF8 standards do not support this.
+ +Therefore, when Postfix SMTPUTF8 support is turned on, Postfix +must not suddenly start to break pre-existing email flows with UTF-8 +in addres localparts (and in headers).
+ +Thus, Postfix continues to permit UTF-8 in address localparts +(and in headers) in email from and to pre-SMTPUTF8 systems. At +least, that is the default (see autodetection above).
+ +Building with/without SMTPUTF8 support +
+ +Postfix SMTPUTF8 support requires the ICU library. Postfix +automatically builds with SMTPUTF8 support when the library and +its header files are installed. To force Postfix to build without +SMTPUTF8, specify:
+ +++ ++$ make makefiles -DNO_EAI ... ++Credits
+ ++ +
+ + + + + diff --git a/postfix/html/TLS_README.html b/postfix/html/TLS_README.html index 0a9d6699b..2548b9f57 100644 --- a/postfix/html/TLS_README.html +++ b/postfix/html/TLS_README.html @@ -2658,10 +2658,28 @@ the local Postfix system. This requires super-user privileges. -x509 -subj "/CN=${fqdn}" -days 3650 -out "${cert}" && postconf -e \ "smtpd_tls_cert_file = ${cert}" \ - "smtpd_tls_key_file = ${key}" + "smtpd_tls_key_file = ${key}" \ + 'smtpd_tls_security_level = may' \ + 'smtpd_tls_received_header = yes' \ + 'smtpd_tls_loglevel = 1' \ + 'smtp_tls_security_level = may' \ + 'smtp_tls_loglevel = 1' \ + 'smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache' \ + 'tls_random_source = dev:/dev/urandom'Arnt Gulbrandsen posted his patch for Unicode email support +on May 15, 2014. This work was sponsored by CNNIC.
+ +Wietse integrated Arnt Gulbrandsen's code and released +Postfix with SMTPUTF8 support on July 15, 2014.
+ +
Note: the last command requires both single (') and double (") +quotes.
+ +The postconf(1) command above enables opportunistic TLS for +receiving and sending mail. It also enables logging of TLS connections +and recording of TLS use in the "Received" header. TLS session +caching is also enabled in the Postfix SMTP client. With Postfix +≥ 2.10, the SMTP server does not need an explicit session cache +since session reuse is better handled via RFC 5077 TLS session +tickets.
+Pattern matching of domain names is controlled by the -parent_domain_matches_subdomains parameter.
+Pattern matching of domain names is controlled by the presence +or absence of "debug_peer_list" in the parent_domain_matches_subdomains +parameter value.
Examples: @@ -3214,6 +3215,10 @@ Continue long lines by starting the next line with whitespace. A lookup table is matched when the domain or its parent domain appears as lookup key.
+Pattern matching of domain names is controlled by the presence +or absence of "fast_flush_domains" in the parent_domain_matches_subdomains +parameter value.
+Specify "fast_flush_domains =" (i.e., empty) to disable the feature altogether. @@ -6815,7 +6820,11 @@ first match. Specify "!pattern" to exclude an address or network block from the list. The form "!/file/name" is supported only in Postfix version 2.4 and later.
-Note: IP version 6 address information must be specified inside +
Note 1: Pattern matching of domain names is controlled by the +or absence of "mynetworks" in the parent_domain_matches_subdomains +parameter value.
+ +Note 2: IP version 6 address information must be specified inside [] in the mynetworks value, and in files specified with "/file/name". IP version 6 addresses contain the ":" character, and would otherwise be confused with a "type:table" pattern.
@@ -7051,13 +7060,50 @@ mailing lists. (default: see "postconf -d" output)-What Postfix features match subdomains of "domain.tld" automatically, -instead of requiring an explicit ".domain.tld" pattern. This is +A list of Postfix features where the pattern "example.com" also +matches subdomains of example.com, +instead of requiring an explicit ".example.com" pattern. This is planned backwards compatibility: eventually, all Postfix features -are expected to require explicit ".domain.tld" style patterns when +are expected to require explicit ".example.com" style patterns when you really want to match subdomains.
+The following Postfix feature names are supported.
+ +Pattern matching of domain names is controlled by the presence +or absence of "permit_mx_backup_networks" in the +parent_domain_matches_subdomains parameter value.
+ @@ -7165,7 +7215,9 @@ upon the first command that fires for the client IP address. terminate the search if the client IP address matches $mynetworks. Do not subject the client to any before/after 220 greeting tests. Pass the connection immediately to a Postfix SMTP server process. - +Pattern matching of domain names is controlled by the presence +or absence of "qmqpd_authorized_clients" in the +parent_domain_matches_subdomains parameter value.
+Example:
@@ -8915,8 +8971,7 @@ into concurrency per recipient. (default: $mydestination)What destination domains (and subdomains thereof) this system -will relay mail to. Subdomain matching is controlled with the -parent_domain_matches_subdomains parameter. For details about how +will relay mail to. For details about how the relay_domains value is used, see the description of the permit_auth_destination and reject_unauth_destination SMTP recipient restrictions.
@@ -8940,6 +8995,10 @@ key. Specify "!pattern" to exclude a domain from the list. The form "!/file/name" is supported only in Postfix version 2.4 and later. +Pattern matching of domain names is controlled by the presence +or absence of "relay_domains" in the parent_domain_matches_subdomains +parameter value.
+Pattern matching of domain names is controlled by the presence +or absence of "smtpd_client_event_limit_exceptions" in the +parent_domain_matches_subdomains parameter value (postfix 2.12 and +later).
+This feature is available in Postfix 2.2 and later.
@@ -18026,6 +18090,10 @@ until a match is found. If you use this feature with local files, run "postmap /etc/postfix/transport" after making a change. +Pattern matching of domain names is controlled by the presence +or absence of "transport_maps" in the parent_domain_matches_subdomains +parameter value.
+For safety reasons, as of Postfix 2.3 this feature does not allow $number substitutions in regular expression maps.
diff --git a/postfix/html/smtpd.8.html b/postfix/html/smtpd.8.html index 4842b0153..522295d07 100644 --- a/postfix/html/smtpd.8.html +++ b/postfix/html/smtpd.8.html @@ -908,49 +908,50 @@ SMTPD(8) SMTPD(8) $smtpd_helo_restrictions. 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. + A list of Postfix features where the pattern "example.com" also + matches subdomains of example.com, instead of requiring an + explicit ".example.com" pattern. smtpd_client_restrictions (empty) - Optional restrictions that the Postfix SMTP server applies in + Optional restrictions that the Postfix SMTP server applies in the context of a client connection request. smtpd_helo_required (no) - Require that a remote SMTP client introduces itself with the - HELO or EHLO command before sending the MAIL command or other + Require that a remote SMTP client introduces itself with the + HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation. smtpd_helo_restrictions (empty) - Optional restrictions that the Postfix SMTP server applies in + Optional restrictions that the Postfix SMTP server applies in the context of a client HELO command. smtpd_sender_restrictions (empty) - Optional restrictions that the Postfix SMTP server applies in + Optional restrictions that the Postfix SMTP server applies in the context of a client MAIL FROM command. smtpd_recipient_restrictions (see 'postconf -d' output) - Optional restrictions that the Postfix SMTP server applies in - the context of a client RCPT TO command, after + Optional restrictions that the Postfix SMTP server applies in + the context of a client RCPT TO command, after smtpd_relay_restrictions. smtpd_etrn_restrictions (empty) - Optional restrictions that the Postfix SMTP server applies in + Optional restrictions that the Postfix SMTP server applies in the context of a client ETRN command. allow_untrusted_routing (no) - Forward mail with sender-specified routing - (user[@%!]remote[@%!]site) from untrusted clients to destinaâ + Forward mail with sender-specified routing + (user[@%!]remote[@%!]site) from untrusted clients to destinaâ tions matching $relay_domains. smtpd_restriction_classes (empty) User-defined aliases for groups of access restrictions. smtpd_null_access_lookup_key (<>) - The lookup key to be used in SMTP access(5) tables instead of + The lookup key to be used in SMTP access(5) tables instead of the null sender address. permit_mx_backup_networks (empty) - Restrict the use of the permit_mx_backup SMTP access feature to + Restrict the use of the permit_mx_backup SMTP access feature to only domains whose primary MX hosts match the listed networks. Available in Postfix version 2.0 and later: @@ -960,19 +961,19 @@ SMTPD(8) SMTPD(8) applies in the context of the SMTP DATA command. smtpd_expansion_filter (see 'postconf -d' output) - What characters are allowed in $name expansions of RBL reply + What characters are allowed in $name expansions of RBL reply templates. Available in Postfix version 2.1 and later: smtpd_reject_unlisted_sender (no) - Request that the Postfix SMTP server rejects mail from unknown - sender addresses, even when no explicit reject_unlisted_sender + Request that the Postfix SMTP server rejects mail from unknown + sender addresses, even when no explicit reject_unlisted_sender access restriction is specified. smtpd_reject_unlisted_recipient (yes) - Request that the Postfix SMTP server rejects mail for unknown - recipient addresses, even when no explicit + Request that the Postfix SMTP server rejects mail for unknown + recipient addresses, even when no explicit reject_unlisted_recipient access restriction is specified. Available in Postfix version 2.2 and later: @@ -986,17 +987,17 @@ SMTPD(8) SMTPD(8) smtpd_relay_restrictions (permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination) Access restrictions for mail relay control that the Postfix SMTP - server applies in the context of the RCPT TO command, before + server applies in the context of the RCPT TO command, before smtpd_recipient_restrictions. SENDER AND RECIPIENT ADDRESS VERIFICATION CONTROLS - Postfix version 2.1 introduces sender and recipient address verificaâ + Postfix version 2.1 introduces sender and recipient address verificaâ tion. This feature is implemented by sending probe email messages that are not actually delivered. This feature is requested via the - reject_unverified_sender and reject_unverified_recipient access - restrictions. The status of verification probes is maintained by the - verify(8) server. See the file ADDRESS_VERIFICATION_README for inforâ - mation about how to configure and operate the Postfix sender/recipient + reject_unverified_sender and reject_unverified_recipient access + restrictions. The status of verification probes is maintained by the + verify(8) server. See the file ADDRESS_VERIFICATION_README for inforâ + mation about how to configure and operate the Postfix sender/recipient address verification service. address_verify_poll_count (normal: 3, overload: 1) @@ -1008,7 +1009,7 @@ SMTPD(8) SMTPD(8) fication request in progress. address_verify_sender ($double_bounce_sender) - The sender address to use in address verification probes; prior + The sender address to use in address verification probes; prior to Postfix 2.5 the default was "postmaster". unverified_sender_reject_code (450) @@ -1016,18 +1017,18 @@ SMTPD(8) SMTPD(8) address is rejected by the reject_unverified_sender restriction. unverified_recipient_reject_code (450) - The numerical Postfix SMTP server response when a recipient - address is rejected by the reject_unverified_recipient restricâ + The numerical Postfix SMTP server response when a recipient + address is rejected by the reject_unverified_recipient restricâ tion. Available in Postfix version 2.6 and later: unverified_sender_defer_code (450) - The numerical Postfix SMTP server response code when a sender + The numerical Postfix SMTP server response code when a sender address probe fails due to a temporary error condition. unverified_recipient_defer_code (450) - The numerical Postfix SMTP server response when a recipient + The numerical Postfix SMTP server response when a recipient address probe fails due to a temporary error condition. unverified_sender_reject_reason (empty) @@ -1039,17 +1040,17 @@ SMTPD(8) SMTPD(8) reject_unverified_recipient. unverified_sender_tempfail_action ($reject_tempfail_action) - The Postfix SMTP server's action when reject_unverified_sender + The Postfix SMTP server's action when reject_unverified_sender fails due to a temporary error condition. unverified_recipient_tempfail_action ($reject_tempfail_action) - The Postfix SMTP server's action when reject_unverified_recipiâ + The Postfix SMTP server's action when reject_unverified_recipiâ ent fails due to a temporary error condition. Available with Postfix 2.9 and later: address_verify_sender_ttl (0s) - The time between changes in the time-dependent portion of + The time between changes in the time-dependent portion of address verification probe sender addresses. ACCESS CONTROL RESPONSES @@ -1061,63 +1062,63 @@ SMTPD(8) SMTPD(8) map "reject" action. defer_code (450) - The numerical Postfix SMTP server response code when a remote + The numerical Postfix SMTP server response code when a remote SMTP client request is rejected by the "defer" restriction. invalid_hostname_reject_code (501) - The numerical Postfix SMTP server response code when the client - HELO or EHLO command parameter is rejected by the + The numerical Postfix SMTP server response code when the client + HELO or EHLO command parameter is rejected by the reject_invalid_helo_hostname restriction. maps_rbl_reject_code (554) - The numerical Postfix SMTP server response code when a remote - SMTP client request is blocked by the reject_rbl_client, + The numerical Postfix SMTP server response code when a remote + SMTP client request is blocked by the reject_rbl_client, reject_rhsbl_client, reject_rhsbl_reverse_client, reject_rhsbl_sender or reject_rhsbl_recipient restriction. non_fqdn_reject_code (504) - The numerical Postfix SMTP server reply code when a client - request is rejected by the reject_non_fqdn_helo_hostname, + The numerical Postfix SMTP server reply code when a client + request is rejected by the reject_non_fqdn_helo_hostname, reject_non_fqdn_sender or reject_non_fqdn_recipient restriction. plaintext_reject_code (450) - The numerical Postfix SMTP server response code when a request + The numerical Postfix SMTP server response code when a request is rejected by the reject_plaintext_session restriction. reject_code (554) - The numerical Postfix SMTP server response code when a remote + The numerical Postfix SMTP server response code when a remote SMTP client request is rejected by the "reject" restriction. relay_domains_reject_code (554) - The numerical Postfix SMTP server response code when a client - request is rejected by the reject_unauth_destination recipient + The numerical Postfix SMTP server response code when a client + request is rejected by the reject_unauth_destination recipient restriction. unknown_address_reject_code (450) The numerical Postfix SMTP server response code when a sender or - recipient address is rejected by the - reject_unknown_sender_domain or reject_unknown_recipient_domain + recipient address is rejected by the + reject_unknown_sender_domain or reject_unknown_recipient_domain restriction. unknown_client_reject_code (450) - The numerical Postfix SMTP server response code when a client - without valid address <=> name mapping is rejected by the + The numerical Postfix SMTP server response code when a client + without valid address <=> name mapping is rejected by the reject_unknown_client_hostname restriction. unknown_hostname_reject_code (450) - The numerical Postfix SMTP server response code when the hostâ - name specified with the HELO or EHLO command is rejected by the + The numerical Postfix SMTP server response code when the hostâ + name specified with the HELO or EHLO command is rejected by the reject_unknown_helo_hostname restriction. Available in Postfix version 2.0 and later: default_rbl_reply (see 'postconf -d' output) - The default Postfix SMTP server response template for a request + The default Postfix SMTP server response template for a request that is rejected by an RBL-based restriction. multi_recipient_bounce_reject_code (550) - The numerical Postfix SMTP server response code when a remote - SMTP client request is blocked by the reject_multi_recipiâ + The numerical Postfix SMTP server response code when a remote + SMTP client request is blocked by the reject_multi_recipiâ ent_bounce restriction. rbl_reply_maps (empty) @@ -1127,52 +1128,52 @@ SMTPD(8) SMTPD(8) access_map_defer_code (450) The numerical Postfix SMTP server response code for an access(5) - map "defer" action, including "defer_if_permit" or + map "defer" action, including "defer_if_permit" or "defer_if_reject". reject_tempfail_action (defer_if_permit) - The Postfix SMTP server's action when a reject-type restriction + The Postfix SMTP server's action when a reject-type restriction fails due to a temporary error condition. unknown_helo_hostname_tempfail_action ($reject_tempfail_action) - The Postfix SMTP server's action when reject_unknown_helo_hostâ + The Postfix SMTP server's action when reject_unknown_helo_hostâ name fails due to an temporary error condition. unknown_address_tempfail_action ($reject_tempfail_action) - The Postfix SMTP server's action when - reject_unknown_sender_domain or reject_unknown_recipient_domain + The Postfix SMTP server's action when + reject_unknown_sender_domain or reject_unknown_recipient_domain fail due to a temporary error condition. MISCELLANEOUS CONTROLS config_directory (see 'postconf -d' output) - The default location of the Postfix main.cf and master.cf conâ + 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 + How much time a Postfix daemon process may take to handle a request before it is terminated by a built-in watchdog timer. command_directory (see 'postconf -d' output) The location of all postfix administrative commands. double_bounce_sender (double-bounce) - The sender address of postmaster notifications that are generâ + 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 + The time limit for sending or receiving information over an internal communication channel. mail_name (Postfix) - The mail system name that is displayed in Received: headers, in + The mail system name that is displayed in Received: headers, in the SMTP greeting banner, and in bounced mail. mail_owner (postfix) - The UNIX system account that owns the Postfix queue and most + The UNIX system account that owns the Postfix queue and most Postfix daemon processes. max_idle (100s) - The maximum amount of time that an idle Postfix daemon process + The maximum amount of time that an idle Postfix daemon process waits for an incoming connection before terminating voluntarily. max_use (100) @@ -1183,11 +1184,11 @@ SMTPD(8) SMTPD(8) The internet hostname of this mail system. mynetworks (see 'postconf -d' output) - The list of "trusted" remote SMTP clients that have more priviâ + The list of "trusted" remote SMTP clients that have more priviâ leges than "strangers". myorigin ($myhostname) - The domain name that locally-posted mail appears to come from, + The domain name that locally-posted mail appears to come from, and that locally posted mail is delivered to. process_id (read-only) @@ -1200,26 +1201,26 @@ SMTPD(8) SMTPD(8) The location of the Postfix top-level queue directory. recipient_delimiter (empty) - The set of characters that can separate a user name from its - extension (example: user+foo), or a .forward file name from its + The set of characters that can separate a user name from its + extension (example: user+foo), or a .forward file name from its extension (example: .forward+foo). smtpd_banner ($myhostname ESMTP $mail_name) - The text that follows the 220 status code in the SMTP greeting + The text that follows the 220 status code in the SMTP greeting banner. 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, "postâ + 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.2 and later: smtpd_forbidden_commands (CONNECT, GET, POST) - List of commands that cause the Postfix SMTP server to immediâ + List of commands that cause the Postfix SMTP server to immediâ ately terminate the session with a 221 code. Available in Postfix version 2.5 and later: diff --git a/postfix/html/trivial-rewrite.8.html b/postfix/html/trivial-rewrite.8.html index 23a7e52fb..5503f3ecd 100644 --- a/postfix/html/trivial-rewrite.8.html +++ b/postfix/html/trivial-rewrite.8.html @@ -26,9 +26,9 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8) strip source routed addresses (@site,@site:user@domain) to user@domain form. - remote Append the domain name specified with $remote_header_re- - write_domain to incomplete addresses. Otherwise the - result is identical to that of the local address rewrit- + remote Append the domain name specified with $remote_header_reââ + write_domain to incomplete addresses. Otherwise the + result is identical to that of the local address rewritâ ing context. This prevents Postfix from appending the local domain to spam from poorly written remote clients. @@ -41,11 +41,11 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8) entry in the master.cf file. nexthop - The host to send to and optional delivery method informa- + The host to send to and optional delivery method informaâ tion. recipient - The envelope recipient address that is passed on to nex- + The envelope recipient address that is passed on to nexâ thop. flags The address class, whether the address requires relaying, @@ -160,107 +160,108 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8) default_transport (smtp) The default mail delivery transport and next-hop destination for destinations that do not match $mydestination, $inet_interfaces, - $proxy_interfaces, $virtual_alias_domains, $virtual_mail- - box_domains, or $relay_domains. + $proxy_interfaces, $virtual_alias_domains, $virtual_mailâ + box_domains, or $relay_domains. 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. + A list of Postfix features where the pattern "example.com" also + matches subdomains of example.com, instead of requiring an + explicit ".example.com" pattern. relayhost (empty) - The next-hop destination of non-local mail; overrides non-local + The next-hop destination of non-local mail; overrides non-local domains in recipient addresses. transport_maps (empty) - Optional lookup tables with mappings from recipient address to + Optional lookup tables with mappings from recipient address to (message delivery transport, next-hop destination). Available in Postfix version 2.3 and later: sender_dependent_relayhost_maps (empty) - A sender-dependent override for the global relayhost parameter + A sender-dependent override for the global relayhost parameter setting. Available in Postfix version 2.5 and later: empty_address_relayhost_maps_lookup_key (<>) - The sender_dependent_relayhost_maps search string that will be + The sender_dependent_relayhost_maps search string that will be used instead of the null sender address. Available in Postfix version 2.7 and later: empty_address_default_transport_maps_lookup_key (<>) - The sender_dependent_default_transport_maps search string that + The sender_dependent_default_transport_maps search string that will be used instead of the null sender address. sender_dependent_default_transport_maps (empty) - A sender-dependent override for the global default_transport + A sender-dependent override for the global default_transport parameter setting. ADDRESS VERIFICATION CONTROLS - Postfix version 2.1 introduces sender and recipient address verifica- + Postfix version 2.1 introduces sender and recipient address verificaâ tion. This feature is implemented by sending probe email messages that - are not actually delivered. By default, address verification probes - use the same route as regular mail. To override specific aspects of + are not actually delivered. By default, address verification probes + use the same route as regular mail. To override specific aspects of message routing for address verification probes, specify one or more of the following: address_verify_local_transport ($local_transport) - Overrides the local_transport parameter setting for address ver- + Overrides the local_transport parameter setting for address verâ ification probes. address_verify_virtual_transport ($virtual_transport) - Overrides the virtual_transport parameter setting for address + Overrides the virtual_transport parameter setting for address verification probes. address_verify_relay_transport ($relay_transport) - Overrides the relay_transport parameter setting for address ver- + Overrides the relay_transport parameter setting for address verâ ification probes. address_verify_default_transport ($default_transport) - Overrides the default_transport parameter setting for address + Overrides the default_transport parameter setting for address verification probes. address_verify_relayhost ($relayhost) - Overrides the relayhost parameter setting for address verifica- + Overrides the relayhost parameter setting for address verificaâ tion probes. address_verify_transport_maps ($transport_maps) - Overrides the transport_maps parameter setting for address veri- + Overrides the transport_maps parameter setting for address veriâ fication probes. Available in Postfix version 2.3 and later: - address_verify_sender_dependent_relayhost_maps ($sender_depen- - dent_relayhost_maps) - Overrides the sender_dependent_relayhost_maps parameter setting + address_verify_sender_dependent_relayhost_maps ($sender_depenââ + dent_relayhost_maps) + Overrides the sender_dependent_relayhost_maps parameter setting for address verification probes. Available in Postfix version 2.7 and later: - address_verify_sender_dependent_default_transport_maps ($sender_depen- - dent_default_transport_maps) - Overrides the sender_dependent_default_transport_maps parameter + address_verify_sender_dependent_default_transport_maps ($sender_depenââ + dent_default_transport_maps) + Overrides the sender_dependent_default_transport_maps parameter setting for address verification probes. MISCELLANEOUS CONTROLS config_directory (see 'postconf -d' output) - The default location of the Postfix main.cf and master.cf con- + 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 + How much time a Postfix daemon process may take to handle a request before it is terminated by a built-in watchdog timer. empty_address_recipient (MAILER-DAEMON) The recipient of mail addressed to the null address. ipc_timeout (3600s) - The time limit for sending or receiving information over an + 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 + The maximum amount of time that an idle Postfix daemon process waits for an incoming connection before terminating voluntarily. max_use (100) @@ -281,21 +282,21 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8) The location of the Postfix top-level queue directory. show_user_unknown_table_name (yes) - Display the name of the recipient table in the "User unknown" + Display the name of the recipient table in the "User unknown" responses. 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, "post- + 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.0 and later: helpful_warnings (yes) - Log warnings about problematic configuration settings, and pro- + Log warnings about problematic configuration settings, and proâ vide helpful suggestions. SEE ALSO diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5 index 50471fc47..73ba99ed2 100644 --- a/postfix/man/man5/postconf.5 +++ b/postfix/man/man5/postconf.5 @@ -994,8 +994,9 @@ Specify domain names, network/netmask patterns, "/file/name" patterns or "type:table" lookup tables. The right-hand side result from "type:table" lookups is ignored. .PP -Pattern matching of domain names is controlled by the -parent_domain_matches_subdomains parameter. +Pattern matching of domain names is controlled by the presence +or absence of "debug_peer_list" in the parent_domain_matches_subdomains +parameter value. .PP Examples: .PP @@ -1959,6 +1960,10 @@ Continue long lines by starting the next line with whitespace. A lookup table is matched when the domain or its parent domain appears as lookup key. .PP +Pattern matching of domain names is controlled by the presence +or absence of "fast_flush_domains" in the parent_domain_matches_subdomains +parameter value. +.PP Specify "fast_flush_domains =" (i.e., empty) to disable the feature altogether. .SH fast_flush_purge_time (default: 7d) @@ -4071,7 +4076,11 @@ first match. Specify "!pattern" to exclude an address or network block from the list. The form "!/file/name" is supported only in Postfix version 2.4 and later. .PP -Note: IP version 6 address information must be specified inside +Note 1: Pattern matching of domain names is controlled by the +or absence of "mynetworks" in the parent_domain_matches_subdomains +parameter value. +.PP +Note 2: IP version 6 address information must be specified inside [] in the mynetworks value, and in files specified with "/file/name". IP version 6 addresses contain the ":" character, and would otherwise be confused with a "type:table" pattern. @@ -4227,16 +4236,42 @@ address localparts: don't split such addresses when the recipient_delimiter is set to "-". This feature is useful for mailing lists. .SH parent_domain_matches_subdomains (default: see "postconf -d" output) -What Postfix features match subdomains of "domain.tld" automatically, -instead of requiring an explicit ".domain.tld" pattern. This is +A list of Postfix features where the pattern "example.com" also +matches subdomains of example.com, +instead of requiring an explicit ".example.com" pattern. This is planned backwards compatibility: eventually, all Postfix features -are expected to require explicit ".domain.tld" style patterns when +are expected to require explicit ".example.com" style patterns when you really want to match subdomains. +.PP +The following Postfix feature names are supported. +.IP "Postfix version 1.0 and later" +debug_peer_list, +fast_flush_domains, +mynetworks, +permit_mx_backup_networks, +relay_domains, +transport_maps +.br +.IP "Postfix version 1.1 and later" +qmqpd_authorized_clients, +smtpd_access_maps, +.br +.IP "Postfix version 2.8 and later" +postscreen_access_list +.br +.IP "Postfix version 2.12 and later" +smtpd_client_event_limit_exceptions +.br +.br .SH permit_mx_backup_networks (default: empty) Restrict the use of the permit_mx_backup SMTP access feature to only domains whose primary MX hosts match the listed networks. The parameter value syntax is the same as with the mynetworks parameter; note, however, that the default value is empty. +.PP +Pattern matching of domain names is controlled by the presence +or absence of "permit_mx_backup_networks" in the +parent_domain_matches_subdomains parameter value. .SH pickup_service_name (default: pickup) The name of the \fBpickup\fR(8) service. This service picks up local mail submissions from the Postfix maildrop queue. @@ -4284,6 +4319,10 @@ terminate the search if the client IP address matches $mynetworks. Do not subject the client to any before/after 220 greeting tests. Pass the connection immediately to a Postfix SMTP server process. .br +Pattern matching of domain names is controlled by the presence +or absence of "postscreen_access_list" in the +parent_domain_matches_subdomains parameter value. +.br .IP "\fB type:table \fR" Query the specified lookup table. Each table lookup result is an access list, except that @@ -5092,6 +5131,10 @@ reverse the result, precede a pattern with an exclamation point (!). The form "!/file/name" is supported only in Postfix version 2.4 and later. .PP +Pattern matching of domain names is controlled by the presence +or absence of "qmqpd_authorized_clients" in the +parent_domain_matches_subdomains parameter value. +.PP Example: .PP .nf @@ -5424,8 +5467,7 @@ into concurrency per recipient. This feature is available in Postfix 2.0 and later. .SH relay_domains (default: $mydestination) What destination domains (and subdomains thereof) this system -will relay mail to. Subdomain matching is controlled with the -parent_domain_matches_subdomains parameter. For details about how +will relay mail to. For details about how the relay_domains value is used, see the description of the permit_auth_destination and reject_unauth_destination SMTP recipient restrictions. @@ -5447,6 +5489,10 @@ Continue long lines by starting the next line with whitespace. A lookup table is matched when a (parent) domain appears as lookup key. Specify "!pattern" to exclude a domain from the list. The form "!/file/name" is supported only in Postfix version 2.4 and later. +.PP +Pattern matching of domain names is controlled by the presence +or absence of "relay_domains" in the parent_domain_matches_subdomains +parameter value. .SH relay_domains_reject_code (default: 554) The numerical Postfix SMTP server response code when a client request is rejected by the reject_unauth_destination recipient @@ -8401,6 +8447,11 @@ in files specified with "/file/name". IP version 6 addresses contain the ":" character, and would otherwise be confused with a "type:table" pattern. .PP +Pattern matching of domain names is controlled by the presence +or absence of "smtpd_client_event_limit_exceptions" in the +parent_domain_matches_subdomains parameter value (postfix 2.12 and +later). +.PP This feature is available in Postfix 2.2 and later. .SH smtpd_client_message_rate_limit (default: 0) The maximal number of message delivery requests that any client is @@ -12300,6 +12351,10 @@ until a match is found. If you use this feature with local files, run "\fBpostmap /etc/postfix/transport\fR" after making a change. .PP +Pattern matching of domain names is controlled by the presence +or absence of "transport_maps" in the parent_domain_matches_subdomains +parameter value. +.PP For safety reasons, as of Postfix 2.3 this feature does not allow $number substitutions in regular expression maps. .PP diff --git a/postfix/man/man8/flush.8 b/postfix/man/man8/flush.8 index 7dd566390..2c33d1061 100644 --- a/postfix/man/man8/flush.8 +++ b/postfix/man/man8/flush.8 @@ -116,8 +116,9 @@ for an incoming connection before terminating voluntarily. The maximal number of incoming connections that a Postfix daemon process will service before terminating voluntarily. .IP "\fBparent_domain_matches_subdomains (see 'postconf -d' output)\fR" -What Postfix features match subdomains of "domain.tld" automatically, -instead of requiring an explicit ".domain.tld" pattern. +A list of Postfix features where the pattern "example.com" also +matches subdomains of example.com, +instead of requiring an explicit ".example.com" pattern. .IP "\fBprocess_id (read-only)\fR" The process ID of a Postfix command or daemon process. .IP "\fBprocess_name (read-only)\fR" diff --git a/postfix/man/man8/smtpd.8 b/postfix/man/man8/smtpd.8 index 91a3a35f0..b77072289 100644 --- a/postfix/man/man8/smtpd.8 +++ b/postfix/man/man8/smtpd.8 @@ -810,8 +810,9 @@ $smtpd_client_restrictions, $smtpd_helo_restrictions and $smtpd_sender_restrictions, or wait until the ETRN command before evaluating $smtpd_client_restrictions and $smtpd_helo_restrictions. .IP "\fBparent_domain_matches_subdomains (see 'postconf -d' output)\fR" -What Postfix features match subdomains of "domain.tld" automatically, -instead of requiring an explicit ".domain.tld" pattern. +A list of Postfix features where the pattern "example.com" also +matches subdomains of example.com, +instead of requiring an explicit ".example.com" pattern. .IP "\fBsmtpd_client_restrictions (empty)\fR" Optional restrictions that the Postfix SMTP server applies in the context of a client connection request. diff --git a/postfix/man/man8/trivial-rewrite.8 b/postfix/man/man8/trivial-rewrite.8 index 27a7bb3f8..547d79066 100644 --- a/postfix/man/man8/trivial-rewrite.8 +++ b/postfix/man/man8/trivial-rewrite.8 @@ -170,8 +170,9 @@ destinations that do not match $mydestination, $inet_interfaces, $proxy_interfaces, $virtual_alias_domains, $virtual_mailbox_domains, or $relay_domains. .IP "\fBparent_domain_matches_subdomains (see 'postconf -d' output)\fR" -What Postfix features match subdomains of "domain.tld" automatically, -instead of requiring an explicit ".domain.tld" pattern. +A list of Postfix features where the pattern "example.com" also +matches subdomains of example.com, +instead of requiring an explicit ".example.com" pattern. .IP "\fBrelayhost (empty)\fR" The next-hop destination of non-local mail; overrides non-local domains in recipient addresses. diff --git a/postfix/mantools/postlink b/postfix/mantools/postlink index 61b9a92f9..4d314730c 100755 --- a/postfix/mantools/postlink +++ b/postfix/mantools/postlink @@ -1064,7 +1064,7 @@ while (<>) { s/(http:\/\/[^ ,"\(\)]*[^ ,"\(\):;!?.])/$1<\/a>/; s/(ftp:\/\/[^ ,"\(\)]*[^ ,"\(\):;!?.])/$1<\/a>/; - s/\bRFC\s*([1-9]\d*)/$&<\/a>/; + s/\bRFC\s*([1-9]\d*)/$&<\/a>/g; # Split README/RFC/parameter/restriction hyperlinks that span line breaks diff --git a/postfix/proto/Makefile.in b/postfix/proto/Makefile.in index afaa99888..c7a9f8ea9 100644 --- a/postfix/proto/Makefile.in +++ b/postfix/proto/Makefile.in @@ -38,6 +38,7 @@ HTML = ../html/ADDRESS_CLASS_README.html \ ../html/SCHEDULER_README.html ../html/SMTPD_ACCESS_README.html \ ../html/SMTPD_POLICY_README.html \ ../html/SMTPD_PROXY_README.html \ + ../html/SMTPUTF8_README.html \ ../html/SOHO_README.html \ ../html/SQLITE_README.html \ ../html/STANDARD_CONFIGURATION_README.html \ @@ -81,6 +82,7 @@ README = ../README_FILES/ADDRESS_CLASS_README \ ../README_FILES/SASL_README ../README_FILES/SCHEDULER_README \ ../README_FILES/SMTPD_ACCESS_README \ ../README_FILES/SMTPD_POLICY_README ../README_FILES/SMTPD_PROXY_README \ + ../README_FILES/SMTPUTF8_README \ ../README_FILES/SOHO_README \ ../README_FILES/SQLITE_README \ ../README_FILES/STANDARD_CONFIGURATION_README \ @@ -269,6 +271,9 @@ clobber: ../html/SMTPD_PROXY_README.html: SMTPD_PROXY_README.html $(DETAB) $? | $(POSTLINK) >$@ +../html/SMTPUTF8_README.html: SMTPUTF8_README.html + $(DETAB) $? | $(POSTLINK) >$@ + ../html/SOHO_README.html: $(MAKESOHO) $(DEPSOHO) $(MAKESOHO) | $(POSTLINK) | $(DETAB) >$@ @@ -434,6 +439,9 @@ clobber: ../README_FILES/SMTPD_PROXY_README: SMTPD_PROXY_README.html $(DETAB) $? | $(HT2READ) >$@ +../README_FILES/SMTPUTF8_README: SMTPUTF8_README.html + $(DETAB) $? | $(HT2READ) >$@ + ../README_FILES/SOHO_README: $(MAKESOHO) $(DEPSOHO) $(MAKESOHO) | $(HT2READ) | $(DETAB) >$@ diff --git a/postfix/proto/SASL_README.html b/postfix/proto/SASL_README.html index d1a0a00de..e0753e312 100644 --- a/postfix/proto/SASL_README.html +++ b/postfix/proto/SASL_README.html @@ -1564,7 +1564,7 @@ encoded authentication information:The mmencode command is part of the metamail software.
-Using Perl MIME::Base64:
+Using Perl MIME::Base64 (from http://www.cpan.org/):
-@@ -1573,7 +1573,7 @@ software.
MIME::Base64 is available from http://www.cpan.org/.
+If the username or password contain "@", you must specify "\@".
Using the gen-auth script:
diff --git a/postfix/proto/SMTPD_PROXY_README.html b/postfix/proto/SMTPD_PROXY_README.html index 3fa8d216a..0b5780719 100644 --- a/postfix/proto/SMTPD_PROXY_README.html +++ b/postfix/proto/SMTPD_PROXY_README.html @@ -199,8 +199,8 @@ usual.The content filter itself is not described here. You can use any filter that is SMTP enabled. For non-SMTP capable content filtering software, Bennett Todd's SMTP proxy implements a nice -PERL/SMTP content filtering framework. See: -http://bent.latency.net/smtpprox/.
+Perl-based framework. See: http://bent.latency.net/smtpprox/ or +https://github.com/jnorell/smtpprox.diff --git a/postfix/proto/SMTPUTF8_README.html b/postfix/proto/SMTPUTF8_README.html new file mode 100644 index 000000000..86f8c33fb --- /dev/null +++ b/postfix/proto/SMTPUTF8_README.html @@ -0,0 +1,303 @@ + + + + + + ++Postfix SMTPUTF8 support + + + + + + + ++ +
+Postfix SMTPUTF8 support +
+ +Overview
+ +This document describes Postfix support for Email Address +Internationalization (EAI) as defined in RFC 6531 (SMTPUTF8 extension), +RFC 6532 (Internationalized email headers) and RFC 6533 (Internationalized +delivery status notifications). Introduced with Postfix version +2.12, this fully supports UTF-8 email addresses and UTF-8 message +header values.
+ +Topics covered in this document:
+ ++ +
+ +- Enabling Postfix SMTPUTF8 support + +
- Using Postfix SMTPUTF8 support + +
- SMTPUTF8 autodetection + +
- Limitations of the current implementation + +
- Compatibility with pre-SMTPUTF8 environments + +
- Building with/without SMTPUTF8 support + +
- Credits + +
Enabling Postfix SMTPUTF8 support
+ +By default, Postfix SMTPUTF8 support is disabled. Thus, Postfix +should work exactly as it has worked before SMTPUTF8 support was +implemented.
+ +Before turning on SMTPUTF8 support in Postfix, you need to +verify that the rest of your email infrastructure can handle UTF-8 +email addresses and message header values, including SMTPUTF8 +protocol support in SMTP-based content filters (Amavisd), LMTP +servers (Dovecot), and down-stream SMTP servers.
+ +SMTPUTF8 support is enabled by setting the smtputf8_enable +parameter in main.cf:
+ +++ ++# postconf "smtputf8_enable = yes" +# postfix reload ++With SMTPUTF8 support enabled, Postfix changes behavior as follows:
+ ++ +
+ +UTF-8 is permitted in the myorigin parameter value. However, +the myhostname and mydomain parameters must specify ASCII-only +domain names. This limitation may be removed later.
+ +The Postfix SMTP server announces SMTPUTF8 support in the +EHLO response.
+ ++220 server.example.com ESMTP Postfix +EHLO client.example.com +250-server.example.com +250-PIPELINING +250-SIZE 10240000 +250-VRFY +250-ETRN +250-STARTTLS +250-AUTH PLAIN LOGIN +250-ENHANCEDSTATUSCODES +250-8BITMIME +250-DSN +250 SMTPUTF8 ++ +The Postfix SMTP server accepts the SMTPUTF8 request in +MAIL FROM and VRFY commands.
+ ++MAIL FROM:<address> SMTPUTF8 ... + +VRFY address SMTPUTF8 ++ +The Postfix SMTP client may issue the SMTPUTF8 request in +MAIL FROM commands.
+ +Postfix already permitted UTF-8 in message header values +and in address localparts. This does not change.
+ +The Postfix SMTP server accepts UTF-8 in email address +domains, but only after the remote SMTP client client issues the +SMTPUTF8 request in MAIL FROM or VRFY commands.
+ +Using Postfix SMTPUTF8 support
+ +After Postfix SMTPUTF8 support is turned on, Postfix behavior +will depend on 1) whether a remote SMTP client requests SMTPUTF8 +support, 2) the presence of UTF-8 content in the message envelope +and headers, and 3) whether a down-stream SMTP (or LMTP) server +announces SMTPUTF8 support.
+ ++ +
+ +When the Postfix SMTP server receives a message WITHOUT +the SMTPUTF8 request, Postfix handles the message as it has always +done (at least that is the default, see autodetection below). +Specifically, the Postfix SMTP server does not accept UTF-8 in the +envelope sender domain name or envelope recipient domain name, and +the Postfix SMTP client does not issue the SMTPUTF8 request when +delivering that message an SMTP or LMTP server that announces +SMTPUTF8 support (again, that is the default). Postfix will accept +UTF-8 in message header values and in the localpart of envelope +sender and recipient addresses, because it has always done that. +
+ +When the Postfix SMTP server receives a message WITH the +SMTPUTF8 request, Postfix will issue the SMTPUTF8 request when +delivering that message to an SMTP or LMTP server that announces +SMTPUTF8 support. This is not configurable.
+ +When a message is received with the SMTPUTF8 request, +Postfix will deliver the message to a non-SMTPUTF8 SMTP or LMTP +server ONLY if:
+ ++ +
+ +No message header value contains UTF-8.
+ +The envelope sender address contains no UTF-8,
+ +No envelope recipient address for that specific + SMTP/LMTP delivery transaction contains UTF-8.
+ ++ +NOTE: Recipients in other email delivery + transactions for that same message may still contain UTF-8. +
Otherwise, Postfix will return the recipient(s) for that + email delivery transaction as undeliverable. The delivery status + notification message will be an SMTPUTF8 message. It will therefore + be subject to the same restrictions as email that is received + with the SMTPUTF8 request.
+ +When the Postfix SMTP server receives a message with the +SMTPUTF8 request, that request also applies after the message is +forwarded via a virtual or local alias, or $HOME/.forward file. +
+ +SMTPUTF8 autodetection
+ +This section applies only to systems that have SMTPUTF8 support +turned on (smtputf8_enable = yes).
+ +For compatibility with pre-SMTPUTF8 environments, Postfix does +not automatically set the "SMTPUTF8 requested" flag on messages +from non-SMTPUTF8 clients that contain an UTF-8 header value or +UTF-8 address localpart. This would make such messages undeliverable +to non-SMTPUTF8 servers, and could be a barrier to SMTPUTF8 adoption. +
+ +By default, Postfix sets the "SMTPUTF8 requested" flag only on +address verification probes and on Postfix sendmail submissions +that contain UTF-8 in the sender address, UTF-8 in a recipient +address, or UTF-8 in a message header value.
+ +++ ++/etc/postfix/main.cf: + smtputf8_autodetect_classes = sendmail, verify ++However, if you have a non-ASCII myorigin or mydomain setting, +or if you have a configuration that introduces UTF-8 addresses with +virtual aliases, canonical mappings, or BCC mappings, then you may +have to apply SMTPUTF8 autodetection to all email:
+ +++ ++/etc/postfix/main.cf: + smtputf8_autodetect_classes = all ++This will, of course, also flag email that was received without +SMTPUTF8 request, but that contains UTF-8 in a sender address +localpart, receiver address localpart, or message header value. +Such email was not standards-compliant, but Postfix would have +delivered it if SMTPUTF8 support was disabled.
+ +Limitations of the current implementation +
+ +"Internationalized" domain names can appear in two forms: the +UTF-8 form, and the ASCII (xn--mumble) form.
+ +No characterset canonicalization for non-ASCII domain names. +
+ +Postfix currently does not translate domain names from UTF-8 +into ASCII (or ASCII into UTF-8) before looking up the domain name +in mydestination, relay_domains, access tables, etc., before logging +the domain name, or before using the domain name in a policy daemon +or Milter request. You will have to configure both UTF-8 and ASCII +forms in Postfix configuration files; and both forms will have to +be handled by logfile tools, policy daemons and Milters.
+ +No case canonicalization for non-ASCII characters.
+ +Postfix currently does not case-fold non-ASCII characters when +looking up an "Internationalized" domain name in mydestination, +relay_domains, access maps, etc. Some non-ASCII scripts do not +distinguish between upper and lower case, some have different numbers +of upper and lower case characters.
+ +Compatibility with pre-SMTPUTF8 +environments
+ +Mailing lists with UTF-8 and non-UTF-8 subscribers
+ +With Postfix, there is no need to split mailing lists into UTF-8 and +non-UTF-8 members. Postfix will try to deliver the non-UTF8 subscribers +over "traditional" non-SMTPUTF8 sessions, as long as the message +has an ASCII envelope sender address and all-ASCII header values. +The mailing list manager will have to apply RFC 2047 encoding to +satisfy that last condition.
+ +Pre-existing non-ASCII email flows
+ +In pre-SMTPUTF8 environments, email with UTF-8 in address +localparts (and in headers) works just fine because the vast majority +of email software including Postfix is perfectly capable of handling +such email, even if pre-SMTPUTF8 standards do not support this.
+ +Therefore, when Postfix SMTPUTF8 support is turned on, Postfix +must not suddenly start to break pre-existing email flows with UTF-8 +in addres localparts (and in headers).
+ +Thus, Postfix continues to permit UTF-8 in address localparts +(and in headers) in email from and to pre-SMTPUTF8 systems. At +least, that is the default (see autodetection above).
+ +Building with/without SMTPUTF8 support +
+ +Postfix SMTPUTF8 support requires the ICU library. Postfix +automatically builds with SMTPUTF8 support when the library and +its header files are installed. To force Postfix to build without +SMTPUTF8, specify:
+ +++ ++$ make makefiles -DNO_EAI ... ++Credits
+ ++ +
+ + + + + diff --git a/postfix/proto/TLS_README.html b/postfix/proto/TLS_README.html index e62c14af9..bc492ebd5 100644 --- a/postfix/proto/TLS_README.html +++ b/postfix/proto/TLS_README.html @@ -2658,10 +2658,28 @@ the local Postfix system. This requires super-user privileges. -x509 -subj "/CN=${fqdn}" -days 3650 -out "${cert}" && postconf -e \ "smtpd_tls_cert_file = ${cert}" \ - "smtpd_tls_key_file = ${key}" + "smtpd_tls_key_file = ${key}" \ + 'smtpd_tls_security_level = may' \ + 'smtpd_tls_received_header = yes' \ + 'smtpd_tls_loglevel = 1' \ + 'smtp_tls_security_level = may' \ + 'smtp_tls_loglevel = 1' \ + 'smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache' \ + 'tls_random_source = dev:/dev/urandom'Arnt Gulbrandsen posted his patch for Unicode email support +on May 15, 2014. This work was sponsored by CNNIC.
+ +Wietse integrated Arnt Gulbrandsen's code and released +Postfix with SMTPUTF8 support on July 15, 2014.
+ +
Note: the last command requires both single (') and double (") +quotes.
+ +The postconf(1) command above enables opportunistic TLS for +receiving and sending mail. It also enables logging of TLS connections +and recording of TLS use in the "Received" header. TLS session +caching is also enabled in the Postfix SMTP client. With Postfix +≥ 2.10, the SMTP server does not need an explicit session cache +since session reuse is better handled via RFC 5077 TLS session +tickets.
+Pattern matching of domain names is controlled by the -parent_domain_matches_subdomains parameter.
+Pattern matching of domain names is controlled by the presence +or absence of "debug_peer_list" in the parent_domain_matches_subdomains +parameter value.
Examples: @@ -1524,6 +1525,10 @@ Continue long lines by starting the next line with whitespace. A lookup table is matched when the domain or its parent domain appears as lookup key.
+Pattern matching of domain names is controlled by the presence +or absence of "fast_flush_domains" in the parent_domain_matches_subdomains +parameter value.
+Specify "fast_flush_domains =" (i.e., empty) to disable the feature altogether. @@ -3047,7 +3052,11 @@ first match. Specify "!pattern" to exclude an address or network block from the list. The form "!/file/name" is supported only in Postfix version 2.4 and later.
-Note: IP version 6 address information must be specified inside +
Note 1: Pattern matching of domain names is controlled by the +or absence of "mynetworks" in the parent_domain_matches_subdomains +parameter value.
+ +Note 2: IP version 6 address information must be specified inside [] in the mynetworks value, and in files specified with "/file/name". IP version 6 addresses contain the ":" character, and would otherwise be confused with a "type:table" pattern.
@@ -3173,13 +3182,50 @@ notify_classes = 2bounce, resource, software %PARAM parent_domain_matches_subdomains see "postconf -d" output-What Postfix features match subdomains of "domain.tld" automatically, -instead of requiring an explicit ".domain.tld" pattern. This is +A list of Postfix features where the pattern "example.com" also +matches subdomains of example.com, +instead of requiring an explicit ".example.com" pattern. This is planned backwards compatibility: eventually, all Postfix features -are expected to require explicit ".domain.tld" style patterns when +are expected to require explicit ".example.com" style patterns when you really want to match subdomains.
+The following Postfix feature names are supported.
+ +@@ -3290,6 +3336,10 @@ exclamation point (!). The form "!/file/name" is supported only in Postfix version 2.4 and later.
+Pattern matching of domain names is controlled by the presence +or absence of "qmqpd_authorized_clients" in the +parent_domain_matches_subdomains parameter value.
+Example:
@@ -3592,8 +3642,7 @@ Do not change this unless you have a complete understanding of RFC 5321. %PARAM relay_domains $mydestinationWhat destination domains (and subdomains thereof) this system -will relay mail to. Subdomain matching is controlled with the -parent_domain_matches_subdomains parameter. For details about how +will relay mail to. For details about how the relay_domains value is used, see the description of the permit_auth_destination and reject_unauth_destination SMTP recipient restrictions.
@@ -3617,6 +3666,10 @@ key. Specify "!pattern" to exclude a domain from the list. The form "!/file/name" is supported only in Postfix version 2.4 and later. +Pattern matching of domain names is controlled by the presence +or absence of "relay_domains" in the parent_domain_matches_subdomains +parameter value.
+ %PARAM relay_domains_reject_code 554@@ -4793,6 +4846,11 @@ in files specified with "/file/name". IP version 6 addresses contain the ":" character, and would otherwise be confused with a "type:table" pattern.
+Pattern matching of domain names is controlled by the presence +or absence of "smtpd_client_event_limit_exceptions" in the +parent_domain_matches_subdomains parameter value (postfix 2.12 and +later).
+This feature is available in Postfix 2.2 and later.
@@ -6662,6 +6720,10 @@ until a match is found. If you use this feature with local files, run "postmap /etc/postfix/transport" after making a change. +Pattern matching of domain names is controlled by the presence +or absence of "transport_maps" in the parent_domain_matches_subdomains +parameter value.
+For safety reasons, as of Postfix 2.3 this feature does not allow $number substitutions in regular expression maps.
@@ -7917,6 +7979,10 @@ only domains whose primary MX hosts match the listed networks. The parameter value syntax is the same as with the mynetworks parameter; note, however, that the default value is empty. +Pattern matching of domain names is controlled by the presence +or absence of "permit_mx_backup_networks" in the +parent_domain_matches_subdomains parameter value.
+ %PARAM pickup_service_name pickup@@ -13789,7 +13855,9 @@ upon the first command that fires for the client IP address.
terminate the search if the client IP address matches $mynetworks. Do not subject the client to any before/after 220 greeting tests. Pass the connection immediately to a Postfix SMTP server process. -