NAME
cleanup - canonicalize and enqueue Postfix messageSYNOPSIS
cleanup [generic Postfix daemon options]
DESCRIPTION
The daemon processes inbound mail, inserts it into the incoming mail queue, and informs the queue manager of its arrival.
- •
- Insert missing message headers: (Resent-)
From:, To:, Message-Id:, and Date:.
- •
- Transform envelope and header addresses to the standard
user@fully-qualified-domain form that is expected by other Postfix
programs. This task depends on the trivial-rewrite(8) daemon.
- •
- Eliminate duplicate envelope recipient addresses.
- •
- Remove message headers: Bcc, Content-Length,
Resent-Bcc, Return-Path.
- •
- Optionally, rewrite all envelope and header addresses
according to the mappings specified in the canonical(5) lookup
tables.
- •
- 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.
- •
- Optionally, expand envelope recipients according to information found in the virtual_alias_maps lookup tables.
STANDARDS
RFC 822 (ARPA Internet Text Messages) RFC 2045 (MIME: Format of Internet Message Bodies) RFC 2046 (MIME: Media Types) RFC 2822 (Internet Message Format) RFC 3463 (Enhanced Status Codes) RFC 3464 (Delivery status notifications) RFC 5322 (Internet Message Format)
DIAGNOSTICS
Problems and transactions are logged to syslogd(8) or postlogd(8).
BUGS
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 processes run for only a limited amount of time. Use the command " postfix reload" to speed up a change.
COMPATIBILITY CONTROLS
- undisclosed_recipients_header (see 'postconf -d' output)
- Message header that the Postfix server inserts when a message contains no To: or Cc: message header.
- enable_errors_to (no)
- 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).
- always_add_missing_headers (no)
- Always add (Resent-) From:, To:, Date: or Message-ID: headers when not present.
- enable_long_queue_ids (no)
- Enable long, non-repeating, queue IDs (queue file names).
- message_drop_headers (bcc, content-length, resent-bcc, return-path)
- Names of message headers that the daemon will remove after applying header_checks(5) and before invoking Milter applications.
- header_from_format (standard)
- The format of the Postfix-generated From: header.
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.
- body_checks (empty)
- 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.
- body_checks_size_limit (51200)
- 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.
- 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.
- message_reject_characters (empty)
- The set of characters that Postfix will reject in message content.
- message_strip_characters (empty)
- The set of characters that Postfix will remove from message content.
- cleanup_replace_stray_cr_lf (yes)
- Replace each stray <CR> or <LF> character in message content with a space character, to prevent outbound SMTP smuggling, and to make the evaluation of Postfix-added DKIM or other signatures independent from how a remote mail server handles such characters.
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 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.
- milter_protocol (6)
- The mail filter protocol version and optional protocol extensions 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) response is unavailable (for example, bad Postfix configuration or Milter failure).
- milter_macro_daemon_name ($myhostname)
- The {daemon_name} macro value for Milter (mail filter) applications.
- milter_macro_v ($mail_name $mail_version)
- 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.
- milter_command_timeout (30s)
- 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.
- milter_connect_macros (see 'postconf -d' output)
- 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.
- milter_mail_macros (see 'postconf -d' output)
- 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.
- 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.
- 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.
- 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.
- 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.
- milter_header_checks (empty)
- Optional lookup tables for content inspection of message headers that are produced by Milter applications.
- milter_macro_defaults (empty)
- Optional list of name=value pairs that specify default values for arbitrary macros that Postfix may send to Milter applications.
MIME PROCESSING CONTROLS
Available in Postfix version 2.0 and later:
- disable_mime_input_processing (no)
- Turn off MIME processing while receiving mail.
- mime_boundary_length_limit (2048)
- The maximal length of MIME multipart boundary strings.
- mime_nesting_limit (100)
- The maximal recursion level that the MIME processor will handle.
- strict_8bitmime (no)
- 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.
- strict_mime_encoding_domain (no)
- Reject mail with invalid Content-Transfer-Encoding: information for the message/* or multipart/* MIME content types.
- detect_8bit_encoding_header (yes)
- Automatically detect 8BITMIME body content by looking at Content-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:
- always_bcc (empty)
- Optional address that receives a "blind carbon copy" of each message that is received by the Postfix mail system.
- sender_bcc_maps (empty)
- 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.
ADDRESS TRANSFORMATION CONTROLS
Address rewriting is delegated to the trivial-rewrite(8) daemon. The server implements table driven address mapping.
- empty_address_recipient (MAILER-DAEMON)
- The recipient of mail addressed to the null address.
- canonical_maps (empty)
- 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.
- sender_canonical_maps (empty)
- Optional address mapping lookup tables for envelope and header sender addresses.
- 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.
- masquerade_exceptions (empty)
- Optional list of user names that are not subjected to address masquerading, even when their addresses match $masquerade_domains.
- propagate_unmatched_extensions (canonical, virtual)
- What address lookup tables copy an address extension from the lookup key to the lookup result.
- 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.
- virtual_alias_maps ($virtual_maps)
- Optional lookup tables that alias specific mail addresses or domains to other local or remote address.
- canonical_classes (envelope_sender, envelope_recipient, header_sender, header_recipient)
- 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.
- remote_header_rewrite_domain (empty)
- 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 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.
- hopcount_limit (50)
- 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 delivery rate.
- message_size_limit (10240000)
- The maximal size in bytes of a message, including envelope information.
- header_address_token_limit (10240)
- 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.
- mime_nesting_limit (100)
- 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.
- virtual_alias_expansion_limit (1000)
- 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 expansion.
- virtual_alias_address_length_limit (1000)
- The maximal length of an email address after virtual alias expansion.
SMTPUTF8 CONTROLS
Preliminary SMTPUTF8 support is introduced with Postfix 3.0.
- smtputf8_enable (yes)
- Enable preliminary SMTPUTF8 support for the protocols described in RFC 6531..6533.
- smtputf8_autodetect_classes (sendmail, verify)
- Detect that a message requires SMTPUTF8 support for the specified mail origin classes.
- enable_idna2003_compatibility (no)
- Enable 'transitional' compatibility between IDNA2003 and IDNA2008, when converting UTF-8 domain names to/from the ASCII form that is used for DNS lookups.
MISCELLANEOUS CONTROLS
- config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and master.cf configuration 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.
- delay_logging_resolution_limit (2)
- The maximal number of digits after the decimal point when logging 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.
- ipc_timeout (3600s)
- 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.
- max_use (100)
- 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 delivered to.
- process_id (read-only)
- The process ID of a Postfix command or daemon process.
- process_name (read-only)
- The process name of a Postfix command or daemon process.
- queue_directory (see 'postconf -d' output)
- 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.
- syslog_facility (mail)
- The syslog facility of Postfix logging.
- syslog_name (see 'postconf -d' output)
- A prefix that is prepended to the process name in syslog records, so that, for example, "smtpd" becomes "prefix/smtpd".
- enable_original_recipient (yes)
- Enable support for the original recipient address after an address is rewritten to a different address (for example with aliasing or with canonical mapping).
- service_name (read-only)
- The master.cf service name of a Postfix daemon process.
- info_log_address_format (external)
- The email address form that will be used in non-debug logging (info, warning, etc.).
FILES
/etc/postfix/canonical*, canonical mapping table /etc/postfix/virtual*, virtual mapping table
SEE ALSO
trivial-rewrite(8), address rewriting qmgr(8), queue manager header_checks(5), message header content inspection body_checks(5), body parts content inspection canonical(5), canonical address lookup table format virtual(5), virtual alias lookup table format postconf(5), configuration parameters master(5), generic daemon options master(8), process manager postlogd(8), Postfix logging syslogd(8), system logging
README FILES
Use " postconf readme_directory" or " postconf html_directory" to locate this information.
ADDRESS_REWRITING_README Postfix address manipulation CONTENT_INSPECTION_README content inspection
LICENSE
The Secure Mailer license must be distributed with this software.
AUTHOR(S)
Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA Wietse Venema Google, Inc. 111 8th Avenue New York, NY 10011, USA