PMDF User's Guide
OpenVMS Edition


Previous Next Contents Index

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


Previous Next Contents Index