{
    "content": [
        {
            "type": "text",
            "text": "# cleanup (man)\n\n## NAME\n\ncleanup - canonicalize and enqueue Postfix message\n\n## SYNOPSIS\n\ncleanup [generic Postfix daemon options]\n\n## DESCRIPTION\n\nThe  cleanup(8)  daemon  processes inbound mail, inserts it into the incoming mail queue, and\ninforms the queue manager of its arrival.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **STANDARDS**\n- **DIAGNOSTICS**\n- **BUGS**\n- **CONFIGURATION PARAMETERS**\n- **COMPATIBILITY CONTROLS** (6 subsections)\n- **BUILT-IN CONTENT FILTERING CONTROLS** (8 subsections)\n- **BEFORE QUEUE MILTER CONTROLS** (18 subsections)\n- **MIME PROCESSING CONTROLS** (8 subsections)\n- **AUTOMATIC BCC RECIPIENT CONTROLS** (3 subsections)\n- **ADDRESS TRANSFORMATION CONTROLS** (14 subsections)\n- **RESOURCE AND RATE CONTROLS** (12 subsections)\n- **SMTPUTF8 CONTROLS** (3 subsections)\n- **MISCELLANEOUS CONTROLS** (18 subsections)\n- **FILES**\n- **SEE ALSO**\n- **README FILES**\n- **LICENSE**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "cleanup",
        "section": "",
        "mode": "man",
        "summary": "cleanup - canonicalize and enqueue Postfix message",
        "synopsis": "cleanup [generic Postfix daemon options]",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "trivial-rewrite",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/trivial-rewrite/8/json"
            },
            {
                "name": "qmgr",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/qmgr/8/json"
            },
            {
                "name": "headerchecks",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/headerchecks/5/json"
            },
            {
                "name": "bodychecks",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/bodychecks/5/json"
            },
            {
                "name": "canonical",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/canonical/5/json"
            },
            {
                "name": "virtual",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/virtual/5/json"
            },
            {
                "name": "postconf",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/postconf/5/json"
            },
            {
                "name": "master",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/master/5/json"
            },
            {
                "name": "master",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/master/8/json"
            },
            {
                "name": "postlogd",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/postlogd/8/json"
            },
            {
                "name": "syslogd",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/syslogd/8/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 41,
                "subsections": []
            },
            {
                "name": "STANDARDS",
                "lines": 8,
                "subsections": []
            },
            {
                "name": "DIAGNOSTICS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "BUGS",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "CONFIGURATION PARAMETERS",
                "lines": 6,
                "subsections": []
            },
            {
                "name": "COMPATIBILITY CONTROLS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "undisclosed_recipients_header (see 'postconf -d' output)",
                        "lines": 5
                    },
                    {
                        "name": "enable_errors_to (no)",
                        "lines": 7
                    },
                    {
                        "name": "always_add_missing_headers (no)",
                        "lines": 4
                    },
                    {
                        "name": "enable_long_queue_ids (no)",
                        "lines": 4
                    },
                    {
                        "name": "message_drop_headers (bcc, content-length, resent-bcc, return-path)",
                        "lines": 3
                    },
                    {
                        "name": "header_from_format (standard)",
                        "lines": 2
                    }
                ]
            },
            {
                "name": "BUILT-IN CONTENT FILTERING CONTROLS",
                "lines": 3,
                "subsections": [
                    {
                        "name": "body_checks (empty)",
                        "lines": 3
                    },
                    {
                        "name": "header_checks (empty)",
                        "lines": 5
                    },
                    {
                        "name": "body_checks_size_limit (51200)",
                        "lines": 3
                    },
                    {
                        "name": "mime_header_checks ($header_checks)",
                        "lines": 3
                    },
                    {
                        "name": "nested_header_checks ($header_checks)",
                        "lines": 5
                    },
                    {
                        "name": "message_reject_characters (empty)",
                        "lines": 2
                    },
                    {
                        "name": "message_strip_characters (empty)",
                        "lines": 4
                    },
                    {
                        "name": "cleanup_replace_stray_cr_lf (yes)",
                        "lines": 4
                    }
                ]
            },
            {
                "name": "BEFORE QUEUE MILTER CONTROLS",
                "lines": 4,
                "subsections": [
                    {
                        "name": "non_smtpd_milters (empty)",
                        "lines": 3
                    },
                    {
                        "name": "milter_protocol (6)",
                        "lines": 3
                    },
                    {
                        "name": "milter_default_action (tempfail)",
                        "lines": 3
                    },
                    {
                        "name": "milter_macro_daemon_name ($myhostname)",
                        "lines": 2
                    },
                    {
                        "name": "milter_macro_v ($mail_name $mail_version)",
                        "lines": 2
                    },
                    {
                        "name": "milter_connect_timeout (30s)",
                        "lines": 3
                    },
                    {
                        "name": "milter_command_timeout (30s)",
                        "lines": 3
                    },
                    {
                        "name": "milter_content_timeout (300s)",
                        "lines": 3
                    },
                    {
                        "name": "milter_connect_macros (see 'postconf -d' output)",
                        "lines": 3
                    },
                    {
                        "name": "milter_helo_macros (see 'postconf -d' output)",
                        "lines": 3
                    },
                    {
                        "name": "milter_mail_macros (see 'postconf -d' output)",
                        "lines": 3
                    },
                    {
                        "name": "milter_rcpt_macros (see 'postconf -d' output)",
                        "lines": 3
                    },
                    {
                        "name": "milter_data_macros (see 'postconf -d' output)",
                        "lines": 3
                    },
                    {
                        "name": "milter_unknown_command_macros (see 'postconf -d' output)",
                        "lines": 3
                    },
                    {
                        "name": "milter_end_of_data_macros (see 'postconf -d' output)",
                        "lines": 5
                    },
                    {
                        "name": "milter_end_of_header_macros (see 'postconf -d' output)",
                        "lines": 5
                    },
                    {
                        "name": "milter_header_checks (empty)",
                        "lines": 5
                    },
                    {
                        "name": "milter_macro_defaults (empty)",
                        "lines": 3
                    }
                ]
            },
            {
                "name": "MIME PROCESSING CONTROLS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "disable_mime_input_processing (no)",
                        "lines": 2
                    },
                    {
                        "name": "mime_boundary_length_limit (2048)",
                        "lines": 2
                    },
                    {
                        "name": "mime_nesting_limit (100)",
                        "lines": 2
                    },
                    {
                        "name": "strict_8bitmime (no)",
                        "lines": 2
                    },
                    {
                        "name": "strict_7bit_headers (no)",
                        "lines": 2
                    },
                    {
                        "name": "strict_8bitmime_body (no)",
                        "lines": 2
                    },
                    {
                        "name": "strict_mime_encoding_domain (no)",
                        "lines": 5
                    },
                    {
                        "name": "detect_8bit_encoding_header (yes)",
                        "lines": 3
                    }
                ]
            },
            {
                "name": "AUTOMATIC BCC RECIPIENT CONTROLS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "always_bcc (empty)",
                        "lines": 5
                    },
                    {
                        "name": "sender_bcc_maps (empty)",
                        "lines": 2
                    },
                    {
                        "name": "recipient_bcc_maps (empty)",
                        "lines": 2
                    }
                ]
            },
            {
                "name": "ADDRESS TRANSFORMATION CONTROLS",
                "lines": 3,
                "subsections": [
                    {
                        "name": "empty_address_recipient (MAILER-DAEMON)",
                        "lines": 2
                    },
                    {
                        "name": "canonical_maps (empty)",
                        "lines": 2
                    },
                    {
                        "name": "recipient_canonical_maps (empty)",
                        "lines": 2
                    },
                    {
                        "name": "sender_canonical_maps (empty)",
                        "lines": 2
                    },
                    {
                        "name": "masquerade_classes (envelope_sender, header_sender, header_recipient)",
                        "lines": 2
                    },
                    {
                        "name": "masquerade_domains (empty)",
                        "lines": 3
                    },
                    {
                        "name": "masquerade_exceptions (empty)",
                        "lines": 3
                    },
                    {
                        "name": "propagate_unmatched_extensions (canonical, virtual)",
                        "lines": 5
                    },
                    {
                        "name": "virtual_maps (empty)",
                        "lines": 6
                    },
                    {
                        "name": "virtual_alias_maps ($virtual_maps)",
                        "lines": 5
                    },
                    {
                        "name": "canonical_classes (envelope_sender, envelope_recipient, header_sender, header_recipient)",
                        "lines": 2
                    },
                    {
                        "name": "recipient_canonical_classes (envelope_recipient, header_recipient)",
                        "lines": 2
                    },
                    {
                        "name": "sender_canonical_classes (envelope_sender, header_sender)",
                        "lines": 2
                    },
                    {
                        "name": "remote_header_rewrite_domain (empty)",
                        "lines": 4
                    }
                ]
            },
            {
                "name": "RESOURCE AND RATE CONTROLS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "duplicate_filter_limit (1000)",
                        "lines": 3
                    },
                    {
                        "name": "header_size_limit (102400)",
                        "lines": 2
                    },
                    {
                        "name": "hopcount_limit (50)",
                        "lines": 3
                    },
                    {
                        "name": "in_flow_delay (1s)",
                        "lines": 3
                    },
                    {
                        "name": "message_size_limit (10240000)",
                        "lines": 4
                    },
                    {
                        "name": "header_address_token_limit (10240)",
                        "lines": 2
                    },
                    {
                        "name": "mime_boundary_length_limit (2048)",
                        "lines": 2
                    },
                    {
                        "name": "mime_nesting_limit (100)",
                        "lines": 2
                    },
                    {
                        "name": "queue_file_attribute_count_limit (100)",
                        "lines": 5
                    },
                    {
                        "name": "virtual_alias_expansion_limit (1000)",
                        "lines": 3
                    },
                    {
                        "name": "virtual_alias_recursion_limit (1000)",
                        "lines": 4
                    },
                    {
                        "name": "virtual_alias_address_length_limit (1000)",
                        "lines": 2
                    }
                ]
            },
            {
                "name": "SMTPUTF8 CONTROLS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "smtputf8_enable (yes)",
                        "lines": 2
                    },
                    {
                        "name": "smtputf8_autodetect_classes (sendmail, verify)",
                        "lines": 4
                    },
                    {
                        "name": "enable_idna2003_compatibility (no)",
                        "lines": 3
                    }
                ]
            },
            {
                "name": "MISCELLANEOUS CONTROLS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "config_directory (see 'postconf -d' output)",
                        "lines": 2
                    },
                    {
                        "name": "daemon_timeout (18000s)",
                        "lines": 3
                    },
                    {
                        "name": "delay_logging_resolution_limit (2)",
                        "lines": 3
                    },
                    {
                        "name": "delay_warning_time (0h)",
                        "lines": 3
                    },
                    {
                        "name": "ipc_timeout (3600s)",
                        "lines": 3
                    },
                    {
                        "name": "max_idle (100s)",
                        "lines": 3
                    },
                    {
                        "name": "max_use (100)",
                        "lines": 3
                    },
                    {
                        "name": "myhostname (see 'postconf -d' output)",
                        "lines": 2
                    },
                    {
                        "name": "myorigin ($myhostname)",
                        "lines": 3
                    },
                    {
                        "name": "process_id (read-only)",
                        "lines": 2
                    },
                    {
                        "name": "process_name (read-only)",
                        "lines": 2
                    },
                    {
                        "name": "queue_directory (see 'postconf -d' output)",
                        "lines": 2
                    },
                    {
                        "name": "soft_bounce (no)",
                        "lines": 2
                    },
                    {
                        "name": "syslog_facility (mail)",
                        "lines": 2
                    },
                    {
                        "name": "syslog_name (see 'postconf -d' output)",
                        "lines": 5
                    },
                    {
                        "name": "enable_original_recipient (yes)",
                        "lines": 5
                    },
                    {
                        "name": "service_name (read-only)",
                        "lines": 4
                    },
                    {
                        "name": "info_log_address_format (external)",
                        "lines": 2
                    }
                ]
            },
            {
                "name": "FILES",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 12,
                "subsections": []
            },
            {
                "name": "README FILES",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "LICENSE",
                "lines": 14,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "cleanup - canonicalize and enqueue Postfix message\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "cleanup [generic Postfix daemon options]\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "The  cleanup(8)  daemon  processes inbound mail, inserts it into the incoming mail queue, and\ninforms the queue manager of its arrival.\n\nThe cleanup(8) daemon performs the following transformations:\n\n•      Insert missing message headers: (Resent-) From:, To:, Message-Id:, and Date:.\nThis is enabled with the localheaderrewriteclients  and  alwaysaddmissingheaders\nparameter settings.\n\n•      Transform  envelope  and  header addresses to the standard user@fully-qualified-domain\nform that is expected by other Postfix programs.   This  task  depends  on  the  triv‐\nial-rewrite(8) daemon.\nThe  header  transformation is enabled with the localheaderrewriteclients parameter\nsetting.\n\n•      Eliminate duplicate envelope recipient addresses.\nThis is enabled with the duplicatefilterlimit parameter setting.\n\n•      Remove message headers: Bcc, Content-Length, Resent-Bcc, Return-Path.\nThis is enabled with the messagedropheaders parameter setting.\n\n•      Optionally, rewrite all envelope and header addresses according to the mappings speci‐\nfied in the canonical(5) lookup tables.\nThe header transformation is enabled with the  localheaderrewriteclients  parameter\nsetting.\n\n•      Optionally,  masquerade  envelope  sender addresses and message header addresses (i.e.\nstrip host or domain information below all domains listed  in  the  masqueradedomains\nparameter,  except  for  user names listed in masqueradeexceptions).  By default, ad‐\ndress masquerading does not affect envelope recipients.\nThe header transformation is enabled with the  localheaderrewriteclients  parameter\nsetting.\n\n•      Optionally,  expand  envelope  recipients  according  to information found in the vir‐\ntualaliasmaps lookup tables.\n\nThe cleanup(8) daemon performs sanity checks on the content of each message. When it finds  a\nproblem,  by default it returns a diagnostic status to the cleanup service client, and leaves\nit up to the client to deal with the problem.  Alternatively,  the  client  can  request  the\ncleanup(8) daemon to bounce the message back to the sender in case of trouble.\n",
                "subsections": []
            },
            "STANDARDS": {
                "content": "RFC 822 (ARPA Internet Text Messages)\nRFC 2045 (MIME: Format of Internet Message Bodies)\nRFC 2046 (MIME: Media Types)\nRFC 2822 (Internet Message Format)\nRFC 3463 (Enhanced Status Codes)\nRFC 3464 (Delivery status notifications)\nRFC 5322 (Internet Message Format)\n",
                "subsections": []
            },
            "DIAGNOSTICS": {
                "content": "Problems and transactions are logged to syslogd(8) or postlogd(8).\n",
                "subsections": []
            },
            "BUGS": {
                "content": "Table-driven rewriting rules make it hard to express if then else and other logical relation‐\nships.\n",
                "subsections": []
            },
            "CONFIGURATION PARAMETERS": {
                "content": "Changes  to  main.cf are picked up automatically, as cleanup(8) processes run for only a lim‐\nited amount of time. Use the command \"postfix reload\" to speed up a change.\n\nThe text below provides only a parameter summary. See postconf(5) for more details  including\nexamples.\n",
                "subsections": []
            },
            "COMPATIBILITY CONTROLS": {
                "content": "",
                "subsections": [
                    {
                        "name": "undisclosed_recipients_header (see 'postconf -d' output)",
                        "content": "Message  header  that the Postfix cleanup(8) server inserts when a message contains no\nTo: or Cc: message header.\n\nAvailable in Postfix version 2.1 only:\n"
                    },
                    {
                        "name": "enable_errors_to (no)",
                        "content": "Report mail delivery errors to the address specified with the non-standard  Errors-To:\nmessage  header,  instead of the envelope sender address (this feature is removed with\nPostfix version 2.2, is turned off by default with Postfix version 2.1, and is  always\nturned on with older Postfix versions).\n\nAvailable in Postfix version 2.6 and later:\n"
                    },
                    {
                        "name": "always_add_missing_headers (no)",
                        "content": "Always add (Resent-) From:, To:, Date: or Message-ID: headers when not present.\n\nAvailable in Postfix version 2.9 and later:\n"
                    },
                    {
                        "name": "enable_long_queue_ids (no)",
                        "content": "Enable long, non-repeating, queue IDs (queue file names).\n\nAvailable in Postfix version 3.0 and later:\n"
                    },
                    {
                        "name": "message_drop_headers (bcc, content-length, resent-bcc, return-path)",
                        "content": "Names  of  message  headers  that  the  cleanup(8)  daemon  will remove after applying\nheaderchecks(5) and before invoking Milter applications.\n"
                    },
                    {
                        "name": "header_from_format (standard)",
                        "content": "The format of the Postfix-generated From: header.\n"
                    }
                ]
            },
            "BUILT-IN CONTENT FILTERING CONTROLS": {
                "content": "Postfix built-in content filtering is meant to stop a flood of worms or viruses. It is not  a\ngeneral content filter.\n",
                "subsections": [
                    {
                        "name": "body_checks (empty)",
                        "content": "Optional  lookup tables for content inspection as specified in the bodychecks(5) man‐\nual page.\n"
                    },
                    {
                        "name": "header_checks (empty)",
                        "content": "Optional lookup tables for content inspection of primary non-MIME message headers,  as\nspecified in the headerchecks(5) manual page.\n\nAvailable in Postfix version 2.0 and later:\n"
                    },
                    {
                        "name": "body_checks_size_limit (51200)",
                        "content": "How  much  text  in  a  message body segment (or attachment, if you prefer to use that\nterm) is subjected to bodychecks inspection.\n"
                    },
                    {
                        "name": "mime_header_checks ($header_checks)",
                        "content": "Optional lookup tables for content inspection of MIME related message headers, as  de‐\nscribed in the headerchecks(5) manual page.\n"
                    },
                    {
                        "name": "nested_header_checks ($header_checks)",
                        "content": "Optional  lookup tables for content inspection of non-MIME message headers in attached\nmessages, as described in the headerchecks(5) manual page.\n\nAvailable in Postfix version 2.3 and later:\n"
                    },
                    {
                        "name": "message_reject_characters (empty)",
                        "content": "The set of characters that Postfix will reject in message content.\n"
                    },
                    {
                        "name": "message_strip_characters (empty)",
                        "content": "The set of characters that Postfix will remove from message content.\n\nAvailable in Postfix version 3.9, 3.8.5, 3.7.10, 3.6.14, 3.5.24, and later:\n"
                    },
                    {
                        "name": "cleanup_replace_stray_cr_lf (yes)",
                        "content": "Replace each stray <CR> or <LF> character in message content with a  space  character,\nto  prevent  outbound SMTP smuggling, and to make the evaluation of Postfix-added DKIM\nor other signatures independent from how a remote mail server handles such characters.\n"
                    }
                ]
            },
            "BEFORE QUEUE MILTER CONTROLS": {
                "content": "As of version 2.3, Postfix supports the Sendmail version 8  Milter  (mail  filter)  protocol.\nWhen  mail  is not received via the smtpd(8) server, the cleanup(8) server will simulate SMTP\nevents to the extent that this is possible. For details see the MILTERREADME document.\n",
                "subsections": [
                    {
                        "name": "non_smtpd_milters (empty)",
                        "content": "A list of Milter (mail filter) applications for new mail that does not arrive via  the\nPostfix smtpd(8) server.\n"
                    },
                    {
                        "name": "milter_protocol (6)",
                        "content": "The  mail  filter  protocol version and optional protocol extensions for communication\nwith a Milter application; prior to Postfix 2.6 the default protocol is 2.\n"
                    },
                    {
                        "name": "milter_default_action (tempfail)",
                        "content": "The default action when a Milter (mail filter) response is unavailable  (for  example,\nbad Postfix configuration or Milter failure).\n"
                    },
                    {
                        "name": "milter_macro_daemon_name ($myhostname)",
                        "content": "The {daemonname} macro value for Milter (mail filter) applications.\n"
                    },
                    {
                        "name": "milter_macro_v ($mail_name $mail_version)",
                        "content": "The {v} macro value for Milter (mail filter) applications.\n"
                    },
                    {
                        "name": "milter_connect_timeout (30s)",
                        "content": "The time limit for connecting to a Milter (mail filter) application, and for negotiat‐\ning protocol options.\n"
                    },
                    {
                        "name": "milter_command_timeout (30s)",
                        "content": "The  time limit for sending an SMTP command to a Milter (mail filter) application, and\nfor receiving the response.\n"
                    },
                    {
                        "name": "milter_content_timeout (300s)",
                        "content": "The time limit for sending message content to a Milter (mail filter) application,  and\nfor receiving the response.\n"
                    },
                    {
                        "name": "milter_connect_macros (see 'postconf -d' output)",
                        "content": "The  macros  that are sent to Milter (mail filter) applications after completion of an\nSMTP connection.\n"
                    },
                    {
                        "name": "milter_helo_macros (see 'postconf -d' output)",
                        "content": "The macros that are sent to Milter (mail filter) applications after the SMTP  HELO  or\nEHLO command.\n"
                    },
                    {
                        "name": "milter_mail_macros (see 'postconf -d' output)",
                        "content": "The macros that are sent to Milter (mail filter) applications after the SMTP MAIL FROM\ncommand.\n"
                    },
                    {
                        "name": "milter_rcpt_macros (see 'postconf -d' output)",
                        "content": "The  macros  that are sent to Milter (mail filter) applications after the SMTP RCPT TO\ncommand.\n"
                    },
                    {
                        "name": "milter_data_macros (see 'postconf -d' output)",
                        "content": "The macros that are sent to version 4 or higher Milter (mail filter) applications  af‐\nter the SMTP DATA command.\n"
                    },
                    {
                        "name": "milter_unknown_command_macros (see 'postconf -d' output)",
                        "content": "The  macros that are sent to version 3 or higher Milter (mail filter) applications af‐\nter an unknown SMTP command.\n"
                    },
                    {
                        "name": "milter_end_of_data_macros (see 'postconf -d' output)",
                        "content": "The macros that are sent to  Milter  (mail  filter)  applications  after  the  message\nend-of-data.\n\nAvailable in Postfix version 2.5 and later:\n"
                    },
                    {
                        "name": "milter_end_of_header_macros (see 'postconf -d' output)",
                        "content": "The  macros  that  are  sent to Milter (mail filter) applications after the end of the\nmessage header.\n\nAvailable in Postfix version 2.7 and later:\n"
                    },
                    {
                        "name": "milter_header_checks (empty)",
                        "content": "Optional lookup tables for content inspection of message headers that are produced  by\nMilter applications.\n\nAvailable in Postfix version 3.1 and later:\n"
                    },
                    {
                        "name": "milter_macro_defaults (empty)",
                        "content": "Optional  list  of  name=value  pairs that specify default values for arbitrary macros\nthat Postfix may send to Milter applications.\n"
                    }
                ]
            },
            "MIME PROCESSING CONTROLS": {
                "content": "Available in Postfix version 2.0 and later:\n",
                "subsections": [
                    {
                        "name": "disable_mime_input_processing (no)",
                        "content": "Turn off MIME processing while receiving mail.\n"
                    },
                    {
                        "name": "mime_boundary_length_limit (2048)",
                        "content": "The maximal length of MIME multipart boundary strings.\n"
                    },
                    {
                        "name": "mime_nesting_limit (100)",
                        "content": "The maximal recursion level that the MIME processor will handle.\n"
                    },
                    {
                        "name": "strict_8bitmime (no)",
                        "content": "Enable both strict7bitheaders and strict8bitmimebody.\n"
                    },
                    {
                        "name": "strict_7bit_headers (no)",
                        "content": "Reject mail with 8-bit text in message headers.\n"
                    },
                    {
                        "name": "strict_8bitmime_body (no)",
                        "content": "Reject 8-bit message body text without 8-bit MIME content encoding information.\n"
                    },
                    {
                        "name": "strict_mime_encoding_domain (no)",
                        "content": "Reject mail with invalid Content-Transfer-Encoding: information for the  message/*  or\nmultipart/* MIME content types.\n\nAvailable in Postfix version 2.5 and later:\n"
                    },
                    {
                        "name": "detect_8bit_encoding_header (yes)",
                        "content": "Automatically  detect  8BITMIME  body content by looking at Content-Transfer-Encoding:\nmessage headers; historically, this behavior was hard-coded to be \"always on\".\n"
                    }
                ]
            },
            "AUTOMATIC BCC RECIPIENT CONTROLS": {
                "content": "Postfix can automatically add BCC (blind carbon copy) when mail enters the mail system:\n",
                "subsections": [
                    {
                        "name": "always_bcc (empty)",
                        "content": "Optional address that receives a \"blind carbon copy\" of each message that is  received\nby the Postfix mail system.\n\nAvailable in Postfix version 2.1 and later:\n"
                    },
                    {
                        "name": "sender_bcc_maps (empty)",
                        "content": "Optional BCC (blind carbon-copy) address lookup tables, indexed by sender address.\n"
                    },
                    {
                        "name": "recipient_bcc_maps (empty)",
                        "content": "Optional BCC (blind carbon-copy) address lookup tables, indexed by recipient address.\n"
                    }
                ]
            },
            "ADDRESS TRANSFORMATION CONTROLS": {
                "content": "Address  rewriting  is delegated to the trivial-rewrite(8) daemon.  The cleanup(8) server im‐\nplements table driven address mapping.\n",
                "subsections": [
                    {
                        "name": "empty_address_recipient (MAILER-DAEMON)",
                        "content": "The recipient of mail addressed to the null address.\n"
                    },
                    {
                        "name": "canonical_maps (empty)",
                        "content": "Optional address mapping lookup tables for message headers and envelopes.\n"
                    },
                    {
                        "name": "recipient_canonical_maps (empty)",
                        "content": "Optional address mapping lookup tables for envelope and header recipient addresses.\n"
                    },
                    {
                        "name": "sender_canonical_maps (empty)",
                        "content": "Optional address mapping lookup tables for envelope and header sender addresses.\n"
                    },
                    {
                        "name": "masquerade_classes (envelope_sender, header_sender, header_recipient)",
                        "content": "What addresses are subject to address masquerading.\n"
                    },
                    {
                        "name": "masquerade_domains (empty)",
                        "content": "Optional list of domains whose subdomain structure will be stripped off in  email  ad‐\ndresses.\n"
                    },
                    {
                        "name": "masquerade_exceptions (empty)",
                        "content": "Optional  list of user names that are not subjected to address masquerading, even when\ntheir addresses match $masqueradedomains.\n"
                    },
                    {
                        "name": "propagate_unmatched_extensions (canonical, virtual)",
                        "content": "What address lookup tables copy an address extension from the lookup key to the lookup\nresult.\n\nAvailable before Postfix version 2.0:\n"
                    },
                    {
                        "name": "virtual_maps (empty)",
                        "content": "Optional lookup tables with a) names of domains for which all addresses are aliased to\naddresses in other local or remote domains, and b) addresses that are aliased  to  ad‐\ndresses in other local or remote domains.\n\nAvailable in Postfix version 2.0 and later:\n"
                    },
                    {
                        "name": "virtual_alias_maps ($virtual_maps)",
                        "content": "Optional lookup tables that alias specific mail addresses or domains to other local or\nremote address.\n\nAvailable in Postfix version 2.2 and later:\n"
                    },
                    {
                        "name": "canonical_classes (envelope_sender, envelope_recipient, header_sender, header_recipient)",
                        "content": "What addresses are subject to canonicalmaps address mapping.\n"
                    },
                    {
                        "name": "recipient_canonical_classes (envelope_recipient, header_recipient)",
                        "content": "What addresses are subject to recipientcanonicalmaps address mapping.\n"
                    },
                    {
                        "name": "sender_canonical_classes (envelope_sender, header_sender)",
                        "content": "What addresses are subject to sendercanonicalmaps address mapping.\n"
                    },
                    {
                        "name": "remote_header_rewrite_domain (empty)",
                        "content": "Don't rewrite message headers from remote clients at all when this parameter is empty;\notherwise,  rewrite message headers and append the specified domain name to incomplete\naddresses.\n"
                    }
                ]
            },
            "RESOURCE AND RATE CONTROLS": {
                "content": "",
                "subsections": [
                    {
                        "name": "duplicate_filter_limit (1000)",
                        "content": "The maximal number of  addresses  remembered  by  the  address  duplicate  filter  for\naliases(5) or virtual(5) alias expansion, or for showq(8) queue displays.\n"
                    },
                    {
                        "name": "header_size_limit (102400)",
                        "content": "The maximal amount of memory in bytes for storing a message header.\n"
                    },
                    {
                        "name": "hopcount_limit (50)",
                        "content": "The  maximal  number of Received:  message headers that is allowed in the primary mes‐\nsage headers.\n"
                    },
                    {
                        "name": "in_flow_delay (1s)",
                        "content": "Time to pause before accepting a new message, when the message  arrival  rate  exceeds\nthe message delivery rate.\n"
                    },
                    {
                        "name": "message_size_limit (10240000)",
                        "content": "The maximal size in bytes of a message, including envelope information.\n\nAvailable in Postfix version 2.0 and later:\n"
                    },
                    {
                        "name": "header_address_token_limit (10240)",
                        "content": "The maximal number of address tokens are allowed in an address message header.\n"
                    },
                    {
                        "name": "mime_boundary_length_limit (2048)",
                        "content": "The maximal length of MIME multipart boundary strings.\n"
                    },
                    {
                        "name": "mime_nesting_limit (100)",
                        "content": "The maximal recursion level that the MIME processor will handle.\n"
                    },
                    {
                        "name": "queue_file_attribute_count_limit (100)",
                        "content": "The  maximal  number  of (name=value) attributes that may be stored in a Postfix queue\nfile.\n\nAvailable in Postfix version 2.1 and later:\n"
                    },
                    {
                        "name": "virtual_alias_expansion_limit (1000)",
                        "content": "The maximal number of addresses that virtual alias expansion produces from each origi‐\nnal recipient.\n"
                    },
                    {
                        "name": "virtual_alias_recursion_limit (1000)",
                        "content": "The maximal nesting depth of virtual alias expansion.\n\nAvailable in Postfix version 3.0 and later:\n"
                    },
                    {
                        "name": "virtual_alias_address_length_limit (1000)",
                        "content": "The maximal length of an email address after virtual alias expansion.\n"
                    }
                ]
            },
            "SMTPUTF8 CONTROLS": {
                "content": "Preliminary SMTPUTF8 support is introduced with Postfix 3.0.\n",
                "subsections": [
                    {
                        "name": "smtputf8_enable (yes)",
                        "content": "Enable preliminary SMTPUTF8 support for the protocols described in RFC 6531..6533.\n"
                    },
                    {
                        "name": "smtputf8_autodetect_classes (sendmail, verify)",
                        "content": "Detect that a message requires SMTPUTF8 support for the specified mail origin classes.\n\nAvailable in Postfix version 3.2 and later:\n"
                    },
                    {
                        "name": "enable_idna2003_compatibility (no)",
                        "content": "Enable 'transitional' compatibility between IDNA2003  and  IDNA2008,  when  converting\nUTF-8 domain names to/from the ASCII form that is used for DNS lookups.\n"
                    }
                ]
            },
            "MISCELLANEOUS CONTROLS": {
                "content": "",
                "subsections": [
                    {
                        "name": "config_directory (see 'postconf -d' output)",
                        "content": "The default location of the Postfix main.cf and master.cf configuration files.\n"
                    },
                    {
                        "name": "daemon_timeout (18000s)",
                        "content": "How  much time a Postfix daemon process may take to handle a request before it is ter‐\nminated by a built-in watchdog timer.\n"
                    },
                    {
                        "name": "delay_logging_resolution_limit (2)",
                        "content": "The maximal number of digits after the decimal point  when  logging  sub-second  delay\nvalues.\n"
                    },
                    {
                        "name": "delay_warning_time (0h)",
                        "content": "The time after which the sender receives a copy of the message headers of mail that is\nstill queued.\n"
                    },
                    {
                        "name": "ipc_timeout (3600s)",
                        "content": "The  time  limit  for  sending or receiving information over an internal communication\nchannel.\n"
                    },
                    {
                        "name": "max_idle (100s)",
                        "content": "The maximum amount of time that an idle Postfix daemon process waits for  an  incoming\nconnection before terminating voluntarily.\n"
                    },
                    {
                        "name": "max_use (100)",
                        "content": "The  maximal number of incoming connections that a Postfix daemon process will service\nbefore terminating voluntarily.\n"
                    },
                    {
                        "name": "myhostname (see 'postconf -d' output)",
                        "content": "The internet hostname of this mail system.\n"
                    },
                    {
                        "name": "myorigin ($myhostname)",
                        "content": "The domain name that locally-posted mail appears to come from, and that locally posted\nmail is delivered to.\n"
                    },
                    {
                        "name": "process_id (read-only)",
                        "content": "The process ID of a Postfix command or daemon process.\n"
                    },
                    {
                        "name": "process_name (read-only)",
                        "content": "The process name of a Postfix command or daemon process.\n"
                    },
                    {
                        "name": "queue_directory (see 'postconf -d' output)",
                        "content": "The location of the Postfix top-level queue directory.\n"
                    },
                    {
                        "name": "soft_bounce (no)",
                        "content": "Safety net to keep mail queued that would otherwise be returned to the sender.\n"
                    },
                    {
                        "name": "syslog_facility (mail)",
                        "content": "The syslog facility of Postfix logging.\n"
                    },
                    {
                        "name": "syslog_name (see 'postconf -d' output)",
                        "content": "A prefix that is prepended to the process name in syslog records, so that,  for  exam‐\nple, \"smtpd\" becomes \"prefix/smtpd\".\n\nAvailable in Postfix version 2.1 and later:\n"
                    },
                    {
                        "name": "enable_original_recipient (yes)",
                        "content": "Enable  support  for the original recipient address after an address is rewritten to a\ndifferent address (for example with aliasing or with canonical mapping).\n\nAvailable in Postfix 3.3 and later:\n"
                    },
                    {
                        "name": "service_name (read-only)",
                        "content": "The master.cf service name of a Postfix daemon process.\n\nAvailable in Postfix 3.5 and later:\n"
                    },
                    {
                        "name": "info_log_address_format (external)",
                        "content": "The email address form that will be used in non-debug logging (info, warning, etc.).\n"
                    }
                ]
            },
            "FILES": {
                "content": "/etc/postfix/canonical*, canonical mapping table\n/etc/postfix/virtual*, virtual mapping table\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "trivial-rewrite(8), address rewriting\nqmgr(8), queue manager\nheaderchecks(5), message header content inspection\nbodychecks(5), body parts content inspection\ncanonical(5), canonical address lookup table format\nvirtual(5), virtual alias lookup table format\npostconf(5), configuration parameters\nmaster(5), generic daemon options\nmaster(8), process manager\npostlogd(8), Postfix logging\nsyslogd(8), system logging\n",
                "subsections": []
            },
            "README FILES": {
                "content": "Use \"postconf readmedirectory\" or \"postconf htmldirectory\" to locate this information.\nADDRESSREWRITINGREADME Postfix address manipulation\nCONTENTINSPECTIONREADME content inspection\n",
                "subsections": []
            },
            "LICENSE": {
                "content": "The Secure Mailer license must be distributed with this software.\n\nAUTHOR(S)\nWietse Venema\nIBM T.J. Watson Research\nP.O. Box 704\nYorktown Heights, NY 10598, USA\n\nWietse Venema\nGoogle, Inc.\n111 8th Avenue\nNew York, NY 10011, USA\n\nCLEANUP(8postfix)",
                "subsections": []
            }
        }
    }
}