CLEANUP(8) CLEANUP(8)
NAME
cleanup - canonicalize and enqueue Postfix message
SYNOPSIS
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 always performs the following trans-
formations:
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 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, 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.
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.
STANDARDS
RFC 822 (ARPA Internet Text Messages)
RFC 2045 (MIME: Format of Internet Message Bodies)
RFC 2046 (MIME: Media Types)
RFC 3463 (Enhanced Status Codes)
RFC 3464 (Delivery status notifications)
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
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.
COMPATIBILITY CONTROLS
undisclosed_recipients_header (To: undisclosed-recipi-
ents:;)
Message header that the Postfix cleanup(8) server
inserts when a message contains no To: or Cc: mes-
sage 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).
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.
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.
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.
Available in Postfix version 2.3 and later:
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.
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.
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 (2)
The mail filter protocol version and optional pro-
tocol extensions for communication with a Milter
(mail filter) application.
milter_default_action (tempfail)
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.
milter_macro_v ($mail_name $mail_version)
The {v} macro value for Milter (mail filter) appli-
cations.
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 -n output)
The macros that are sent to Milter (mail filter)
applications after completion of an SMTP connec-
tion.
milter_helo_macros (see postconf -n output)
The macros that are sent to Milter (mail filter)
applications after the SMTP HELO or EHLO command.
milter_mail_macros (see postconf -n output)
The macros that are sent to Milter (mail filter)
applications after the SMTP MAIL FROM command.
milter_rcpt_macros (see postconf -n output)
The macros that are sent to Milter (mail filter)
applications after the SMTP RCPT TO command.
milter_data_macros (see postconf -n 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 -n 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 -n output)
The macros that are sent to Milter (mail filter)
applications after the message end-of-data.
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_8bit-
mime_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.
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 Post-
fix 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.
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 cleanup(8) 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 address
matches $masquerade_domains.
propagate_unmatched_extensions (canonical, virtual)
What address lookup tables copy an address exten-
sion 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.
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.
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,
header_recipient)
What addresses are subject to recipient_canoni-
cal_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, re-
write 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.
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 deliv-
ery rate.
message_size_limit (10240000)
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.
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.
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.
virtual_alias_recursion_limit (1000)
The maximal nesting depth of virtual alias expan-
sion.
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 the mes-
sage 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 the next service request
before exiting.
max_use (100)
The maximal number of connection requests before a
Postfix daemon process terminates.
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.
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 direc-
tory.
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 (postfix)
The mail system name that is prepended to the
process name in syslog records, so that "smtpd"
becomes, for example, "postfix/smtpd".
Available in Postfix version 2.1 and later:
enable_original_recipient (yes)
Enable support for the X-Original-To message
header.
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
syslogd(8), system logging
README FILES
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
CLEANUP(8)