Copyright Digital Equipment Corp. All rights reserved.

Operation

   As it delivers messages to local users PMDF checks to see if the
   user has a MAIL.DELIVERY file in their default login directory.
   DELIVER is invoked if this file exists. DELIVER takes the
   following steps:

   1. DELIVER reads and parses the MAIL.DELIVERY file.

      By default the message is returned to the sender if any errors
      occur during the reading and parsing of the MAIL.DELIVERY
      file. Note that an empty MAIL.DELIVERY file is considered an
      error.

      The system administrator can configure DELIVER to change this
      behavior. If the logical name PMDF_IGNORE_MAIL_DELIVERY_ERRORS
      is defined /SYSTEM/EXECUTIVE, any errors in the MAIL.DELIVERY
      file (including an empty file) are ignored. The mail is
      delivered normally to the user's NEWMAIL folder as if the
      MAIL.DELIVERY file did not exist.

   2. DELIVER writes the headers of the message to a temporary file
      in the recipient's home directory.

   3. DELIVER writes the body of the message to a temporary file in
      the recipient's home directory.

   4. A command file is constructed to complete the delivery
      process. This file is also created in the recipient's
      home directory. The directives previously read from the
      MAIL.DELIVERY file are compared with the message. Any
      directives that match will cause commands to be written to
      the command file that implements the requested action.

   5. After the list of directives is exhausted DELIVER checks to
      see that at least one directive caused an action to be taken.
      If none did, DELIVER writes to the command file a default
      action command to deliver the message normally. Commands to
      delete the message file (unless the MESSAGE_DELETE flag is set
      to NO by one of the actions) and the command file itself are
      written to the command file and the command file is closed.

   6. The command file is queued to the batch queue specified by the
      MAIL.DELIVERY file for processing. If the MAIL.DELIVERY files
      not specify a queue, the DELIVER_BATCH queue will be tried,
      and if that fails the queue SYS$BATCH will be used. The file
      is queued so that it will execute just as if the recipient had
      submitted it for processing from his or her own account. Once
      the command file is submitted DELIVER tidies up, deallocating
      any storage allocated for directive lists, and returns control
      to PMDF.

      DELIVER does not bother to create the batch job if there's no
      work for it to do.

   7. DELIVER passes responsibility for delivery back to PMDF if it
      was asked to deliver the message to the user's NEWMAIL folder
      and the requested handling of headers matches the the handling
      specified by the local channel. This does not preclude other
      actions using the message in other ways.