CLEANUP(8)

NAME
cleanup - canonicalize and enqueue Postfix message

SYNOPSIS
cleanup [generic Postfix daemon options]

DESCRIPTION
The cleanup daemon processes inbound mail, inserts it into the incoming mail queue, and informs the queue manager of its arrival. The cleanup daemon always performs the following transformations:

•   Insert missing message headers: (Resent-) From:, To:, Message-Id:, and Date:.

•   Extract envelope recipient addresses from (Resent-) To:, Cc: and Bcc: message headers when no recipients are specified in the message envelope.

•   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.

•   Eliminate duplicate envelope recipient addresses.

The following address transformations are optional:

•   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(5) lookup tables.

The cleanup 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 daemon to bounce the message back to the sender in case of trouble.

STANDARDS
RFC 822 (ARPA Internet Text Messages)
RFC 2045 (MIME: Format of Internet Message Bodies)
RFC 2046 (MIME: Media Types)

DIAGNOSTICS
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.

CONFIGURATION PARAMETERS
The following main.cf parameters are especially relevant to this program. See the Postfix main.cf file for syntax details and for default values. Use the postfix reload command after a configuration change.

Content filtering

body_checks
    Lookup tables with content filters for message body lines. These filters see physical lines one at a time, in chunks of at most line_length_limit bytes.

body_checks_size_limit
    The amount of content per message body segment 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 filters for message header lines: respectively, these are applied to the primary message headers (not including MIME headers), to the MIME headers anywhere in the message, and to the initial headers of attached messages. These filters see logical headers one at a time, including headers that span multiple lines.

MIME Processing

disable_mime_input_processing
    While receiving, give no special treatment to Content-Type: message headers; all text after the initial message headers is considered to be part of the message body.

mime_boundary_length_limit
    The amount of space that will be allocated for MIME multipart boundary strings. The MIME processor is unable to distinguish between boundary strings that do not differ in the first $mime_boundary_length_limit characters.

mime_nesting_limit
    The maximal nesting level of multipart mail that the MIME processor can handle. Refuse mail that is nested deeper.

strict_8bitmime
    Turn on both strict_7bit_headers and strict_8bitmime_body.

strict_7bit_headers
    Reject mail with 8-bit text in message headers. This blocks mail from poorly written applications.

strict_8bitmime_body
    Reject mail with 8-bit text in content that claims to be 7-bit, or in content that has no explicit content encoding information. This blocks mail from poorly written mail software. Unfortunately, this also breaks majordomo approval requests when the included request contains valid 8-bit MIME mail, and it breaks bounces from mailers that do not properly encapsulate 8-bit content (for example, bounces from qmail or from old versions of Postfix).

strict_mime_encoding_domain
    Reject mail with invalid Content-Transfer-Encoding: information for message/* or multipart/*. This blocks mail from poorly written software.

Miscellaneous

always_bcc
    Address to send a copy of each message that enters the system.

hopcount_limit
    Limit the number of Received: message headers.

undisclosed_recipients_header
    The header line that is inserted when no recipients were specified in (Resent-)To: or (Resent-)Cc: message headers.

Address transformations

empty_address_recipient
    The destination for undeliverable mail from <>. This substitution is done before all other address rewriting.

canonical_maps
    Address mapping lookup table for sender and recipient addresses in envelopes and headers.

recipient_canonical_maps
    Address mapping lookup table for envelope and header recipient addresses.

sender_canonical_maps
    Address mapping lookup table for envelope and header sender addresses.

masquerade_classes
    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 structure.

masquerade_exceptions
    List of user names that are not subject to address masquerading.

virtual_alias_maps
    Address mapping lookup table for envelope recipient addresses.

Resource controls

duplicate_filter_limit
    Limits the number of envelope recipients that are remembered.

header_address_token_limit
    Limits the number of address tokens used to process a message header.

header_size_limit
    Limits the amount of memory in bytes used to process a message header.

in_flow_delay
    Amount of time to pause before accepting a message, when the message arrival rate exceeds the message delivery rate.

extract_recipient_limit
    Limit the amount of recipients extracted from message headers.

SEE ALSO
canonical(5) canonical address lookup table format
qmgr(8) queue manager daemon
syslogd(8) system logging
trivial-rewrite(8) address rewriting
virtual(5) virtual alias lookup table format

FILES
/etc/postfix/canonical*, canonical mapping table
/etc/postfix/virtual*, virtual mapping table

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