As it delivers messages to local users PMDF checks to see if the user
MAIL.DELIVERY file in their default login directory.
DELIVER is invoked if this file exists.
DELIVER takes the following steps:
DELIVERreads and parses the
MAIL.DELIVERYfile. The message is returned to the sender if any errors occur during the reading and parsing of the
MAIL.DELIVERYfile. Note that an empty MAIL.DELIVERY file is considered an error.
DELIVERwrites the headers of the message to a temporary file in the recipient's home directory.
DELIVERwrites the body of the message to a temporary file in the recipient's home directory.
MAIL.DELIVERYfile are compared with the message. Any directives that match will cause commands to be written to the command file that implements the requested action.
DELIVERchecks to see that at least one directive caused an action to be taken. If none did,
DELIVERwrites to the command file a default action command to deliver the message normally. Commands to delete the message file (unless the
MESSAGE_DELETEflag is set to
NOby one of the actions) and the command file itself are written to the command file and the command file is closed.
MAIL.DELIVERYfile for processing. If the
MAIL.DELIVERYfiles not specify a queue, the
DELIVER_BATCHqueue will be tried, and if that fails the queue
SYS$BATCHwill 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
DELIVERtidies up, deallocating any storage allocated for directive lists, and returns control to PMDF.
DELIVERdoes not bother to create the batch job if there's no work for it to do.
DELIVERpasses responsibility for delivery back to PMDF if it was asked to deliver the message to the user's
NEWMAILfolder 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.