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

           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.

           virtual_maps
                  Address mapping lookup table for envelope recipient
                  addresses.

    Resource controls
           duplicate_filter_limit
                  Limit  the  number  of envelope recipients that are
                  remembered.

           header_size_limit
                  Limit 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 mes-
                  sage 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 address lookup table format

    FILES
           /usr/local/etc/postfix/canonical*, canonical mapping table
           /usr/local/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)