Copyright Digital Equipment Corp. All rights reserved.

Directive_Applicability

   The 1-PATTERN, 2-PATTERN, 3-PATTERN, and ACCEPT items determine
   whether or not the directive applies to a particular message. In
   most cases a string comparison is performed between the patterns
   1-PATTERN, 2-PATTERN, and 3-PATTERN and, respectively, the FROM:,
   TO: and SUBJECT: fields that would be seen in VMS MAIL. Note
   that these fields do not correspond exactly to the RFC 822 header
   lines of the same name; a complex set of mapping criteria are
   used to convert the RFC 822 header lines into VMS MAIL headers.
   Moreover, it is possible to rearrange the strings the patterns
   are compared against in complex ways using the 1, 2, and 3
   actions.

   The comparison is not case sensitive. The usual OpenVMS wildcard
   characters, * and %, can be used in the patterns. The pattern *
   will match anything. For partial matches, the pattern * is used
   to indicate a field that should be ignored.

   The default string comparison operations can optionally be
   replaced with numeric comparisons. This is controlled by the
   second and third characters in the ACCEPT item. If present, both
   the column values and the comparison strings are converted to
   integer values. The match fails if the conversion fails. A single
   asterisk in the comparison string disables comparisons for that
   column completely. Once converted, the ACCEPT item determines the
   type of comparison:

   >   Match if comparison string is greater than the column value.
   >=  Match if comparison string is greater than or equal to the
       column value.
   <   Match if comparison string is less than the column value.
   <=  Match if comparison string is less than or equal to the
       column value.
   <>  Match if comparison string is not equal to the column value.
   =   Match if comparison string is equal to the column value.

   Once the comparisons, string or numeric, have been performed,
   the ACCEPT item determines if the directive should be applied
   to the message. Only the first two characters of ACCEPT are
   significant at this point. The first character should be one
   of the following:

   A    Always apply this directive; ignore the results of the
        comparisons. Note that this directive does not count as
        an applied directive (see the O, B, S, and E actions below).
   X    Never apply this directive; ignore the results of the
        comparisons.
   T,   Apply this directive if the patterns all matched.
   Y
   F,   Apply this directive if the patterns did not all match (i.e.
   N    some or all failed).
   P    Apply this directive if at least one of the patterns matched
        (i.e. some or all matched). In this case the pattern * is
        not treated as a match.
   O,   Apply this directive if the patterns all matched and
   ?    no previous directive has been applied to the message.
        Directives that used the A accept item don't count as having
        been applied. DELIVER can also be told to forget the fact
        the some directive has been applied by clearing the R flag
        with the R action.
   B,   Apply this directive if a pattern did not match and no
   Q    previous directive has been applied to the message.
        Directives that used the A accept item don't count as having
        been applied.
   S    Apply this directive if at least one pattern matched and
        no previous directive has been applied to the message.
        Directives that used the A accept item don't count as having
        been applied.
   E    This directive applies if all the patterns matched or no
        other directive has been applied so far. Directives that
        used the A accept item do not count as having been applied.

   Any other character is interpreted as an X.

   If the second character is an asterisk, *, then the ACCEPT item
   is modified in that it does not count as an applied directive.
   This makes it possible for any ACCEPT item to be treated like the
   A item (which never sets the applied flag).

   Directives are tested in the order they appear in the
   MAIL.DELIVERY file.

   For example, suppose JIM@EXAMPLE.COM sends a message to
   BOB@SAMPLE.COM. The subject line of the message is "Re: Mooses".
   BOB's MAIL.DELIVERY file contains the following lines (the
   function of the last two columns of each line, the ACTION and
   1-PARAMETER items, is described later):

   "*FRED@SAMPLE.COM*" * *         T Q
   "*JIM@EXAMPLE.COM*" * *         T A JIM.LOG
   *                   * *mooses*  T A MOOSE.LOG
   *                   * *         O A OTHER.LOG
   *                   * *         A D

   The first directive does not apply since the message is not from
   FRED@SAMPLE.COM. The second and third directives both apply since
   JIM@EXAMPLE.COM is the sender and the subject line contains the
   string "mooses". The fourth directive's patterns all match, but
   a preceeding directive has applied, so it does not itself apply.
   The final directive applies since it would apply to any message.
   The result is that three directives apply to this message, and
   thus three separate actions are taken in processing the message.

   Note that the patterns "*FRED@SAMPLE.COM*" and
   "*JIM@EXAMPLE.COM*" are useful since personal name fields
   and possibly other addresses and source routes can appear in
   addresses; (e.g., the address FRED@SAMPLE.COM might actually
   appear as "Fred Smith <fred@sample.com>"). Depending on personal
   name fields for message handling is not a good idea since some
   users have a tendency to change personal names frequently and
   without warning. The use of the leading and trailing asterisks
   makes the pattern match any string that contains the address,
   regardless of the context of the address; the result is a
   MAIL.DELIVERY file which is insensitive to personal names.

   If none of the directives in the file are found to apply to and
   process the message in some way, the message is just delivered
   normally. (Note, however, that an empty MAIL.DELIVERY file by
   default is considered an error; unless your system manager has
   configured DELIVER otherwise, your e-mail messages will not be
   delivered if you have an empty MAIL.DELIVERY file.) The effect of
   having no matching directives (in a non-empty MAIL.DELIVERY file)
   is similar to the following directive:

   * * * A D

   Note that the J, K, L, M, R, S, 1, 2, and 3 actions are not
   thought of as having "processed" the message and hence do not
   block the application of this default.