    CLEANUP(8)                                             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 transfor-
           mations:

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

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

           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 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  mes-
                  sage,  and  to the initial headers of attached mes-
                  sages.  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 Con-
                  tent-Type: message headers; all text after the ini-
                  tial  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_bound-
                  ary_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_8bit-
                  mime_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  exam-
                  ple,  bounces  from  qmail  or from old versions of
                  Postfix).

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

           sender_bcc_maps
                  Automatic  BCC  recipient  lookup table, indexed by
                  sender address.  The BCC address is added when  the
                  message enters the system.

           recipient_bcc_maps
                  Automatic  BCC  recipient  lookup table, indexed by
                  recipient address.  The BCC address is  added  when
                  the message enters the system.

           enable_original_recipient
                  Enable   support  for  the  X-Original-To:  message
                  header, which is needed for  multi-recipient  mail-
                  boxes.  When  this  is  enabled,  Postfix  performs
                  duplicate  elimination  on   (original   recipient,
                  rewritten  recipient)  pairs, instead of looking at
                  the rewritten recipient only.

           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: mes-
                  sage 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 recipi-
                  ent 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_recipi-
                  ent, header_sender, header_recipient.

           masquerade_domains
                  List  of  domains  that hide their subdomain struc-
                  ture.

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

           propagate_unmatched_extensions
                  A  list  of  address rewriting or forwarding mecha-
                  nisms that propagate an address extension from  the
                  original  address  to  the result.  Specify zero or
                  more of  canonical,  virtual,  alias,  forward,  or
                  include.

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

           virtual_alias_expansion_limit
                  Limit  the  number of actual recipients produced by
                  virtual alias expansion from each original  recipi-
                  ent.

           virtual_alias_recursion_limit
                  Limit  the  recursion depth of virtual alias expan-
                  sion.

    SEE ALSO
           body_checks(5) body parts content inspection
           canonical(5) canonical address lookup table format
           header_checks(5) message header content inspection
           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

                                                           CLEANUP(8)