Home | History | Annotate | Line # | Download | only in html
      1 <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
      2         "https://www.w3.org/TR/html4/loose.dtd">
      3 <html> <head>
      4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      5 <link rel='stylesheet' type='text/css' href='postfix-doc.css'>
      6 <title> Postfix manual - header_checks(5) </title>
      7 </head> <body> <pre>
      8 HEADER_CHECKS(5)                                              HEADER_CHECKS(5)
      9 
     10 <b><a name="name">NAME</a></b>
     11        <a href="postconf.5.html#header_checks">header_checks</a> - Postfix built-in content inspection
     12 
     13 <b><a name="synopsis">SYNOPSIS</a></b>
     14        <b><a href="postconf.5.html#header_checks">header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/header_checks</b>
     15        <b><a href="postconf.5.html#mime_header_checks">mime_header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/mime_header_checks</b>
     16        <b><a href="postconf.5.html#nested_header_checks">nested_header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/nested_header_checks</b>
     17        <b><a href="postconf.5.html#body_checks">body_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/body_checks</b>
     18 
     19        <b><a href="postconf.5.html#milter_header_checks">milter_header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/<a href="postconf.5.html#milter_header_checks">milter_header_checks</a></b>
     20 
     21        <b><a href="postconf.5.html#smtp_header_checks">smtp_header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/smtp_header_checks</b>
     22        <b><a href="postconf.5.html#smtp_mime_header_checks">smtp_mime_header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/smtp_mime_header_checks</b>
     23        <b><a href="postconf.5.html#smtp_nested_header_checks">smtp_nested_header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/smtp_nested_header_checks</b>
     24        <b><a href="postconf.5.html#smtp_body_checks">smtp_body_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/smtp_body_checks</b>
     25 
     26        <b>postmap -q "</b><i>string</i><b>" <a href="pcre_table.5.html">pcre</a>:/etc/postfix/</b><i>filename</i>
     27        <b>postmap -q - <a href="pcre_table.5.html">pcre</a>:/etc/postfix/</b><i>filename</i> &lt;<i>inputfile</i>
     28 
     29 <b><a name="description">DESCRIPTION</a></b>
     30        This  document describes access control on the content of message head-
     31        ers and message body lines; it is implemented by the Postfix <a href="cleanup.8.html"><b>cleanup</b>(8)</a>
     32        server  before  mail  is  queued.   See <a href="access.5.html"><b>access</b>(5)</a> for access control on
     33        remote SMTP client information.
     34 
     35        Each message header or message body line is compared against a list  of
     36        patterns.   When a match is found the corresponding action is executed,
     37        and the matching process is repeated for the  next  message  header  or
     38        message body line.
     39 
     40        Note:  message  headers are examined one logical header at a time, even
     41        when a message header spans multiple lines. Body lines are always exam-
     42        ined one line at a time.
     43 
     44        For  examples, see the EXAMPLES section at the end of this manual page.
     45 
     46        Postfix header or <a href="postconf.5.html#body_checks">body_checks</a> are designed to stop a flood of mail from
     47        worms or viruses; they do not decode attachments, and they do not unzip
     48        archives. See the documents referenced below in the README  FILES  sec-
     49        tion if you need more sophisticated content analysis.
     50 
     51 <b><a name="filters_while_receiving_mail">FILTERS WHILE RECEIVING MAIL</a></b>
     52        Postfix  implements  the  following  four  built-in  content inspection
     53        classes while receiving mail:
     54 
     55        <b><a href="postconf.5.html#header_checks">header_checks</a></b> (default: empty)
     56               These are applied to initial message  headers  (except  for  the
     57               headers that are processed with <b><a href="postconf.5.html#mime_header_checks">mime_header_checks</a></b>).
     58 
     59        <b><a href="postconf.5.html#mime_header_checks">mime_header_checks</a></b> (default: <b>$<a href="postconf.5.html#header_checks">header_checks</a></b>)
     60               These are applied to MIME related message headers only.
     61 
     62               This feature is available in Postfix 2.0 and later.
     63 
     64        <b><a href="postconf.5.html#nested_header_checks">nested_header_checks</a></b> (default: <b>$<a href="postconf.5.html#header_checks">header_checks</a></b>)
     65               These  are applied to message headers of attached email messages
     66               (except   for   the   headers   that    are    processed    with
     67               <b><a href="postconf.5.html#mime_header_checks">mime_header_checks</a></b>).
     68 
     69               This feature is available in Postfix 2.0 and later.
     70 
     71        <b><a href="postconf.5.html#body_checks">body_checks</a></b>
     72               These  are  applied  to  all other content, including multi-part
     73               message boundaries.
     74 
     75               With Postfix versions before 2.0, all content after the  initial
     76               message headers is treated as body content.
     77 
     78 <b><a name="filters_after_receiving_mail">FILTERS AFTER RECEIVING MAIL</a></b>
     79        Postfix  supports  a  subset of the built-in content inspection classes
     80        after the message is received:
     81 
     82        <b><a href="postconf.5.html#milter_header_checks">milter_header_checks</a></b> (default: empty)
     83               These are applied to headers that are added with Milter applica-
     84               tions.
     85 
     86               This feature is available in Postfix 2.7 and later.
     87 
     88 <b><a name="filters_while_delivering_mail">FILTERS WHILE DELIVERING MAIL</a></b>
     89        Postfix  supports  all four content inspection classes while delivering
     90        mail via SMTP.
     91 
     92        <b><a href="postconf.5.html#smtp_header_checks">smtp_header_checks</a></b> (default: empty)
     93 
     94        <b><a href="postconf.5.html#smtp_mime_header_checks">smtp_mime_header_checks</a></b> (default: empty)
     95 
     96        <b><a href="postconf.5.html#smtp_nested_header_checks">smtp_nested_header_checks</a></b> (default: empty)
     97 
     98        <b><a href="postconf.5.html#smtp_body_checks">smtp_body_checks</a></b> (default: empty)
     99               These features are available in Postfix 2.5 and later.
    100 
    101 <b><a name="compatibility">COMPATIBILITY</a></b>
    102        With Postfix version 2.2 and earlier specify "<b>postmap -fq</b>" to  query  a
    103        table  that  contains  case sensitive patterns. By default, <a href="regexp_table.5.html">regexp</a>: and
    104        <a href="pcre_table.5.html">pcre</a>: patterns are case insensitive.
    105 
    106 <b><a name="table_format">TABLE FORMAT</a></b>
    107        This document assumes that header and <a href="postconf.5.html#body_checks">body_checks</a> rules  are  specified
    108        in  the  form  of Postfix regular expression lookup tables. Usually the
    109        best performance is obtained with <b>pcre</b> (Perl Compatible Regular Expres-
    110        sion) tables. The <b>regexp</b> (POSIX regular expressions) tables are usually
    111        slower, but more widely available.  Use the command  "<b>postconf  -m</b>"  to
    112        find out what lookup table types your Postfix system supports.
    113 
    114        The general format of Postfix regular expression tables is given below.
    115        For a discussion of specific pattern or flags syntax, see <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>
    116        or <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a>, respectively.
    117 
    118        <b>/</b><i>pattern</i><b>/</b><i>flags action</i>
    119               When /<i>pattern</i>/ matches the input string, execute the correspond-
    120               ing <i>action</i>. See below for a list of possible actions.
    121 
    122        <b>!/</b><i>pattern</i><b>/</b><i>flags action</i>
    123               When /<i>pattern</i>/ does <b>not</b> match the input string, execute the cor-
    124               responding <i>action</i>.
    125 
    126        <b>if /</b><i>pattern</i><b>/</b><i>flags</i>
    127 
    128        <b>endif</b>  If  the  input  string  matches /<i>pattern</i>/, then match that input
    129               string against the patterns between <b>if</b> and <b>endif</b>.  The <b>if</b>..<b>endif</b>
    130               can nest.
    131 
    132               Note: do not prepend whitespace to patterns inside <b>if</b>..<b>endif</b>.
    133 
    134        <b>if !/</b><i>pattern</i><b>/</b><i>flags</i>
    135 
    136        <b>endif</b>  If  the  input  string does not match /<i>pattern</i>/, then match that
    137               input string against the patterns  between  <b>if</b>  and  <b>endif</b>.  The
    138               <b>if</b>..<b>endif</b> can nest.
    139 
    140        blank lines and comments
    141               Empty  lines and whitespace-only lines are ignored, as are lines
    142               whose first non-whitespace character is a `#'.
    143 
    144        multi-line text
    145               A pattern/action line starts with non-whitespace  text.  A  line
    146               that starts with whitespace continues a logical line.
    147 
    148 <b><a name="table_search_order">TABLE SEARCH ORDER</a></b>
    149        For  each  line of message input, the patterns are applied in the order
    150        as specified in the table. When a pattern is  found  that  matches  the
    151        input  line,  the  corresponding  action  is executed and then the next
    152        input line is inspected.
    153 
    154 <b><a name="text_substitution">TEXT SUBSTITUTION</a></b>
    155        Substitution of substrings from the matched expression into the  <i>action</i>
    156        string  is  possible using the conventional Perl syntax (<b>$1</b>, <b>$2</b>, etc.).
    157        The macros in the result string may need to be written as <b>${n}</b> or  <b>$(n)</b>
    158        if they aren't followed by whitespace.
    159 
    160        Note: since negated patterns (those preceded by <b>!</b>) return a result when
    161        the expression does not match,  substitutions  are  not  available  for
    162        negated patterns.
    163 
    164 <b><a name="actions">ACTIONS</a></b>
    165        Action  names  are  case  insensitive. They are shown in upper case for
    166        consistency with other Postfix documentation.
    167 
    168        <b>BCC</b> <i>user@domain</i>
    169               Add the specified address as a BCC recipient,  and  inspect  the
    170               next  input  line. The address must have a local part and domain
    171               part. The number of BCC addresses that can be added  is  limited
    172               only by the amount of available storage space.
    173 
    174               Note  1:  the  BCC  address is added as if it was specified with
    175               NOTIFY=NONE. The sender  will  not  be  notified  when  the  BCC
    176               address  is  undeliverable,  as long as all down-stream software
    177               implements <a href="https://tools.ietf.org/html/rfc3461">RFC 3461</a>.
    178 
    179               Note 2: this ignores duplicate addresses (with the same delivery
    180               status notification options).
    181 
    182               This feature is available in Postfix 3.0 and later.
    183 
    184               This feature is not supported with smtp header/body checks.
    185 
    186        <b>DISCARD</b> <i>optional text...</i>
    187               Claim  successful delivery and silently discard the message.  Do
    188               not inspect  the  remainder  of  the  input  message.   Log  the
    189               optional text if specified, otherwise log a generic message.
    190 
    191               Note: this action disables further header or <a href="postconf.5.html#body_checks">body_checks</a> inspec-
    192               tion of the current message and affects all recipients.  To dis-
    193               card  only  one recipient without discarding the entire message,
    194               use the <a href="transport.5.html">transport(5)</a> table to direct mail to the <a href="discard.8.html">discard(8)</a> ser-
    195               vice.
    196 
    197               This feature is available in Postfix 2.0 and later.
    198 
    199               This feature is not supported with smtp header/body checks.
    200 
    201        <b>DUNNO</b>  Pretend  that  the  input  line  did  not match any pattern, and
    202               inspect the next input line. This action can be used to  shorten
    203               the table search.
    204 
    205               For backwards compatibility reasons, Postfix also accepts <b>OK</b> but
    206               it is (and always has been) treated as <b>DUNNO</b>.
    207 
    208               This feature is available in Postfix 2.1 and later.
    209 
    210        <b>FILTER</b> <i>transport:destination</i>
    211               Override the <a href="postconf.5.html#content_filter">content_filter</a> parameter setting, and  inspect  the
    212               next  input  line.  After the message is queued, send the entire
    213               message through  the  specified  external  content  filter.  The
    214               <i>transport</i>  name  specifies  the  first  field of a mail delivery
    215               agent definition in <a href="master.5.html">master.cf</a>; the syntax of the next-hop <i>desti-</i>
    216               <i>nation</i>  is  described  in  the  manual page of the corresponding
    217               delivery agent.  More information about external content filters
    218               is in the Postfix <a href="FILTER_README.html">FILTER_README</a> file.
    219 
    220               Note  1: do not use $<i>number</i> regular expression substitutions for
    221               <i>transport</i> or <i>destination</i> unless you know  that  the  information
    222               has a trusted origin.
    223 
    224               Note  2:  this  action overrides the <a href="postconf.5.html">main.cf</a> <b><a href="postconf.5.html#content_filter">content_filter</a></b> set-
    225               ting, and affects all recipients of the  message.  In  the  case
    226               that  multiple  <b>FILTER</b>  actions  fire, only the last one is exe-
    227               cuted.
    228 
    229               Note 3: the purpose of the FILTER command is to override message
    230               routing.   To  override  the  recipient's  <i>transport</i> but not the
    231               next-hop <i>destination</i>, specify an empty filter <i>destination</i> (Post-
    232               fix  2.7  and  later),  or  specify a <i>transport:destination</i> that
    233               delivers through a different Postfix instance (Postfix  2.6  and
    234               earlier). Other options are using the recipient-dependent <b><a href="postconf.5.html#transport_maps">trans</a>-</b>
    235               <b><a href="postconf.5.html#transport_maps">port_maps</a></b>  or  the  sender-dependent   <b><a href="postconf.5.html#sender_dependent_default_transport_maps">sender_dependent_default-</b>
    236               <b>_transport_maps</a></b> features.
    237 
    238               This feature is available in Postfix 2.0 and later.
    239 
    240               This feature is not supported with smtp header/body checks.
    241 
    242        <b>HOLD</b> <i>optional text...</i>
    243               Arrange  for  the  message  to  be placed on the <b>hold</b> queue, and
    244               inspect the next input line.  The message remains on <b>hold</b>  until
    245               someone  either deletes it or releases it for delivery.  Log the
    246               optional text if specified, otherwise log a generic message.
    247 
    248               Mail that is placed on hold can be examined with the  <a href="postcat.1.html"><b>postcat</b>(1)</a>
    249               command,  and can be destroyed or released with the <a href="postsuper.1.html"><b>postsuper</b>(1)</a>
    250               command.
    251 
    252               Note: use "<b>postsuper -r</b>" to release mail that was kept  on  hold
    253               for   a   significant  fraction  of  <b>$<a href="postconf.5.html#maximal_queue_lifetime">maximal_queue_lifetime</a></b>  or
    254               <b>$<a href="postconf.5.html#bounce_queue_lifetime">bounce_queue_lifetime</a></b>, or longer. Use "<b>postsuper -H</b>"  only  for
    255               mail that will not expire within a few delivery attempts.
    256 
    257               Note: this action affects all recipients of the message.
    258 
    259               This feature is available in Postfix 2.0 and later.
    260 
    261               This feature is not supported with smtp header/body checks.
    262 
    263        <b>IGNORE</b> Delete  the  current  line  from the input, and inspect the next
    264               input line. See <b>STRIP</b> for an alternative that logs the action.
    265 
    266        <b>INFO</b> <i>optional text...</i>
    267               Log an "info:" record  with  the  <i>optional  text...</i>  (or  log  a
    268               generic  text),  and inspect the next input line. This action is
    269               useful for routine logging or for debugging.
    270 
    271               This feature is available in Postfix 2.8 and later.
    272 
    273        <b>PASS</b> <i>optional text...</i>
    274               Log a "pass:" record with the <i>optional text...</i> (or log a generic
    275               text),  and turn off header, body, and Milter inspection for the
    276               remainder of this message.
    277 
    278               Note: this feature relies on trust in information that  is  easy
    279               to forge.
    280 
    281               This feature is available in Postfix 3.2 and later.
    282 
    283               This feature is not supported with smtp header/body checks.
    284 
    285        <b>PREPEND</b> <i>text...</i>
    286               Prepend  one  line with the specified text, and inspect the next
    287               input line.
    288 
    289               Notes:
    290 
    291               <b>o</b>      The prepended text is output on a separate line,  immedi-
    292                      ately before the input that triggered the <b>PREPEND</b> action.
    293 
    294               <b>o</b>      The prepended text is not considered part  of  the  input
    295                      stream:  it  is  not  subject  to  header/body  checks or
    296                      address rewriting, and it does not affect  the  way  that
    297                      Postfix adds missing message headers.
    298 
    299               <b>o</b>      When  prepending  text  before a message header line, the
    300                      prepended text must begin with  a  valid  message  header
    301                      label.
    302 
    303               <b>o</b>      This action cannot be used to prepend multi-line text.
    304 
    305               This feature is available in Postfix 2.1 and later.
    306 
    307               This feature is not supported with <a href="postconf.5.html#milter_header_checks">milter_header_checks</a>.
    308 
    309        <b>REDIRECT</b> <i>user@domain</i>
    310               Write  a  message  redirection  request  to  the queue file, and
    311               inspect the next input line. After the  message  is  queued,  it
    312               will  be  sent  to the specified address instead of the intended
    313               recipient(s).
    314 
    315               Note 1: this action overrides the <b>FILTER</b> action, and affects all
    316               recipients  of  the  message. If multiple <b>REDIRECT</b> actions fire,
    317               only the last one is executed.
    318 
    319               Note 2: a REDIRECT address is subject to  canonicalization  (add
    320               missing  domain)  but NOT subject to canonical, masquerade, bcc,
    321               or virtual alias mapping.
    322 
    323               This feature is available in Postfix 2.1 and later.
    324 
    325               This feature is not supported with smtp header/body checks.
    326 
    327        <b>REPLACE</b> <i>text...</i>
    328               Replace the current line with the specified  text,  and  inspect
    329               the next input line.
    330 
    331               This feature is available in Postfix 2.2 and later. The descrip-
    332               tion below applies to Postfix 2.2.2 and later.
    333 
    334               Notes:
    335 
    336               <b>o</b>      When replacing a message  header  line,  the  replacement
    337                      text must begin with a valid header label.
    338 
    339               <b>o</b>      The  replaced  text  remains  part  of  the input stream.
    340                      Unlike the result from the  <b>PREPEND</b>  action,  a  replaced
    341                      message  header  may  be subject to address rewriting and
    342                      may affect the way  that  Postfix  adds  missing  message
    343                      headers.
    344 
    345        <b>REJECT</b> <i>optional text...</i>
    346               Reject  the  entire message. Do not inspect the remainder of the
    347               input message.  Reply with <i>optional text...</i>  when  the  optional
    348               text is specified, otherwise reply with a generic error message.
    349 
    350               Note: this action disables further header or <a href="postconf.5.html#body_checks">body_checks</a> inspec-
    351               tion of the current message and affects all recipients.
    352 
    353               Postfix  version  2.3  and  later support enhanced status codes.
    354               When no code is specified at the beginning of <i>optional  text...</i>,
    355               Postfix inserts a default enhanced status code of "5.7.1".
    356 
    357               This feature is not supported with smtp header/body checks.
    358 
    359        <b>STRIP</b> <i>optional text...</i>
    360               Log  a  "strip:"  record  with  the  <i>optional  text...</i> (or log a
    361               generic text), delete the input line from the input, and inspect
    362               the next input line. See <b>IGNORE</b> for a silent alternative.
    363 
    364               This feature is available in Postfix 3.2 and later.
    365 
    366        <b>WARN</b> <i>optional text...</i>
    367               Log  a  "warning:"  record  with  the <i>optional text...</i> (or log a
    368               generic text), and inspect the next input line. This  action  is
    369               useful  for  debugging and for testing a pattern before applying
    370               more drastic actions.
    371 
    372 <b><a name="bugs">BUGS</a></b>
    373        Empty lines never match, because some map types mis-behave when given a
    374        zero-length  search string.  This limitation may be removed for regular
    375        expression tables in a future release.
    376 
    377        Many people overlook the main limitations  of  header  and  <a href="postconf.5.html#body_checks">body_checks</a>
    378        rules.
    379 
    380        <b>o</b>      These  rules  operate  on one logical message header or one body
    381               line at a time. A decision made for one line is not carried over
    382               to the next line.
    383 
    384        <b>o</b>      If text in the message body is encoded (<a href="https://tools.ietf.org/html/rfc2045">RFC 2045</a>) then the rules
    385               need to be specified for the encoded form.
    386 
    387        <b>o</b>      Likewise, when message headers are encoded (<a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>)  then  the
    388               rules need to be specified for the encoded form.
    389 
    390        Message headers added by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon itself are excluded from
    391        inspection. Examples of such  message  headers  are  <b>From:</b>,  <b>To:</b>,  <b>Mes-</b>
    392        <b>sage-ID:</b>, <b>Date:</b>.
    393 
    394        Message  headers  deleted  by  the  <a href="cleanup.8.html"><b>cleanup</b>(8)</a>  daemon will be examined
    395        before  they  are  deleted.  Examples   are:   <b>Bcc:</b>,   <b>Content-Length:</b>,
    396        <b>Return-Path:</b>.
    397 
    398 <b><a name="configuration_parameters">CONFIGURATION PARAMETERS</a></b>
    399        <b><a href="postconf.5.html#body_checks">body_checks</a> (empty)</b>
    400               Optional  lookup  tables  for content inspection as specified in
    401               the <a href="header_checks.5.html"><b>body_checks</b>(5)</a> manual page.
    402 
    403        <b><a href="postconf.5.html#body_checks_size_limit">body_checks_size_limit</a> (51200)</b>
    404               How much text in a message body segment (or attachment,  if  you
    405               prefer to use that term) is subjected to <a href="postconf.5.html#body_checks">body_checks</a> inspection.
    406 
    407        <b><a href="postconf.5.html#header_checks">header_checks</a> (empty)</b>
    408               Optional  lookup  tables  for  content  inspection  of   primary
    409               non-MIME  message  headers, as specified in the <a href="header_checks.5.html"><b>header_checks</b>(5)</a>
    410               manual page.
    411 
    412        <b><a href="postconf.5.html#mime_header_checks">mime_header_checks</a> ($<a href="postconf.5.html#header_checks">header_checks</a>)</b>
    413               Optional lookup tables for content inspection  of  MIME  related
    414               message  headers,  as  described  in the <a href="header_checks.5.html"><b>header_checks</b>(5)</a> manual
    415               page.
    416 
    417        <b><a href="postconf.5.html#nested_header_checks">nested_header_checks</a> ($<a href="postconf.5.html#header_checks">header_checks</a>)</b>
    418               Optional lookup tables for content inspection of  non-MIME  mes-
    419               sage   headers   in  attached  messages,  as  described  in  the
    420               <a href="header_checks.5.html"><b>header_checks</b>(5)</a> manual page.
    421 
    422        <b><a href="postconf.5.html#disable_mime_input_processing">disable_mime_input_processing</a> (no)</b>
    423               Turn off MIME processing while receiving mail.
    424 
    425 <b><a name="examples">EXAMPLES</a></b>
    426        Header pattern to block attachments with bad file name extensions.  For
    427        convenience, the PCRE /x flag is specified, so that there is no need to
    428        collapse the pattern into a single line of text.  The  purpose  of  the
    429        [[:xdigit:]] sub-expressions is to recognize Windows CLSID strings.
    430 
    431        /etc/postfix/<a href="postconf.5.html">main.cf</a>:
    432            <a href="postconf.5.html#header_checks">header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/header_checks.pcre
    433 
    434        /etc/postfix/header_checks.<a href="pcre_table.5.html">pcre</a>:
    435            /^Content-(Disposition|Type).*name\s*=\s*"?([^;]*(\.|=2E)(
    436              ade|adp|asp|bas|bat|chm|cmd|com|cpl|crt|dll|exe|
    437              hlp|ht[at]|
    438              inf|ins|isp|jse?|lnk|md[betw]|ms[cipt]|nws|
    439              \{[[:xdigit:]]{8}(?:-[[:xdigit:]]{4}){3}-[[:xdigit:]]{12}\}|
    440              ops|pcd|pif|prf|reg|sc[frt]|sh[bsm]|swf|
    441              vb[esx]?|vxd|ws[cfh]))(\?=)?"?\s*(;|$)/x
    442                REJECT Attachment name "$2" may not end with ".$4"
    443 
    444        Body pattern to stop a specific HTML browser vulnerability exploit.
    445 
    446        /etc/postfix/<a href="postconf.5.html">main.cf</a>:
    447            <a href="postconf.5.html#body_checks">body_checks</a> = <a href="regexp_table.5.html">regexp</a>:/etc/postfix/body_checks
    448 
    449        /etc/postfix/body_checks:
    450            /^&lt;iframe src=(3D)?cid:.* height=(3D)?0 width=(3D)?0&gt;$/
    451                REJECT IFRAME vulnerability exploit
    452 
    453 <b><a name="see_also">SEE ALSO</a></b>
    454        <a href="cleanup.8.html">cleanup(8)</a>, canonicalize and enqueue Postfix message
    455        <a href="pcre_table.5.html">pcre_table(5)</a>, format of PCRE lookup tables
    456        <a href="regexp_table.5.html">regexp_table(5)</a>, format of POSIX regular expression tables
    457        <a href="postconf.1.html">postconf(1)</a>, Postfix configuration utility
    458        <a href="postmap.1.html">postmap(1)</a>, Postfix lookup table management
    459        <a href="postsuper.1.html">postsuper(1)</a>, Postfix janitor
    460        <a href="postcat.1.html">postcat(1)</a>, show Postfix queue file contents
    461        <a href="https://tools.ietf.org/html/rfc2045">RFC 2045</a>, base64 and quoted-printable encoding rules
    462        <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>, message header encoding for non-ASCII text
    463 
    464 <b><a name="readme_files">README FILES</a></b>
    465        <a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
    466        <a href="CONTENT_INSPECTION_README.html">CONTENT_INSPECTION_README</a>, Postfix content inspection overview
    467        <a href="BUILTIN_FILTER_README.html">BUILTIN_FILTER_README</a>, Postfix built-in content inspection
    468        <a href="BACKSCATTER_README.html">BACKSCATTER_README</a>, blocking returned forged mail
    469 
    470 <b><a name="license">LICENSE</a></b>
    471        The Secure Mailer license must be distributed with this software.
    472 
    473 <b>AUTHOR(S)</b>
    474        Wietse Venema
    475        IBM T.J. Watson Research
    476        P.O. Box 704
    477        Yorktown Heights, NY 10598, USA
    478 
    479        Wietse Venema
    480        Google, Inc.
    481        111 8th Avenue
    482        New York, NY 10011, USA
    483 
    484                                                               HEADER_CHECKS(5)
    485 </pre> </body> </html>
    486