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 manager of its arrival.

       The cleanup(8) daemon always performs the following transformations:

       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 Post-
              fix  programs.  This task is delegated to the trivial-rewrite(8)
              daemon.

       o      Eliminate duplicate envelope recipient addresses.

       The following address transformations are optional:

       o      Optionally, rewrite all envelope and header addresses  according
              to the mappings specified in the canonical(5) lookup tables.

       o      Optionally,  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  content  of  each
       message.  When  it  finds a problem, by default it returns a diagnostic
       status to the client, and leaves it up to the client to deal  with  the
       problem. Alternatively, the client can request the cleanup(8) daemon to
       bounce the message back to the sender in case of trouble.

STANDARDS
       RFC 822 (ARPA Internet Text Messages)
       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-recipients:;)
              Message header that the Postfix cleanup(8) server inserts when a
              message contains no To: or Cc: message header.

       Available in Postfix version 2.1 only:

       enable_errors_to (no)
              Report  mail  delivery  errors to the address 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).

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)  man-
              ual page.

       Available in Postfix version 2.0 and later:

       body_checks_size_limit (51200)
              How  much  text in a message body segment (or 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 mes-
              sage  headers  in  attached  messages,  as  described   in   the
              header_checks(5) manual page.

       Available in Postfix version 2.3 and later:

       message_reject_characters (empty)
              The  set  of characters that Postfix will reject in message con-
              tent.

       message_strip_characters (empty)
              The set of characters that Postfix will remove from message con-
              tent.

BEFORE QUEUE MILTER CONTROLS
       As of version 2.3, Postfix supports the Sendmail version 8 Milter (mail
       filter) protocol. When mail is not received via  the  smtpd(8)  server,
       the cleanup(8) server will 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 (2)
              The  mail  filter  protocol version and optional protocol exten-
              sions 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 filter)  applica-
              tions.

       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) applica-
              tion, and for negotiating protocol options.

       milter_command_timeout (30s)
              The time limit for sending an SMTP command  to  a  Milter  (mail
              filter) application, and for receiving the response.

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

       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.

       Available in Postfix version 2.5 and later:

       milter_end_of_header_macros (see postconf -n output)
              The  macros  that  are sent to Milter (mail filter) applications
              after the end of the message header.

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 encod-
              ing information.

       strict_mime_encoding_domain (no)
              Reject mail with invalid Content-Transfer-Encoding:  information
              for the message/* or multipart/* MIME content types.

       Available in Postfix version 2.5 and later:

       detect_8bit_encoding_header (yes)
              Automatically  detect  8BITMIME  body content by looking at Con-
              tent-Transfer-Encoding:  message  headers;  historically,   this
              behavior was hard-coded to be "always on".

AUTOMATIC BCC RECIPIENT CONTROLS
       Postfix  can automatically add BCC (blind carbon copy) when mail enters
       the mail system:

       always_bcc (empty)
              Optional address that receives a "blind  carbon  copy"  of  each
              message that is received by the Postfix mail system.

       Available in Postfix version 2.1 and later:

       sender_bcc_maps (empty)
              Optional  BCC (blind carbon-copy) address lookup tables, indexed
              by sender address.

       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  $masquer-
              ade_domains.

       propagate_unmatched_extensions (canonical, virtual)
              What address lookup tables copy an address  extension  from  the
              lookup key to the lookup result.

       Available before Postfix version 2.0:

       virtual_maps (empty)
              Optional  lookup  tables  with a) names of domains for which all
              addresses are aliased to addresses  in  other  local  or  remote
              domains, and b) addresses that are aliased to addresses in other
              local or remote domains.

       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_canonical_maps address
              mapping.

       sender_canonical_classes (envelope_sender, header_sender)
              What addresses are subject to sender_canonical_maps address map-
              ping.

       remote_header_rewrite_domain (empty)
              Don't  rewrite  message  headers from remote clients at all when
              this parameter is empty; otherwise, 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 dupli-
              cate filter for aliases(5) or virtual(5) alias expansion, or for
              showq(8) queue displays.

       header_size_limit (102400)
              The  maximal  amount  of  memory  in bytes for storing a message
              header.

       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.

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

MISCELLANEOUS CONTROLS
       config_directory (see 'postconf -d' output)
              The  default  location of the Postfix main.cf and master.cf con-
              figuration files.

       daemon_timeout (18000s)
              How much time a Postfix daemon process  may  take  to  handle  a
              request before it is terminated by a built-in watchdog timer.

       delay_logging_resolution_limit (2)
              The  maximal  number of digits after the decimal point when log-
              ging sub-second delay values.

       delay_warning_time (0h)
              The time after which the sender receives 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 (postfix)
              The  mail  system  name that is prepended to the process name in
              syslog records, so that "smtpd"  becomes,  for  example,  "post-
              fix/smtpd".

       Available in Postfix version 2.1 and later:

       enable_original_recipient (yes)
              Enable support for the X-Original-To message header.

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



                                                                    CLEANUP(8)
