/sys$common/syshlp/HELPLIB.HLB  —  PMDF
 PMDF contains a modest collection of user-level and system-level
 utility programs, as well as two mail user agents, PMDF MAIL
 and PMDF Pine. User-level utilities include utilities to manage
 "personal address books" of e-mail addresses and mailing lists
 (DB), to filter incoming messages (DELIVER), to decode and encode
 MIME encoded messages (DECODE and ENCODE), to file messages to
 a particular folder (FOLDER), to set a user's forwarding address
 (FORWARD), to move folders from one system to another (migrate),
 to manage passwords such as those used for POP APOP commands or POP
 logins (PASSWORD), to turn text to PostScript or wrap PostScript
 lines (PS and PSWRAP), and to send messages from the DCL command
 line (SEND). PMDF also includes list server facilities. System-level
 utilities are used to perform various maintenance, testing, and
 management tasks.

1  –  CACHE

1.1    /CLOSE

    Force detached PMDF processes to close any open I/O channels to
    the queue cache database.

    Syntax

      PMDF CACHE/CLOSE

    Command Qualifiers    Defaults

    None.                 None.

1.1.1  –  Restrictions

    SYSLCK privilege is required to in order to use this utility.

1.1.2  –  Parameters

    None.

1.1.3  –  Description

    The CACHE/CLOSE utility is used to force, cluster-wide, all
    detached PMDF processes to close any open I/O channels that they
    have to the queue cache database. This is generally done for
    two reasons: to close all channels to the file so that it can be
    modified, and to force detached processes to re-open the queue
    cache database file so as to begin using any new version of that
    database.

    Sites using the TCP/IP channel, PMDF-LAN Lotus Notes channels,
    PMDF-XGS, Jnet (BN_SLAVE), the PMDF-DIRSYNC Lotus Notes directory
    agent, or FAX receive processes will have detached PMDF processes
    which may need to close channels to the database.

1.1.4  –  Examples

      After a new queue cache database is built with CACHE/REBUILD,
      a CACHE/CLOSE command should be issued to force any detached
      processes to begin using the new database:

        $ PMDF CACHE/REBUILD
        $ PMDF CACHE/CLOSE
        $ ! ...wait a minute or two...
        $ PMDF CACHE/SYNCH

1.2    /REBUILD

    Build a new, synchronized queue cache database.

    Syntax

      PMDF CACHE/REBUILD

    Command Qualifiers    Defaults

    None.                 None.

1.2.1  –  Restrictions

    Requires sufficient privileges to create a file in the PMDF_
    TABLE: directory, and to scan the PMDF_QUEUE:[*] directories.

1.2.2  –  Parameters

    None.

1.2.3  –  Description

    The CACHE/REBUILD utility creates a new, synchronized queue cache
    database. Although the new database will inherit the ownership
    and file protections of the previous database, it is a good idea
    to check afterwards that the new queue cache is owned by the same
    UIC as the QUEUE.DIR and LOG.DIR files in the PMDF_ROOT:[000000]
    directory and that the file is protected against group and world
    access (S:RWED,O:RWED,G,W).

    Rebuilding the queue cache database with this command should
    only be performed as a last resort, e.g., if disk problems
    have corrupted your queue cache database, as it will cause loss
    of some information from the queue cache database. (The sort
    of information lost includes, but is not limited to, message
    creation dates, message deferral dates, message expiration dates,
    and the original message owner information used by the PMDF QM
    utility to allow users to bounce their own messages.)

    The command PMDF CACHE/CLOSE should be issued immediately after
    building the new queue cache so as to ensure that any detached
    processes close any I/O channels to the old database and open new
    channels to the new database.

    The queue cache database is the file pointed at by the PMDF_
    QUEUE_CACHE_DATABASE logical. Normally, this is the file QUEUE_
    CACHE.DAT in the PMDF_TABLE: directory. This file should be
    protected against world and group access and be owned by the same
    UIC as the directory files QUEUE.DIR and LOG.DIR in the PMDF_
    ROOT: directory.

1.2.4  –  Examples

      To build a new queue cache database issue the commands

        $ PMDF CACHE/REBUILD
        $ PMDF CACHE/CLOSE
        $ ! wait a minute or two
        $ PMDF CACHE/SYNCH

1.3    /SYNCHRONIZE

    Update the queue cache database so as to reflect all messages
    currently present in the message queues.

    Syntax

      PMDF CACHE/SYNCHRONIZE

    Command Qualifiers    Defaults

    None.                 None.

1.3.1  –  Restrictions

    Requires sufficient privileges to scan the PMDF_QUEUE:[*]
    subdirectories and add entries to the queue cache database.

1.3.2  –  Parameters

    None.

1.3.3  –  Description

    The CACHE/SYNCHRONIZE utility updates the active queue cache
    database by updating it to reflect all non-held message files
    currently present in the PMDF_QUEUE:[*] subdirectories.

    The PMDF CACHE/CLOSE command does not need to be issued in
    conjunction with the PMDF CACHE/SYNCHRONIZE command.

    The queue cache database is the file pointed at by the PMDF_
    QUEUE_CACHE_DATABASE logical. Normally, this is the file QUEUE_
    CACHE.DAT in the PMDF_TABLE: directory. This file should be
    protected against world and group access and be owned by the same
    UIC as the directory files QUEUE.DIR and LOG.DIR in the PMDF_
    ROOT: directory.

1.3.4  –  Examples

      To synchronize the queue cache, for instance after renaming a
      message file, issue the command

        $ PMDF CACHE/SYNCHRONIZE

2  –  CHBUILD

    Compile the PMDF character set conversion tables in an OpenVMS
    shareable image.

    Syntax

      PMDF CHBUILD

    Command Qualifiers             Defaults

    /IMAGE_FILE=file-spec          /IMAGE_FILE=PMDF_CHARSET_DATA
    /MAXIMUM                       /NOMAXIMUM
    /OPTION_FILE=file-spec         /OPTION_FILE=PMDF_CHARSET_OPTION_FILE
    /STATISTICS                    /NOSTATISTICS

2.1  –  Parameters

    None.

2.2  –  Description

    The CHBUILD utility compiles the character set conversion tables
    into an OpenVMS shareable image. The resulting file can then be
    installed with the OpenVMS INSTALL utility.

    PMDF ships with very complete character set tables so it is not
    normally necessary to run this utility.

2.3  –  Command Qualifiers

2.3.1    /IMAGE_FILE

       /IMAGE_FILE=file-spec
       /NOIMAGE_FILE

    By default, CHBUILD creates as output the file PMDF_CHARSET_DATA.
    With the /IMAGE_FILE qualifier, an alternate file name may be
    specified.

    When the /NOIMAGE_FILE qualifier is specified, CHBUILD does not
    produce an output file. This qualifier is used in conjunction
    with the /OPTION_FILE qualifier to produce as output an option
    file which specifies table sizes adequate to hold the tables
    required by the processed input files.

2.3.2    /MAXIMUM

       /MAXIMUM
       /NOMAXIMUM (default)

    The file PMDF_TABLE:MAXIMUM_CHARSET.DAT is read in addition to
    the file PMDF_CHARSET_OPTION_FILE when /MAXIMUM is specified.
    This file specifies near maximum table sizes but does not change
    any other option file parameter settings. Only use this qualifier
    if the current table sizes are inadequate. The /NOIMAGE and
    /OPTION_FILE qualifiers should always be used in conjunction with
    this qualifier-it makes no sense to output the enormous character
    set image that is produced by /MAXIMUM, but it does make sense
    to use /MAXIMUM to get past size restrictions in order to build
    a properly sized character set option file so that a properly
    sized character set data can be built with a subsequent CHBUILD
    invocation.

2.3.3    /OPTION_FILE

       /OPTION_FILE[=file-spec]
       /NOOPTION_FILE (default)

    CHBUILD can optionally produce an option file that contains
    correct table sizes to hold the conversion tables which were
    just compiled (plus a little room for growth). The /OPTION_FILE
    qualifier causes this file to be output. By default, this file
    is the file pointed to by the logical PMDF_CHARSET_OPTION_FILE,
    normally PMDF_TABLE:OPTION_CHARSET.DAT. The value on the /OPTION_
    FILE qualifier may be used to specify an alternate file name. If
    the /NOOPTION_FILE qualifier is given, then no option file will
    be output.

    CHBUILD always reads any option file that is already present via
    the PMDF_CHARSET_OPTION_FILE logical name; use of this qualifier
    will not alter this behavior. However, use of the /MAXIMUM
    qualifier causes CHBUILD to read options from MAXIMUM_CHARSET.DAT
    in addition to PMDF_CHARSET_OPTION_FILE. This file specifies near
    maximum table sizes. Only use this qualifier if the current table
    sizes are inadequate, and only use it to create a new option
    file. The /NOIMAGE qualifier should always be specified when
    /MAXIMUM is specified since a maximum-size image would be truly
    enormous and extremely wasteful.

2.3.4    /SIZES

       /SIZES
       /NOSIZES (default)

    The /SIZES qualifier instructs PMDF CHBUILD to output information
    on the sizes of the uncompiled character set tables.

2.3.5    /STATISTICS

       /STATISTICS
       /NOSTATISTICS (default)

    The /STATISTICS qualifier instructs CHBUILD to output information
    on the compiled conversion tables. These numbers give a rough
    measurement of the efficiency of the compilation, and may
    indicate whether or not an additional rebuild with the /OPTION_
    FILE qualifier is needed.

2.4  –  Examples

      The standard commands used to compile character set conversion
      tables and reinstall them are:

        $ PMDF CHBUILD
        $ INSTALL REPLACE PMDF_CHARSET_DATA

3  –  CLBUILD

    Compile a PMDF command definition file into an OpenVMS shareable
    image.

    Syntax

      PMDF CLBUILD  cld-file-spec

    Command Qualifiers             Defaults

    /DEBUG                         /NODEBUG
    /IMAGE_FILE=file-spec          /NOIMAGE_FILE
    /MAXIMUM                       /NOMAXIMUM
    /OPTION_FILE=file-spec         /NOOPTION_FILE
    /SIZES                         /NOSIZES
    /STATISTICS                    /NOSTATISTICS

3.1  –  Parameters

 cld-file-spec

    The file specification of a PMDF command line definition file to
    read as input, e.g., PMDF_COM:PMDF.CLD

3.2  –  Description

    The CLBUILD utility compiles a command line definition file
    into an OpenVMS shareable image. The resulting image can then
    be installed with the OpenVMS INSTALL utility.

    PMDF ships with a pre-compiled command line definition image so
    it is not normally necessary to run this utility.

3.3  –  Command Qualifiers

3.3.1    /DEBUG

       /DEBUG
       /NODEBUG (default)

    The /DEBUG qualifier causes CLBUILD to output debug information
    regarding its operation.

3.3.2    /IMAGE_FILE

       /IMAGE_FILE=file-spec
       /NOIMAGE_FILE (default)

    By default, CLBUILD does not produce a compiled command
    definition file. In order to produce a compiled command
    definition file, the file to produce must be specified using the
    /IMAGE_FILE qualifier. Note that the logical name PMDF_COMMAND_
    DATA may be specified as the image file-spec, if the goal is to
    produce a compiled version of the main PMDF command definition
    file, PMDF_COM:PMDF.CLD.

3.3.3    /MAXIMUM

       /MAXIMUM
       /NOMAXIMUM (default)

    The file PMDF_TABLE:MAXIMUM_COMMAND.DAT is read when /MAXIMUM is
    specified. This file specifies near maximum table sizes but does
    not change any other command option file parameter settings. Only
    use this qualifier if the current table sizes are inadequate.
    The /NOIMAGE_FILE and /OPTION_FILE qualifiers should always be
    used in conjunction with this qualifier-it makes no sense to
    output the enormous command definition image that is produced by
    /MAXIMUM, but it does make sense to use /MAXIMUM to get past size
    restrictions in order to build a properly sized command option
    file so that a properly sized command definition image can be
    built with a subsequent CLBUILD invocation.

3.3.4    /OPTION_FILE

       /OPTION_FILE[=file-spec]
       /NOOPTION_FILE (default)

    CLBUILD can optionally produce a command option file that
    contains correct table sizes to hold the command definitions
    which were just compiled (plus a little room for growth). The
    /OPTION_FILE qualifier causes this file to be read as input and
    a new such option file created as output. If /OPTION_FILE is
    specified with no value, then the file written will have the
    same name as the input command definition file, but with the file
    extension .COP; for instance, if the file PMDF_COM:PMDF.CLD was
    the input parameter, then the default name for the output command
    option file would be PMDF_COM:PMDF.COP. If the /NOOPTION_FILE
    qualifier is specified (the default), then no option file will be
    output.

    Note that use of the /MAXIMUM qualifier causes CLBUILD to read
    options from MAXIMUM_COMMAND.DAT in addition to any command
    option file. This file specifies near maximum table sizes. Only
    use this qualifier if the current table sizes are inadequate,
    and only use it to create a new command option file. The /NOIMAGE
    qualifier should always be specified when /MAXIMUM is specified
    since a maximum-size image would be truly enormous and extremely
    wasteful.

3.3.5    /SIZES

       /SIZES
       /NOSIZES (default)

    The /SIZES qualifier instructs PMDF CLBUILD to output information
    on the sizes of the uncompiled command definitions.

3.3.6    /STATISTICS

       /STATISTICS
       /NOSTATISTICS (default)

    The /STATISTICS qualifier instructs CLBUILD to output information
    on the compiled conversion tables. These numbers give a rough
    measurement of the efficiency of the compilation, and may
    indicate whether or not an additional rebuild with the /OPTION_
    FILE qualifier is needed.

3.4  –  Examples

      The standard commands used to compile the basic PMDF command
      definition file and restart PMDF to use it, plus update the
      system DCL tables, are:

 $ PMDF CLBUILD/OPTION_FILE/IMAGE_FILE=PMDF_COMMAND_DATA PMDF_COM:pmdf.cld
 $ INSTALL REPLACE PMDF_COMMAND_DATA
 $ SET COMMAND/TABLE=SYS$COMMON:[syslib]dcltables.exe -
 _$  /OUTPUT=SYS$COMMON:[syslib]dcltables.exe PMDF_COM:pmdf.cld
 $ INSTALL REPLACE SYS$LIBRARY:dcltables.exe

4  –  CNBUILD

    Compile the PMDF configuration, alias, mapping, security, system
    wide filter, circuit check, and option files into an OpenVMS
    shareable image.

    Syntax

      PMDF CNBUILD

    Command Qualifiers             Defaults

    /IMAGE_FILE=file-spec          /IMAGE_FILE=PMDF_CONFIG_DATA
    /MAXIMUM                       /NOMAXIMUM
    /OPTION_FILE=file-spec         /OPTION_FILE=PMDF_OPTION_FILE
    /SIZES                         /NOSIZES
    /STATISTICS                    /NOSTATISTICS

4.1  –  Restrictions

    None.

4.2  –  Parameters

    None.

4.3  –  Description

    The CNBUILD utility compiles the textual configuration, option,
    mapping, security, conversion, system wide filter, and alias
    files into a single OpenVMS shareable image. The resulting image,
    PMDF_CONFIG_DATA (usually PMDF_EXE:CONFIG_DATA.EXE), can then be
    installed with the OpenVMS INSTALL utility.

    Whenever a component of PMDF (e.g., a channel program) must read
    any possibly compiled configuration component, it first checks
    to see if the PMDF_CONFIG_DATA image exists. If it does, the
    image is merged into the running program using the OpenVMS RTL
    routine LIB$FIND_IMAGE_SYMBOL. There are five exceptions to this
    rule. The first is CNBUILD itself, which for obvious reasons
    always reads the text files and never tries to load the image
    form of the configuration data. The remaining four exceptions are
    TEST/REWRITE, TEST/MAPPING, TEST/FAX_ROUTING, and TEST/X400 which
    can all be instructed with the /NOIMAGE_FILE qualifier to ignore
    any compiled image information. This facility in TEST/REWRITE is
    useful for testing changes prior to compiling them.

    The reason for compiling configuration information is simple:
    performance. The only penalty paid for compilation is the need
    to rebuild and reinstall the file any time the configuration or
    alias files are edited. Also, be sure to restart any channels or
    components which load the configuration data only once when they
    start up (e.g., the PMDF multithreaded TCP SMTP server, the POP
    or IMAP servers, FAX_RECEIVE, BITNET channels, or, if using PMDF-
    MR for MR TS replacement, the All-in-1 Sender, All-in-1 Fetcher,
    and MailWorks server).

    Once you begin to use a compiled configuration, it will be
    necessary to recompile the configuration every time changes are
    made to any of the following files: the PMDF configuration file,
    PMDF.CNF (or any files referenced by it); the system alias file,
    ALIASES.; the system mapping file, MAPPINGS.; the PMDF option
    file, OPTION.DAT; the conversions file, CONVERSIONS., the system
    wide filter file, PMDF.FILTER, the circuit check configuration
    file, CIRCUITCHECK.CNF, or the security configuration file,
    SECURITY.CNF. Until such time that the configuration is
    recompiled and reinstalled, changes to any of these files will
    not be visible to the running PMDF system.

    See the PMDF System Manager's Guide for further details on the
    use of compiled configurations.

4.4  –  Command Qualifiers

4.4.1    /IMAGE_FILE

       /IMAGE_FILE=file-spec
       /NOIMAGE_FILE

    By default, CNBUILD creates as output the file PMDF_CONFIG_DATA.
    With the /IMAGE_FILE qualifier, an alternate file name may be
    specified.

    When the /NOIMAGE_FILE qualifier is specified, CNBUILD does not
    produce an output file. This qualifier is used in conjunction
    with the /OPTION_FILE qualifier to produce as output an
    option file which specifies table sizes adequate to hold the
    configuration required by the processed input files.

4.4.2    /MAXIMUM

       /MAXIMUM
       /NOMAXIMUM (default)

    The file PMDF_TABLE:MAXIMUM.DAT is read in addition to PMDF_
    OPTION_FILE when /MAXIMUM is specified. This file specifies near
    maximum table sizes but does not change any other option file
    parameter settings. Only use this qualifier if the current table
    sizes are inadequate. The /NOIMAGE and /OPTION_FILE qualifiers
    should always be used in conjunction with this qualifier-it makes
    no sense to output the enormous configuration that is produced by
    /MAXIMUM, but it does make sense to use /MAXIMUM to get past
    size restrictions in order to build a properly sized option
    file so that a properly sized configuration can be built with
    a subsequent CNBUILD invocation.

4.4.3    /OPTION_FILE

       /OPTION_FILE[=file-spec]
       /NOOPTION_FILE (default)

    CNBUILD can optionally produce an option file that contains
    correct table sizes to hold the configuration that was just
    compiled (plus a little room for growth). The /OPTION_FILE
    qualifier causes this file to be output. By default, this file
    is the file pointed to by the PMDF_OPTION_FILE logical, normally
    PMDF_TABLE:OPTION.DAT. The value on the /OPTION_FILE qualifier
    may be used to specify an alternate file name. If the /NOOPTION_
    FILE qualifier is given, then no option file will be output.

    CNBUILD always reads any option file that is already present
    via the PMDF_OPTION_FILE logical name; use of this qualifier
    will not alter this behavior. However, use of the /MAXIMUM
    qualifier causes CNBUILD to read PMDF options from the PMDF_
    TABLE:MAXIMUM.DAT in addition to reading PMDF_OPTION_FILE. This
    file specifies near maximum table sizes. Only use this qualifier
    if the current table sizes are inadequate, and only use it to
    create a new option file. The /NOIMAGE qualifier should always be
    specified when /MAXIMUM is specified since a maximum-size image
    would be truly enormous and extremely wasteful.

4.4.4    /SIZES

       /SIZES
       /NOSIZES (default)

    The /SIZES qualifier instructs PMDF CNBUILD to output information
    on the sizes of the elements of the uncompiled configuration.

4.4.5    /STATISTICS

       /STATISTICS
       /NOSTATISTICS (default)

    The /STATISTICS qualifier instructs CNBUILD to output information
    on how much of the various tables in the compiled configuration
    were actually used to store data. These numbers give a rough
    measurement of the efficiency of the compilation, and may
    indicate whether or not an additional rebuild with the /OPTION_
    FILE qualifier is needed.

4.5  –  Examples

    1.$ PMDF CNBUILD
      $ INSTALL REPLACE PMDF_CONFIG_DATA

      Above are the standard commands used to regenerate and
      reinstall a compiled configuration. After compiling the
      configuration, install it with the DCL INSTALL command and
      then restart any programs which may need to reload the new
      configuration. (For instance, it is necessary to restart the
      PMDF multithreaded TCP SMTP server with the "PMDF RESTART SMTP"
      command after recompiling the configuration.)

    2.$ PMDF CNBUILD/NOIMAGE_FILE/OPTION_FILE/MAXIMUM
      $ PMDF CNBUILD
      $ INSTALL REPLACE PMDF_CONFIG_DATA

      Use the sequence of three commands shown above when you
      encounter the infamous "No room in table" error message.

5  –  CONFIGURE

    Create basic PMDF configuration files.

    Syntax

      PMDF CONFIGURE  [product-or-component-name]

5.1  –  Restrictions

    To write "live" files, must have write access to the PMDF table
    directory, PMDF_TABLE:.

5.2  –  Parameters

 product-or-component-name

    The product name, i.e., MTA, ACCESS, FAX, FIREWALL, LAN, MB400,
    MR, X400, or XGS, or the component name, i.e., DISPATCHER,
    MAILBOX_SERVERS, or QUEUES. This parameter need not be specified
    if the product is PMDF or PMDF-MTA.

5.3  –  Description

    CONFIGURE is an interactive command line utility for creating
    basic PMDF configuration files. Note that there is also a
    newer, web-based configuration utility for generating PMDF-
    MTA (including mailbox servers), PMDF-LAN, and PMDF-XGS
    configurations; see the PMDF Installation Guide for additional
    details.

    Most fundamentally, it is used to generate a basic PMDF
    configuration file, alias file, mappings file, and
    security configuration file, usually PMDF_TABLE:PMDF.CNF,
    PMDF_TABLE:ALIASES., PMDF_TABLE:MAPPINGS., and PMDF_
    TABLE:SECURITY.CNF, respectively. The utility prompts for
    answers to questions regarding a site's node names and network
    connectivity, and then creates the basic files in accord with the
    answers to those questions.

    The utility is also used to configure optional PMDF layered
    products, and to configure various PMDF components.

    This utility is usually run when PMDF is first installed. It
    may also be convenient to run this utility, rather than manually
    editing the PMDF configuration file, after changes in a site's
    network configuration, such as the addition or removal of nodes,
    or a change in the status of a site's access to a larger network.
    Although by default this utility writes "live" files, overwriting
    any existing configuration and alias file, different file names
    may be specified, which can be useful for comparison or testing
    purposes. Note that since this utility does not take into account
    any pre-existing configuration file and alias file, any manual
    changes made to such files must be re-entered into the new files.

    For a complete description and examples of using this utility to
    create configuration files for PMDF products or components, see
    the PMDF Installation Guide, OpenVMS Edition.

6  –  CONVERT

    Convert a file.

    Syntax

      CONVERT  input-file output-file

    Command Qualifiers             Defaults

    /CHECKSUM                      /NOCHECKSUM
    /DEBUG                         /NODEBUG
    /FTYPE=type                    See text
    /FCREATOR=creator              See text
    /FDL=fdl-spec                  None
    /LINE_LENGTH=value             /LINE_LENGTH=0
    /MPARAMETERS=param-list        See text
    /MSUBTYPE=type                 See text

    Positional Qualifiers          Defaults

    /CHARSET=charset               None
    /ENCODING=encoding             None
    /FILENAME=name                 /NOFILENAME
    /HEADER                        /NOHEADER
    /MODE=mode                     None
    /PARAMETERS=param-list         None
    /SUBTYPE=subtype               None
    /TYPE=type                     None

6.1  –  Restrictions

    None.

6.2  –  Parameters

 input-file[,...]

    A comma separated list of one or more text files to be converted.
    All specified input files are read and merged into a single
    output file.

 output-file

    The name of the output file to write.

6.3  –  Description

    CONVERT is a utility to convert files from one format to another.

6.4  –  Command Qualifiers

6.4.1    /CHARSET

       /CHARSET=charset

    Specify the character set for the part.

6.4.2    /CHECKSUM

       /CHECKSUM
       /NOCHECKSUM (default)

6.4.3    /DEBUG

       /DEBUG
       /NODEBUG (default)

    Control whether or not to display debug output.

6.4.4    /ENCODING

       /ENCODING=encoding

    Specify the encoding used for the part.

6.4.5    /FILENAME

       /FILENAME=name
       /NOFILENAME (default)

    Specify a file name to include in the MIME labelling.

6.4.6    /FTYPE

       /FTYPE=type

6.4.7    /FCREATOR

       /FCREATOR=creator

6.4.8    /FDL

       /FDL=fdl-spec

6.4.9    /HEADER

       /HEADER
       /NOHEADER (default)

    Specify whether MIME headers are present or should be written
    to the part. The default is /NOHEADER, MIME headers are neither
    looked for nor generated.

6.4.10    /LINE_LENGTH

       /LINE_LENGTH=value

6.4.11    /MODE

       /MODE=mode

    Specify the conversion mode. The mode value may be any of
    CRATTRIBUTE, LFATTRIBUTE, CRLFATTRIBUTE, BLOCK, RECORD, TEXT,
    POSTSCRIPT, ENRICHED, FLOWED, HTML, DOUBLEAPPLE, SINGLEAPPLE,
    BINHEX, or VIRUSSCAN.

6.4.12    /MPARAMETERS

       /MPARAMETERS=param-list

6.4.13    /MSUBTYPE

       /MSUBTYPE=type

6.4.14    /PARAMETERS

       /PARAMETERS=param-list

6.4.15    /SUBTYPE

       /SUBTYPE=subtype

    Specify the MIME subtype.

6.4.16    /TYPE

       /TYPE=type

    Specify the MIME type.

6.5  –  Examples

    1.$ PMDF CONVERT A.MACB/MODE=MACBINARY A.SINGLE/MODE=SINGLE

      The command above is an example of converting a file from
      Macbinary format to Applesingle format; that is, this is an
      example of extracting just the data fork from the Macbinary
      format file.

7  –  COUNTERS

    PMDF has facilities to collect and monitor channel counters based
    upon the Mail Monitoring MIB, RFC 1566. These counters tabulate
    on a per channel basis the twelve items described in Channel
    Counters.

    Table 1 Channel Counters

    Field name         Description

    RECEIVED_MESSAGES  The number of messages enqueued to the channel
    SUBMITTED_         The number of messages enqueued by the channel
    MESSAGES
    STORED_MESSAGES    The total number of messages currently stored
                       for the channel
    DELIVERED_         The number of messages dequeued by the channel
    MESSAGES
    RECEIVED_VOLUME    The volume of messages enqueued to the channel
                       as measured in PMDF blocks
    SUBMITTED_VOLUME   The volume of messages enqueued by the channel
                       as measured in PMDF blocks
    STORED_VOLUME      The volume of messages currently stored for
                       the channel as measured in PMDF blocks
    DELIVERED_VOLUME   The volume of messages dequeued by the channel
                       as measured in PMDF blocks
    RECEIVED_          The total number of recipients specified in
    RECIPIENTS         all messages enqueued to the channel
    SUBMITTED_         The total number of recipients specified in
    RECIPIENTS         all messages enqueued by the channel
    STORED_RECIPIENTS  The total number of recipients specified in
                       all messages currently stored for the channel
    DELIVERED_         The total number of recipients specified in
    RECIPIENTS         all messages dequeued by the channel
    __________________________________________________________________
    A PMDF block is, by default, 1024 bytes. However, this size
    may vary from system to system. The size of a PMDF block is
    controlled with the BLOCK_SIZE PMDF option.

    It is important to note that these counters generally need to
    be looked at over time noting the minimum values seen. The
    minimums may actually be negative for some channels. Such a
    negative value merely means that there were messages queued for
    a channel at the time that its counters were zeroed (e.g., the
    cluster-wide database of counters created). When those messages
    were dequeued, the associated counters for the channel were
    decremented therefore leading to a negative minimum. For such
    a counter, the correct "absolute" value is the current value
    less the minimum value that counter has ever held since being
    initialized.

7.1    /CLEAR

    Clear the node-specific, in-memory cache of counters.

    Syntax

      COUNTERS/CLEAR

    Command Qualifiers             Defaults

    /ASSOCIATIONS                  /ASSOCIATIONS
    /CHANNELS                      /CHANNELS

7.1.1  –  Restrictions

    WORLD privilege is required to in order to use this utility.
    If the in-memory section did not already exist (so that a new
    one must be created), then SYSGBL and PRMGBL privileges are
    also required. If a new cluster-wide, on-disk database must be
    created, then privileges sufficient to create a file in the PMDF_
    TABLE: directory are required.

7.1.2  –  Parameters

    None.

7.1.3  –  Description

    The PMDF COUNTERS/CLEAR command is used to clear the values in
    the node-specific, in-memory section of counters. The command
    creates the node-specific, in-memory section of association and
    channel counters if it does not already exist. Then it zeros all
    fields in the in-memory section. Note that the counters will be
    zeroed without first merging their values into the cluster-wide
    database of channel counters. If a cluster-wide, on-disk database
    does not already exist, a new one will be created. Finally, the
    fields in the on-disk database for numbers of stored messages,
    message recipients, and message volumes are set based on the
    entries in the PMDF queue cache database.

    Either the association counters, or channel counters, or both,
    may be cleared. The default is to clear both association and
    channel counters.

    If you want to update the on-disk database with the old in-memory
    values before clearing them, then you should issue a

    $ PMDF COUNTERS/SYNCHRONIZE

    command before issuing the PMDF COUNTERS/CLEAR command.

    You may also want to issue a

    $ PMDF CACHE/SYNCHRONIZE

    command before issuing the PMDF COUNTERS/CLEAR command, to ensure
    that the queue cache database values (which will be used to set
    some of the on-disk database values) are themselves current.

7.1.4  –  Command Qualifiers

7.1.4.1    /ASSOCIATIONS

       /ASSOCIATIONS (default)
       /NOASSOCIATIONS

    This qualifier specifies whether to clear the in-memory cache of
    association counters.

7.1.4.2    /CHANNELS

       /CHANNELS (default)
       /NOCHANNELS

    This qualifier specifies whether to clear the in-memory cache of
    channel counters.

7.2    /CRDB

    Create a cluster-wide, on-disk database of association and
    channel counters.

    Syntax

      COUNTERS/CRDB

    Command Qualifiers    Defaults

    None.                 None.

7.2.1  –  Restrictions

    Requires sufficient privileges to create a file in the PMDF_
    TABLE: directory; if a in-memory section must also be created,
    SYSGBL and PRMGBL privileges are required.

7.2.2  –  Parameters

    None.

7.2.3  –  Description

    A new, cluster-wide database of channel counters is created
    with the PMDF COUNTERS/CRDB command. The new database will have
    all counters zeroed except for the counts of stored messages,
    recipients, and message volumes for each channel. Those counts
    will be determined by the entries in the PMDF queue cache
    database. In addition, if an in-memory section for association
    and channel counters on this node does not already exist, it will
    be created as well.

    Once an on-disk database exists, its values may be updated
    from the node-specific, in-memory sections by using the PMDF
    COUNTERS/SYNCRONIZE command.

    Note that since some initial database values will be set based on
    entries in the PMDF queue cache database, you may want to issue a

    $ PMDF CACHE/SYNCHRONIZE

    command before issuing the PMDF COUNTERS/CRDB command, to ensure
    that the queue cache database values are themselves current.

7.3    /SHOW

    Display the contents of the cluster-wide database of counters.

    Syntax

      COUNTERS/SHOW

    Command Qualifiers             Defaults

    /ASSOCIATIONS                  /ASSOCIATIONS
    /CHANNELS                      /CHANNELS
    /HEADERS                       /HEADERS
    /OUTPUT=file-spec              None
    /TODAY                         /TODAY

7.3.1  –  Restrictions

    Normally WORLD privilege is all that is required. But if the
    cluster-wide, on-disk database must be created, then privileges
    sufficient to create a file in the PMDF_TABLE: directory are
    required; or if the node-specific, in-memory section must be
    created, then SYSGBL and PRMGBL privileges are required.

7.3.2  –  Description

    The contents of the cluster-wide association and channel counters
    database may be displayed with the PMDF COUNTERS/SHOW command.
    A PMDF COUNTER/SYNCHRONIZE command is implicitly performed by
    this command; the database contents are synchronized with the
    in-memory section(s) before being displayed.

    Note that as part of the implicit PMDFCOUNTERS/SYNCHRONIZE
    operation, if the cluster-wide, on-disk database does not already
    exist, the PMDF COUNTERS/SHOW command will create it. And if
    the node-specific, in-memory cache of counters does not already
    exist, the PMDF COUNTERS/SHOW command will create it too.

7.3.3  –  Command Qualifiers

7.3.3.1    /ASSOCIATIONS

       /ASSOCIATIONS (default)
       /NOASSOCIATIONS

    This qualifier specifies whether to show the in-memory cache of
    association counters.

7.3.3.2    /CHANNELS

       /CHANNELS (default)
       /NOCHANNELS

    This qualifier specifies whether to show the in-memory cache of
    channel counters.

7.3.3.3    /HEADERS

       /HEADERS (default)
       /NOHEADERS

    Controls whether or not a header line describing each column in
    the table of counters is output.

7.3.3.4    /OUTPUT

       /OUTPUT=file-spec

    Direct the output to the specified file. By default the output
    appears on your display.

7.3.3.5    /TODAY

       /TODAY (default)
       /NOTODAY

    This qualifier specifies whether to show PMDF's count for the
    number of messages processed this day. Note that as discussed in
    the PMDF System Manager's Guide, PMDF counters are intentionally
    designed to be lightweight and as such by design, the value shown
    becomes increasingly likely to be an undercount as message volume
    increases. So high volume sites (sites with an unlimited volume
    PMDF license) in particular should not place too much credence in
    the reported number.

7.3.4  –  Examples

      To display the counters for all channels and associations,
      issue the command

  $ PMDF COUNTERS/SHOW
  4263 messages processed so far today
  30000 messages per day are permitted by your license

  Channel                     Messages  Recipients      Blocks
  ------------------------  ----------  ----------  ----------
  l
      Received                    3863        3881       25786
      Stored                        89          89         460
      Delivered                   3876        3894       26018 (3859 first time)
      Submitted                     99         114        1611
      Attempted                     17          17          25
      Rejected                       0           0           0
      Failed                         1           1           6

      Queue time/count        29794837/3877 = 7.68502E3
      Queue first time/count  18904343/3860 = 4.8975E3

  tcp_local
      Received                     208         217        4153
      Stored                         3           3           9
      Delivered                    200         212        2461 (197 first time)
      Submitted                   4053        4078       25919
      Attempted                      7           7           0
      Rejected                      46          68           0
      Failed                        14          14        1695

      Queue time/count        1106266/211 = 5.24297E3
      Queue first time/count  455897/208 = 2.19181E3

      Current In Assocs            127
      Total In Assocs             1056
      Total Out Assocs             132
      Rejected Out Assocs           11
      Failed Out Assocs              1

  Channel      Timestamp    Association
  ------------ ------------ -------------------------------------------------
  tcp_local    01-Feb 00:27 TCP|192.160.253.70|25|192.160.253.66|3465
  tcp_local    25-Jan 00:31 TCP|192.160.253.70|25|192.160.253.66|3496
  tcp_local    26-Jan 14:50 TCP|192.160.253.70|25|192.160.253.66|2086
  tcp_local    05-Feb 12:23 TCP|192.160.253.70|25|192.160.253.66|3593
  tcp_local    01-Feb 00:34 TCP|192.160.253.70|25|192.160.253.66|3581

  ...
  $

7.4    /SYNCHRONIZE

    Synchronize each of the node-specific, in-memory caches of
    channel counters with the cluster-wide database.

    Syntax

      COUNTERS/SYNCHRONIZE

    Command Qualifiers    Defaults

    None.                 None.

7.4.1  –  Restrictions

    Normally, just WORLD privilege is required to use this utility.
    However, if the node-specific, in-memory section must be created,
    then SYSGBL and PRMGBL are required; or if the cluster-wide,
    on-disk database must be created, then privileges sufficient to
    create a file in the PMDF_TABLE: directory are required.

7.4.2  –  Parameters

    None.

7.4.3  –  Description

    To synchronize each of the node-specific, in-memory caches of
    channel counters with the cluster-wide database, issue a PMDF
    COUNTERS/SYNCHRONIZE command. The command will not return control
    back to you until all the caches have been synchronized. The
    PMDF COUNTERS/SYNCHRONIZE command signals each PMDF counters
    synchronization process in the cluster-there should be one
    such process on each node running PMDF. Note that on each node,
    the synchronization can only be performed if the PMDF counters
    synchronization process is running on that node.

    Assuming that the PMDF counters synchronization process is
    running on each node, then for each node the node-specific, in-
    memory cache will be created, if it does not already exist. If
    the cluster-wide, on-disk database does not exist, it will be
    created. The in-memory cache values will be used to update the
    on-disk database, and then the on-disk database values for stored
    messages, recipients, and volume will be set by scanning the PMDF
    queue cache database.

7.5    /TODAY

    Display PMDF's count of the number of messages processed so far
    today.

    Syntax

      COUNTERS/TODAY

    Command Qualifiers    Defaults

    None.                 None.

7.5.1  –  Restrictions

    WORLD privilege is required.

7.5.2  –  Description

    PMDF's count of the number of messages processed so far today may
    be displayed with the PMDF COUNTERS/TODAY command.

    Note that as discussed in the PMDF System Manager's Guide, PMDF
    counters are intentionally designed to be lightweight and as
    such by design, the value shown becomes increasingly likely to
    be an undercount as message volume increases. So high volume
    sites (sites with an unlimited volume PMDF license) in particular
    should not place too much credence in the reported number.

7.5.3  –  Examples

      To display PMDF's count of the number of messages processed
      today, issue the command

  $ PMDF COUNTERS/TODAY
  4263 messages processed so far today
  30000 messages per day are permitted by your license
  $

8  –  CRDB

    CRDB is a utility used to create and update PMDF database files.

    Syntax

      PMDF CRDB  input-file-spec[,...] output-database-spec

    Command Qualifiers             Defaults

    /APPEND                        /NOAPPEND
    /COUNT                         /COUNT
    /DELETE                        /NODELETE
    /DUMP                          See text
    /DUPLICATES                    /NODUPLICATES
    /EXCEPTION_FILE=file-spec      /NOEXCEPTION_FILE
    /EXCLUDE=(suffix1[,...])       See text
    /FAST_LOAD                     /FAST_LOAD
    /HUGE_RECORDS                  /NOHUGE_RECORDS
    /LONG_RECORDS                  /NOLONG_RECORDS
    /QUOTED                        /NOQUOTED
    /REMOVE                        /NOREMOVE
    /SCRATCH_DISK=device-spec      See text
    /STATISTICS                    /STATISTICS
    /STRIP_COLONS                  /NOSTRIP_COLONS
    /WRITE_CHECK                   /NOWRITE_CHECK

8.1  –  Restrictions

    None.

8.2  –  Prompts

    Input file:          input-file-spec[,...]
    Output database:     output-database-spec

8.3  –  Parameters

 input-file-spec[,...]

    A comma separated list of one or more text files containing the
    entries to be placed into the database. Each line of the text
    files must correspond to a single entry. All specified input
    files are read and merged into a single output database.

 output-database-spec

    The name of the database file to write the database to. This may
    be a new or existing database. If the /NOFAST_LOAD qualifier is
    specified and the database already exists no new database will be
    created; records will simply be added to the existing database.

8.4  –  Description

    CRDB is a utility to create and or update PMDF database files.
    CRDB simply converts a plain text file into PMDF database records
    and either builds a new database or updates the records in an
    existing database.

    In general, each line of the input file must consist of a left
    hand side and a right hand side. The two sides are separated
    by one or more spaces or tabs. The left hand side is limited
    to 32 characters in a short database (the default variety),
    80 characters in a long database, or 252 characters in a huge
    database. The right hand side is limited to 80 characters in
    a short database, 256 characters in a long database, or 1024
    characters in a huge database. Spaces and tabs may not appear
    in the left hand side (but see the description of the /QUOTED
    qualifier below).

    The format of the input files is described in the PMDF System
    Manager's Guide.

8.5  –  Command Qualifiers

8.5.1    /APPEND

       /APPEND
       /NOAPPEND (default)

    If /APPEND is specified, the database is loaded with RMS $PUT
    operations. If the database already exists it will be appended
    to; if not, a new database will be created. Duplicate keys (left
    hand sides) will replace existing entries in databases created
    with /NODUPLICATE, so the last occurrence of a given key will be
    the one that is used.

    /NOAPPEND is a synonym for for /FAST_LOAD.

8.5.2    /COUNT

       /COUNT (default)
       /NOCOUNT

    Controls whether or not a count is output after each group of 100
    input lines are processed. This qualifier only applies if /APPEND
    is in effect; it is ignored in /FAST_LOAD mode.

8.5.3    /DELETE

       /DELETE
       /NODELETE (default)

    If /DELETE is specified, the given entries are deleted from
    the database. The input file should contain one key value per
    line for the entries to delete. The data portion of the line
    is ignored. If the database was created with /DUPLICATE, for
    multiple entries with the same key value, only the first entry is
    deleted.

8.5.4    /DUMP

    PMDF CRDB/DUMP is a synonym for PMDF DUMPDB. It is used to cause
    PMDF CRDB to dump an existing database to a flat text file-or
    to SYS$OUTPUT if no output file is specified. When /DUMP is
    specified, the parameters to PMDF CRDB are interpreted as the
    input database specification, and optionally a flat text file
    to which to write the output. No other qualifiers are valid when
    /DUMP is specified.

8.5.5    /DUPLICATES

       /DUPLICATES
       /NODUPLICATES (default)

    Controls whether or not duplicate records are allowed in the
    output file. Currently duplicate records are of use only in
    the domain databases (rewrite rule databases) and databases
    associated with the directory channel.

8.5.6    /EXCEPTION_FILE

       /EXCEPTION_FILE=file-spec
       /NOEXCEPTION_FILE

    CRDB may encounter records that cannot be loaded into the
    database. This usually means that in /FAST_LOAD mode these
    records had keys (left hand sides) that were duplicates of other
    keys previously encountered in the input file. When /FAST_LOAD
    is used (the default), these exception records can optionally
    be written to a separate output file for later examination. The
    /EXCEPTIONS_FILE qualifier controls the writing of this file.
    Note that the lines in this file are not plain text; they are
    formatted as database entries.

8.5.7    /EXCLUDE

       /EXCLUDE=(suffix[,...])

    Any left-hand side entries ending with the string suffix will be
    excluded from the database. By default no entries are omitted.

8.5.8    /FAST_LOAD

       /FAST_LOAD (default)
       /NOFAST_LOAD

    This qualifier controls whether or not the fast load algorithm
    is used. If /FAST_LOAD is specified, callable CONVERT is used
    to build the database. A new database is always created. If
    records with duplicate keys (left hand sides) are encountered
    in the input stream and /NODUPLICATE is in effect, the specific
    occurrence that will be used is unpredictable.

    /NOFAST_LOAD is a synonym for for /APPEND.

8.5.9    /LONG_RECORDS

       /LONG_RECORDS
       /NOLONG_RECORDS (default)
       /HUGE_RECORDS
       /NOHUGE_RECORDS

    These qualifiers control the size of the output records. By
    default left hand sides are limited to 32 characters and right
    hand sides are limited to 80 characters. If /LONG_RECORDS is
    specified the limits are changed to 80 and 256, respectively. If
    /HUGE_RECORDS is specified the limits are changed to 252 and 1024
    characters, respectively. Currently, /HUGE_RECORDS databases are
    supported only for the alias database.

8.5.10    /QUOTED

       /QUOTED
       /NOQUOTED (default)

    This qualifier controls the handling of quotes. Normally CRDB
    pays no particular attention to double quotes. If /QUOTED is
    specified, CRDB matches up double quotes in the process of
    determining the break between the left and right hand sides of
    each input line. Spaces and tabs are then allowed in the left
    hand side if they are within a matching pair of quotes. This
    is useful for certain kinds of databases, where spaces may form
    a part of the database keys. Note: The quotes are not removed
    unless the /REMOVE qualifier is also specified.

8.5.11    /REMOVE

       /REMOVE
       /NOREMOVE (default)

    This qualifier controls the removal of quotes. If CRDB is
    instructed to pay attention to quotes, the quotes are normally
    retained. If /REMOVE is specified, CRDB removes the outermost set
    of quotes from the left hand side of each input line. Spaces and
    tabs are then allowed in the left hand side if they are within
    a matching pair of quotes. This is useful for certain kinds of
    databases, where spaces may form a part of the database keys.
    Note: /REMOVE is ignored if /QUOTED is not in effect.

8.5.12    /SCRATCH_DISK

       /SCRATCH_DISK=device-spec

    CRDB uses one or two temporary scratch files to build the
    database if /FAST_LOAD is used (the default). The /SCRATCH_DISK
    qualifier can be used to specify the device on which these files
    are created. It may be useful to place these files in a specific
    place, either to improve performance or to get around protection
    and quota limitations.

    If /SCRATCH_DISK is not specified, the temporary files will be
    created on the disk specified by PMDF_SCRATCH. If PMDF_SCRATCH
    is not defined, the temporary files will be created on the disk
    specified by SYS$SCRATCH. If SYS$SCRATCH is not defined, the
    temporary files will be created on whatever disk the current
    default directory is on.

8.5.13    /STATISTICS

       /STATISTICS (default)
       /NOSTATISTICS

    Controls whether or not some simple statistics are output by
    CRDB, including number of entries (lines) converted, number of
    exceptions (usually duplicate records) detected, and number of
    entries that could not be converted because they were too long
    to fit in the output database. /NOSTATISTICS suppresses output of
    this information.

8.5.14    /STRIP_COLONS

       /STRIP_COLONS
       /NOSTRIP_COLONS (default)

    The /STRIP_COLONS qualifier instructs CRDB to strip a trailing
    colon from the right end of the left hand side of each line it
    reads from the input file. This is useful for turning former
    alias file entries into an alias database.

8.5.15    /WRITE_CHECK

       /WRITE_CHECK
       /NOWRITE_CHECK (default)

    Controls whether or not RMS write checking is enabled on the
    output database. This only applies to /FAST_LOAD mode; this
    qualifier is ignored otherwise.

8.6  –  Examples

      The following commands may be used to create an alias database
      with "long" record entries; note that the creation is performed
      in a two-step process using a temporary database to minimize
      any window of time, such as during database generation, when
      the database would be locked and inaccessible to PMDF:

 $ PMDF CRDB/LONG_RECORDS PMDF_TABLE:aliases.txt aliases.tmp
 $ RENAME aliases.tmp PMDF_ALIAS_DATABASE

9  –  DB

    DB is a utility with which to create and manipulate an alias
    database. Alias databases can either be a personal alias database
    (pointed at by the logical PMDF_PERSONAL_ALIAS_DATABASE) or a
    system alias database. As the format of PMDF alias database is
    used for other PMDF databases (e.g., PMDF_DOMAIN_DATABASE), DB
    can also be used to manipulate non-alias databases.

    DB is invoked by the command

    $ PMDF DB

    and can be exited by either typing Control-Z or issuing the quit-
    program command.

9.1  –  Aliases

    Aliases have multiple uses with e-mail. Individual users
    typically use aliases as abbreviations. For instance, rather
    than remember John Doe's full e-mail address, an alias JD can
    be created so that mail sent to the address JD is properly sent
    using John Doe's full address (e.g., JD573@VAXC.EXAMPLE.COM).
    System managers often use aliases in order to create valid mail
    addresses for non-existent users. For instance, an alias named
    Postmaster might be created and equated with the username SYSTEM
    so that incoming network mail for the user Postmaster is routed
    to the SYSTEM account. These are just two examples of the many
    practical uses of aliases.

    The process of interpreting an alias is called "alias expansion".
    In the two examples above, the aliases JD and Postmaster expand,
    respectively, to JD573@VAXC.EXAMPLE.COM and SYSTEM.

    In this documentation, the expansion of an alias is represented
    with the following notation
             alias-name - >  alias-value

    For example, John - >  JD573@VAXC.EXAMPLE.COM.

    PMDF alias names are "case insensitive". This means that the
    alias names jd, JD, jD, and Jd are all considered to be identical
    by PMDF; the case (upper versus lower case) of the individual
    characters in an alias name is irrelevant to PMDF. However, PMDF
    does preserve the case of alias values.

    PMDF aliases can expand to:

    -  an address: JD - >  JD573@VAXC.EXAMPLE.COM,

    -  a list of addresses: STAFF - >
       BOB@EXAMPLE.COM,SUE@EXAMPLE.COM,

    -  other aliases: JD - >  JOHND - > JD573@VAXC.EXAMPLE.COM,

    -  a list of aliases: COMPANY - >  STAFF,ADMIN,FACULTY, or

    -  a mixture of addresses and aliases: LIST - >
       STAFF,BOB@EXAMPLE.COM.

    Note that in the above example, it is not clear whether or not
    the expanded value of an alias is another alias or not; i.e.,
    in "JD - >  JOHND", JOHND could have been either an alias or
    a legitimate username. PMDF always starts by assuming that an
    address without any domain part (e.g., @EXAMPLE.COM) is an alias
    and attempts to expand it. When expanding an alias, PMDF first
    tries to look up the alias in the user's personal alias database
    and, if the alias is not found there, then PMDF consults system-
    level alias sources. After expanding an alias once, PMDF then
    tries to expand the result (or results in the case of a list).
    This expansion process is repeated until no more expansions are
    possible at which point the results are all assumed to be real
    mail addresses and not aliases.

    By default, alias names can be from 1 to 80 characters long and
    their expansion values 0 to 252 characters. This corresponds
    to a "long" alias database file which is the type of file DB
    normally creates. When a "huge" alias database file is used, the
    maximum lengths of the alias names and their expansion values
    are, respectively, 80 and 1024 characters. When a "short" alias
    database file is used, the maximum lengths of the alias names and
    their expansion values are, respectively, 32 and 80 characters.
    Note that by default the system alias database created with the
    CRDB utility is a short alias database.

    When specifying mail addresses within VMS MAIL or DECwindows
    MAIL, PMDF aliases must be specified using the format IN%alias-
    name. For example, mail addressed as follows

    MAIL> SEND
    To:   IN%JD

    would use PMDF's alias for JD, if any exists. From PMDF MAIL, you
    can simply use JD rather than IN%JD.

    System managers can find it useful to establish forwarding for
    commonly used system wide aliases. For example,

    MAIL> SET FORWARD/USER=POSTMASTER IN%Postmaster

    with Postmaster a PMDF alias (in the system alias database) which
    points to the user or users who should receive mail intended for
    the system's postmaster. When this type of forwarding has been
    set up, users can then just send mail to the (fictitious) user
    POSTMASTER,

    MAIL> SEND
    To:   POSTMASTER

    and PMDF will route it to the proper individuals.

9.2  –  Public Aliases

    If you want, other users can use aliases which you establish.
    This is particularly useful when you want to set up a mailing
    list which you want other people to post messages to. (See the
    Mailing lists topic for details on settingup a mailing list.) You
    allow other people to use specific aliases of yours by declaring
    those aliases to be public. This is done with the "attributes"
    parameter of the "set" command described in Set.

    For example, let us assume that the user sue@example.com has
    already created an alias named PIZZA-ORDER. Then, to declare
    PIZZA-ORDER to be a public alias, Sue would use the command

    db> set pizza-order public

    Other users can then use this alias by sending mail to sue+pizza-
    order@example.com.

9.3  –  Mailing Lists

    With PMDF DB you can create and maintain your own mailing lists.
    A mailing list is merely a collection of e-mail addresses with
    which you associate an alias. Or, looked at a little differently,
    a mailing list is an alias which expands to a list of e-mail
    addresses. When you address a mail message to the alias, it
    actually goes to all of the addressees listed in the mailing
    list. The act of sending a mail message to a mailing list is
    referred to as "posting".

    A mailing list is created in three steps:

    1. Create a text file containing the list of e-mail addresses
       associated with the mailing list. Each address should be on a
       separate line in the file. The file itself is referred to as a
       "mailing list file"; the addresses in the file are the mailing
       list's membership.

    2. Set the protection of the mailing list file so that it is
       world readable

       $ SET PROTECTION=(W:R) filename

       Here, FILENAME is the name of the mailing list file created in
       Step 1.

    3. Choose an alias name, ALIAS-NAME , to associate with the
       mailing list. Then, in PMDF DB, issue the commands

       db> add alias-name "<filename"
       db> set alias-name public

       FILENAME should include a full path specification including
       the disk and directory name.

    After these steps have been taken, the mailing list is set up and
    ready to use.

    For example, suppose the user sue@example.com wants to set up a
    mailing list named sample-list. The members of the mailing list
    will be bob@example.com, judy@example.com, ralph@sample.com,
    and sue@example.com. Sue first creates the mailing list file
    D1:[SUE]SAMPLE.DIS which contains the four lines

    bob@example.com
    judy@example.com
    ralph@sample.com
    sue@example.com

    She then makes sure the distribution file is world readable by
    explicitly setting its protection with the DCL SET PROTECTION
    command,

    $ SET PROTECTION=(W:R) D1:[SUE]SAMPLE.DIS

    Finally, Sue establishes the public alias FOO-LIST as follows:

    $ PMDF DB
    db> add foo-list "<d1:[sue]sample.dis"
    db> set foo-list public
    db> show foo-list attributes
    Key          Value
    -----------  -----------------------------
    foo-list     <d1:[sue]sample.dis
    Attributes:  public,no-expand,block-receipts,mail-address
    [1 entries shown]
    db>

    By declaring the list to be public, Sue is allowing other
    people to post messages to this mailing list. They should do
    so by addressing their messages to sue+sample-list@example.com.
    Messages so addressed will then be received by the members of the
    list as specified by the contents of the file D1:[SUE]SAMPLE.DIS.

    At any time you can add or remove members from the mailing list.
    You do so by simply editing the mailing list file removing or
    adding addresses from or to it.

    As another example, mailing lists defined in LDAP can also be
    used, for example:

    db> add ldap_all_users <"""ldap:///dc=example,dc=edu?mail?sub?(cn=*)"""

    Note the three double-quotes around the LDAP URL. This is
    required.

9.4  –  Advanced Mailing Lists

    PMDF DB allows you to control who can or cannot post to mailing
    lists as well as associate error return, reply to, and other
    special addresses with mailing lists. To use these features,
    an extended alias specification must be used when declaring the
    alias for the mailing list:

 db> add alias-name "<filename, named-parameters, error-return-address,
        reply-to-address, errors-to-address, warnings-to-address, comments"

    These items are described in the subtopics "Named parameters" and
    "Positional parameters".

    The two positional parameters ERROR-RETURN-ADDRESS and REPLY-
    TO-ADDRESS are two particularly useful items. You are strongly
    encouraged to use the ERROR-RETURN-ADDRESS parameter so as to
    control where error messages concerning postings to your list are
    directed. You can use the REPLY-TO-ADDRESS parameter to make the
    preferred reply address the list address (or some other address).

9.4.1  –  Named Parameters

    Named-parameters are used to associate options with a mailing
    list. There can be zero or more of named parameters, each
    separated by commas, and they must appear before any positional
    parameters. The general syntax of a named-parameter is:

    [name] value

    Here NAME is the name of the parameter and VALUE is its
    corresponding value. The square brackets are a mandatory part
    of the syntax: they do not indicate an optional field.

    The available named parameters are:

 AUTH_LIST

    AUTH_LIST is used to specify a list of addresses that are allowed
    to post to the mailing list. The VALUE item must be the full file
    path specification for a world readable file containing the list
    of addresses allowed to post to the list. When someone attempts
    to post a message to the mailing list, PMDF will attempt to match
    their address against the addresses in the list; if no match
    occurs, the attempted posting will be sent to the owner of the
    list.

    CANT_LIST has the opposite effect as AUTH_LIST: it supplies the
    full file path specification of a world readable file containing
    a list of addresses which cannot post to the list.

    One common use of this facility is to restrict a list so that
    only list members can post. This can be done by specifying the
    same file as both the mailing list file and the AUTH_LIST file.
    For example, assuming that the mailing list is named foo-list and
    the associated file is D1:[SUE]SAMPLE.DIS, the alias declaration
    would be

 db> add foo-list "<d1:[sue]sample.dis, [auth_list] d1:[sue]sample.dis"

 BLOCKLIMIT

    The BLOCKLIMIT and LINELIMIT parameters can be used to limit
    the size of messages that can be posted to the list. The VALUE
    item must be an integer number of PMDF blocks, for [BLOCKLIMIT],
    or an integer number of lines, for [LINELIMIT]. The size of a
    PMDF block is normally 1024 bytes. The default value for these
    parameters is 0, meaning that no limit is imposed on the size of
    message that can be posted to the list (apart, that is, from any
    system wide limits).

 DELAY_NOTIFICATIONS

    The DELAY_NOTIFICATIONS named parameter requests that NOTARY
    delay notifications be sent for mailing list postings; the
    NODELAY_NOTIFICATIONS named parameter requests that NOTARY delay
    notifications not be sent for mailing list postings. The VALUE
    specification is currently ignored and should always be NONE.

 HEADER_ADDITION

    HEADER_ADDITION can be used to specify a file of headers to
    be added to posted messages. The argument must be a full file
    specification for the file containing headers to be added.

    In particular this facility can be used to add the standard
    mailing list headers defined in RFC 2369. For instance, a
    user amy@example.com that has set up a public list named
    listname might use a header addition file along the lines of
    the following:

 List-Help: <mailto:amy@example.com?subject=help%20on%20listname>
 List-Subscribe: <mailto:amy@example.com?subject=subscribe%20listname>
 List-Unsubscribe: <mailto:amy@example.com?subject=unsubscribe%20listname>
 List-Post: <mailto:amy+listname@example.com>
 List-Owner: <mailto:amy@example.com?Subject=listname>
 List-Archive: <mailto:amy@example.com?subject=request%20listname%20archive>

 IMPORTANCE

    The IMPORTANCE, PRECEDENCE, PRIORITY, and SENSITIVITY named
    parameters are used to generate respective headers on messages
    posted to the list; the VALUE specification is inserted on the
    respective header line.

 MODERATOR_ADDRESS

    The MODERATOR_ named parameters are used to establish a moderated
    mailing list. All postings to the list not originating from a
    moderator are sent to the list's moderator. The address of the
    moderator must be specified with the MODERATOR_ADDRESS named
    parameter. The moderator address determines where moderator mail
    is sent when someone other than the moderator posts. The value of
    that named parameter is the moderator's address. For example,

 db> add test-list "<d1:[bob]test.dis, [MODERATOR_ADDRESS]
 bob@example.com"

    When there can be multiple moderator addresses (for instance,
    both robert@a1.example.com and bob@example.com) use MODERATOR_
    LIST to specify all addresses from which postings should be
    passed directly to the list and not sent to the list's moderator.
    MODERATOR_LIST specifies the name of a file containing a list of
    moderator addresses.

    If a MODERATOR_LIST parameter is used, thereby specifying who
    can post directly to the list, then a MODERATOR_ADDRESS parameter
    should also be present to specify the address to which to send
    postings not from any moderator.

    The use of the MODERATOR_ADDRESS parameter alone, without the
    MODERATOR_LIST parameter, is equivalent to using MODERATOR_
    ADDRESS and a MODERATOR_LIST consisting of just the one moderator
    address.

    Note that one use of MODERATOR_ADDRESS and MODERATOR_LIST is to
    set up a list wherein anyone on the list can post directly, but
    attempts to post by addresses not subscribed to the list will be
    referred to a moderator. For instance,

 db> add mem-list "<d1:[bob]mem-list.dis,
 [MODERATOR_ADDRESS]bob@example.com,
 [MODERATOR_LIST] d1:[bob]mem-list.dis"

 SEQUENCE_PREFIX

    The SEQUENCE_PREFIX and SEQUENCE_SUFFIX named parameters request
    that a sequence number be prepended or appended to the Subject:
    lines of messages posted to the list. The VALUE item gives the
    full file path specification of a sequence number file. This file
    is read, incremented, and updated each time a message is posted
    to the list. The number read from the file is prepended, in the
    case of SEQUENCE_PREFIX, or appended, in the case of SEQUENCE_
    SUFFIX, to the message's Subject: header line. This mechanism
    provides a way of uniquely sequencing each message posted to
    a list so that recipients can more easily track postings and
    determine whether or not they have missed any.

    By default, a response to a previously posted message (with a
    previous sequence number) retains the previous sequence number
    as well as adding a new sequence number to the subject line; the
    build up of sequence numbers shows the entire "thread" of the
    message in question. However, the SEQUENCE_STRIP named parameter
    can be used to request that only the highest numbered, i.e.,
    most recent, sequence number be retained on the subject line. The
    VALUE item is currently ignored and should always be NONE.

                              IMPORTANT NOTE

       To ensure that sequence numbers are only incremented for
       successful postings, a SEQUENCE_PREFIX or SEQUENCE_SUFFIX
       named parameter should always appear as the last named
       parameter; that is, if other named parameters are also being
       used, the SEQUENCE_ named parameter should appear at the end
       of the list of named parameters.

    Sequence number files are binary files and must have the proper
    file attributes and access permissions in order to function
    correctly. In particular, sequence number files must be writeable
    from the perspective of the PMDF user account. A PMDF user
    account must exist for sequence number files in personal alias
    databases to work properly. If your system administrators have
    not created a PMDF user account, then you will not be able to use
    this sequence numbering facility.

    To create the file SEQ-FILE-SPEC with the proper attributes and
    access permissions for use as a sequence number file, issue the
    command:

    $ CREATE/FDL=PMDF_COM:sequence_number.fdl seq-file-spec

 TAG

    The TAG named parameter can be used to prefix specified text to
    the Subject: header of posted messages. The VALUE item should be
    the string to be added.

 USERNAME

    The USERNAME named parameter can be used to set the "username"
    that PMDF will consider to "own" these mailing list messages.
    For instance, the PMDF QM utility will allow that username to
    inspect and bounce messages in the queue resulting from expansion
    of this mailing list. The VALUE item should be the username of
    the account to "own" the mailing list postings. Note that the
    username specified will be forced to uppercase.

9.4.2  –  Positional Parameters

    With one exception, the positional parameters in a mailing list
    specification provide alternate addresses to which certain sorts
    of list related activity should be directed (e.g., an address
    to which errors should be sent to rather than back to the list
    itself).

    The positional parameters are so named for a reason: their
    position in the comma separated list distinguishes which
    parameter is being specified. When more than one parameter
    (positional or otherwise) is specified, they must be separated
    by commas. If you want to specify a positional parameter but
    omit some which come first, then specify asterisks, *, for the
    positional parameters which you want to omit. For example,

 db> add foo-list "<d1:[sue]sample.dis, *, *, sue@example.com"

    Finally, to make the use of a positional parameter conditional,
    end the parameter value with an asterisk. In this case the
    value associated with the parameter will only be used if the
    corresponding message header line is not present in the message
    being posted to the list. (The asterisk will not appear in the
    message header should the parameter take effect.)

    Without further ado, the positional parameters are:

 error-return-address

    ERROR-RETURN-ADDRESS specifies an address to replace the
    message's regular envelope From: address as well as an address
    to be inserted into the header as an Errors-to: address. This
    header line is not generated if this address is not specified.

 reply-to-address

    The REPLY-TO-ADDRESS parameter specifies an address to be used as
    a Reply-to: address.

 errors-to-address

    The ERRORS-TO-ADDRESS parameter specifies an address to be placed
    on the Errors-to: header, if this address should be different
    from the ERROR-RETURN-ADDRESS that is used as the envelope From:
    address.

 warnings-to-address

    The WARNINGS-TO-ADDRESS parameter specifies an address to be
    placed on the Warnings-to: header line. This header line is not
    generated if this address is not specified.

 comments

    The COMMENTS parameter specifies a string to be placed in a
    Comments: header line. This header line will add to any Comments:
    header lines already present in the message being posted to the
    list.

9.4.3  –  Examples

    In this example, the user sue@example.com sets up a mailing
    list named sample-list. The mailing list file is the file
    D1:[SUE]SAMPLE.DIS and its contents are shown in below. The
    commands used to set up the list are also shown below. Mail is
    posted to the list by sending messages to the address sue+sample-
    list@example.com.

    The use of the AUTH_LIST named parameter in the alias declaration
    restricts the list such that only members of the list can post
    to it. Two positional parameters, ERRORS-TO-ADDRESS and COMMENTS,
    are also specified. The ERRORS-TO-ADDRESS parameter specifies
    that error messages associated with the list should be sent to
    sue@example.com; the COMMENTS parameter generates a Comments:
    header line reading "Sue's sample list". which will appear in
    each posting to the list.

 Example 2  Sample Mailing list: the Mailing List File

 bob@example.com
 judy@example.com
 ralph@example.com
 sue@example.com

 Example 3  Sample Mailing List: Declaring the Alias

 $ SET PROTECTION=(W:R) D1:[SUE]SAMPLE.DIS
 $ PMDF DB
 db> add sample-list "<d1:[sue]sample.dis,[auth_list]d1:[sue]sample.dis,
              sue@example.com,*,*,*,Sue's sample list"
 db> set foo-list public
 db> exit

9.4.4  –  Length Restriction on List Definitions

    Keep in mind the length limit of alias expansion values of 252
    characters when defining a more sophisticated mailing list with
    multiple parameters. Most lists can be suitably defined with just
    a few of the possible mailing list parameters discussed above.
    But if you have a list for which you really want to use a lot of
    parameters, then you might need to define the list in stages.

    For instance, to define a list friends-list that has MODERATOR_
    ADDRESS, MODERATOR_LIST, CANT_LIST, USERNAME, and IMPORTANCE
    named parameters, as well as error-return-address and comments
    positional parameters, the list can be defined in two stages,
    using a subsidiary friends-list-stage2 definition, e.g.,

 db> add friends-list "<d1:[alan]friends-list-stage2.dis,
 [MODERATOR_ADDRESS] alan@example.com, [MODERATOR_LIST] d1:[alan]friends-list.dis,
 [CANT_LIST] d1:[alan]bozos.dis, [USERNAME] ALAN"
 db> add friends-list-stage2 "<d1:[alan]friends-list.dis,
 [IMPORTANCE] High, alan@example.com, *, *, *, A chatty message list for Alan's
 friends - contact Alan at 555-1212 for more information"
 db> set friends-list public

    where the D1:[ALAN]FRIENDS-LIST-STAGE2.DIS file contains just the
    line:

    friends-list

    and the D1:[ALAN]FRIENDS-LIST.DIS contains all the actual
    recipient addresses.

9.5  –  Subaddresses

    If you enter a subaddress into your personal alias database as
    a public alias, then you can have mail sent to you with that
    subaddress automatically forwarded. For example, suppose that
    your address is bob@example.com and mail to you from the STAFF
    mailing list arrives addressed to bob+staff@example.com. If
    you create a public alias for staff then mail to the address
    bob+staff@example.com will be forwarded to the address associated
    with the alias. For instance, the commands

    db> add staff bob+staff@naples.example.com
    db> set staff public

    cause mail sent to bob+staff@example.com to be forwarded to
    bob+staff@naples.example.com.

9.6  –  Operation of DB

    DB prompts for input with a "db>" prompt. Typing a control-z at
    any point while entering a command will cause DB to immediately
    stop execution. The quit-program command will also cause DB to
    stop execution.

    The rest of the command line after the "PMDF DB" will be scanned
    for DB commands separated by backslashes, \; i.e.,

    $ PMDF DB command1\command2...

    Each command specified will be executed from left to right as the
    command line is scanned. Placing commands on the invocation line
    is optional; if any are specified DB will terminate after the
    last one has been executed. If no commands appear DB will operate
    by prompting the user for commands.

    When first invoked, DB will open your personal alias database
    file which is pointed at by the logical PMDF_PERSONAL_ALIAS_
    DATABASE. PMDF establishes this logical at system startup as a
    system-wide logical equated with SYS$LOGIN:ALIASES.DAT. Users
    wanting to store their alias files elsewhere must redefine this
    logical for their process. Note, however, that relocation of this
    file will interfere with the proper operation of PMDF's public
    alias features.

    While entering DB commands to the "db>" prompt, the following
    command interaction features are available:

    o  Command abbreviation: commands can be abbreviated to their
       simplest, unambiguous form.

    o  Command completion: use the <TAB> key to automatically
       complete a command. If the command is ambiguous, it will be
       completed to the fullest extent possible.

    o  Command querying: at any point while entering a command, a
       question mark, ?, can be entered to obtain immediate help on
       what to do next or what options are available.

    o  Input files: command files can be input and executed by using
       the command <INFILE with INFILE the name of the file to input.
       When two angle brackets are used, <<INFILE, the commands read
       from the input file will not be echoed as they are executed.

    o  Logging: your session can be logged to an output file by using
       the command >OUTFILE with OUTFILE the name of the log file.
       All commands you enter and information printed by DB will be
       written to the log file. To log only the commands you type,
       use the command >>OUTFILE.

    o  DCL commands: typing a single dollar sign, $, will create and
       attach you to a spawned subprocess. To issue a DCL command
       from within DB, use the command $ DCL-COMMAND with DCL-COMMAND
       the DCL command you want to execute.

9.7  –  Commands

    The following sections provide full descriptions of all DB
    commands. The syntax of the add and modify commands differs
    between DB's default mode of operation and the FAX mode invoked
    with the fax-mode command. The FAX mode versions of these
    commands are described under the fax-mode command description.

9.7.1  –  Add

    Syntax: add alias-name alias-value [attributes[,...]]

    With the add command an alias and its expansion value can be
    added to the database currently opened. If the alias expansion
    value contains any spaces, commas, or upper case characters
    which should not be converted to lower case, then the expansion
    value must be enclosed in double quotes. Any double quotes in
    the expansion value must be "doubled" (i.e., entered as two
    consecutive double quotes). Examples of these two cases are:

 db> add STAFF "BOB@EXAMPLE.COM,SUE@EXAMPLE.COM,TOM@EXAMPLE.COM"
 db> add JOHN-FAX """/FN=x8645/AT=Jo Doe/""@text-fax.EXAMPLE.com"
 db> add LDAP-ALL <"""ldap:///dc=example,dc=edu?mail?sub?(cn=*)"""

    The first add command establishes the alias

       STAFF - >  BOB@EXAMPLE.COM,SUE@EXAMPLE.COM,TOM@EXAMPLE.COM

    This alias required quoting since it included commas. The second
    add command establishes the alias

       JOHN-FAX - >  "/FN=x8645/AT=John Doe/"@text-fax.example.com

    and was enclosed in double quotes because of the space in it, and
    the need to not convert John Doe's name to "john doe". Also,
    the double quotes present in the alias expansion value were
    doubled; that is, each double quote, ", was specified as two
    double quotes, "".

    The third add command establishes the alias

       LDAP-ALL - >  <"ldap:///dc=example,dc=edu?mail?sub?(cn=*)"

    Which means that PMDF will expand the alias into a mailing list
    by performing an LDAP query using the LDAP URL specified.

    As another example, consider entering the alias JD with the
    simple expansion value JD573@VAXC.EXAMPLE.COM:

    db> add JD JD573@VAXC.EXAMPLE.COM
    [Entry added to database]
    db> show JD
    Key         Value
    ----------  -----------------------------
    jd          jd573@vaxc.example.com
    [1 entry shown]
    db>

    Note that the alias name along with its translation value was
    converted to lower case. DB will always translate the name of
    an alias to lower case; PMDF does not do case sensitive alias
    matching. To prevent the alias translation value from being
    converted to lower case, enclose it in double quotes; e.g.,

    db> modify JD "JD573@VAXC.EXAMPLE.COM"
    [1 entry modified]
    db> show JD
    Key         Value
    ----------  -----------------------------
    jd          JD573@VAXC.EXAMPLE.COM
    [1 entry shown]
    db>

    The optional attributes parameter of the add command can be one
    or more comma separated keywords selected from the list:

 mail-address

    Treat this alias as a mail address; i.e., set the mail address
    attribute flag for this alias. Default when in either normal or
    FAX mode. Not set when an "override on" command has been issued.

 non-mail-address

    Do not treat this alias as a mail address; i.e., clear the mail
    address attribute flag for this alias.

 fax-address

    Treat this alias as a FAX address; i.e., set the FAX address
    attribute flag for this alias. Default when in FAX mode. Not set
    when an "override on" command has been issued.

 non-fax-address

    Do not treat this alias as a FAX address; i.e., clear the FAX
    address attribute flag for this alias.

 public

    Mark this alias as being publicly accessible. Other users can
    reference this alias by sending mail to an address of the form
    USER+ALIAS@LOCAL-HOST. When this alias is used in outgoing mail
    and is not expanded into component addresses, it will appear
    in the message in the form USER+ALIAS@LOCAL-HOST. Public is the
    opposite of the private attribute described below.

 private

    Mark this alias as being private. Other users will not be able
    to use this alias. If this alias appears in outgoing mail (and
    is not expanded into its component addresses) it will appear as
    an unexpanded RFC 822 group address: ALIAS: ;. Private is the
    opposite of the public attribute described above.

 expand

    This attribute forces the expansion of the alias into its
    component addresses. All of the component addresses will be
    listed in the message header as the alias expands.

 no-expand

    This attribute inhibits the expansion of the alias into its
    component addresses. The alias itself will appear in the header
    in some form; see the description of the public and private
    attributes above for details on the forms the alias can take.

 pass-receipts

    This attribute enables the passage of requests for delivery and
    read receipts through to all recipients as the alias is expanded.
    Note that allowing the passage of such a request to a large
    distribution list can result in a lot of return mail.

 block-receipts

    This attribute disables the passage of requests for delivery
    and read receipts through to all recipients as the alias is
    expanded. Requests for such receipts are honored at the time
    the alias expands; in effect the alias is treated as the message
    destination.

    When an alias is entered with the add command at the "db>"
    prompt, the alias will automatically be given the mail address
    attribute unless an "override on" command has been previously
    issued or the non-mail-address keyword is specified with the add
    command.

9.7.2  –  Close

    Syntax: close

    The close command closes the currently open alias database.
    Use the open command to open a different database. DB will
    automatically close any open database when the exit-program or
    quit-program commands are issued.

9.7.3  –  Copy

    Syntax: copy from-alias-name to-alias-name

    The copy command creates a new alias with the name to-alias-name
    and associates to it the expansion value of the alias with the
    name from-alias-name. A subsequent change to the "from" alias
    will not affect the "to" alias. Any attributes associated with
    the "from" alias will be copied to the "to" alias regardless
    of whether or not an "override on" command has been issued
    previously.

    db> add Postmaster "system@thor.example.com"
    [Entry added to database]
    db> copy Postmaster Postmast
    [1 entry copied]
    db> show Post*
    Key         Value
    ----------  -----------------------------
    postmast    system@thor.example.com
    postmaster  system@thor.example.com
    [2 entries shown]
    db>

9.7.4  –  Exit-Program

    Syntax: exit-program

    The exit-program and quit-program commands are identical and each
    causes DB to close any open database and then exit. Note that
    in FAX mode there is no exit-program command, only an exit-mode
    command. To immediately exit DB from FAX mode, use the quit-
    program command.

9.7.5  –  Fax-Mode

    Syntax: fax-mode

    The fax-mode command puts you into FAX mode - a mode which
    attempts to simplify the creation and modification of aliases
    whose expansion values are FAX addresses. In this mode, the DB
    command prompt changes to "db.fax>". To exit this mode use the
    command exit-mode. (From this mode there is no exit-program
    prompt; to immediately exit FAX mode, use the quit-program
    command.)

    When in FAX mode, aliases created with the add command are given
    the attributes mail-address and fax-address. Only addresses with
    both of these attributes can be manipulated with the add, copy,
    modify, rename, remove, set, and show commands while in FAX mode.
    Note, however, that if the "override on" command has been issued,
    then all attribute checking is bypassed and no attributes will be
    assigned to aliases created with the add command.

    In FAX mode, the add and modify commands have a different syntax
    then their counterparts in the normal DB mode. (Recall, you can
    always tell which mode you're in by the DB prompt: in normal mode
    the prompt is "db>"; in FAX mode the prompt is "db.fax>".)

9.7.5.1  –  Add (FAX Mode)

    Syntax: add alias-name fax-number number domain domain-name
          [[item value]...]

    To add an alias in FAX mode, the alias name, FAX telephone
    number, and domain name (e.g., text-fax.example.com) must all
    be supplied. If the FAX telephone number contains any spaces or
    commas, then it must be enclosed in double quotes.

    Additional items of information can be specified. Note that when
    specifying a value for an item, the value must be enclosed in
    double quotes if it contains any spaces, commas, or characters
    you don't want converted to lower case. Furthermore, any double
    quotes appearing in the value must be changed to two consecutive
    double quotes. The names of the additional items and their
    meanings are:

 1-address

    The recipient's address can be displayed in one to five lines
    on the FAX cover page. These items are used to specify each
    individual line of the address. If no address lines are
    specified, then no address lines will be displayed on the FAX
    cover page. If intermediate address lines are omitted (e.g.,
    lines 1 and 3 specified, line 2 omitted), then blank address
    lines will be displayed in place of the omitted lines.

 authorization

    Your site might require you to specify an authorization or
    access code in order to send FAXes. You can specify any required
    authorization or access codes with this item.

 fax-modem-number

    The telephone number which the transmitting FAX modem should use
    when identifying itself to the receiving FAX device. While the
    receiving FAX device might print this number across the top or
    bottom of received pages, it is not placed on the FAX by PMDF-
    FAX (the sending FAX modem). To control the FAX number which is
    displayed on the cover page as your FAX telephone number, use the
    "my-fax-number" item.

 my-fax-number

    The FAX telephone number to display on the FAX cover page.

 my-organization-name

    The name of your organization, group, or department to display
    across the top of each transmitted FAX page.

 my-telephone-number

    The recipient's telephone number to be printed on the FAX
    cover page. If not specified, then no telephone number will be
    displayed.

    For example, to specify a FAX address for John Doe at Example
    Company, Inc., the following command can be issued while in FAX
    mode:

 db.fax> add john-fax fax-number "(714) 555-1212" domain
             "text-fax.example.com" recipient "John Doe" 1-address
             "Example" telephone "(714) 555-1212"
 db.fax> show john-fax
 Alias name: john-fax
 Recipient's FAX number:       (714) 555-1212
 Recipient's name:             John Doe
 Address line 1:               Example
 Recipient's telephone number: (714) 555-1212
 Domain specification:         @text-fax.example.com
 [1 entry shown]
 db.fax>

    Note that all of the values entered were enclosed in double
    quotes. This is often the safest policy as it avoids having to
    worry about spaces or other characters which can appear in the
    values to be specified and it prevents values entered from being
    converted to lower case.

 recipients-name

    The name of the recipient as it will appear on the cover page
    of the FAX message. Be sure to enclose the recipient's name in
    double quotes so as to not have it converted to lower case. If
    not specified, then no recipient's name will be displayed on the
    FAX cover page.

 send-after

    Do not send the FAX until after the specified date and time. The
    date and time must be given using the standard OpenVMS date-time
    specification format. For example, the date-time specification
    "3-FEB-2012 22:35:00" requests that the FAX not be transmitted
    until after 22:35 (10:35 PM) on February 3, 2012.

 setup

    A PostScript file to first process before processing your
    message. The filename must specify a full path to the file and
    the file must be world readable. Text library modules can also be
    specified using the format file-spec(module-name); e.g.,

    setup D1:[INIT]PSLIB(LETTERHEAD)

    where the text library is the file D1:[INIT]PSLIB.TLB and the
    module name is LETTERHEAD.

9.7.5.2  –  Modify (FAX Mode)

    Syntax: modify alias-name [[item value]...]

    With the modify command, various items associated with a FAX
    address can be altered or removed, and new items can be added
    to the FAX address. To alter or add an item simply specify the
    item name and new value. To delete an item, simply give the item
    name without any associated value. The domain-name and fax-number
    items, described below, cannot be deleted.

    In addition to the items which can be specified with the add
    command, two additional items can be specified. These items are:

 fax-number

    The FAX number to send the FAX message to.

 domain-name

    The domain name associated with the FAX address.

    Continuing with the example of the previous subsection, we can
    use the modify command to delete the use of the 1-address line
    and to change the recipient's telephone phone number:

    db.fax> modify john-fax 1-address
    [1 entry modified]
    db.fax> modify john-fax telephone-number "(714) 555-1212"
    [1 entry modified]
    db.fax> show john-fax
    Alias name: john-fax
    Recipient's FAX number:       (714) 555-1212
    Recipient's name:             John Doe
    Recipient's telephone number: (714) 555-1212
    Domain specification:         @text-fax.example.com
    [1 entry shown]
    db.fax>

9.7.6  –  Modify

    Syntax: modify alias-name new-alias-value

    The modify command is used to replace the expansion value of an
    alias with a new expansion value.

    db> add postmaster "system@thor.example.com"
    [Entry added to database]
    db> show postmaster
    Key         Value
    ----------  -----------------------------
    postmaster  system@thor.example.com
    [1 entry shown]
    db> modify postmaster "JOHN@example.COM"
    db> show postmaster
    Key         Value
    ----------  -----------------------------
    postmaster  JOHN@example.COM
    [1 entry shown]
    db>

    Wild cards can be used when specifying the alias name in order to
    modify one or more aliases simultaneously.

9.7.7  –  Open

    Syntax: open database-name [huge|long|short]

    The OPEN command opens an alias database after first closing
    any currently opened database. If the database to be opened
    already exists, then DB will automatically determine whether
    or not the database is a "huge" (stores 80/1024 character long
    alias names/values), or "long" (stores 80/132 character long
    alias names/values) or "short" (stores 32/80 character long alias
    names/values). If the database does not already exist, then it
    will be created. If the SHORT, LONG, or HUGE keyword is specified
    after the database file name, then the database created will be
    of that type. If no keyword is specified, the created database
    will be a long database.

    When DB is first invoked, the personal alias database pointed
    at by the logical PMDF_PERSONAL_ALIAS_DATABASE is automatically
    opened. If it doesn't exist, a long database is automatically
    created. Note that because of this, if you want a huge or short
    database instead of a long one, you must create a database file
    of the desired size either (e.g. for a huge database) using "pmdf
    crdb/huge", or by using the DB "open other-file huge" command
    then renaming other-file to the PMDF_PERSONAL_ALIAS_DATABASE
    name.

9.7.8  –  Override

    Syntax: override on|off

    The override command is useful when looking at or modifying
    databases other than an alias database. Ordinarily the database
    manipulation commands, add, copy, modify, rename, remove, set,
    and show will only operate on aliases with the mail-address
    attribute. When the command "override on" has been issued, these
    commands can be used to manipulate any entry in the database
    regardless of its attributes (or lack thereof).

    The "override off" command negates the "override on" command.

9.7.9  –  Quit-Program

    Syntax: quit-program

    The exit-program and quit-program commands are identical and each
    causes DB to close any open database and then exit. Note that
    in FAX mode there is no exit-program command, only an exit-mode
    command. To immediately exit DB from FAX mode, use the quit-
    program command.

9.7.10  –  Remove

    Syntax: remove alias-name

    With the remove command, one or more aliases can be removed from
    the database. Wild cards can be used when specifying aliases to
    be removed. For instance, to remove all aliases from a database,
    issue the command "remove *".

9.7.11  –  Rename

    Syntax: rename old-alias-name new-alias-name

    The rename command is used to rename an alias without altering
    its expansion value:

    db> add postmaster "system@thor.example.com"
    [Entry added to database]
    db> show postmaster
    Key         Value
    ----------  -----------------------------
    postmaster  system@thor.example.com
    [1 entry shown]
    db> rename postmaster post
    [1 entry renamed]
    db> show post
    Key         Value
    ----------  -----------------------------
    post        system@thor.example.com
    [1 entry shown]
    db>

9.7.12  –  Set

    Syntax: set alias-name attributes[,...]

    The set command can be used to grant or remove attributes from
    aliases. The alias name specification can include wild cards.
    The allowable attribute names are listed in the add command
    description described under the "add" command.

9.7.13  –  Show

    Syntax: show [alias-name [attributes]]

    The show command is used to list the contents of a database. The
    optional attributes keyword, when supplied, causes the attributes
    associated with each alias to also be displayed:

    db> add postmaster "system@thor.example.com"
    [Entry added to database]
    db> show postmaster attributes
    Key         Value
    ----------  -----------------------------
    postmaster  system@thor.example.com
    Attributes: private,expand,block-receipts,mail-address
    [1 entries shown]
    db>

    The alias name specification can contain wild cards. To see
    all entries with the mail-address attribute, issue the command
    "show"; to see absolutely all entries, first issue the command
    "override on" followed by the command "show"

9.7.14  –  Wildcards

    Syntax: wildcards ignore|interpret

    By default, the characters * and % in alias names are interpreted
    as wildcards: an asterisk, *, will match zero or more characters
    while each percent sign, %, will match precisely one character.
    The command "wildcards ignore" will cause DB to not interpret
    asterisks or percent signs as wildcards; the command "wildcards
    interpret" will resume interpretation of wildcards.

9.7.15  –  Write

    Syntax: write file-name [alias]

    The write command is used to create a command file which, when
    fed back into DB with the < or << commands, will recreate the
    entire database. If the alias keyword is specified, then a PMDF
    alias file (using PMDF's alias file format) will instead be
    produced.

    For instance, the following commands will create a database named
    DB2.DAT which duplicates the database DB1.DAT:

    db> open db1.dat
    db> write make.com
    db> open db2.dat
    [creating database]
    db> <<make.com
    db>

    The above example presupposes the existence of a database named
    DB1.DAT. The file MAKE.COM created with the write command is an
    ordinary text file which can be edited with any text editor.

    Note that this is not an efficient way to duplicate a database
    - the DCL COPY command works much faster. The write command is
    intended as a means of creating a textual representation of a
    database which can be edited as a text file and later turned back
    into a database.

10  –  DCF

    Convert WPS and DX files to other formats.

    Syntax

      PMDF DCF  input-file-spec output-file-spec

    Positional Qualifiers Defaults

    /FORMAT=type          See text

10.1  –  Restrictions

    o  This utility is available only for OpenVMS VAX.

    o  This utility is available only with the PMDF-MR optional
       layered product, must be explicitly built by the PMDF system.
       manager, (see the PMDF System Manager's Guide), and is only
       intended for internal use by the PMDF-MR channels.

    o  The file extensions of the input and output files are not user
       selectable.

10.2  –  Prompts

    Input file:   input-file-spec
    Output file:  output-file-spec

10.3  –  Parameters

 input-file-spec

    The name of an input file to convert. The format of the file
    must be specified with a positional /FORMAT qualifier. The file
    extension of the input file must match the specified format (see
    the /FORMAT qualifier description for details).

 output-file-spec

    The name of an output file to create. The format of the output
    file is selected with the /FORMAT positional qualifier. The file
    extension of the output file must match the specified format (see
    the /FORMAT qualifier description for details).

10.4  –  Description

    The DCF utility is used by PMDF-MR to convert WPS and DX
    message bodyparts to ASCII. This facility is built from document
    conversion software supplied as part of the MRGATE kit (version
    3.1 or 3.2), the Message Router VMS MAIL gateway. PMDF-MR will
    function without this utility but it will be unable to convert
    WPS and DX bodyparts to ASCII.

10.5  –  Positional Qualifiers

10.5.1    /FORMAT

       /FORMAT=type

    This positional qualifier must be given for both the input and
    output file specifications. The allowable types are ASCII, DX,
    and WPSFILE. The file extension of the input and output file
    must be given and they must agree with the selected format: for
    ASCII files the file extension must be .TXT, for DX files the
    file extension must be .DX, and for WPSFILE files the extension
    must be .WPL. Failure to use the proper extension will result in
    unpredictable results.

10.6  –  Examples

      The following command may be used to convert a WPS-PLUS file to
      an ordinary text format:

 $ PMDF DCF koala.wpl/FORMAT=WPSFILE mrsdd.txt/FORMAT=ASCII

      All special text attributes (e.g., bold, underlined, etc.), are
      lost in the conversion from WPS-PLUS to ASCII.

11  –  DECODE

    Decodes a file which was previously encoded with the ENCODE
    utility or encoded using a MIME aware mail agent.

11.1  –  Restrictions

    None.

    Syntax

      PMDF DECODE  encoded-file-spec output-file-spec

    Qualifiers            Defaults

    /ENCODING=type        None
    /FILENAME             /NOFILENAME
    /HEADER               /NOHEADER

11.2  –  Prompts

    Input file:   encoded-file-spec
    Output file:  output-file-spec

11.3  –  Parameters

 encoded-file-spec

    Specifies the name of an encoded input file. The input file must
    be a file previously created with the ENCODE utility.

 output-file-spec

    The name of the file to produce as output. The file output by
    DECODE will have the identical format, structure, contents, etc.
    of the original file encoded with ENCODE.

    When the /FILENAME qualifier is used, the output-file-spec is
    treated as a default file specification and as much as possible
    of the file name, if any, specified in the Content-type: header
    line is used to generate the actual output file name.

11.4  –  Description

    PMDF DECODE and ENCODE have been, for the most part, made
    obsolete by PMDF MAIL. If you use PMDF MAIL, then files which
    you send with the SEND command will be encoded automatically,
    if necessary. Encoded messages which you receive will be decoded
    automatically, if necessary, and can simply be extracted to a
    file with the EXTRACT command. If, however, you do not use PMDF
    MAIL, then read on.

    The ENCODE and DECODE utilities are provided with PMDF as a means
    of transmitting OpenVMS binary files via VMS MAIL and other non-
    MIME aware agents. With ENCODE, a file can be encoded in a format
    which uses short records containing only printable characters.
    Such files can then be transmitted through most any mail system
    without being altered (e.g., lines wrapped, characters removed
    or replaced, etc.). ENCODE preserves all file contents and all
    file attributes when encoding a file. The contents and attributes
    are properly restored when decoded with DECODE. Absolutely any
    type of OpenVMS file can be transmitted with these two utilities
    - even indexed files with multiple keys and files with extended
    semantics.

    Encoded files have two parts. The first part is a conventional
    RFC 822 message header. Header lines are used to describe the
    file format; this information includes a conventional OpenVMS
    FDL (file description language) description of the file and
    a description of the encoding used to convert the file into a
    printable form for transfer. ENCODE creates this header; DECODE
    reads it and uses the information it contains to reconstruct the
    file.

                                   NOTE

       Many encoded messages received with PMDF are automatically
       decoded for you, thus obviating the need to use PMDF DECODE
       at all. This is especially true when you use PMDF MAIL whose
       EXTRACT command will extract any MIME encoded message or
       message body part. If you use VMS MAIL, however, you can
       occasionally receive an encoded message which PMDF could not
       deliver in its decoded form to VMS MAIL owing to limitations
       of VMS MAIL itself.

11.5  –  Qualifiers

11.5.1    /ENCODING

       /ENCODING=type

    This qualifier controls the type of decoding used to decode the
    input file. The possible values for this qualifier are BASE64,
    CBASE64 (gzip compressed BASE64), BASE85, BINHEX (encoding only,
    not the file format), BTOA, HEXADECIMAL, PATHWORKS, QUOTED_
    PRINTABLE, UUENCODE, CUUENCODE (gzip compressed UUENCODE). If the
    /HEADER qualifier is specified, then it should not be necessary
    to specify the encoding used as this should be given in the
    message header. The /ENCODING qualifier will override the header
    specification if it is used.

11.5.2    /FILENAME

       /FILENAME
       /NOFILENAME (default)

    When the /FILENAME qualifier is used, the output-file-spec is
    treated as a default file specification and as much as possible
    of the file name, if any, specified in the Content-type: header
    line is used to generate the actual output file name. The default
    is /NOFILENAME in which case any file name specified in the
    Content-type: header line is ignored.

11.5.3    /HEADER

       /HEADER
       /NOHEADER (default)

    This qualifier controls whether or not the encoded file begins
    with a MIME-compliant header. /NOHEADER is the default. When
    /NOHEADER is used, the /ENCODING qualifier is usually needed
    to specify the encoding since it cannot be determined from the
    header. To decode material that begins with a MIME-compliant
    header, e.g., specifying the encoding used, use the /HEADER
    qualifier.

11.6  –  Examples

      The following example illustrates a typical scenario:
      SUE@SAMPLE.COM wants to send an executable program to
      BOB@EXAMPLE.COM. To do this, Sue might issue the following
      two commands:

 $ PMDF ENCODE/ENCODING=BASE64 PROGRAM.EXE PROGRAM.TXT
 $ MAIL/SUBJECT="Bob, here's the program" PROGRAM.TXT
 "IN%""BOB@EXAMPLE.COM"""

      When Bob receives this mail message he should issue the
      following commands:

 $ MAIL
 MAIL> EXTRACT/NOHEADER PROGRAM.TXT
 MAIL> EXIT
 $ ! Remove any extra material at the beginning and ending of the file.
 $ PMDF DECODE/ENCODING=BASE64 PROGRAM.TXT PROGRAM.EXE

      After decoding the file, Bob can now proceed to run
      PROGRAM.EXE.

      Note that Sue could also have used PMDF MAIL's SEND command to
      bypass the need to use PMDF ENCODE in the first place.

12  –  DELIVER

    DELIVER screens and automatically processes your incoming mail
    based on guidelines that you provide. Different actions can be
    taken based on a message's envelope or header addresses, subject,
    or content. These actions include delivering the message, filing
    the message away, forwarding the message, or even invoking a
    DCL command procedure to perform complex processing. Any actions
    taken occur immediately upon receipt of each message; you do not
    need to be logged in at the time a message is received in order
    for actions to be taken on your behalf.

    DELIVER is modelled after the MAILDELIVERY facility of the MMDF
    mail system. DELIVER is, however, completely distinct from MMDF
    and the formats of .MAILDELIVERY files for MMDF and MAIL.DELIVERY
    files for DELIVER are dissimilar.

12.1  –  Setting Up DELIVER

    In order to use DELIVER, you must first take two steps:

    1. Create a MAIL.DELIVERY file in your default login directory.
       For security reasons this file must be located in your default
       login directory - it cannot be stored elsewhere. The format
       of a MAIL.DELIVERY file is described under the subtopic
       "MAIL.DELIVERY File format".

       This first step is all that is required to cause DELIVER to
       process mail delivered to you by PMDF. That is, the presence
       of a MAIL.DELIVERY file is all that is required to activate
       DELIVER for messages you receive via PMDF.

    2. Set your mail forwarding address to "IN%""~USERNAME"""
       (OpenVMS 7.0 or earlier) or to IN%"~USERNAME" (OpenVMS 7.1
       or later) where USERNAME is your username. Refer to the PMDF
       User's Guide for further information on using the SET FORWARD
       command.

       This step is required to cause DELIVER to process mail you
       receive in your VMS MAIL mailbox by means other than PMDF.

    Once these two steps have been taken, DELIVER will be invoked
    automatically to handle all mail as it is delivered to you. For
    example, suppose the user BOB on an OpenVMS 7.0 system wants to
    have DELIVER process his incoming messages. BOB should create
    a MAIL.DELIVERY file in his login directory and then set his
    forwarding address,

 $ MAIL
 MAIL> SET FORWARD "IN%""~BOB"""
 MAIL> EXIT
 $

12.2  –  MAIL.DELIVERY File format

    The MAIL.DELIVERY file controls DELIVER and tells it how to
    handle each incoming message. A MAIL.DELIVERY file consists of
    a series of directives with one directive on each line of the
    file. Each directive specifies how a certain kind of message is
    to be handled. A particular directive may or may not apply to a
    given message. An attempt is made to apply every directive in the
    MAIL.DELIVERY file to each message, thus more than one directive
    may apply to (and more than one action may be the result of) a
    single message.

    Any line in the file which begins with a semicolon or an
    exclamation point is considered to be a comment and is ignored.

    A directive line consists of the following items in order from
    left to right:

 1-pattern 2-pattern 3-pattern accept action 1-parameter 2-parameter

    Items must be delimited by one or more spaces or tabs. Quoted
    strings (use double quotes, not single quotes) are allowed as
    single items; the quotes are removed from the items as they
    are read. A double quote can be obtained by using two double
    quotes with no space between them. This form of quote handling is
    consistent with that of OpenVMS DCL.

    The 1-PARAMETER and 2-PARAMETER items are both optional and can
    be omitted if the action ACTION requires no parameters. The first
    five items are mandatory and must appear in every directive line.

12.2.1  –  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.

    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.

12.2.2  –  Actions

    The ACTION and 1-PARAMETER items specify what action is taken
    when a directive is applied to a message. The first character
    of ACTION specifies what type of action to take. The legal
    characters for ACTION and what they do are:

 A

    Append the body (or contents) of the message to a file. The
    message header is not included. The 1-PARAMETER item specifies
    the file name. The file need not already exist: if necessary,
    it will be created. The recipient must have write access to the
    file, if it exists, and write access to its directory if it needs
    to be created; DELIVER grants the user no special file access
    privileges.

 B

    Same as D but with the message headers appearing at the bottom of
    any messages delivered to VMS MAIL. PMDF's FOLDER utility is used
    to deliver the mail.

 C

    Copy the body of the message to a file whose name is 1-PARAMETER
    . Write access to the directory where the file is to be created
    is required.

 D, V

    Deliver the message normally to VMS MAIL. 1-PARAMETER is the name
    of the folder the message is to be placed in. If 1-PARAMETER is
    omitted the message is placed in the VMS MAIL's NEWMAIL folder
    by default. Delivery to VMS MAIL's NEWMAIL is done directly by
    PMDF; delivery to other folders is done using the FOLDER utility.
    The V action is identical to the D action; it is retained for
    compatibility with earlier versions of DELIVER.

    If an additional parameter, 2-PARAMETER, is specified, then that
    additional parameter will be interpreted as the name of the mail
    file to use in the case of VMS MAIL delivery. The user's default
    mail file and default directory are used if 2-PARAMETER is not
    specified.

    The following example shows an action that delivers to the
    NEWMAIL folder in an alternate mail file:

    * "*+gripes*" * T D NEWMAIL GRIPES.MAI

 E

    Execute the specified command. The DCL command specified by 1-
    PARAMETER is executed. The command is executed in the environment
    of the recipient's own account. Any noninteractive DCL command is
    valid, including an indirect command file specification. The DCL
    symbols shown in the table below can be used in the command to
    facilitate message processing.

    Table 1 DCL Symbols Available to DELIVER Command Files

    Symbol           Equivalence value

    FROM             The message's From: address (selected
                     as described under the topic Directive
                     Applicability)
    TO               The message's To: address
    SUBJECT          The message's Subject:
    CC               The message's cc:
    QFROM            From: with quotes doubled (selected as described
                     under the topic Directive Applicability)
    QQFROM           From: with quotes quadrupled (selected
                     as described under the topic Directive
                     Applicability)
    QTO              To: with quotes doubled
    QQTO             To: with quotes quadrupled
    QSUBJECT         Subject: with quotes doubled
    QQSUBJECT        Subject: with quotes quadrupled
    QCC              Cc: with quotes doubled
    QQCC             Cc: with quotes quadrupled
    C1, C2, C3       See S action
    QC1, QC2, QC3    See S action
    QQC1, QQC2,      See S action
    QQC3
    MESSAGE_FILE     The name of the file containing the body of the
                     message; MESSAGE_FILE always contains a full
                     file path
    MESSAGE_HEADER   The name of the file containing the headers of
                     the message; MESSAGE_HEADER always contains a
                     full file path
    MESSAGE_DELETE   Initially set to "YES", if this symbol is set to
                     "NO", no attempt will be made to delete MESSAGE_
                     FILE and MESSAGE_HEADER after all actions are
                     complete; the M action sets MESSAGE_DELETE to
                     "NO"

    The Q forms are useful if the symbol must be expanded inside a
    quoted string. The MESSAGE_DELETE flag is useful if MESSAGE_
    FILE or MESSAGE_HEADER (or both) have to be queued for further
    processing at a later time, or if one of the actions has already
    deleted them.

 F, W

    Forward the message. The message is forwarded to the address
    specified by 1-PARAMETER.

    VMS MAIL is used to send the message. As such, the address
    specified by 1-PARAMETER must be one that VMS MAIL will accept;
    PMDF addresses will probably require the use of an IN% construct,
    for instance. A new message header is added; the original header
    is lost. The new header refers to the forwarding user as the
    message originator.

 H

    Append the header and the body (or contents) of the message to
    a file. One blank line is written between the header and the
    body. The 1-PARAMETER item specifies the file name. The file
    need not already exist: if necessary, it will be created. The
    recipient must have write access to the file, if it exists, and
    write access to its directory if it needs to be created; DELIVER
    grants the user no special file access privileges.

 J

    Set the batch queue or a queue parameter used to run the command
    file produced by DELIVER. DELIVER uses the queue DELIVER_BATCH
    by default; if this queue is not defined or is inaccessible by
    the message recipient (the owner of the MAIL.DELIVERY file) the
    queue SYS$BATCH will be used instead. The J action provides a way
    to specify an alternate queue and/or a job parameter. If a single
    1-PARAMETER is specified it is the name of the queue. If both 1-
    PARAMETER and 2-PARAMETER are specified the former gives the name
    of the job parameter to set and the latter gives the value to set
    the parameter to. Currently the only parameters supported are P1
    through P8, which set the corresponding positional job parameter
    to the string specified in 2-PARAMETER.

    If the queue specified with the J action cannot be used, the
    DELIVER_BATCH queue or SYS$BATCH queue will be used instead.

 K

    Save the command file after execution. Normally the command
    file created on behalf of the user is deleted automatically
    after execution. This action, if used, inhibits this automatic
    deletion.

 L

    Save the batch log of the DCL commands executed by DELIVER
    for each message processed in the file 1-PARAMETER in the
    user's login directory. This option is useful for debugging
    MAIL.DELIVERY files and command scripts. If more than one L
    action is triggered only the last one has any effect.

 M

    Save the message and header files after execution of the batch
    job. The message and header files are normally deleted as the
    last step of processing by the batch job. This action suppresses
    automatic deletion of these files; the same effect can be
    obtained by setting the MESSAGE_DELETE flag to NO.

 O

    Same as D but with the message headers omitted from messages
    delivered to VMS MAIL. PMDF's FOLDER utility is used to deliver
    the mail.

 P

    Forward the message. The message is forwarded to the address
    specified by 1-PARAMETER.

    PMDF is used to send the message. As such, the address specified
    by 1-PARAMETER should be a standard RFC 822 style address.
    The original message header is retained and supplemented with
    additional information describing the forwarder as the sender of
    the message.

 Q

    Quit; take no action and abort. If this action is taken
    DELIVER stops scanning the MAIL.DELIVERY file at this point.
    No subsequent directives will apply after this one. Use this
    directive with care; it is very easy to lose messages when this
    action is employed.

 R

    Reset specified flag or flags. This action examines its first
    argument one character at a time and clears any associated flag.
    Two flags are defined at present. The R flag is set whenever
    DELIVER finds an applicable directive. This flag is tested by
    the B, O, Q, S, and ? ACCEPT items. The A flag is set whenever
    DELIVER applies some directive that is thought of as having
    processed the message.

 S

    Save the current column strings for pattern matching of columns
    one, two, and three in special DCL column variables C1, C2,
    and C3, respectively. The DCL variables QC1, QC2, QC3 (quotes
    doubled), QQC1, QQC2, and QQC3 (quotes quadrupled), are also
    defined in the same way as the variables FROM, QFROM, and QQFROM
    are defined.

    This action makes it possible to save and act upon the results
    produced by the 1, 2, and 3 actions in ways that cannot be
    accommodated by the facilities DELIVER provides directly.

 One, Two, Three (1, 2, 3)

    Rebuild the strings the DELIVER patterns are matched against. 1
    rebuilds the string 1-PATTERN is compared with, 2 rebuilds the
    string 2-PATTERN is compared with, and 3 rebuilds the string 3-
    PATTERN is compared with. 1-PARAMETER is either the keyword RESET
    or an expression that describes the processing to be applied to
    the message header to produce the resultant column string. The
    expression is written in what amounts to a miniature language
    specialized for just this purpose.

    The expression language is very simple; it consists of tokens
    that describe either atoms (in the spirit of RFC 822) or
    operators. There are only two types of atoms and four operators.

    The simplest form of atom is simply the field-name of a message
    header. Any possible message header field-name can be specified,
    including standardized ones like MESSAGE-ID, RESENT-FROM, and
    REFERENCES and nonstandard ones like X-VMS-CC, ORGANIZATION,
    and FRUIT-OF-THE-DAY. Any field-name can be specified, including
    field-names that PMDF does not recognize or use itself.

    Two special field-names with special meanings are provided.
    ENVELOPE-FROM refers to the envelope FROM: address (which
    usually, but not always, appears on the RETURN-PATH: header)
    and ENVELOPE-TO refers to the ENVELOPE TO: address that describes
    the current message recipient. The latter envelope information
    usually appears on one of the various recipient headers (TO:,
    RESENT-TO:, BCC:, etc.), but can be hard to locate in some cases
    or completely missing in other cases.

    The presence of such an atom amounts to a request to extract the
    text from the header (or possibly headers) that correspond to
    the specified field-name and use this text as the column string
    result. If the specified field-name is not used in the message
    header the atom extracts an empty or null string.

    The other sort of atom is simply a quoted string. Single quotes
    are used instead of double quotes since double quotes usually
    surround the entire 1-PARAMETER. The contents of the quoted
    string are used as the column string. This atom is not useful
    by itself; it is designed to be used in conjunction with other
    atoms and operators.

    The most straightforward operator is concatenation. Two or more
    atoms appearing side by side (with only spaces and/or tabs in
    between) are concatenated to form a composite result.

    A comma acts as a special form of concatenation. The expressions
    on either side are evaluated and concatenated. If the expressions
    on both sides of the comma produce non-null results, then a
    comma-space sequence is inserted between them. The comma-space
    is not inserted if either side produces only an empty string as a
    result.

    A forward slash, /, acts as a form of alternation. It will
    "return" the result of the evaluation of the left hand side if
    it is not empty, and the result of the right hand side if the
    left hand side result is null. (The similarity of these operators
    to those used in RFC 822 is not coincidental.)

    An asterisk, *, is used as a special modifier to any expression.
    When it precedes an expression, it requests that the evaluation
    of any field-name atom return all header lines with the specified
    field-name concatenated together, rather than simply the first
    such line. A quoted string atom can be specified directly after
    the asterisk, and if such a string is specified it is inserted
    between any concatenated header lines.

    Finally, the various operators bind differently. Asterisk binds
    the tightest (similar to exponentiation in regular mathematical
    expressions), followed by concatenation, and finally alternation.
    Parentheses can be used to alter the binding order as needed.

    Here are a few examples of 1-PARAMETER expressions:

 *  *  *  A 1 "MESSAGE-ID, RESENT-MESSAGE-ID, ALTERNATE-MESSAGE-ID"

    The MESSAGE-ID:, RESENT-MESSAGE-ID:, and the (nonstandard)
    ALTERNATE-MESSAGE-ID: headers are concatenated with commas
    inserted between them.

 *  *  *  A 1 "(RESENT-TO,RESENT-CC,RESENT-BCC)/(TO,CC,BCC)/ENVELOPE-TO"

    The various Resent- recipient headers are concatenated, and if
    none of them exist the regular set of recipient headers are used
    instead. If these in turn don't exist the envelope TO: address is
    used (presumably as a last resort).

 *  *  *  A 1 "* ' ' RECEIVED"

    All of the Received: headers are concatenated into a single
    string separated by spaces.

    Considerably more complex expressions can be built as the need
    arises.

    The keyword RESET restores the original value of the
    corresponding column. This would be used after another 1, 2,
    or 3 directive has modified the string. It is used for example as
    follows:

 *  *  *  A 1 RESET

12.2.3  –  Example

    For example, suppose that BOB@SAMPLE.COM sends JIM@EXAMPLE.COM
    a message. JIM@EXAMPLE.COM has the following (rather complex)
    MAIL.DELIVERY file:

 "*JIM@EXAMPLE.COM*"        * "Loopback" T D
 *                          * "Loopback" O F """''F$ELEMENT(0,"" "",QFROM)'"""
 *                          * "Loopback" T Q
 *                          * *          A E @LOGALL.COM
 "*TERRY@ISI.COM*"          * *          T Q
 "*JIM@EXAMPLE.COM*"        * "Archives" T Q
 "*BOB@SAMPLE.COM*"         * *          T A BOB.LOG
 *                          * *          A D

    JIM@EXAMPLE.COM's LOGALL.COM contains the following commands:

 $ from    == "From:    " + from
 $ to      == "To:      " + to
 $ subject == "Subject: " + subject
 $ open/append/error=make_one x message.log
 $ next:
 $ write x ""
 $ write x from
 $ write x to
 $ write x subject
 $ write x ""
 $ close x
 $ append 'message_file' message.log
 $ exit
 $ !
 $ make_one:
 $ create message.log
 $ open/append x message.log
 $ goto next

    Note that a similar effect could be achieved by substituting

    *         * *          A H MESSAGE.LOG

    for

    *         * *          A E @LOGALL.COM

    but would log the entire header rather than a few selected lines.

    If the subject line of BOB@SAMPLE.COM's message is not the string
    "Loopback", the message will be logged with a header in the file
    MESSAGE.LOG (located in JIM@EXAMPLE.COM's SYS$LOGIN directory),
    appended to the file BOB.LOG without any header and delivered to
    JIM@EXAMPLE.COM's NEWMAIL folder. If subject line is the string
    "Loopback", JIM@EXAMPLE.COM's MAIL.DELIVERY file will bounce the
    message right back to BOB@.SAMPLE.COM.

    The F$ELEMENT DCL lexical function is used in this example to
    eliminate the personal name field from the address, if one is
    present. Care must be taken to deal with personal name fields
    attached to VMS MAIL addresses in a proper manner. The approach
    of using F$ELEMENT is simple and usually very effective; note
    that it can fail if the address part of the VMS MAIL header line
    contains spaces.

    As another example, if TERRY@ISI.COM sends a message to
    JIM@EXAMPLE.COM, the message is logged only in JIM@EXAMPLE.COM's
    MESSAGE.LOG file; JIM@EXAMPLE.COM never receives any notification
    that the message arrived. Apparently, TERRY@ISI.COM never says
    anything of importance to JIM@EXAMPLE.COM.

    It is clear that the ability to execute an arbitrary set of DCL
    commands in response to a message is a very powerful tool. It
    must, however, be used with care, since processing is initiated
    whenever a message is received and operates in a completely
    unattended environment.

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

12.4  –  Subaddresses

    Subaddresses provide a convenient handle for screening e-mail
    messages with DELIVER.

    To screen mail based upon a subaddress, you must use a 1, 2,
    or 3 action to obtain the envelope TO: address associated with
    the mail message being delivered to you. You cannot use headers
    since there is no requirement that your address has to appear in
    the header of messages you receive, either with or without the
    subaddress. For instance, to detect the subaddress "junk-mail",
    use the directives

    *  *             * T 2 "ENVELOPE-TO"
    * "*+junk-mail*" * T D WASTEBASKET

    The first of these two directives tells DELIVER to use the
    envelope TO: address for 2-PATTERN. The second directive then
    causes any messages with +junk-mail appearing in the envelope TO:
    address to be filed to your WASTEBASKET folder.

12.5  –  Limitations

    There are no known bugs in PMDF's DELIVER subsystem at this time.
    However, there are a few minor nuisances which users should be
    aware of:

    1. It is difficult to debug MAIL.DELIVERY files since there is
       no way to watch deliver process the file except by enabling
       debug code in DELIVER (which is not an option normal users
       can exercise). However, the L action can be used to create a
       log file of the DCL commands DELIVER executes on behalf of the
       user when processing a message:

       ! Log commands executed in a file unconditionally
       * * * A L DELIVER.LOG
       * * * A E @DO_SOMETHING.COM

       Such log files are always placed in the user's home directory.
       Also note that output from command files invoked by DELIVER
       can be captured in a file by using the /OUTPUT qualifier:

       ! Execute a command file with logging
       * * * A E @DO_SOMETHING.COM/OUTPUT=DO_SOMETHING.LOG

       DELIVER does watch for users sending messages to themselves
       and then tries to be somewhat more informative than is usual
       about any errors it finds in MAIL.DELIVERY files.

    2. Much of the line and symbol processing done by DELIVER
       uses 252 character buffers. In particular, parameters in
       MAIL.DELIVERY files are limited to a maximum of 252 characters
       each. Most lines processed by DELIVER are limited to PMDF's
       usual 1024 character maximum. Lines output to command files
       are a special case; DELIVER must respect DCL's builtin 256-
       character line length limit. This might impose even more
       severe restrictions on symbol assignments and other commands
       than DELIVER does.

       DELIVER silently truncates lines rather than complaining about
       line lengths.

13  –  DIRECTORY

    The former PMDF DIRECTORY directory coordination utilities have
    been superseded by the new PMDF DIRSYNC utilities.

14  –  DIRSYNC

    PMDF-DIRSYNC includes a number of command line utilities that
    can be used to convert between LDIF files and other formats,
    or in doing testing of directory synchronization features. In
    particular, some of these utilities are intended for use in
    implementing directory agents in combination with a SYNC_LDIF
    channel.

14.1    /CONVERT

    Convert to or from LDIF format.

    Syntax

      PMDF DIRSYNC/CONVERT  source[=file-spec]

                            destination[=file-spec]

    Command Qualifiers             Defaults

    /ATTRIBUTES=attribute-list     See text
    /DEBUG                         /NODEBUG
    /DELTA                         /NODELTA
    /DOMAIN=cc-domain              See text
    /DN=attribute-list             See text
    /FNF                           /NOFNF
    /HEADER                        /HEADER
    /OPTION                        See text
    /REBUILD                       /NOREBUILD
    /SCOPE=keyword                 /SCOPE=LOCAL
    /SPACE=substitution-character  See text
    /VERBOSE=value                 See text

14.1.1  –  Parameters

 source

    This required parameter is a keyword or keyword=file-spec value
    specifying the input for the converter. The valid keywords are
    A1, CC, COMMA, DDS, LDAP, LDIF, MSMAIL, and TRUELDIF. In the case
    of CC, COMMA, LDIF, MSMAIL, and TRUELDIF, the keyword takes a
    required file specification value, specifying the name of the
    directory file to use as input.

 destination

    This required parameter is a keyword or keyword=file-spec value
    specifying the output for the converter. The valid keywords are
    A1, CC, COMMA, DB, DDS, LDAP, LDIF, MSMAIL, and TRUELDIF. In the
    case of CC, COMMA, LDIF, MSMAIL, and TRUELDIF, the keyword takes
    a required file specification value, specifying the name of the
    directory file to output.

14.1.2  –  Description

    The PMDF DIRSYNC/CONVERT command converts between LDIF format
    and other directory formats, such as ALL-IN-1, cc:Mail, PMDF
    databases, the DDS, comma-separated fields, LDAP, Microsoft
    Mail, and standard LDIF. The parameters for the command specify
    from which and to which format to convert, and in the case
    of file-based formats, the names of the files for input or
    output. Depending on the values of source and destination
    parameters, some other qualifiers can be available; see Valid
    PMDF DIRSYNC/CONVERT Qualifier Combinations. Note that these
    qualifiers must appear after the non-LDIF parameter; thus the
    general place to specify them is at the end of the command
    line.

    Table 2 Valid PMDF DIRSYNC/CONVERT Qualifier Combinations

    Source        Destination              Valid qualifiers

                                 ALL-IN-1

    A1            LDIF=file-    /DEBUG     /NODEBUG
                  spec
                                /OPTION
    LDIF=file-    A1            /DEBUG     /NODEBUG
    spec
                                /OPTION

                                 cc:Mail

    CC=file-spec  LDIF=file-    /DEBUG     /NODEBUG
                  spec
                                /DOMAIN
                                /FNF       /NOFNF
    LDIF=file-    CC=file-spec  /DEBUG     /NODEBUG
    spec

                          Comma-separated fields

    COMMA=file-   LDIF=file-    /ATTRIBUTES
    spec          spec
                                /DEBUG     /NODEBUG
                                /DN
                                /HEADER    /NOHEADER
                                /SPACE
    LDIF=file-    COMMA=file-   /ATTRIBUTES
    spec          spec
                                /DEBUG     /NODEBUG
                                /HEADER    /NOHEADER
                                /SPACE

                                 Database

    LDIF=file-    DB            /DEBUG     /NODEBUG
    spec
                                /REBUILD   /NOREBUILD

                                   DDS

    DDS           LDIF=file-    /DEBUG     /NODEBUG
                  spec
                                /SCOPE
    LDIF=file-    DDS           /DEBUG     /NODEBUG
    spec

                              Microsoft Mail

    MSMAIL=file-  LDIF=file-    /DEBUG     /NODEBUG
    spec          spec
    LDIF=file-    MSMAIL=file-  /DEBUG     /NODEBUG
    spec          spec

                              LDAP or X.500

    LDAP          LDIF=file-    /DEBUG     /NODEBUG
                  spec
                                /OPTION
    LDIF=file-    LDAP          /DEBUG     /NODEBUG
    spec
                                /OPTION

                              Standard LDIF

    TRUELDIF=file-LDIF=file-    /DEBUG     /NODEBUG
    spec          spec
    LDIF=file-    TRUELDIF=file-/DEBUG     /NODEBUG
    spec          spec
                                /DELTA     /NODELTA
                                /VERBOSE

    For instance, to dump an LDAP directory to an LDIF file, the
    command syntax would be:

 $ PMDF DIRSYNC/CONVERT LDAP LDIF=ldap.ldif/OPTION=PMDF_TABLE:sync_ldap_option.

    where PMDF_TABLE:SYNC_LDAP_OPTION. is a file containing at least
    the mandatory options LDAP_SERVER, LDAP_USER, LDAP_PASSWORD, and
    LDAP_BASE. See the PMDF System Manager's Guide for a detailed
    discussion of these options; in brief, LDAP_SERVER specifies
    the (TCP/IP) name of the LDAP server and the port on which the
    LDAP server runs, LDAP_USER and LDAP_PASSWORD specify the name
    and password to use to bind to the LDAP server, and LDAP_BASE
    specifies the location in the Directory Information Tree of the
    subtree of information to be extracted.

14.1.3  –  Command Qualifiers

14.1.3.1    /ATTRIBUTES

       /ATTRIBUTES=attribute-list

    This qualifier is valid when /DESTINATION or /SOURCE is COMMA,
    and in such cases either /ATTRIBUTES=attribute-list or /HEADER
    must be specified. This option specifies the LDIF file attributes
    to be written to or read from the comma-separated fields file.

14.1.3.2    /DEBUG

       /DEBUG
       /NODEBUG (default)

    The option enables debugging.

14.1.3.3    /DELTA

       /DELTA
       /NODELTA (default)

    These qualifiers are valid when /DESTINATION=TRUELDIF, and
    control the interpretation of the source LDIF file and hence what
    is generated as the corresponding output true LDIF file. /DELTA
    tells PMDF that the LDIF file entries should be interpreted
    as delta (add) entries; /NODELTA tells PMDF that the LDIF file
    entries should be interpreted as absolute entries.

14.1.3.4    /DESTINATION

       /DESTINATION=keyword

    Valid keywords are A1, CCMAIL, COMMA, DDS, FF, LDAP, LDIF, MSMAIL
    (a synonym for FF), and TRUELDIF. Either this qualifier or the
    /SOURCE qualifier must be specified with a non-LDIF keyword
    value. If /DESTINATION is not explicitly specified, the default
    is /DESTINATION=LDIF.

14.1.3.5    /DN

       /DN=attribute-list

    This qualifier is valid-and indeed mandatory-in conjunction with
    /SOURCE=COMMA. This mandatory option specifies the attributes to
    use for constructing a distinguished name.

14.1.3.6    /DOMAIN

       /DOMAIN=cc-domain

    This qualifier is valid when /SOURCE=CCMAIL. This optional
    qualifier specifies the pseudodomain name associated with the
    cc:Mail users.

14.1.3.7    /FNF

       /FNF
       /NOFNF (default)

    This qualifier is valid in conjunction with /SOURCE=CCMAIL. This
    option controls whether entries will be generated in "Last,
    First" format or in "First Last" format. The default is "Last,
    First" format.

14.1.3.8    /HEADER

       /HEADER
       /NOHEADER (default)

    This qualifier is valid in conjunction with /DESTINATION=COMMA
    or /SOURCE=COMMA, and in such cases either /HEADER or
    /ATTRIBUTES=attribute-list must be specified. This qualifier
    specifies whether a "header" line containing attribute names is
    to be read from or written to the comma-separated fields file.

14.1.3.9    /OPTION

       /OPTION=file-spec

    When the source or destination is A1 or LDAP, then this option
    is mandatory. This option specifies the file from which to read
    option settings such as password, etc.. For instance, if there
    is a channel that normally performs the A1 or LDAP extraction
    or updating, and the PMDF DIRSYNC/CONVERT command is being
    executed manually to do a manual extract or update, specifying
    /OPTION=channel-option-file can be appropriate.

14.1.3.10    /REBUILD

       /REBUILD
       /NOREBUILD (default)

    When the destination is DB, this option can be used to specify a
    list of databases which should be rebuilt from scratch (all prior
    existing entries deleted), rather than merely updated.

14.1.3.11    /SCOPE

       /SCOPE=keyword

    This qualifier is valid in conjunction with /SOURCE=DDS. This
    option controls the DDS search scope. Allowed values are LOCAL,
    WORLD, or CACHE.

14.1.3.12    /SOURCE

       /SOURCE=keyword

    Valid keywords are A1, CCMAIL, COMMA, DDS, FF, LDAP, LDIF, MSMAIL
    (a synonym for FF), and TRUELDIF. Either this qualifier or the
    /DESTINATION qualifier must be specified with a non-LDIF keyword
    value. If /SOURCE is not explicitly specified, the default is
    /SOURCE=LDIF.

14.1.3.13    /SPACE

       /SPACE=substitution-character

    This qualifier is valid in conjunction with /DESTINATION=COMMA or
    /SOURCE=COMMA. This optional qualifier specifies the character
    used in the LDIF file in place of the space character in
    attribute names (since space is not a legal character in an LDIF
    attribute name). If the /HEADER qualifier is being used, then
    the resulting "header" line written to the comma-separated output
    file will contain the space character in place of any occurrences
    of the character specified with /SPACE in the attribute names.

14.1.3.14    /VERBOSE

       /VERBOSE=value

    The qualifier is valid in conjunction with /SOURCE=LDAP or
    /DESTINATION=LDAP. value is an integer specifying the level of
    verbosity.

14.2    /COOK

    Process an LDIF file according to a recipe file.

    Syntax

      PMDF DIRSYNC/COOK  in-ldif-file-spec out-ldif-file-spec

    Command Qualifiers             Defaults

    /RECIPE=file-spec              See text

14.2.1  –  Parameters

 in-ldif-file-spec

    The specification of the LDIF file to read as input.

 out-ldif-file-spec

    The specification of the LDIF file to read as input.

14.2.2  –  Description

    The PMDF DIRSYNC/COOK utility uses a recipe file to generate an
    output LDIF file from an input LDIF file. The recipe file can be
    either a cooking recipe file, or a serving recipe file.

14.2.3  –  Command Qualifiers

14.2.3.1    /RECIPE

       /RECIPE=file-spec

    This required qualifier specifies the recipe file to use for
    converting the input LDIF file to the output LDIF file.

14.3    /DIFFERENCES

    Perform differencing of two LDIF files.

    Syntax

      PMDF DIRSYNC/DIFFERENCES  auth-ldif-file-spec

                                old-ldif-file-spec

                                delta-ldif-file-spec

    Command Qualifiers             Defaults

    /DEBUG                         /NODEBUG
    /EXCLUDE=attribute-list        See text.
    /INCLUDE=attribute-list        See text.
    /NAME=directory-name           See text.

14.3.1  –  Parameters

 auth-ldif-file-spec

    The specification of the authoritative LDIF file to read as
    input.

 old-ldif-file-spec

    The specification of the old LDIF file to read as input.

 delta-ldif-file-spec

    The specification of the delta LDIF file to generate as output.

14.3.2  –  Description

    The PMDF DIRSYNC/DIFFERENCES command performs differencing of two
    LDIF files and generates a delta LDIF file of the differences.

14.3.3  –  Command Qualifiers

14.3.3.1    /DEBUG

       /DEBUG
       /NODEBUG (default)

    The option enables debugging.

14.3.3.2    /EXCLUDE

       /EXCLUDE=comma-separated-list-of-attributes

    This option can be used to specify attributes to ignore when
    doing the differencing. By default, if neither /EXCLUDE nor
    /INCLUDE is specified, all attributes are compared.

14.3.3.3    /INCLUDE

       /INCLUDE=comma-separated-list-of-attributes

    This option can be used to specify attributes to compare when
    doing the differencing. By default, if neither /EXCLUDE nor
    /INCLUDE is specified, all attributes are compared.

14.3.3.4    /NAME

       /NAME=directory-name

    This option can be used to specify the name of the directory
    being compared, thereby allowing proper treatment of entries with
    an IGNORE_FOR attribute.

14.4  –  DIRSYNC

14.4.1    /DIRBOT

    Run a SYNC_DIRBOT channel.

    Syntax

      PMDF DIRSYNC/DIRBOT

    Command Qualifiers             Defaults

    /LEFTOVERS                     See text
    /NOUPDATE=dirlist              See text
    /UPDATE=dirlist                See text

14.4.1.1  –  Parameters

    None.

14.4.1.2  –  Description

    The PMDF DIRSYNC/DIRBOT utility can be used to run a SYNC_DIRBOT
    channel. If no qualifiers are specified, this is equivalent to

    $ @PMDF_COM:MASTER SYNC_DIRBOT

    Special qualifiers can be used to override the normal operation
    of the channel.

    Using the /LEFTOVERS qualifier forces the DIRBOT to use any
    .OLD LDIF files for directories that do not currently have new
    LDIF files present. When a directory update is forced with the
    /LEFTOVERS switches, and no cookie is available to send back to a
    directory, the cookie value "biscuit" is used. The various sync_
    xxx_master channels know about this value and will accept the
    update.

    The /UPDATE or /NOUPDATE qualifier can be used to control
    just which directories will be sent the results of the DIRBOT
    processing.

14.4.1.3  –  Command Qualifiers

14.4.1.3.1    /LEFTOVERS

    Use of the /LEFTOVERS qualifiers causes the DIRBOT to use .OLD
    LDIF files for any directories that do not presently have
    new LDIF files present. That is, specifying /LEFTOVERS is
    equivalent to having BEST_WITHIN set to an infinite time for
    every directory.

14.4.1.3.2    /UPDATE

       /UPDATE=dirlist
       /NOUPDATE=dirlist

    By default, if neither /UPDATE nor /NOUPDATE is specified,
    the DIRBOT sends its updates resulting from processing as
    normal, as specified in its option file. Use of /UPDATE or
    /NOUPDATE can be used to override the normal handling. Specifying
    /UPDATE=(dir1,dir2,...) will cause the updates to be sent only
    to the specified list of directories dir1,dir2,.... Specifying
    /NOUPDATE=(dir1,dir2,...) will cause the updates to be sent
    to all directories except the specified list of directories
    dir1,dir2,....

15  –  DUMPDB

    Dump contents of a PMDF CRDB database to a file.

    Syntax

      PMDF DUMPDB  input-database-spec [output-file-spec]

    Command Qualifiers    Defaults

    None.                 None.

15.1  –  Restrictions

    None.

15.2  –  Prompts

    Input database:      input-database-spec[,...]
    Output filee:        output-file-spec

15.3  –  Parameters

 input-database-spec

    The name of the database from which to read entries.

 output-file-spec

    The name of the ASCII file to which to write the entries stored
    in the database. If no output file is specified, the output is
    written to SYS$OUTPUT.

15.4  –  Description

    The PMDF DUMPDB utility writes the entries in a PMDF CRDB
    database to a flat ASCII file.

15.5  –  Examples

      The following command illustrates dumping the PMDF alias
      database to SYS$OUTPUT.

 $ PMDF DUMPDB PMDF_ALIAS_DATABASE
 adam.smith asmith@example.com
 bob.brown bbrown@example.com

16  –  ENCODE

    Encodes a binary file into a printable format for transmission
    as an e-mail message. Encoded files can be decoded with the
    DECODE utility. Both the standard MIME encodings as well as a
    few additional encodings (e.g., UUENCODE) are supported.

16.1  –  Restrictions

    None.

    Syntax

      PMDF ENCODE  input-file-spec encoded-file-spec

    Qualifiers            Defaults

    /ENCODING=type        /ENCODING=BASE64
    /FILENAME             /NOFILENAME
    /HEADER               /NOHEADER

16.2  –  Prompts

    Input file:   input-file-spec
    Output file:  encoded-file-spec

16.3  –  Parameters

 input-file-spec

    Specifies the name of an input file. The input file can be any
    OpenVMS file including binary files, keyed indexed files, or
    files with extended semantics such as DDIF files. Only a single
    input file can be specified; wildcards are not allowed.

 encoded-file-spec

    The name of the file to produce as output. The file output
    by ENCODE will contain all of the information necessary to
    reconstruct the original input file. The format of the output
    file is described in the Description section below.

16.4  –  Description

    PMDF DECODE and ENCODE have been, for the most part, made
    obsolete by PMDF MAIL. If you use PMDF MAIL, then files which
    you send with the SEND command will be encoded automatically,
    if necessary. Encoded messages which you receive will be decoded
    automatically, if necessary, and can simply be extracted to a
    file with the EXTRACT command. If, however, you do not use PMDF
    MAIL, then read on.

    The ENCODE and DECODE utilities are provided with PMDF as a means
    of transmitting OpenVMS binary files via MAIL. With ENCODE,
    a file can be encoded in a format which uses short records
    containing only printable characters. Such files can then be
    transmitted through most any mail system without being altered
    (e.g., lines wrapped, characters removed or replaced, etc.).
    ENCODE preserves all file contents and all file attributes
    when encoding a file. The contents and attributes are properly
    restored when decoded with DECODE. Absolutely any type of OpenVMS
    file can be transmitted with these two utilities - even indexed
    files with multiple keys and files with extended semantics such
    as DDIF files.

    Encoded files have two parts. The first part is a conventional
    RFC 822 message header. Header lines are used to describe the
    file format; this information includes a conventional OpenVMS
    FDL (file description language) description of the file and
    a description of the encoding used to convert the file into a
    printable form for transfer. ENCODE creates this header; DECODE
    reads it and uses the information it contains to reconstruct the
    file.

                                   NOTE

       Many encoded messages received with PMDF are automatically
       decoded for you, thus obviating the need to use PMDF DECODE
       at all. This is especially true when you use PMDF MAIL whose
       EXTRACT command will extract any MIME encoded message or
       message body part. If you use VMS MAIL, however, you can
       occasionally receive an encoded message which PMDF could not
       deliver in its decoded form to VMS MAIL owing to limitations
       of VMS MAIL itself.

16.5  –  Qualifiers

16.5.1    /ENCODING

       /ENCODING=type

    This qualifier controls the type of encoding used to encode the
    input file. The possible values for this qualifier are BASE64,
    CBASE64 (gzip compressed BASE64), BASE85, BINHEX (encoding only,
    not the file format), BTOA, HEXADECIMAL, PATHWORKS, QUOTED_
    PRINTABLE, UUENCODE, CUUENCODE (gzip compressed UUENCODE). BASE64
    encoding is the default; this is also the default decoding type
    used by DECODE.

16.5.2    /FILENAME

       /FILENAME
       /NOFILENAME (default)

    When used in conjunction with the /HEADER qualifier, this
    qualifier specifies that the filename should be included in the
    MIME headers generated. Only the name and extension portion of
    the file specification will be used; any node, device, directory,
    and version number information will be discarded. This qualifier
    does not specify the input file to use; only the name to use
    for the name parameter of the Content-type: header line and the
    filename parameter of the Content-disposition: header line. By
    default, no filename parameter is specified in the Content-type:
    or Content-disposition: header lines.

    Or if used with /ENCODING=UUENCODE, the /FILENAME qualifier
    causes the filename to be included on the "begin 600" line.

16.5.3    /HEADER

       /HEADER
       /NOHEADER (default)

    This qualifier controls whether or not a MIME-compliant header
    is placed at the beginning of the output. /HEADER is the default.
    /NOHEADER is used to produce output suitable for use in non-MIME
    messaging applications. Note that all structural information
    about the file is lost when /NOHEADER is used.

16.6  –  Examples

      See the example provided for the PMDF DECODE command. In that
      example, the use of PMDF ENCODE is also demonstrated.

17  –  FOLDER

    Place a message file into a VMS MAIL mail folder.

17.1  –  Restrictions

    None.

    Syntax

      PMDF FOLDER  message-file-spec[,...] [folder-name

                   [mail-file-spec]]

    Qualifiers            Defaults

    /BLANK                /NOBLANK
    /CC=address           None
    /FROM=address         See text
    /SUBJECT=test         None
    /TO=address           See text

17.2  –  Prompts

    Message file:  message-file-spec[,...]
    Folder:        folder
    Mail file:     mail-file-spec

17.3  –  Parameters

 message-file-spec[,...]

    One or more files to place into the specified mail folder;
    wildcards are not allowed.

 folder-name

    Optional name of the VMS MAIL folder in which to place the
    message.

 mail-file-spec

    Optional name of VMS MAIL mail file in which to place the
    message.

17.4  –  Description

    The FOLDER utility is used by the PMDF DELIVER utility to place
    mail messages in a user's VMS MAIL mail folder. Read and write
    privileges are required to place a message in the mail folder
    of another user. This utility is intended primarily for use by
    DELIVER; system managers and users are unlikely to find it useful
    in and of itself.

    All of the specified input files will be placed in the specified
    mail folder as a single mail message. Unless the /BLANK qualifier
    is specified, there will be no separators placed between each
    file as delimiters.

    The optional folder-name parameter specifies the name of the VMS
    MAIL folder in which to place the message. If not supplied, then
    the message will be placed in the NEWMAIL folder.

    If the option mail-file-spec parameter is not specified, then the
    default mail file for the specified user will be used. If /MM is
    used this parameter is meaningless and is not allowed.

17.5  –  Qualifiers

17.5.1    /BLANK

       /BLANK
       /NOBLANK (default)

    When placing multiple files into a folder, a blank line can
    optionally be used to separate each file. Use the /BLANK
    qualifier to select this option; by default no separators are
    used.

17.5.2    /CC

       /CC
       /NOCC (default)

    This qualifier can be used to specify the contents of the CC:
    line associated with the mail message being created. If no /CC
    qualifier is specified, then a blank CC: line will be generated.

17.5.3    /FROM

       /FROM
       /NOFROM (default)

    This qualifier can be used to specify the contents of the FROM:
    line associated with the mail message being created. If no /FROM
    qualifier is specified, then the FROM: line is blank.

17.5.4    /SUBJECT

       /SUBJECT
       /NOSUBJECT (default)

    This qualifier can be used to specify the contents of the
    SUBJECT: line associated with the mail message being created.
    If no /SUBJECT qualifier is specified, then a blank SUBJECT: line
    will be generated.

17.5.5    /TO

       /TO
       /NOTO (default)

    This qualifier can be used to specify the contents of the TO:
    line associated with the mail message being created. If no /TO
    qualifier is specified, then the TO: line is blank.

18  –  FORWARD

    Sets a forwarding address in the PMDF alias database.

18.1  –  Restrictions

    Nonprivileged users can only set or modify their own alias.

    Syntax

      PMDF FORWARD  [forwarding-address]

    Qualifiers                     Defaults

    /ADD                           /ADD
    /USER                          See text
    /SUBADDRESS                    None
    /DELETE                        /ADD

18.2  –  Parameters

 forwarding-address

    The forwarding address the alias will point at. The address
    is specified in RFC 822 format. Quoting might be required to
    preserve case or to enclose special characters such as at signs,
    @.

18.3  –  Description

    The FORWARD utility is designed to provide controlled access to
    the system alias database for regular unprivileged users. Users
    can establish an alias for the address corresponding to their
    own username, or any subaddresses associated with their address.
    There are no restrictions on what the alias is directed to. A
    privileged user can use this utility to set up a system alias for
    any address.

    If no parameter is given FORWARD simply displays current
    forwarding information from the alias database without changing
    it.

    PMDF FORWARD also checks to see if a logical name of the form
    PMDF_forwarding-address_PATTERN is defined. If such a logical
    name is defined, PMDF will translate it and use the equivalence
    name as the forwarding-address. The equivalence name is also
    scanned and the following substitutions are performed:

    1. $U and $u are replaced with the username whose forwarding
       address is being set. Subaddresses are removed; only the
       actual username is substituted.

    2. $F and $f are replaced with the address being forwarded. This
       includes both the username and any subaddresses.

    3. $D and $d are not replaced with anything, but if present set a
       flag that causes the alias to be deleted if it already exists.

    4. $$ is replaced with a single $; $ followed by any other
       character is replaced with just the character.

    System managers enable the FORWARD utility by creating an alias
    database with the CRDB utility. This can be done with the command

     $ PMDF CRDB NLA0: PMDF_ALIAS_DATABASE

    Skip this step if you already have an alias database.

18.4  –  Qualifiers

18.4.1    /ADD

    Add the entry to the database. This is the default action.

18.4.2    /USER

       /USER=username

    This qualifier is used to specify an alternate user whose alias
    is to be modified. The default is to modify an alias for the user
    of the FORWARD utility. SYSNAM privilege is required to set an
    alias for another user. If using the /USER qualifier, specify it
    before any other qualifiers.

18.4.3    /SUBADDRESS

       /SUBADDRESS=subaddress

    Specifies a subaddress to be set. Subaddresses are addresses
    that are explicitly qualified by the username they are associated
    with; they have a local-part of the form username+subaddress.
    The /SUBADDRESS and /USER qualifiers are mutually exclusive.
    Note that subaddresses can be set by using a username of the form
    username+subaddress in conjunction with /USER; this qualifier is
    simply a convenience for users who want to set subaddresses for
    themselves.

18.4.4    /DELETE

    The /DELETE qualifier tells FORWARD to delete the specified
    alias. No parameter is allowed if this qualifier is used.

18.5  –  Examples

      Assuming that the logical name PMDF_YMIR_PATTERN has an
      equivalence string of $U@YMIR.BITNET, the command

        $ PMDF FORWARD/USER=JOHN YMIR

      would set up an alias for user NED that translates to the
      address JOHN@YMIR.BITNET.

19  –  G3

    Analyze the contents of a PMDF-FAX G3 file and generate a DDIF
    file containing the G3 file's bitmaps.

    Syntax

      PMDF G3  G3-file-spec [DDIF-file-spec]

    Command Qualifiers    Defaults

    /CDA                  /CDA
    /EDIT                 None
    /INFORMATION          /INFORMATION
    /MAGNIFICATION=factor /MAGNIFICATION=1

19.1  –  Restrictions

    o  Will only operate on PMDF-FAX G3 files; files with other
       formats will be rejected.

    o  Requires SYSLCK privilege to operate.

    o  This utility is supplied only with the PMDF-FAX optional
       layered product.

19.2  –  Prompts

    Input file:   G3-file-spec
    Output file:  DDIF-file-spec

19.3  –  Parameters

 G3-file-spec

    The name of a PMDF-FAX G3 file. G3 will check that a proper G3
    file is specified and will abort execution when supplied the name
    of a non-G3 file. Only a single input file name may be supplied;
    wildcards are not allowed.

 DDIF-file-spec

    The name of a DDIF file (CDA document) to which to write the
    input file's bitmaps. This file will be created by G3 and may
    subsequently be viewed with the CDA viewer as shown in the
    example below. If the /NOCDA or /EDIT qualifies are used, then
    this parameter must be omitted.

19.4  –  Description

    The G3 utility may be used to analyze the contents of a G3 file
    in a G3_TO_FAX channel queue directory. In addition, the G3
    utility is capable of converting a G3 file to a DDIF file which
    may then be viewed with the HP CDA Viewer. If you merely want to
    view header and delivery information in a G3 file, then use the
    /NOCDA qualifier. This will disable the time-consuming output of
    a DDIF file containing the bitmap images stored in the G3 file.

    Information about each of the To: recipients in a G3 file may be
    edited using the edit mode invoked with the /EDIT qualifier. This
    allows incorrect FAX telephone numbers to be edited, delivery to
    specific recipients to be cancelled, etc.

                                   NOTE

       The G3 utility is part of the PMDF-FAX software product. It
       is not part of the base PMDF distribution.

19.5  –  Command Qualifiers

19.5.1    /CDA

       /CDA (default)
       /NOCDA

    By default a CDA document is output by G3. This document is
    a DDIF file containing the individual bitmaps stored in the
    G3 file. When the /CDA qualifier is used, the DDIF-file-spec
    parameter must be supplied.

    The DDIF-file-spec parameter must be omitted when the /NOCDA
    qualifier is specified. The /MAGNIFICATION qualifiers may not be
    used in conjunction with the /NOCDA qualifier.

19.5.2    /EDIT

    When the /EDIT qualifier is given, the G3 utility operates in
    edit mode, presenting each To: address contained in the G3
    file for editing. The /CDA, /MAGNIFICATION, and /INFORMATION
    qualifiers may not be used in conjunction with the /EDIT
    qualifier. In addition, the output DDIF file specification may
    not be given when this qualifier is used.

19.5.3    /INFORMATION

       /INFORMATION (default)
       /NOINFORMATION

    By default, information about the G3 file is displayed (e.g.,
    the recipients of the FAX message embodied by the G3 file and
    the delivery status associated with each recipient). When the
    /NOINFORMATION qualifier is used, the display of this information
    is suppressed.

19.5.4    /MAGNIFICATION

       /MAGNIFICATION=factor

    When a CDA document is output, it is scaled to be the same size
    as the actual FAX message (approximately 8.5 by 10.5 inches).
    This corresponds to a magnification of 1 (a scaling by a factor
    of unity). With the /MAGNIFICATION qualifier, the document may be
    scaled upwards or downwards by a prescribed scaling factor. For
    instance, to reduce the document to half size, use the qualifier
    /MAGNIFICATION=0.5. This qualifier may not be used in conjunction
    with the /NOCDA qualifier.

19.6  –  Examples

      The following example illustrates the use of the CDA Viewer to
      view the FAX images contained in a G3 file.

        $ PMDF G3 PMDF_QUEUE:[g3_to_fax]xyzzy.01 fax.ddif
        $ VIEWER/INTERFACE=DECWINDOWS/OVERRIDE fax.ddif

20  –  INSTALL

    Install or deinstall PMDF images and databases.

    Syntax

      PMDF INSTALL  operation-type

    Command Qualifiers    Defaults

    None.                 None.

20.1  –  Restrictions

    Requires CMKRNL privilege.

20.2  –  Prompts

    Operation:  operation-type

20.3  –  Parameters

 operation-type

    The type of operation to perform. May be one of ADD, CREATE,
    DELETE, LIST, REMOVE, or REPLACE.

20.4  –  Description

    The PMDF INSTALL utility is used to install or deinstall PMDF
    images. This utility invokes the command file IMAGE_INSTALL.COM
    with a command of the form

    $ @PMDF_COM:image_install.com PMDF operation-type

    where OPERATION-TYPE is one of ADD, CREATE, DELETE, LIST, REMOVE,
    or REPLACE. Each of these operations corresponds to the OpenVMS
    INSTALL utility operation of the same name; consult the OpenVMS
    Install Utility Reference Manual for descriptions of these
    operations. IMAGE_INSTALL.COM invokes the OpenVMS INSTALL utility
    and executes the operation OPERATION-TYPE for each file specified
    in the the file PMDFIMAGE.DAT in the PMDF_COM: directory.
    (Exclamation marks are used in that file to introduce comments.)

    The PMDFIMAGE.DAT file is reserved for PMDF use and should
    not be modified. PMDF INSTALL will also use an optional, site-
    supplied PMDF_COM:SITEIMAGE.DAT file, of the same format as the
    PMDFIMAGE.DAT file, listing additional site-specific files. Thus
    sites that want to install additional, site-specific PMDF images,
    should do so by adding them to their own SITEIMAGE.DAT file.

    Note that the PMDF startup procedure installs PMDF at system
    startup by issuing the command

    $ @PMDF_COM:image_install.com PMDF CREATE

    The PMDF INSTALL command is not used by the startup procedure
    since not all sites insert the PMDF verb into their system DCL
    tables.

    CMKRNL privilege is required to use the PMDF INSTALL utility.

20.5  –  Examples

      The following command may be used to deinstall any installed
      PMDF images:

        $ PMDF INSTALL DELETE

21  –  KILL

    Kill all PMDF component processes.

    Syntax

      PMDF KILL

    Command Qualifiers    Defaults

    None.                 None.

21.1  –  Restrictions

    Must have privileges sufficient to perform a STOP/ID upon the
    processes in question.

21.2  –  Parameters

    None.

21.3  –  Description

    The PMDF KILL utility prompts you for each PMDF process and asks
    if you want to kill it.

    The PMDF KILL utility immediately and indiscriminately kills the
    specified process (using STOP/ID), even if that process is in
    the middle of transferring e-mail. So use of the PMDF SHUTDOWN
    utility, which performs an orderly shutdown, is generally
    preferable.

22  –  LICENSE

    Activate or deactivate PMDF bundle licenses on a node.

    Syntax

      PMDF LICENSE  operation-type

    Command Qualifiers    Defaults

    None.                 None.

22.1  –  Restrictions

    Requires SYSNAM and CMEXEC privileges.

22.2  –  Prompts

    Operation:  operation-type

22.3  –  Parameters

 operation-type

    The type of operation to perform. May be one of LOAD or UNLOAD.

22.4  –  Description

    The PMDF LICENSE utility is used to activate (load) or deactivate
    (unload) a PMDF license Product Authorization Key (PAK) on a
    given OpenVMS system. The PMDF license PAK must already be loaded
    with the OpenVMS LICENSE utility. However, that is not sufficient
    to activate the license. PMDF's model for debitting license usage
    units (based upon CPU type) differs from HP's. Because of this
    difference, an additional utility-the PMDF LICENSE utility - is
    required to properly debit usage units from a PMDF license PAK.

    Normally the PMDF LICENSE utility is run at system startup by the
    PMDF_STARTUP.COM command procedure. However, it may also be run
    manually. When it is used to unload a license, the usage units
    used by that machine are made available for use by other systems
    in the cluster.

    Note that the use of the OpenVMS LICENSE utility is sufficient
    for loading and activating license PAKs for PMDF-MTA, PMDF-
    DIRSYNC, PMDF-FAX, PMDF-LAN, PMDF-MB400, PMDF-MR, PMDF-MSGSTORE,
    PMDF-POPSTORE, PMDF-TLS, PMDF-X400, and PMDF-XGS. The PMDF
    LICENSE utility does not need to be (and cannot be) used to
    activate license PAKs for PMDF-MTA or the listed layered
    products.

22.5  –  Examples

      To activate a PMDF license, use the command

        $ PMDF LICENSE LOAD
        %PMDF-I-LOADED, 1 license unit loaded

      Had the license already of been activated then the
      informational message

        %PMDF-I-ALREADY, 1 license unit already loaded

      would have been displayed. To deactivate a license, use the
      command

        $ PMDF LICENSE UNLOAD
        %PMDF-I-UNLOADED, 1 license unit unloaded

23  –  LIST Servers

    PMDF provides a combined mail and list server, referred to in
    this document as a "mail server". Mail servers are used to
    distribute files via e-mail and allow users to subscribe or
    unsubscribe from mailing lists. If your system manager has
    configured a mail server at your site, then you can query the
    server via e-mail to determine what files and mailing lists are
    available.

23.1  –  Using Servers

    Commands directed to a mail server take the form of a mail
    message addressed to

    mailserv@mail-server-host

    where MAIL-SERVER-HOST is the host name of the machine running
    the mail server. You need to obtain this name from your system
    manager. The text of the message contains mail server commands,
    one command per line.

    For example, suppose the address of a mail server is
    mailserv@example.com. To obtain a help message from the server
    as well as a list of the available files and mailing lists, you
    would send a message much like the one shown below.

    Example 1  Sending Commands to a Mail Server

    $ MAIL
    MAIL> SEND
    To:     in%"mailserv@example.com"
    Subj:
    Enter your message below. Press CTRL/Z when complete, CTRL/C to quit:
    HELP
    INDEX
    LISTS
 <CTRL/Z>

    MAIL> EXIT
    $

    After a short while, you will receive back three messages from
    the mail server: the first message in response to the HELP
    command, the second in response to the INDEX command, and
    the third in response to the LISTS command. If your command
    specifications are in error, then the mail server will send you
    an error notification.

    Typically, mail from the mail server will have a reply address
    which differs from the address you use to send commands to
    it. This is intentional and is done to prevent potential mail
    loops. One consequence of this is that you cannot direct further
    commands to the server by replying to messages from it. You must
    always initiate a new message with the send command; you cannot
    use the reply command.

    A brief description of the available commands is given in the
    table below; complete descriptions are described under the
    "Commands" subtopic. Lines beginning with an exclamation point,
    !, are interpreted as comment lines.

    Table 2 Summary of Mail and List Server Commands

    Command          Description

    CONFIRM          Confirm a command from a previous message
    DIRECTORY        Obtain directory listing of available files
    DIRECTORY/LIST   Obtain directory listing of available mailing
                     lists
    ENCODING         Set default file transmission encoding
    END              Terminate processing, accept no additional
                     commands
    EXIT (see END)   Same as END
    FINISH (see      Same as END
    END)
    HELP             Retrieve the server-specific help information
    INDEX            Retrieve the index of available files
    LISTS            Retrieve the index of available mailing lists
    MAXIMUM          Set maximum message size; large messages will be
                     divided into several messages, each smaller than
                     this size
    MODE             Set the default file reading mode
    PURGE/LIST       Purge comment lines (such as unsubscribed
                     addresses) from the membership list
    QUIT (see END)   Same as END
    SEND             Retrieve the specified files
    SEND/LIST        Retrieve the membership list for a given mailing
                     list
    SEND/LIST/COMMENTRetrieve the membership list for a given mailing
    (see SEND/LIST)  list, including members' RFC 822 comment fields
    SEND/LIST/NOCOMMERetrieve the membership list for a given mailing
    (see SEND/LIST)  list, stripping members' RFC 822 comment fields
    STOP (see END)   Same as END
    SUBSCRIBE        Subscribe to a mailing list
    UNSUBSCRIBE      Unsubscribe from a mailing list

23.2  –  Commands

    Note that while there is a fair amount of commonality amongst
    the commands accepted by many of the different mail servers,
    differences also exist. Do not expect PMDF mail server commands
    to work with other mail servers and do not expect other mail
    server commands to work with PMDF mail servers. When you are
    unsure of what sort of mail server you are dealing with, the
    first order of business should be obtaining help information for
    that server. Often this can be done by sending the command HELP
    to the server.

23.2.1  –  CONFIRM

    Confirm a command from a previous message.

    Syntax

      CONFIRM  cookie

23.2.1.1  –  Parameters

 cookie

    Required cookie string to confirm the command.

23.2.1.2  –  Description

    The CONFIRM command is used to confirm for MAILSERV the execution
    of a command from a previous message.

    That is, for security your system administrators might have
    configured MAILSERV to require confirmation of certain commands.
    If you receive a message from MAILSERV saying that you need to
    send a

    CONFIRM cookie-string

    message back to MAILSERV in order for it to perform some
    particular command you previously requested, then if you want
    that command executed you must send back exactly

    CONFIRM cookie-string

    where COOKIE-STRING is the exact string MAILSERV tells you to
    send for that command.

    Note that you should send a new message back to MAILSERV
    containing the required CONFIRM command, rather than simply
    resending or bouncing MAILSERV's own message back to MAILSERV (to
    ensure that you hear about any errors in processing your CONFIRM
    command).

    Note that if you receive a message from MAILSERV talking about
    confirming a command that you did not send yourself, then that
    might mean that someone is attempting masquerade as you in
    e-mail and you might want to take this up with your system
    administrators.

23.2.1.3  –  Error messages

  %MAILSERV-F-NOCOOKIE, There is no confirmation-
 pending command labelled

      There was no command corresponding to such a cookie string
      awaiting confirmation. Check that you entered the cookie
      correctly.

23.2.2  –  DIRECTORY

    Obtain a directory listing of the available files.

    Syntax

      DIRECTORY  [file-spec]

23.2.2.1  –  Parameters

 file-spec

    Optional file name specification indicating which files to obtain
    a directory listing of. All OpenVMS file and directory wild cards
    are supported. A directory specification can be used; no device
    name or root directory specification is allowed.

23.2.2.2  –  Description

    The DIRECTORY command provides a directory listing of the
    available files. The listing is returned to you as a mail
    message.

    The file-spec parameter is optional and, if omitted, defaults
    to "*". If you are unsure of what to use, omit the parameter and
    send simply the command

    DIRECTORY

    This will provide you with a list of the files and directories
    in the top-level directory of the mail server. You can then
    this information to refine your queries; e.g., investigate the
    contents of an intriguing directory,

    DIRECTORY [GAMES...]

23.2.2.3  –  Error messages

  %MAILSERV-W-NOFILES, no files found

      The supplied file specification does not match any available
      files.

  %MAILSERV-F-NOFILESERV, file service is not enabled

      The mail server is not configured to operate as a file server.

  %MAILSERV-W-WRITEERR, file writing error

      An error occurred while the server was producing your directory
      listing. Try resending the command at a later time.

23.2.2.4    /LIST

    Obtain a listing of the available mailing lists.

    Syntax

      DIRECTORY/LIST  [list-spec]

23.2.2.4.1  –  Parameters

 list-spec

    Optional mailing list specification indicating which mailing
    lists to obtain a listing of. OpenVMS wild cards are supported.

23.2.2.4.2  –  Description

    The DIRECTORY command provides a listing of the available mailing
    lists.

    The list-spec parameter is optional and, if omitted, defaults to
    "*". Generally, there is no need to use this parameter unless you
    are interested in a specific mailing list. For instance, if you
    merely want to know if there is a mailing list about zeugmes, you
    might use the command

    DIRECTORY/LIST *ZEUGME*

    This will provide you with the names of any mailing lists which
    contain the phrase "zeugme" in them. Note that just because a
    mailing list is available does not necessarily mean that you can
    subscribe to it. The site might have established restrictions
    governing who can or cannot subscribe to some or all mailing
    lists.

23.2.2.4.3  –  Error messages

  %MAILSERV-W-NOLISTS, no lists found

      The supplied mailing list specification does not match any
      available mailing lists.

  %MAILSERV-F-NOMAILLIST, mailing lists are not enabled

      The mail server is not configured to operate as a list server.

  %MAILSERV-W-WRITEERR, file writing error

      An error occurred while the server was producing your listing
      of mailing lists. Try resending the command at a later time.

23.2.3  –  ENCODING

    Specify the file encoding to use.

    Syntax

      ENCODING  encoding

23.2.3.1  –  Parameters

 encoding

    Required parameter specifying the file encoding to use. The
    available encodings are: 8BIT, 7BIT, BASE32, BASE64, CBASE64
    (gzip compressed BASE64), BASE85, BINHEX (encoding only, not
    the BINHEX file format), BTOA, HEXADECIMAL, PATHWORKS, QUOTED_
    PRINTABLE, UUENCODE, and CUUENCODE (gzip compressed UUENCODE).

23.2.3.2  –  Description

    Binary files cannot be transmitted directly as electronic mail;
    they must first be encoded into a "printable" format. This,
    of course, means that they must be decoded upon receipt. The
    ENCODING command is used to specify the encoding to be applied
    to files requested with the SEND command. When selecting an
    encoding, be sure to select an encoding which you can decode.
    If your mail is handled by PMDF, then you can decode any of the
    encodings offered by PMDF mail servers.

    The encoding specified with the ENCODING command applies to
    all subsequent SEND commands in the same message. It can be
    overridden with a subsequent ENCODING command or, on a per
    command, basis with the SEND command's /ENCODING qualifier. And,
    of course, encodings established in previous messages sent to
    the server have no effect on subsequent messages which you might
    send.

    The BASE64 and QUOTED_PRINTABLE encodings are described in RFC
    2045 (MIME, Part One). The HEXADECIMAL encoding is a simple
    hexadecimal encoding of the data. The data is encoded in 8 bit
    byte order. Each 8 bit byte is represented with two characters;
    the first character describes the high four bits and the second
    describes the low four bits. The UUENCODE encoding is compatible
    with the popular UUENCODE and UUDECODE utilities.

    BASE64 is usually the best encoding to use: it is most likely
    to survive any mangling that might occur as the mail message
    works its way through the networks to you (e.g., line wrapping,
    character set translation, space stripping, etc.).

23.2.3.3  –  Examples

      The commands,

        ENCODING BASE64
        MODE BLOCK
        SEND [.GIF]BOATS*.GIF
        SEND/MODE=TEXT [GIF]INDEX.TXT

      set the default encoding to BASE64 and the default file
      reading mode to BLOCK. Any files matching the specification
      [GIF]BOATS*.GIF will be sent using these defaults. However, the
      file [GIF]INDEX.TXT will be sent as an ordinary text file owing
      to the use of the /MODE=TEXT qualifier.

23.2.3.4  –  Error messages

  %MAILSERV-W-INSFPRM, missing command parameters

      You failed to supply the name of the encoding to use. Resend
      the command with a valid encoding name specified.

  %MAILSERV-W-IVKEYW, unrecognized keyword - check validity and spelling

      You specified an unknown encoding. Resend the command with a
      valid encoding name specified.

23.2.4  –  END

    Terminates command processing.

    Syntax

      END

23.2.4.1  –  Description

    The END command and its synonyms EXIT, FINISH, QUIT, and STOP all
    cause MAILSERV command processing to be terminated. The remainder
    of the message is discarded without any additional processing.

23.2.5  –  HELP

    Obtain help on using the mail server.

    Syntax

      HELP

23.2.5.1  –  Description

    The HELP command returns a description of the commands recognized
    by the mail server.

23.2.5.2  –  Error messages

  %MAILSERV-F-HLPNOTAVA, Help for server is presently unavailable

      No help information is currently available. This may or may not
      be a temporary condition.

  %MAILSERV-W-MAXPARM, too many parameters

      You supplied a parameter after the HELP command. The HELP
      command does not accept any parameters (e.g., does not take
      a "topic" parameter).

23.2.6  –  INDEX

    Obtain an index of the available files.

    Syntax

      INDEX

23.2.6.1  –  Description

    The INDEX command returns an index describing the files that the
    mail server can provide with the SEND command. This description
    might not give the names of each and every available file;
    for such information use the DIRECTORY command. The index is,
    typically, a simple description of some of the available files
    and, perhaps, a description of each of the top-level directories.

23.2.6.2  –  Error messages

  %MAILSERV-F-INDNOTAVA, Index for server is presently unavailable

      No file index information is currently available. This may
      or may not be a temporary condition. Try using the DIRECTORY
      command in the meantime.

  %MAILSERV-W-MAXPARM, too many parameters

      You supplied a parameter after the INDEX command. The INDEX
      command does not accept any parameters. Resend the command
      without any parameters.

23.2.7  –  LISTS

    Obtain an index of the available mailing lists.

    Syntax

      LISTS

23.2.7.1  –  Description

    The LISTS command returns an index describing the mailing lists
    that the mail server handles. This description might not give
    the names of each and every available mailing list; for such
    information use the DIRECTORY/LIST command. The index is, more
    often than not, a simple description of the mailing lists handled
    by the server. It might also describe any policies associated
    with the lists (e.g., who can subscribe, how to post to the list,
    etc.).

23.2.7.2  –  Error messages

  %MAILSERV-F-LSTNOTAVA, Index of lists is presently unavailable

      No mailing list index information is currently available.
      This may or may not be a temporary condition. Try using the
      DIRECTORY/LIST command in the meantime.

  %MAILSERV-F-NOMAILLIST, mailing lists are not enabled

      The mail server is not configured to operate as a list server.

  %MAILSERV-W-MAXPARM, too many parameters

      You supplied a parameter after the LISTS command. The LISTS
      command does not accept any parameters. Resend the command
      without specifying any parameter.

23.2.8  –  MAXIMUM

    Set the maximum message size; larger messages will be split into
    several smaller messages.

    Syntax

      MAXIMUM  size-units size-value

23.2.8.1  –  Parameters

 size-units

    Required parameter specifying the units in which the size-value
    is expressed. The possible units are BYTES, BLOCKS, and LINES.

 size-value

    Required parameter specifying the limiting value. This must be an
    integer value which exceeds zero.

23.2.8.2  –  Description

    Many gateways impose a limit on the maximum size message they
    will process. Because the mail server is often called upon
    to transmit large files it frequently can run afoul of such
    limitations.

    The MAXIMUM command provides a way around such limitations. When
    a maximum size is set, messages larger than that size will be
    fragmented (split) into multiple messages, each message no larger
    than the specified maximum size. The fragmentation scheme is
    compliant with the message/partial type described in RFC 2046
    (MIME, Part Two).

    The possible values for size-units are:

    BYTES  size-value specifies the maximum number of bytes allowed
           in a single message. This value includes the initial
           header attached to the message. (Note that the header
           can increase in size through the addition of header lines
           during routing.)
    BLOCKS size-value specifies the maximum number of "blocks" of
           bytes allowed in a single message. The size of a block
           is a PMDF configuration option controlled by the system
           manager with the PMDF BLOCK_SIZE option; its default value
           is 1024 bytes. As with BYTES, this value includes the
           initial header attached to the message.
    LINES  size-value specifies the maximum number of lines allowed
           in a single message. This limit is independent of the
           number of bytes or blocks. It is necessary to have an
           independent limit because some gateways limit message size
           based on both line count as well as overall size.

    The limits specified with the MAXIMUM command apply to all
    subsequent SEND commands in the same message. The imposed limits
    can be overridden with a subsequent MAXIMUM command. And, of
    course, limits you imposed in previous messages sent to the
    server have no effect on subsequent messages which you might
    send.

    Both line count and byte size limits can be simultaneously
    imposed. For instance, the two commands:

    MAXIMUM BYTES 10000
    MAXIMUM LINES 1000

    Will result in messages larger than either 10,000 bytes or 1,000
    lines being automatically fragmented into smaller messages, each
    containing fewer than 10,000 bytes and 1,000 lines.

    See the SEND command description for further information on the
    usage of this command.

23.2.8.3  –  Error messages

  %MAILSERV-W-IVKEYW, unrecognized keyword -
 check validity and spelling

      You specified an unknown unit specification. Resend the command
      specifying a legal value for the size-units parameter.

  %MAILSERV-W-NUMBER, invalid numeric value - supply an integer

      An invalid numeric value was supplied for the size-value
      parameter. Resend the command specifying a positive integer
      value.

  %MAILSERV-W-POSITIVE, invalid numeric value - supply a positive integer

      An invalid numeric value was supplied for the size-value
      parameter. Resend the command specifying a positive integer
      value.

  %MAILSERV-W-INSFPRM, missing command parameters

      You failed to specify one or both of the required parameters.
      Resend the command specifying both the size-units and size-
      value parameters.

23.2.9  –  MODE

    Set the file reading mode.

    Syntax

      MODE  mode

23.2.9.1  –  Parameters

 mode

    Required parameter specifying the file reading mode in which
    files are to be accessed. There are four supported modes: TEXT,
    BLOCK, RECORD, and RECORD-ATTRIBUTE.

23.2.9.2  –  Description

    Under OpenVMS, files can be read (accessed) in a variety of
    ways. The MODE command controls the method used to read the
    files the mail server returns. Note that default modes apply
    automatically to various sorts of files; this command provides a
    way to override these defaults.

    The possible values for mode are:

    TEXT            Read files as ordinary text files. In TEXT mode,
                    files are read as a sequence of records and sent
                    as ordinary text. TEXT mode is the default for
                    files when no other mode has been set.
    BLOCK           Read files as raw binary data. Any record
                    boundary information, including carriage returns,
                    line feeds, line length counts, and indexing
                    information for indexed files simply becomes
                    part of the data. The resulting data typically
                    can only be used on the computer system it is
                    intended for. (Note that this not necessarily
                    restricted to OpenVMS; it is possible to store
                    files intended for other systems as VMS files.)
                    This is the recommend mode to use for binary
                    files.
    RECORD          Read files as a series of records. No record
                    boundaries of any kind appear in the output data.
                    This mode is appropriate for fixed length records
                    or records that are internally self-delimiting.
    RECORD-         Read files as a series of records. If the record
    ATTRIBUTE       attributes of the file indicate that boundaries
                    should be placed between the records (i.e.,
                    some form of carriage control is requested), a
                    boundary delimiter will be placed between each
                    record. This character is normally a line feed.

    The reading mode specified with the MODE command applies to
    all subsequent SEND commands in the same message. It can be
    overridden with a subsequent MODE command or, on a per command,
    basis with the SEND command's /MODE qualifier. And, of course,
    reading modes established in previous messages sent to the server
    have no effect on subsequent messages which you might send.

    See the SEND command description for further information on the
    usage of this command.

23.2.9.3  –  Examples

      The commands,

        MODE BLOCK
        ENCODING BASE64
        SEND [.GIF]BOATS*.GIF
        SEND/MODE=TEXT [GIF]INDEX.TXT

      set the default reading mode to BLOCK and the default file
      encoding to BASE64. Any files matching the specification
      [GIF]BOATS*.GIF will be sent using these defaults. However,
      the file [GIF]INDEX.TXT will be sent as an ordinary text file
      owing to the use of the /MODE=TEXT qualifier.

23.2.9.4  –  Error messages

  %MAILSERV-W-IVKEYW, unrecognized keyword -
 check validity and spelling

      You specified an unknown mode. Resend the command specifying a
      legal value for the mode parameter.

  %MAILSERV-W-INSFPRM, missing command parameters

      You failed to specify the mode parameter. Resend the command
      specifying a legal value for the mode parameter.

23.2.10  –  PURGE

23.2.10.1    /LIST

    Remove comment lines from a mailing list file.

    Syntax

      PURGE/LIST  list-name

23.2.10.1.1  –  Parameters

 list-name

    Required parameter specifying the name of the list from which
    comment lines are to be removed. Wildcards are not allowed.

23.2.10.1.2  –  Description

    Mailing list files can contain comment lines. In particular,
    unsubscribed addresses are normally indicated via comment lines
    in the file. The PURGE/LIST command causes such comment lines
    to be removed, which can be useful to "clean up" the mailing
    list file for a list which has undergone a great many changes in
    membership.

23.2.10.1.3  –  Examples

      The commands,

        PURGE/LIST fads-list
        SEND/LIST fads-list

      causes the fads-list mailing list membership file to have
      comment lines removed from the file, and then a copy of the
      file is requested.

23.2.10.1.4  –  Error messages

  %MAILSERV-W-CANTDELETE, cannot delete old mailing list file

      An error occurred while trying to delete the old mailing list
      file. Try again later; the postmaster in charge of the mail
      server has been notified.

  %MAILSERV-W-CANTUPDATE, cannot update mailing list file

      An error occurred while trying to update the mailing list file.
      Try again later; the postmaster in charge of the mail server
      has been notified.

  %MAILSERV-W-FLK, file currently locked by another user

      The specified mailing list file is not currently accessible.
      Try again later.

  %MAILSERV-W-INSFPRM, missing command parameters

      You failed to specify the list-name parameter. Resend the
      command specifying a legal value for the list-name parameter.

  %MAILSERV-W-LNF, mailing list not found

      The mailing list you specified does not exist. Resend the
      command specifying the name of a valid mailing list. You can
      use the DIRECTORY/LIST command to obtain a listing of the valid
      mailing list names.

  %MAILSERV-W-LSTCREERR, unable to create new mailing list

      The mailing list specified by the list-name parameter does not
      exist and could not be created. Check to make sure that you
      specified the correct list name.

  %MAILSERV-F-NOMAILLIST, Mailing lists are not enabled

      The mail server is not configured to operate as a list server.

  %MAILSERV-W-PRV, insufficient privilege or file protection violation

      You are not allowed to purge this mailing list. The MAILSERV_
      ACCESS mapping can be used to change the default behavior of
      the MAILSERV PURGE/LIST command. Please refer to the Mail and
      list server section of the PMDF System Manager's Guide.

23.2.11  –  SEND

    Retrieve one or more files from the server.

    Syntax

      SEND  file-spec extension

    Qualifiers            Defaults

    /ENCODING=encoding    None
    /MODE=mode            /MODE=TEXT

23.2.11.1  –  Parameters

 name

    Required parameter specifying the file or files to send. This
    parameter can include a directory specification, but must include
    a file name. OpenVMS wild cards are allowed in both the directory
    and file specification.

 extension

    Optional parameter which can be used to specify the extension of
    the file to be sent.

23.2.11.2  –  Description

    The SEND command sends the requested files back to you via
    electronic mail. Wild cards can be used in the file-spec
    parameter to specify multiple files. Each file is sent as a
    separate message.

    The optional extension parameter is supplied for compatibility
    with BITNET's LISTSERV file servers. When supplied, a period
    followed by the value of this parameter will be appended to the
    value of the file-spec parameter to form the actual file name to
    use. For instance, the command

    SEND NEWTAGS DESCRIPT

    is interpreted as a request for the file NEWTAGS.DESCRIPT and is
    equivalent to the command

    SEND NEWTAGS.DESCRIPT

    Large files can automatically be split into multiple smaller
    files prior to transmission; see the description of the MAXIMUM
    command for specific details. When the MAXIMUM command is used,
    it must be specified prior to the SEND command; e.g.,

    MAXIMUM BYTES 10000
    MAXIMUM LINES 1000
    SEND [BOOK]CHAPTER*.TXT

    Files can be read in a variety of ways; this can be controlled
    with the MODE command or the /MODE qualifier. Files containing
    non-text information must be encoded in some way; the ENCODING
    command or the /ENCODING qualifier control the encoding used.
    When using the MODE and ENCODING commands, be sure to specify
    them before the SEND command requiring their use.

    Use the DIRECTORY and INDEX commands to obtain information on
    available files which can be obtained with the SEND command.

23.2.11.3  –  Qualifiers

23.2.11.3.1    /ENCODING

       /ENCODING=encoding

    The /ENCODING qualifier specifies the encoding to use for this
    particular file. It does not establish any default for future
    SEND commands, but it overrides any default set with the ENCODING
    command for this particular SEND command. The value is required
    and must be one of the values the ENCODING command accepts.

23.2.11.3.2    /MODE

       /MODE=mode

    The /MODE qualifier specifies the mode to use for this particular
    file. It does not establish any sort of default for future SEND
    commands, but it overrides any default set with the MODE command
    for this particular SEND command. The value is required and must
    be one of the values the MODE command accepts.

23.2.11.4  –  Examples

    1.$ MAIL
      MAIL> SEND
      To:     in%"mailserv@example.com"
      Subj:
      Enter your message below. Press CTRL/Z when complete, or CTRL/C to quit:
      SEND [FONTS]README.TXT
 <CTRL/Z>

      MAIL> EXIT
      $

      In this example, a simple request with a single command is sent
      to the mail server mailserv@example.com. This single command
      requests that the file [FONTS]README.TXT be sent.

    2.$ MAIL
      MAIL> SEND
      To:     in%"mailserv@example.com"
      Subj:
      Enter your message below. Press CTRL/Z when complete, or CTRL/C to quit:
      MAXIMUM BYTES 10240
      SEND/MODE=BLOCK/ENCODING=BASE64 [FONTS]ADOBE35.PFB-Z
 <CTRL/Z>

      MAIL> EXIT
      $

      In this example, a large binary file is being requested. The
      /MODE and /ENCODING qualifiers are used to request that the
      file be interpreted as raw binary data and sent in an encoded
      format. The MAXIMUM command is used to fragment the encoded
      file into several small messages, each no larger than 10K
      (10,240 bytes).

23.2.11.5  –  Error messages

  %MAILSERV-W-FLK, file currently locked by another user

      One or more of the requested files is not currently accessible.
      Try again later.

  %MAILSERV-W-INSFPRM, missing command parameters

      You failed to supply the name of the files to send. You must
      supply a file specification. Resend the command with a file
      specification.

  %MAILSERV-W-IVKEYW, unrecognized keyword - check validity and spelling

      You specified an unknown encoding or reading mode. Resend
      the command using a legal encoding or reading mode with the
      /ENCODING or /MODE qualifier.

  %MAILSERV-W-NOFILES, no files found

      Supplied file specification does not match any available files.
      Use the DIRECTORY command to obtain a listing of the available
      files.

  %MAILSERV-F-NOFILESERV, file service is not enabled

      The mail server is not configured to operate as a file server.

  %MAILSERV-W-PRV, insufficient privilege or file protection violation

      You are not allowed access to one or more of the requested
      files.

  %MAILSERV-W-VALREQ, missing qualifier or keyword value

      You failed to supply a value with the /ENCODING or /MODE
      qualifier. Resend the command with a value specification.
    Return a list of the current subscribers to a particular mailing
    list.

    Syntax

      SEND/LIST  list-name

    Qualifiers            Defaults

    /COMMENTS             See text

23.2.11.5.1  –  Parameters

 list-name

    Required parameter specifying the name of the list whose
    subscribers are to be returned. Wild cards are not allowed.

23.2.11.5.2  –  Description

    The SEND/LIST command responds with a message containing a list
    of the current subscribers to a given mailing list.

23.2.11.5.3  –  Qualifiers

23.2.11.5.3.1    /COMMENTS

       /COMMENTS
       /NOCOMMENTS

    When /COMMENTS is specified, comment fields associated with each
    subscribed address will also be returned. Specify /NOCOMMENTS
    to have these fields stripped from the listing sent to you.
    The default behavior can vary from list to list. Generally the
    default behavior is to include the comments.

    Note that in RFC 822 addresses, comments are completely
    superfluous and it should be possible to strip any or all
    comments from an address without breaking the address. However,
    there are known to be mailers which stupidly put critical
    information into comment fields with the expectation that the
    comments will not be stripped or altered. Addresses for such
    mailers can be rendered unreplyable by removing the comment
    fields from them.

23.2.11.5.4  –  Error messages

  %MAILSERV-W-INSFPRM, missing command parameters

      You failed to specify the mailing list name. Resend the command
      specifying the name of the mailing list whose membership list
      you want to obtain.

  %MAILSERV-W-LNF, list not found

      The mailing list you specified does not exist. Resend the
      command specifying the name of a valid mailing list. You can
      use the DIRECTORY/LIST command to obtain a listing of the valid
      mailing list names.

  %MAILSERV-F-NOMAILLIST, mailing lists are not enabled

      The mail server is not configured to operate as a list server.

  %MAILSERV-W-PRV, insufficient privilege or file protection violation

      You are not allowed to retrieve the list of subscribers to this
      mailing list. The MAILSERV_ACCESS mapping can be used to change
      the default behavior of the MAILSERV SEND/LIST command. Please
      refer to the Mail and list server section in the PMDF System
      Manager's manual.

  %MAILSERV-W-WRITEERR, file writing error

      An error occurred while the mail server was writing the message
      to you. Try resending this command at a later time.

23.2.12  –  SUBSCRIBE

    Subscribe to a mailing list.

    Syntax

      SUBSCRIBE  list-name [[personal-name] address]

23.2.12.1  –  Parameters

 list-name

    Required parameter specifying the name of the mailing list to
    subscribe to. Wild cards are not allowed.

 personal-name

    Optional parameter specifying the personal name for the address
    to subscribe to the mailing list. If this parameter is omitted,
    no personal name information will be included in the subscribed
    address.

 address

    Optional parameter specifying the fully-qualified address to
    subscribe to the mailing list. If no address is specified, the
    From: address from the requesting message will be used.

23.2.12.2  –  Description

    The SUBSCRIBE command adds either your address or a specified
    address to the specified mailing list. A response message
    reporting the success or failure of the subscription request will
    be returned. If the file PMDF_MAILSERV_MAIL_DIR:list-name.TXT
    exists, it will be sent to you.

    Use the UNSUBSCRIBE command to subsequently unsubscribe from a
    mailing list; use the DIRECTORY/LIST or LISTS command to obtain
    information on available mailing lists.

    Note that some mail servers can impose restrictions as to who may
    or may not subscribe to a given list.

23.2.12.3  –  Examples

    1.SUBSCRIBE LOCAL-NEWS

      This example shows the command to SUBSCRIBE oneself to the list
      LOCAL-NEWS.

    2.SUBSCRIBE LOCAL-NEWS "John Doe" <jdoe+local-news@example.com>

      This example shows the user jdoe@example.com subscribing the
      address "John Doe" <jdoe+local-news@example.com> to the list
      LOCAL-NEWS. That is, this example shows a subscription request
      using a more formal address format, one that includes an RFC
      822 personal name as well as the actual address, and where
      the address includes a subaddress; see for more details about
      subaddresses.

23.2.12.4  –  Error messages

  %MAILSERV-W-
 ALREADYSUB, address is already subscribed to the mailing list

      You are already subscribed to the mailing list. If you used
      the optional address parameter, then the specified address is
      already subscribed. Check to make sure that you specified the
      correct mailing list name or address or both.

  %MAILSERV-W-CANTDELETE, cannot delete old mailing list file

      An error occurred while trying to delete the old mailing list
      file. Try again later; the postmaster in charge of the mail
      server has been notified.

  %MAILSERV-W-CANTUPDATE, cannot update mailing list file

      An error occurred while trying to update the mailing list. Try
      again later; the postmaster in charge of the mail server has
      been notified.

  %MAILSERV-W-ILLADDRESS, illegal address

      You specified an illegal or invalid address for the optional
      address parameter. Resend the command either omitting the
      address entirely or specifying a valid address.

  %MAILSERV-W-INSFPRM, missing command parameters

      You failed to supply the name of the mailing list to subscribe
      to. Resend the command with a list name specification.

  %MAILSERV-W-LNF, list not found

      The mailing list you specified does not exist. Resend the
      command specifying the name of a valid mailing list. You can
      use the DIRECTORY/LIST command to obtain a listing of the valid
      mailing list names.

  %MAILSERV-W-LSTCREERR, unable to create new mailing list

      The mailing list specified by the list-name parameter does not
      exist and could not be created. Check to make sure that you
      specified the correct list name.

  %MAILSERV-W-LSTLOCKED, mailing list currently locked by another user

      The mailing list is currently locked; you cannot subscribe to
      it at this time. Try resending the command again later.

  %MAILSERV-F-NOMAILLIST, mailing lists are not enabled

      The mail server is not configured to operate as a list server.

  %MAILSERV-W-PRV, insufficient privilege or file protection violation

      You are not allowed to subscribe to this mailing list.

23.2.13  –  UNSUBSCRIBE

    Unsubscribe from a mailing list.

    Syntax

      UNSUBSCRIBE  list-name [address]

23.2.13.1  –  Parameters

 list-name

    Required parameter specifying the name of the mailing list to
    unsubscribe from Wild cards are not allowed.

 address

    Optional parameter specifying the address to remove from the
    mailing list. If no address is specified, the From: address from
    the requesting message will be used.

23.2.13.2  –  Description

    The UNSUBSCRIBE command removes either your address or the
    address you specify from the specified mailing list. A response
    message reporting the success or failure of the unsubscribe
    request will be returned.

    Typically, the use of the optional address parameter is
    restricted.

23.2.13.3  –  Error messages

  %MAILSERV-W-CANTDELETE, cannot delete old mailing list file

      An error occurred while trying to delete the old mailing list
      file. Try again later; the postmaster in charge of the mail
      server has been notified.

  %MAILSERV-W-CANTUPDATE, cannot update mailing list file

      An error occurred while trying to update the mailing list. Try
      again later; the postmaster in charge of the mail server has
      been notified.

  %MAILSERV-W-ILLADDRESS, illegal address

      You specified an illegal or invalid address for the optional
      address parameter. Resend the command either omitting the
      address entirely or specifying a valid address.

  %MAILSERV-W-INSFPRM, missing command parameters

      You failed to supply the name of the mailing list to
      unsubscribe from. Resend the command with a list name
      specification.

  MAILSERV-W-LNF, mailing list not found

      The mailing list you specified does not exist. Resend the
      command specifying the name of a valid mailing list. You can
      use the DIRECTORY/LIST command to obtain a listing of the valid
      mailing list names.

  %MAILSERV-W-LSTCREERR, unable to create new mailing list

      The mailing list specified by the list-name parameter does not
      exist and could not be created. Check to make sure that you
      specified the correct list name.

  %MAILSERV-W-LSTLOCKED, mailing list currently locked by another user

      The mailing list is currently locked; you cannot unsubscribe
      from it at this time. Try again later.

  %MAILSERV-F-NOMAILLIST, mailing lists are not enabled

      The mail server is not configured to operate as a list server.

  %MAILSERV-W-NOSUCHADR, no such address subscribed to the mailing list

      You are not subscribed to the specified mailing list. If you
      used the optional address parameter, then the specified address
      is not subscribed. Check to make sure that you specified the
      correct mailing list name or address or both.

  %MAILSERV-W-PRV, insufficient privilege or file protection violation

      You are not allowed to unsubscribe from this mailing list or
      unsubscribe addresses other than your own from the list.

24  –  MAIL Command

    Invoke the PMDF MAIL utility.

    Syntax

      PMDF MAIL  [file-spec[,...] recipient-address[,...]]

    Qualifiers                     Defaults

    /ABORT                         See text
    /BCC_LIST=addresses            None
    /BCC_PROMPT                    /NOBCC_PROMPT
    /BLOCK                         See text
    /CAPTIVE                       See text
    /CC_LIST=addresses             None
    /CC_PROMPT                     /NOCC_PROMPT
    /COMMENTS=comments             None
    /CONFIRM=keyword               /CONFIRM=NONE
    /EDIT=keyword                  /EDIT=NONE
    /ENCAPSULATE=keyword           None
    /ENCODING=encoding             See text
    /ENTIRE=keyword                /PART=ALL
    /FILENAME                      /NOFILENAME
    /FILTER_CTRL                   /NOFILTER_CTRL
    /FROM=address                  None
    /IGNORE                        See text
    /LIST                          /NOLIST
    /MESSAGE=keyword               /PART=ALL
    /MULTIPLE                      /SINGLE
    /PART=keyword                  /PART=ALL
    /PERSONAL_NAME=name            None
    /PREVALIDATE                   /NOPREVALIDATE
    /PRIORITY=priority             None
    /RECORD                        See text
    /REMOVE=keyword                /REMOVE=NONE
    /REPEATED                      /REPEATED
    /REPLY_TO=address              None
    /SCAN_COMMANDS                 /SCAN_COMMANDS
    /SELF=keyword                  See text
    /SENSITIVITY=sensitivity       None
    /SIGNATURE=file-spec           See text
    /SINGLE                        /SINGLE
    /SSA                           /NOSSA
    /SSUBADDRESS=subaddress        None
    /SUBADDRESS=subaddress         None
    /SUBJECT=subject               None
    /TEXT                          See text
    /TO_LIST=addresses             None
    /TO_PROMPT                     /NOTO_PROMPT
    /TOC                           /TOC
    /TRIM=keywords                 /TRIM=READ
    /USER=username                 See text

24.1  –  Parameters

 file-spec[,...]

    Optional list of one or more files to send as the message. If
    this parameter is specified then one or more recipient addresses
    must also be specified.

 recipient-address[,...]

    Optional list of one or more addresses to send the message to.
    This parameter must be specified when the optional file-spec
    parameter is specified. Each address typically needs to be quoted
    with double quotes.

24.2  –  Description

    The PMDF MAIL command invokes the PMDF MAIL utility which may be
    used to send network mail messages to other users and to read and
    manage mail messages sent to you.

    PMDF MAIL is an extended version of VMS MAIL. The extensions
    provide support for Internet style messaging and includes
    support for sending and reading MIME messages. MIME allows,
    among other things, for multipart messages which may contain
    file attachments, binary data, images, audio, and video.

24.3  –  Qualifiers

24.3.1    /ABORT

    By default, if an error occurs while processing an input message
    file or recipient address, PMDF SEND will ask the user whether
    or not to send the message anyhow. If the /ABORT qualifier is
    specified, then PMDF SEND will merely exit (with an error) when a
    problem occurs during file or address processing.

    The /ABORT and /IGNORE qualifiers are mutually exclusive - only
    one or the other may be used.

    The /ABORT qualifier has no effect on interactive PMDF MAIL
    sessions.

24.3.2    /BCC_LIST

       /BCC_LIST=address[,...]
       /CC_LIST=address[,...]
       /TO_LIST=address[,...]

    Specify one or more To:, Cc:, or Bcc: recipient addresses. When
    specifying more than one addressee of a given type (To:, Cc:, or
    Bcc:), enclose the addresses in parentheses as in

             /TO_LIST=("sue@example.com","bob@example.com")

    The /BCC_LIST, /CC_LIST, and /TO_LIST qualifiers have no effect
    on interactive PMDF MAIL sessions.

24.3.3    /BCC_PROMPT

       /BCC_PROMPT
       /CC_PROMPT
       /TO_PROMPT

    Request to be prompted for To:, Cc:, or Bcc: recipient addresses.
    By default you are only prompted once for each selected type
    (To:, Cc:, or Bcc:). If /MULTIPLE has also been specified, then
    for each selected type you will be prompted repeatedly until a
    blank line is entered.

    The /BCC_PROMPT, /CC_PROMPT, and /TO_PROMPT qualifiers have no
    effect on interactive PMDF MAIL sessions.

24.3.4    /CAPTIVE

    When /CAPTIVE is specified, PMDF MAIL will treat the user as
    though they were a captive user and not allow them to perform
    operations such as spawning.

24.3.5    /COMMENTS

       /COMMENTS=comments

    This qualifier may be used to specify the contents of the
    Comments: header line. If this qualifier is not specified and the
    PMDF_COMMENTS logical is not defined, then no Comments: header
    line will be generated.

    The /COMMENTS qualifier has no effect on interactive PMDF MAIL
    sessions.

24.3.6    /BLOCK

       /BLOCK
       /RECORD
       /TEXT

    Specify the file access mode to use when processing the files to
    send. The default depends upon the file extension.

    The /BLOCK, /RECORD, and /TEXT qualifiers have no effect on
    interactive PMDF MAIL sessions.

24.3.7    /CONFIRM

       /CONFIRM[=keyword[,...]]

    Specifies for interactive PMDF MAIL sessions, which operations
    should be confirmed prior to actually taking. By default,
    /CONFIRM=NONE is assumed. The accepted keyword values are

 ADDRESS

    Confirm each recipient address.

 ALL

    Confirm all actions when sending, extracting, forwarding, or
    replying to messages.

 DIGEST

    Confirm each digest element when creating a message digest.

 EXTRACT

    Confirm when extracting a message.

 FORWARD

    Confirm when forwarding a message.

 NONE

    Never request confirmation except when the /CONFIRM qualifier is
    used with an interactive command.

 PRINT

    Confirm when printing a message.

 REPLY

    Confirm when replying to a message.

 RESEND

    Confirm when resending a message.

 SEND

    Confirm when sending a message.

    If /CONFIRM is specified without any keyword values, then
    /CONFIRM=ALL is assumed.

24.3.8    /ENCODING

       /ENCODING=encoding

    Specify the encoding method to use to encode an input message
    file. Typically, no encoding is used; however, this depends
    upon the file type as determined from the file extension. The
    available encoding methods are 7BIT, 8BIT, BASE32, BASE64,
    BINHEX, BTOA, COMPRESSED-BASE64, BASE85, HEXADECIMAL, PATHWORKS,
    QUOTED_PRINTABLE, UUENCODE, and COMPRESSED-UUENCODE.

24.3.9    /EDIT

       /EDIT[=keyword[,...]]

    Specifies for interactive PMDF MAIL sessions, which commands
    implicitly invoke the editor. The accepted keyword values are

 ALL

    Always invoke the editor in conjunction with all commands that
    accept the /EDIT qualifier.

 COMMAND_LINE

    In conjunction with /EDIT=SEND, invoke the editor even when
    sending a file or message from the DCL command line.

 DIRECTORY

    Always invoke the editor to display DIRECTORY and
    DIRECTORY/FOLDER listings.

 FORWARD

    Always invoke the editor to edit messages being forwarded with
    the FORWARD command.

 HEADER

    By default the message's header is always displayed in the
    editor. To inhibit this, specify /EDIT=NOHEADER.

 KEPT[=editor-process-name]

    Initially invoke the editor as a subprocess; re-attach to the
    subprocess for subsequent editor operations.

 NONE

    Never invoke the editor unless explicitly requested to do so with
    the /EDIT qualifier.

 READ

    Always invoke the editor to display messages being read with the
    READ, CURRENT, BACK, NEXT, FIRST, and LAST commands.

 REPLY[=EXTRACT[=quote]]

    Always invoke the editor to edit messages being replied to with
    the ANSWER or REPLY commands. If the optional EXTRACT keyword
    is specified, then the content of the message being replied to
    will be included in the reply. To specify a text string to use
    to quote each line of the extracted message text, specify a value
    for the EXTRACT keyword. For instance, to quote each line with
    the two characters "> ", invoke PMDF MAIL with the command

    $ PMDF MAIL/EDIT=REPLY=EXTRACT="> "

 SEND

    Always invoke the editor to compose messages being sent with the
    MAIL or SEND commands.

    If /EDIT is specified without any keyword values, then
    /EDIT=(SEND,REPLY) is assumed.

24.3.10    /ENCAPSULATE

       /ENCAPSULATE[=keyword[,...]]
       /NOENCAPSULATE[=keyword[,...]]

    For interactive PMDF MAIL sessions, specifies file encapsulation
    defaults for the FORWARD, SEND, and REPLY commands as well as the
    synonymous commands MAIL and ANSWER. The accepted keyword values
    are FORWARD, SEND, REPLY, ALL, and NONE.

    The /ENCAPSULATE qualifier specifies which commands should
    by default encapsulate files as separate attachments; the
    /NOENCAPSULATE qualifier specifies which commands should not
    by default encapsulate files as separate message attachments.
    Specifying /ENCAPSULATE without any qualifiers implies
    /ENCAPSULATE=ALL, and specifying /NOENCAPSULATE without any
    qualifiers implies /ENCAPSULATE=NONE.

24.3.11    /ENTIRE

       /ENTIRE[=keyword[,...]]
       /MESSAGE[=keyword[,...]]
       /PART[=keyword[,...]]

    For interactive PMDF MAIL sessions, specifies message content
    scope for EXTRACT, FORWARD, PRINT, and REPLY commands. The
    accepted keyword values are EXTRACT, FORWARD, PRINT, REPLY, ALL,
    and NONE.

    The /ENTIRE qualifier specifies which commands by default act
    upon the entire message. The /MESSAGE qualifier specifies
    which commands by default act upon only the current portion of
    the message which constitutes an entire message. (Note that a
    message may contain one or more messages as subparts.) The /PART
    qualifier specifies which commands by default act upon only the
    current message body part.

    Specifying /ENTIRE without any qualifiers implies /ENTIRE=ALL;
    specifying /MESSAGE without any qualifiers implies /MESSAGE=ALL;
    and specifying /PART without any qualifiers implies /PART=ALL.

24.3.12    /FILENAME

       /FILENAME
       /NOFILENAME (default)

    The /FILENAME qualifier specifies that the original file name
    should be included in the message headers.

24.3.13    /FILTER_CTRL

       /FILTER_CTRL
       /NOFILTER_CTRL (default)

    For interactive PMDF MAIL sessions, specifying /FILTER_CTRL turns
    on the filtering out of 7-bit and 8-bit control characters in
    messages. Messages which contain such control characters can
    cause problems with the terminal when they are displayed. When
    /FILTER_CTRL is specified, such a character is displayed as its
    hexidecimal value in the format "=XX".

24.3.14    /FROM

       /FROM=address

    This qualifier may be used to specify the contents of the From:
    header line. If this qualifier is not specified and the PMDF_
    FROM logical is not defined, then a From: header line will be
    constructed from the username of the user invoking PMDF MAIL
    and the local host name. Note that even if a From: address is
    provided, the invoking user's address will appear in a Sender:
    header line.

    The /FROM qualifier has no effect on interactive PMDF MAIL
    sessions.

24.3.15    /IGNORE

    By default, if an error occurs while processing an input message
    file or recipient address, PMDF MAIL will ask the user whether
    or not to send the message anyhow. If the /IGNORE qualifier is
    specified, then PMDF MAIL will not ask the user whether or not
    to send the message-it will send the good input files to the good
    recipient addresses.

    The /ABORT and /IGNORE qualifiers are mutually exclusive - only
    one or the other may be used.

    The /IGNORE qualifier has no effect on interactive PMDF MAIL
    sessions.

24.3.16    /LIST

       /LIST (default)
       /NOLIST

    When specified, /NOLIST becomes the default for the ANSWER and
    REPLY commands.

24.3.17    /MESSAGE

       /MESSAGE (default)

    See /ENTIRE.

24.3.18    /MULTIPLE

       /MULTIPLE
       /SINGLE (default)

    Normally, only a single prompt is made for each type of address
    selected with the /TO_PROMPT, /CC_PROMPT, and /BCC_PROMPT
    qualifiers. When /MULTIPLE is specified, these prompts will be
    repeated for each selected address type until a blank line is
    entered.

    The /MULTIPLE and /SINGLE qualifiers have no effect on
    interactive PMDF MAIL sessions.

24.3.19    /PART

    See /ENTIRE.

24.3.20    /PERSONAL_NAME

       /PERSONAL_NAME=name
       /NOPERSONAL_NAME

    Specify a personal name field to use in conjunction with your
    return address. Any value specified will override your SET
    PERSONAL_NAME profile setting. If /NOPERSONAL_NAME is specified,
    then no personal name field will appear in the return address.

    The /PERSONAL_NAME qualifier has no effect on interactive PMDF
    MAIL sessions.

24.3.21    /PREVALIDATE

       /PREVALIDATE
       /NOPREVALIDATE (default)

    Prevalidate recipient addresses prior to invoking the editor
    to compose a message. If any illegal addresses are detected,
    PMDF MAIL will ask whether to cancel the operation or to proceed
    anyway. If told to proceed, both the good and bad addresses will
    appear in the editor where they may be modified as necessary.
    Validation will, of course, still be performed after the editor
    is exited.

24.3.22    /PRIORITY

       /PRIORITY=priority

    This qualifier may be used to specify the contents of the
    Priority: header line. If this qualifier is not specified, then
    no Priority: header line will be generated.

    The /PRIORITY qualifier has no effect on interactive PMDF MAIL
    sessions.

24.3.23    /REMOVE

       /REMOVE[=keyword[,...]]
       /NOREMOVE[=keyword[,...]]

    For interactive PMDF MAIL sessions, specifies /REMOVE or
    /NOREMOVE defaults for the FORWARD, REPLY, RESEND, and SEND
    commands. The accepted keyword values are FORWARD, REPLY, RESEND,
    SEND, ALL, and NONE.

    The /REMOVE qualifier specifies which commands by default assume
    /REMOVE. The /NOREMOVE qualifier specifies which commands
    by default assume /NOREMOVE. Specifying /REMOVE without any
    qualifiers implies /REMOVE=ALL while specifying /NOREMOVE without
    any qualifiers implies /NOREMOVE=ALL.

24.3.24    /REPEATED

       /REPEATED (default)
       /NOREPEATED

    Specify /REPEATED to imply /REPEATED for all REPLY/ALL commands;
    specify /NOREPEATED to imply /NOREPEATED for all REPLY/ALL
    commands.

24.3.25    /REPLY_TO

       /REPLY_TO=address

    This qualifier may be used to specify the contents of the Reply-
    to: header line. If this qualifier is not specified and the PMDF_
    REPLY_TO logical is not defined, then no Reply-to: header line
    will be generated.

    The /REPLY_TO qualifier has no effect on interactive PMDF MAIL
    sessions.

24.3.26    /SCAN_COMMANDS

       /SCAN_COMMANDS (default)
       /NOSCAN_COMMANDS

    By default, the command line is scanned for errors as it is
    entered and errors are signalled immediately. Specify /NOSCAN_
    COMMANDS to have errors only signalled after the entire command
    has been entered and the RETURN key pressed.

24.3.27    /SELF

       /SELF[=keyword[,...]]
       /NOSELF[=keyword[,...]]

    For interactive PMDF MAIL sessions, specifies for which types
    of message sending operations you will automatically receive
    copies of messages you originate. The accepted keyword values are
    FORWARD, REPLY, RESEND, SEND, ALL, and NONE.

    The /SELF qualifier specifies for which types of operations you
    will receive a copy of messages sent. The /NOSELF qualifier
    specifies for which operation types you will not receive a
    message copy. Specifying /SELF without any qualifiers implies
    /SELF=ALL while specifying /NOSELF without any qualifiers implies
    /NOSELF=ALL.

    Any settings made with the /SELF and /NOSELF qualifiers will be
    overridden by any positive SET COPY_SELF profile settings.

24.3.28    /SENSITIVITY

       /SENSITIVITY=sensitivity

    This qualifier may be used to specify the contents of the
    Sensitivity: header line. If this qualifier is not specified and
    the PMDF_SENSITIVITY logical is not defined, then no Sensitivity:
    header line will be generated.

    The /SENSITIVITY qualifier has no effect on interactive PMDF MAIL
    sessions.

24.3.29    /SIGNATURE

       /SIGNATURE=signature-line
       /SIGNATURE="@file-spec"
       /NOSIGNATURE

    Specify a signature line or file to append to the end of the
    message being sent. If /NOSIGNATURE is specified, then no
    signature will be appended.

    The /SIGNATURE qualifier has no effect on interactive PMDF MAIL
    sessions.

24.3.30    /SSA

       /SSA
       /NOSSA (default)

    Show aliases in the system alias database as well as in your
    personal alias database. Non-privileged users will have read-only
    access to the system alias database.

24.3.31    /SSUBADDRESS

       /SSUBADDRESS=subaddress

    Specify a subaddress to attach to your address in message copies
    sent to you via the COPY_SELF mechanism.

24.3.32    /SUBADDRESS

       /SUBADDRESS=subaddress

    Specify a subaddress to attach to the envelope From: address;
    e.g., if the envelope From: address is prospero@example.com then
    specifying /SUBADDRESS="Postmaster" would result in the envelope
    From: address prospero+Postmaster@example.com.

    The /SUBADDRESS qualifier has no effect on interactive PMDF MAIL
    sessions.

24.3.33    /SUBJECT

       /SUBJECT=subject

    Specify the contents of the Subject: header line. If this
    qualifier is not specified, then no Subject: header line will
    be generated. If it is specified, but no value given, then the
    user will be prompted for a value.

    The /SUBJECT qualifier has no effect on interactive PMDF MAIL
    sessions.

24.3.34    /TOC

       /TOC (default)
       /NOTOC

    Show a table of contents for each displayed multipart message.
    The table of contents is not actually part of the message.

24.3.35    /TRIM

       /TRIM[=keyword[,...]]
       /NOTRIM[=keyword[,...]]

    For interactive PMDF MAIL sessions, specifies for which
    operations header lines will automatically be trimmed or left
    intact. The accepted keyword values are EXTRACT, FORWARD, PRINT,
    REPLY, RESEND, SEND, ALL, and NONE.

    The /TRIM qualifier specifies which commands by default assume
    /TRIM; the /NOTRIM qualifier specifies which commands by default
    assume /NOTRIM. Specifying /TRIM without any qualifiers implies
    /TRIM=ALL while specifying /NOTRIM without any qualifiers implies
    /NOTRIM=ALL.

24.3.36    /USER

       /USER=username

    Specify the local username to use in the message sender's address
    (this will be the From: address if no other From: address is
    given and the Sender: address otherwise. You must either have
    WORLD privilege or hold the PMDF_WORLD or PMDF_WORLD_username
    rightslist identifier in order to use this qualifier and specify
    a username other than your own. The special case of a blank
    string will not insert any Sender: information.

    The /USER qualifier has no effect on interactive PMDF MAIL
    sessions.

24.4  –  Examples

    1.$ PMDF MAIL
      ...
      EMAIL> EXIT

      This example shows how to invoke the PMDF MAIL utility and then
      subsequently exit the utility with the EXIT command.

    2.$ PMDF MAIL/SUBJECT="Meeting" MINUTES.TXT
      "sue@example.com","bob@example.com"
      $

      In this example the contents of the file MINUTES.TXT is sent to
      sue@example.com and bob@example.com.

25  –  MOVEIN

    Migrate mail files between message stores or between accounts.

    Syntax

      PMDF MOVEIN  [username [password]]

    Command Qualifiers             Default

    /BEFORE=time
    /DEBUG                         /NODEBUG
    /DESTINATION=store-type
    /DSTDMN=user-domain
    /DSTUSERNAME=dest-username     source username
    /EXCEPTION_FILE=file-spec
    /FORCE_MIGRATE                 /NOFORCE_MIGRATE
    /FORWARD                       /FORWARD
    /HOST=hostname
    /INPUT=file-spec
    /LOG                           /LOG
    /LOWERCASE                     /NOLOWERCASE
    /SINCE=time
    /SOURCE=store-type             /SOURCE=NATIVE
    /SRCDMN=user-domain
    /USE_EXISTING                  /NOUSE_EXISTING
    /WASTEBASKET                   /WASTEBASKET

25.1  –  RESTRICTIONS

    Operating system privileges are required to run this utility.

25.2  –  Parameters

 username

    Optional name of a single source message store user account to
    migrate. If not supplied, then the names of accounts to migrate
    are read from either an input file or SYS$INPUT.

 password

    Optional password to set for the new account in the destination
    message store. Only used when migrating to the popstore or
    MessageStore.

25.3  –  Description

    The PMDF MOVEIN utility migrates mailboxes from one message
    store to another, or from one account to another. The supported
    message stores are: VMS MAIL (the "native" message store), the
    PMDF MessageStore, and the PMDF popstore. When moving from
    or to the popstore, only messages in the inbox are migrated.
    For migrations from VMS MAIL to msgstore, or from one msgstore
    account to another, messages in all folders are moved.

    Forwardings from the source message store account to the
    destination message store account are automatically established
    for each migrated user. Note, however, that use of the -
    NOFORWARDING switch can compromise this robustness.

    As it is not possible to temporarily block delivery of mail to
    a user by VMS MAIL, when migrating mail from a VMS MAIL account,
    the PMDF MOVEIN utility should not be run on an active system.
    Running it on an active system can lead to loss of mail when the
    migration utility migrates a user's NEWMAIL folder and, at the
    same time, VMS MAIL delivers a new message to that same folder.
    Depending upon the timing, that new message can be left behind
    and not migrated. To prevent this from happening, ensure that
    PMDF's local delivery channel is not running (e.g., stop the
    MAIL$BATCH queue or whatever queue the l channel runs in) and
    that any other VMS MAIL applications are not running (e.g., no
    login users using VMS MAIL, no Pathworks users, DECnet MAIL-11
    shutdown, etc.).

    When migrating mail from a popstore or msgstore account, and to
    a popstore or msgstore account, the PMDF MOVEIN utility performs
    all of the necessary locking so as to allow migrations to be
    carried out on an active system without loss of mail.

    The basic inputs to the utility are: the names of the source and
    destination message store; the names of the source store user
    accounts to migrate; optionally, the names of the destination
    store user accounts to create; and, also optionally, passwords
    to set for these new accounts. The source store username is
    assumed for the destination store if a desintation username is
    not specified. That is, by default, the name of the account in
    the destination store is the same as that in the source store.

    When a username is supplied on the command line, then just that
    one user account is migrated. To migrate multiple accounts,
    do not specify a username on the command line and instead use
    the /INPUT qualifier. Each line of the input file specifies
    the username of a single source store account to migrate. In
    addition, a line can specify a password to associate with the new
    account in the destination store, and the username to create in
    the destination store. The password and destination username, if
    supplied, must be on the same input line following the username
    with one or more white space characters separating each of the
    three. If the password contains a space itself, it must be
    enclosed in double quotes. To specify a destination username
    without specifying a password, the password must be specfied as
    an empty string (two double-quotes next to each other).

    Comment lines can appear in the input file: a comment line is any
    line which begins with a # or ! character. Leading and trailing
    white space characters on lines are ignored. The following sample
    input should give the flavor of input files:

    ! A comment line
    !
    ! to supply a password and destination username:
    angel "alex's password" alex
    bailey blakes-password blake
    !
    ! to supply a destination username, but no password:
    chris "" casey
    !
    ! to supply a password but no destination username:
    dana danas-password
    !
    ! to supply neither a password nor a destination username:
    emile

    When no username or input file is specified, input lines are read
    from SYS$INPUT. The format of those input lines is identical to
    that of lines read from an input file. Input is terminated by
    typing a CTRL/Z.

    When migrating to a msgstore or popstore account, the destination
    account is automatically created. If a password is supplied,
    then the password is set in the new account. If no password is
    supplied, then the new account is marked with the PWD_ELSEWHERE
    flag. Normally, that causes authentication to then be performed
    against the SYSUAF database. See the popstore documentation for
    further information. When migrating from VMS MAIL, the owner
    field in the new account is set using the owner field from the
    SYSUAF. When migrating between a popstore and msgstore account,
    the owner field of the destination account is set from the source
    account.

    If there already is an pre-existing MessageStore or popstore
    account-such as when migrating from the popstore to MessageStore-
    then the migration fails unless /USE_EXISTING is specified.
    Moreover, if the existing account has the MIGRATED flag set,
    then the migration fails unless /FORCE_MIGRATE is specified. When
    the account is successfully migrated, the MIGRATED flag is set in
    the account.

                                   NOTE

       After a successful migration, the account in the source
       message store is left intact with its mail in place. In
       the case of migration from a popstore to MesageStore store
       type with the same username (or vice-versa), the account is
       changed in place from the one store type to the other.

    The PMDF MOVEIN utility is extremely careful to back out of a
    failed migration, leaving the user account in the source message
    store in its original state. When multiple accounts are migrated,
    a failure to migrate an account does not terminate the utility.
    Instead, the utility backs out of the migration for the failed
    account and continues on to the next account. Failures are
    reported to SYS$ERROR. The /EXCEPTION_FILE qualifier can be used
    to log errors in an exception file. The format of the exception
    file is suitable for re-use as an input file.

25.4  –  Command Qualifiers

25.4.1    /BEFORE

       /BEFORE=dd-mmm-yyyy:hh:mm:ss

    By default, all messages are migrated. The /BEFORE qualifier can
    be used to only migrate those messages stored on or before the
    specified time. For instance, to migrate all messages received
    between 08:30 and 13:00 on 15 November 2012, specify

    /SINCE=15-NOV-2012:8:30:00 /BEFORE=15-NOV-2012:13:00:00

25.4.2    /DEBUG

       /DEBUG
       /NODEBUG (default)

    Debug output can be enabled with the /DEBUG qualifier.

25.4.3    /DESTINATION

       /DESTINATION=store-type

    This required qualifier specifies the name of the target message
    store. The accepted names are MSGSTORE (PMDF MessageStore) and
    POPSTORE (PMDF popstore).

25.4.4    /DSTDMN

       /DSTDMN=user-domain

    The name of the user domain to use in the destination message
    store. If not specified, then the DEFAULT domain is used. Only
    applicable in conjunction with destination message stores which
    support user domains (currently, only popstore).

25.4.5    /DSTUSERNAME

       /DSTUSERNAME=dest-username

    The username to use in the destination message store. If not
    specified, the source store username is used.

25.4.6    /EXCEPTION_FILE

       /EXCEPTION_FILE=file-spec

    By default, failures are only written to SYS$ERROR. Failures can
    also be reported to an exception file. The name of the exception
    file is given with the /EXCEPTION_FILE qualifier. The file will
    only be created should a failure occur; the file will have the
    protection mask (S:RWED,O:RWED,G,W). For each account whose
    migration fails, an entry will be made to the exception file. The
    entry takes the form of one or more lines of comments followed by
    a line containing the failed username and any optional password
    and destination username. The format of the exception file is
    such that it can be re-used as an input file.

25.4.7    /FORCE_MIGRATE

       /FORCE_MIGRATE
       /NOFORCE_MIGRATE (default)

    This qualifier can be used in conjunction with the /USE_EXISTING
    qualifier. See the description of that qualifier for further
    details.

25.4.8    /FORWARD

       /FORWARD (default)
       /NOFORWARD

    By default, a forwarding address for each migrated user account
    is established. This forwarding causes undelivered mail sent
    to the user's source message store address to be automatically
    forwarded to their account in the destination message store.

    When migrating an account from VMS MAIL, a forwarding for the VMS
    MAIL user is is placed both in the PMDF alias database and VMS
    MAIL's forwarding database. When migrating from the popstore or
    msgstore, a forwarding to the account in the destination store is
    added to the msgstore's forwarding database.

    When migrating to the popstore or msgstore, any msgstore
    forwarding for the destination account is removed from the
    msgstore's forwarding database. If the account is just being
    converted from popstore to msgstore (or vice-versa) in place, no
    forwarding is necessary.

    Specify /NOFORWARD to prevent forwardings from being established.
    Note, however, that when /NOFORWARD is used, undelivered mail
    directed to the user's old address in the source message store
    can be returned as undeliverable or delivered to the old, unused
    account until such time that the old account is deleted at which
    point the mail will be returned as undeliverable.

25.4.9    /HOST

       /HOST=hostname

    Optional qualifier to specify the host name associated with the
    destination message store. If omitted, the host name used will
    be determined from PMDF configuration information: the official
    local host name when the destination store is the native message
    store; the host name on the msgstore channel when the destination
    store is msgstore or popstore. This host name is only used in
    conjunction with the /FORWARD qualifier to construct a forwarding
    address for each migrated account.

25.4.10    /INPUT

       /INPUT=file-spec

    Specify an input file containing names of user accounts to
    migrate. Can not be used in conjunction with the username command
    line parameter. See the description above for further information
    on input files.

25.4.11    /LOG

       /LOG (default)
       /NOLOG

    By default, the utility reports each successfully migrated
    account to SYS$ERROR. To suppress this reporting, specify /NOLOG.
    Note that errors are always reported.

25.4.12    /LOWERCASE

       /LOWERCASE
       /NOLOWERCASE (default)

    This qualifier is only used when the source store is VMS MAIL
    and the destination store is MessageStore. By default, VMS
    MAIL folder names are not modified when they are migrated. This
    default behavior corresponds to /NOLOWERCASE. When /LOWERCASE is
    specified, all migrated folder names are converted to lower case.

25.4.13    /SINCE

       /SINCE=dd-mmm-yyyy:hh:mm:ss

    By default, all messages are migrated. The /SINCE qualifier can
    be used to only migrate those messages stored on or after the
    specified time. See the description of the /BEFORE qualifier for
    further details.

25.4.14    /SOURCE

       /SOURCE=store-type

    By default, the source message store is assumed to be the
    native message store, VMS MAIL. The permitted values are
    NATIVE (VMS MAIL), POPSTORE (PMDF popstore), and MSGSTORE (PMDF
    MessageStore).

25.4.15    /SRCDMN

       /SRCDMN=user-domain

    The name of the user domain to use in the source message
    store. If not specified, then the DEFAULT domain is used. Only
    applicable in conjunction with source message stores which
    support user domains (currently, only popstore).

25.4.16    /USE_EXISTING

       /USE_EXISTING
       /NOUSE_EXISTING (default)

    By default, a migration to a popstore or msgstore account will
    fail when there already is a pre-existing account with the same
    name as the requested destination account name (by default, the
    name of the source store account being migrated). To override
    this behavior, specify /USE_EXISTING. However, if the pre-
    existing account has the msgstore/popstore MIGRATED flag set,
    the migration will fail unless /FORCE_MIGRATE is also specified.
    Note that when migrating to a pre-existing account, the password
    for the account is left unchanged and migrated messages are added
    to those already stored for the account.

25.4.17    /WASTEBASKET

       /WASTEBASKET (default)
       /NOWASTEBASKET

    When migrating a VMS MAIL user to the MessageStore, the
    WASTEBASKET folder will, by default, also be migrated. Specify
    /NOWASTEBASKET to prevent the WASTEBASKET folder from being
    migrated.

25.5  –  Examples

    1.$ PMDF MOVEIN /DESTINATION=POPSTORE SUE "SeCreT"
      movein: Destination message store host name not supplied; using pop.com
      movein: User "SUE" successfully migrated (D1:[USERS.SUE]MAIL.MAI)

      This example shows migrating to the popstore the login user
      SUE. The password on the new popstore account is set to SECRET.

    2.$ PMDF MOVEIN /SOURCE=POPSTORE /DESTINATION=MSGSTORE -
      _$ /USE_EXISTING SUE
      movein: Destination message store host name not supplied; using imap.com
      movein: User "SUE" successfully migrated

      This example shows migrating the popstore user SUE to the
      MessageStore. The /USE_EXISTING qualifier instructs the
      utility to use Sue's existing profile file for her MessageStore
      account. This way, her password and other usage information is
      preserved. Note that if /USE_EXISTING was not specified, this
      command would fail.

    3.$ TYPE USERS.LIS

      smith SeCreT jones
      williams "" johnson
      $ PMDF MOVEIN /DESTINATION=MSGSTORE /SOURCE=MSGSTORE -
      _$/INPUT=USERS.LIS
      movein: Destination message store host name not supplied; using imap.com
      movein: "smith" migrated
      movein: "williams" migrated

      In the above example an input file is used to direct the PMDF
      MOVEIN utility. The file instructs MOVEIN to copy the messages
      from one msgstore account to another. For example, in the first
      case, a JONES msgstore account is created, its password is
      set to "SeCreT", and all of the messages in the msgstore SMITH
      account are copied over.

26  –  Mailbox Filters

    A common goal is to filter incoming messages, perhaps sending an
    automatic response, forwarding the messages to another account,
    or automatically rejecting or discarding some based upon material
    in the messages' headers or bodies. One way to do this is via the
    DELIVER facility.

    If your messages are delivered to the native message store (VMS
    MAIL mailbox) or to a PMDF popstore or PMDF MessageStore account,
    your system administrators may have chosen to enable another
    option: PMDF message filtering. If your system administrators
    have chosen to enable it, PMDF provides a web-based interface
    through which you can specify a vacation notice, specify a
    forwarding address, and construct and manage your own message
    screening rules. These are collectively known as mailbox
    filters.

26.1  –  Mailbox Filter File

    By default, you have no mailbox filters unless your system
    administrator has chosen to set them for you. If mailbox
    filtering has been enabled for your account, when you use
    the web-based interface, a mailbox filter is created for you.
    Your mailbox filters are stored in a mailbox filter file. The
    location of that file is site-configurable. For popstore and
    MessageStore accounts, that location is normally in a directory
    that is not directly accessible by non-privileged users, and
    all modifications to your mailbox filters are done using the web
    interface. For VMS MAIL mailboxes, the filter file normally is in
    your login directory, and therefore accessible by you.

    If the mailbox filter file is accessible by you, you may create
    or modify the filter file using any text editor. The mailbox
    filter file is a text file containing commands in the SIEVE
    language with some extensions. See the System Manager's Guide,
    Chapter 16, for information about SIEVE.

                                 WARNING

       If you edit your mailbox filter file manually, you cannot
       use the web interface any longer. The web interface can only
       read filter files it it has written itself. You can use the
       web interface to create an initial mailbox filter file, and
       then edit it manually, but not vice-versa.

26.1.1  –  Checking Your Changes

                                   NOTE

       After you have made changes to your mailbox filter file, it
       is important for you to verify that it is working correctly,
       especially if you have edited it manually. If your filter
       file is not working, for example if it has a syntax error,
       your mail delivery could be interrupted.

    The easiest way to check your mailbox filter file is to send
    yourself mail. If your mail gets to your mailbox successfully,
    then there is nothing wrong with your filter file.

    Your filter file can also be verified by your system
    administrator using the command:

    $ pmdf test/rewrite/filter <your-mailbox>

26.2  –  Web Interface

    In order to use the web-based interface for setting up message
    filters, a vacation notice, or a forwarding address, you must
    have a web client and TCP/IP access to the PMDF system. Your
    messages must also be delivered to the native message store
    (VMS mailbox) on the PMDF system, or to a PMDF popstore or PMDF
    MessageStore account on the PMDF system.

    The web form asks you for your e-mail address and your password;
    you need to provide this information in order to set up or change
    your mailbox filters.

    To connect to the interface with your web browser, you normally
    open the URL

    http://host:7633/mailbox_filters/

    In place of host, use the actual IP host name of the system
    running PMDF, on which your messages are delivered. Your system
    administrator may have chosen to configure the web interface port
    to be a port other than 7633; if so, then you need to specify
    that other port number in place of 7633 in the above URL. Check
    with your system administrator if you are not sure of the exact
    URL to use.

    Once connected to the introductory web page, links to help and
    various mailbox filtering activities may be followed.

26.2.1  –  Web Interface Features

    The web interface allows you to set up eight distinct message
    filters: four to identify messages to always keep, the Accept
    filters; four to identify messages to always throw away,
    the Discard filters. The Accept and Discard filters operate
    on envelope and header source addresses, header destination
    addresses, and phrases or words appearing in the SUBJECT: header
    line or body of the message. The eight filters are thus known by
    the names ACCEPT FROM, ACCEPT TO, ACCEPT SUBJECT, ACCEPT BODY,
    DISCARD FROM, DISCARD TO, DISCARD SUBJECT, and DISCARD BODY.

    The web interface also allows you to set up a forwarding address.
    When you have a forwarding address set up, all of your mail that
    you have decided to keep with your Accept filters will be sent to
    that address instead of being delivered to your local account.
    Note that the Accept and Discard filters are applied first,
    and the vacation notice (if any) is also sent first, before the
    message is forwarded.

    The web interface also allows you to set up a vacation notice.
    Set up a vacation notice when you want to send an automatic reply
    to mail messages that you receive. The reply notifies the sender
    that you are on vacation or otherwise away for an extended period
    of time and may not respond to your mail until you return. The
    web interface allows you to enable or disable the vacation notice
    feature, to specify the subject and text that is included in the
    vacation notice, and to set up some advanced options.

    PMDF keeps a history of which addresses it has sent the vacation
    notice to, and does not send another vacation notice to that same
    address unless

    o  you change the text or subject of your vacation notice

    o  you enable the vacation notice feature after it has been
       disabled

    o  the number of days that you specify in the web interface has
       passed

    Note that PMDF will not send the vacation notice if it determines
    that the message was received through a mailing list.

27  –  PASSWORD

    Set password for remote authentication, e.g., POP client (APOP),
    IMAP client (CRAM), or mailbox filter authentication.

    Syntax

      PMDF PASSWORD  [password]

    Command Qualifiers             Defaults

    /CONVERT                       /CREATE
    /CREATE                        /CREATE
    /DELETE                        /CREATE
    /SERVICE=keyword               /SERVICE=DEFAULT
    /SHOW                          /CREATE
    /TEST                          /CREATE
    /USER=username                 See text

27.1  –  Restrictions

    All operations other than setting or verifying one's own
    password, or showing one's own password database entries, require
    privileges.

27.2  –  Prompts

    New password: password

27.3  –  Parameters

 password

    The password to set. Note that APOP passwords are case sensitive.

27.4  –  Description

    The PMDF PASSWORD utility is used to create and modify PMDF
    password database entries. This database may be used by POP
    clients issuing the APOP command, by IMAP clients using the CRAM-
    MD5 authentication mechanism, or possibly by users authenticating
    themselves to modify their personal mailbox filters.

    Note that in general, just which source of password
    authentication information is used-whether the PMDF password
    database, or some other source-is controlled by the PMDF security
    configuration file; see That is, a connection comes in (POP,
    IMAP, or mailbox filtering) and is mapped to a security rule
    set; the security rule set in the PMDF security configuration
    then controls where and how authentication is performed for that
    connection.

    For instance, the DEFAULT security rule set in PMDF's
    implicit security configuration (which applies if no security
    configuration file exists) checks first for a PMDF user profile
    password (PMDF MessageStore or PMDF popstore profile password),
    next for a PMDF password database entry, and finally falls
    through to checking for a system password entry.

    Note that APOP and CRAM-MD5 passwords cannot be stored in the
    system password file. Therefore, in order to support use of the
    POP protocol's APOP command or AUTH command with CRAM-MD5, or
    the IMAP protocol's authenticate command with CRAM-MD5, the user
    must have a password entry stored in an authentication source
    other than (or in addition to) the system password file. The PMDF
    password database can be that additional authentication source.

    Thus for instance, for a POP or IMAP connection handled by
    the DEFAULT security rule set, a user must either be a PMDF
    MessageStore user or a PMDF popstore user (in which case their
    PMDF user profile password is normally sufficient for remote
    authentication), or if they are a legacy message store (VMS
    MAIL) user then they must have a PMDF password database entry
    in addition to their system password file entry.

    For mailbox filter connections handled by the DEFAULT
    security rule set of PMDF's implicit security configuration,
    authentication will be performed preferentially against the PMDF
    user profile, if the user has a PMDF user profile entry (that
    is, a PMDF MessageStore or PMDF popstore profile entry), if not
    then against the PMDF password database, if the user has an entry
    in it, and finally, only if the user has neither sort of entry,
    against the system password file.

    The above discussion regards whether the PMDF password
    database will actually be used as the source of authentication
    information. When the PMDF password database is used as the
    source of authentication information, then an additional issue
    can arise, namely which of a user's possibly multiple entries
    will be checked for the authentication. That is, a user can have
    multiple entries in the PMDF password database, one for each
    allowed /SERVICE value. The sort of connection (assuming that
    the PMDF password database is even checked) will control which
    /SERVICE entry is preferentially checked. Note that the sort
    of /SERVICE checked has nothing to do with the PMDF security
    configuration (which instead controlled whether or not the PMDF
    password database was queried at all); the sort of /SERVICE entry
    checked when the PMDF password database is queried has entirely
    to do with which component of PMDF is doing the querying (what
    sort of connection this regards).

    Queries by the POP server will first check a user's /SERVICE=POP
    entry, but if such an entry does not exist will fall through
    to the user's /SERVICE=DEFAULT entry. Queries by the IMAP
    server will first check a user's /SERVICE=IMAP entry, but if
    such an entry does not exist will fall through to the user's
    /SERVICE=DEFAULT entry.

    Queries for mailbox filtering will check which channel a user
    matches. For a user matching a msgstore channel, the mailbox
    filter query will preferentially use the user's /SERVICE=IMAP
    entry, but if such an entry does not exist will fall through to
    the user's /SERVICE=DEFAULT entry. For a user matching a popstore
    channel, the mailbox filter query will preferentially use the
    user's /SERVICE=POP entry, but if such an entry does not exist
    will fall through to the user's /SERVICE=DEFAULT entry. For a
    user matching the local channel, the mailbox filter query will
    use the user's /SERVICE=DEFAULT entry.

    Most sites and users will not want to use /SERVICE specific
    password database entries. Then each user has one entry, their
    /SERVICE=DEFAULT entry, used whenever the PMDF password database
    is queried.

    But for sites and users who do want to use /SERVICE specific
    password database entries, while the above description of
    /SERVICE specific probes may sound complicated, the goal is
    simply to query the "natural" password entry for each case.

27.5  –  Command Qualifiers

27.5.1    /CONVERT

    The format of the PMDF password database changed in PMDF V5.1
    from that used previously. This qualifier is used to convert a
    PMDF V5.0 password database to the PMDF V5.1 and later format.

27.5.2    /CREATE

    Create a PMDF password database entry. This qualifier is the
    default.

27.5.3    /DELETE

    Delete a user/password entry pair from the PMDF password
    database.

27.5.4    /SERVICE

       /SERVICE=keyword

    Specify for what service a particular password method and
    password value apply. The default service keyword is DEFAULT;
    POP and IMAP are other possible keywords.

27.5.5    /SHOW

    Show a user/service/password-method entry in the PMDF password
    database. Note that this commmand does not show the password
    value.

27.5.6    /TEST

    Compare a specified password against a password stored in the
    PMDF password database.

27.5.7    /USER

       /USER=username

    Set or show a password entry in the PMDF password database
    for the specified user. To show all users' entries specify the
    asterisk as a value.

27.6  –  Examples

      To add a user JSMITH with password SeCrEt to the database, use
      the command

        $ PMDF PASSWORD/USER=JSMITH "SeCrEt"

      The user JSMITH may change his own password, with prompting
      so that the password is not printed on the screen, using the
      command

        $ PMDF PASSWORD
        Password:

      To list all usernames that have an entry in the PMDF password
      database, use the following command:

        $ PMDF PASSWORD/SHOW/USER=*

27.7  –  Error messages

  %PMDF-E-
 CANOPNPASS, Password file does not exist or cannot be opened

      The PMDF password database does not exist, or could not be
      opened.

  %SYSTEM-F-NOWORLD, operation requires WORLD privilege

      Must have WORLD privilege to use the PMDF PASSWORD/CONVERT
      command, or to specify an entry for a user other than oneself.

28  –  POPSTORE

    The PMDF POPSTORE or PMDF MSGSTORE command line management
    utility is an interactive, command oriented interface for
    managing popstore and MessageStore accounts. Users with operating
    system privileges as well as users with privileged popstore or
    MessageStore accounts can use the utility. Also, the utility can
    be used as a report generator as described in the PMDF popstore &
    MessageStore Manager's Guide.

    To run the utility, issue the DCL command

    $ PMDF POPSTORE

    or

    $ PMDF MSGSTORE

    Use the EXIT or QUIT command to exit the utility.

28.1  –  ADD

    Add a new user account to the popstore or MessageStore.

    Syntax

      ADD  username[,...]

      ADD/DOMAIN  domain-name

    Command Qualifiers             Defaults

    /CONFIRM
    /DOMAIN
    /FLAGS=flags
    /LOG
    /OVERDRAFT=value
    /OWNER=owner
    /PASSWORD=password
    /PRIVATE=data
    /PROMPT
    /PWDEXPIRED
    /QUOTA=value

28.1.1  –  Parameters

 username

    Username to associate with the account or accounts being created.

28.1.2  –  Description

    The ADD command is used to create one or more new popstore user
    accounts. An account will be created for each username supplied
    on the command line. Initial settings for the accounts are taken
    from the DEFAULT account. Those settings can then be overridden
    with the command line qualifiers described below.

    If a supplied username conflicts with an existing account, no
    new account is created and an error message is issued. Note that
    account usernames are case insensitive. That is the usernames
    JDOE, JDOE, and JDOE are all identical.

    To create a new user domain, specify the /DOMAIN qualifier. If
    the domain already exists, an error will be issued. Otherwise,
    it will be created and a DEFAULT user account for that domain
    created. The new DEFAULT account will be a copy of the DEFAULT
    account from the DEFAULT domain. To begin creating accounts in
    the new domain, use the SET DOMAIN command. The maximum length of
    a user domain name is 40 bytes.

                                   NOTE

       Your PMDF-POPSTORE license controls the number of popstore
       user accounts which you can have at any one time. When
       you reach this limit, you will not be allowed to create
       additional accounts without first deleting some accounts
       or obtaining a new license with an increased limit. Sites
       without a PMDF-POPSTORE license are allowed to use the
       popstore and create up to ten user accounts. This limit does
       not include the DEFAULT account. Use the SHOW/COUNT_USERS
       command to display the number of currently defined accounts
       as well as the limit allowed by your license.

28.1.3  –  Command Qualifiers

28.1.3.1    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    Prompt for positive confirmation before carrying out the
    indicated operation. /NOCONFIRM is the default behavior.

28.1.3.2    /DOMAIN

    Create a new user domain. This switch can not be used in
    conjunction with any of the other ADD command qualifiers.

28.1.3.3    /FLAGS

       /FLAGS=(flag[,...])

    Specify one or more usage flags to associate with the new
    account. The recognized flags are as follows:

    DISMAIL        User is not allowed to receive new mail messages.
    DISUSER        User is not allowed to access their account.
    LOCKPWD        User is not allowed to change their password.
    MANAGE         User is allowed to manage popstore accounts.
    MIGRATED       Internal flag used by the PMDF migration
                   utilities.
    PWD_           Password information is stored outside of the
    ELSEWHERE      popstore.
    NODISMAIL      User is allowed to receive new mail messages.
    NODISUSER      User is allowed to access their account.
    NOLOCKPWD      User is allowed to change their password.
    NOMANAGE       User is not allowed to manage popstore accounts.
    NOMIGRATED     Internal flag used by the PMDF migration
                   utilities.
    NOPWD_         Password information is stored within the
    ELSEWHERE      popstore.

28.1.3.4    /LOG

       /LOG
       /NOLOG (default)

    When the operation is successful, output a status message stating
    that the operation succeeded. Note that error messages are always
    indicated. /NOLOG is the default behavior.

28.1.3.5    /OVERDRAFT

       /OVERDRAFT=value
       /NOOVERDRAFT

    The /OVERDRAFT qualifier specifies the amount of message storage
    by which the account can exceed its message storage quota. If the
    account is currently using less than its storage quota, then a
    new message can be stored provided that it will not result in the
    account's storage exceeding the sum of its storage and overdraft
    quotas.

    The /NOOVERDRAFT qualifier is equivalent to specifying
    /OVERDRAFT=0 and indicates that the account has no overdraft
    quota.

    By default, this quantity is specified in units of kbytes;
    however, the SET STORAGE_UNITS command can be used to change
    the units used.

    The maximum value is 4 gigabytes minus 1. If the value specified
    exceeds the maximum, the value is set to zero (no overdraft
    quota).

28.1.3.6    /OWNER

       /OWNER=owner

    A text string specifying the name of the owner of the account.
    The length of the string can not exceed 40 bytes. The owner
    field is not used by the popstore itself; it is generally used
    by humans to associate account usernames with the actual owner of
    the account.

28.1.3.7    /PASSWORD

       /PASSWORD=password
       /NOPASSWORD

    Specifies the account's access password. The length of the
    password can not exceed 32 bytes. Access by non-managers to the
    account requires knowledge of this password. For instance, to
    access the account from a POP3 client, the correct username and
    password associated with the account must be supplied.

    The /NOPASSWORD qualifier specifies that the account does not
    require a password to access it.

    Note that passwords are case sensitive. Note further that the
    command line reader will convert to lower case any string not
    enclosed in quotes. As such, a password containing upper case
    characters must be enclosed in quotes.

28.1.3.8    /PRIVATE

       /PRIVATE=data

    Site-specific account data can be stored in the account profile
    file using this qualifier. The data string can not exceed a
    length of 64 bytes. This data is not used by the popstore itself
    but can be used by site-developed procedures which access account
    profiles.

28.1.3.9    /PROMPT

       /PROMPT (default)
       /NOPROMPT

    By default if a wildcard is used, even if /NOCONFIRM is
    specified, one confirmation prompt is issued. If /NOPROMPT is
    specified, there is no prompting at all.

28.1.3.10    /PWDEXPIRED

       /PWDEXPIRED
       /NOPWDEXPIRED (default)

    If /PWDEXPIRED is specified, then the account is marked as
    pre-expired. This means that if password expiration is enabled
    through the PASSWORD_LIFETIME option, then the user must change
    their password immediately.

    If /NOPWDEXPIRED is specified (the default), then the account is
    marked as not pre-expired. The time of last password change is
    set to the current time. If password expiration is enabled, then
    the user does not have to change the password until the PASSWORD_
    LIFETIME has run out.

28.1.3.11    /QUOTA

       /QUOTA=value
       /NOQUOTA

    The /QUOTA qualifier specifies the account's message storage
    quota. The account can continue to receive new messages so long
    as the storage consumed by its currently stored messages does not
    exceed its message storage quota. See also /OVERDRAFT.

    A quota value of zero, as specified with /NOQUOTA or /QUOTA=0,
    conveys unlimited storage. That is, to grant an account unlimited
    storage set its quota to zero.

    By default, this quantity is specified in units of kbytes;
    however, the SET STORAGE_UNITS command can be used to change
    the units used.

    The maximum value is 4 gigabytes minus 1. If the value specified
    exceeds the maximum, the value is set to zero (unlimited quota).

28.1.4  –  Examples

      To create the account JDOE for Jane Doe with the password
      SeCrEt, and a quota of 10 Mbytes (10240 Kbytes), use the
      command

 popstore> ADD JDOE/PASSWORD="SeCrEt"/OWNER="Jane Doe"/QUOTA=10240
 popstore> SHOW JDOE
 Username:           jdoe
 Owner:              Jane Doe
 Group:
 Store Type:     popstore
 Usage flags:
 Site-defined:

 Last pwd change:    Fri 15 Nov 15:33:02 2012
 Last connect:       No time recorded
 Last disconnect:    No time recorded
 Total connect time: 0 00:00:00
 Total connections:  0
 Past block days:    0
 Last billing:       Fri Nov 15  5 15:33:02 2012

 Message count:              0 (0 total messages received)
 Quota used:              0.00 Kbytes
 Quota:               10240.00 Kbytes
 Overdraft:              20.00 Kbytes

28.2  –  COPY

    Create a new account which duplicates an existing account
    (popstore only).

    Syntax

      COPY  from-username to-username[,...]

    Command Qualifiers             Defaults

    /CONFIRM
    /FLAGS=flags
    /GROUP_NAME=name
    /LOG
    /OVERDRAFT=value
    /OWNER=owner
    /PASSWORD=password
    /PRIVATE=data
    /PROMPT
    /PWDEXPIRED
    /QUOTA=value

28.2.1  –  Parameters

 from-username

    The name of the popstore account to copy.

 to-username

    The name of the popstore account or accounts to create.

28.2.2  –  Description

    Use the COPY command to create a new popstore account which
    duplicates an existing popstore account. Note that the new
    account will have its usage accounting fields set to zero (e.g.,
    last connect, total connect, past block days, etc.). Also,
    the new account will not have any stored messages, even if the
    account being duplicated has stored messages.

    If the username of the new account conflicts with an existing
    account, no new account is created and an error message is
    issued.

    See also the RENAME command.

                                   NOTE

       Your PMDF-POPSTORE license controls the number of popstore
       user accounts which you can have at any one time. When
       you reach this limit, you will not be allowed to create
       additional accounts without first deleting some accounts
       or obtaining a new license with an increased limit. Sites
       without a PMDF-POPSTORE license are allowed to use the
       popstore and create up to ten user accounts. This limit does
       not include the DEFAULT account. Use the SHOW/COUNT_USERS
       command to display the number of currently defined accounts
       as well as the limit allowed by your license.

28.2.3  –  Command Qualifiers

28.2.3.1    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    Prompt for positive confirmation before carrying out the
    indicated operation. /NOCONFIRM is the default behavior.

28.2.3.2    /FLAGS

       /FLAGS=(flag[,...])

    Specify one or more usage flags to associate with the new
    account. The recognized flags are as follows:

    DISMAIL        User is not allowed to receive new mail messages.
    DISUSER        User is not allowed to access their account.
    LOCKPWD        User is not allowed to change their password.
    MANAGE         User is allowed to manage popstore accounts.
    MIGRATED       Internal flag used by the PMDF migration
                   utilities.
    PWD_           Password information is stored outside of the
    ELSEWHERE      popstore.
    NODISMAIL      User is allowed to receive new mail messages.
    NODISUSER      User is allowed to access their account.
    NOLOCKPWD      User is allowed to change their password.
    NOMANAGE       User is not allowed to manage popstore accounts.
    NOMIGRATED     Internal flag used by the PMDF migration
                   utilities.
    NOPWD_         Password information is stored within the
    ELSEWHERE      popstore.

28.2.3.3    /GROUP_NAME

       /GROUP_NAME=name

    Place the new account into the specified management group. If not
    specified, the the management group of the account being copied
    is assumed. A manager can not create an account into a group
    which they cannot manage.

28.2.3.4    /LOG

       /LOG
       /NOLOG (default)

    When the operation is successful, output a status message stating
    that the operation succeeded. Note that error messages are always
    indicated. /NOLOG is the default behavior.

28.2.3.5    /OVERDRAFT

       /OVERDRAFT=value
       /NOOVERDRAFT

    The /OVERDRAFT qualifier specifies the amount of message storage
    by which the new account can exceed its message storage quota. If
    the account is currently using less than its storage quota, then
    a new message can be stored provided that it will not result in
    the account's storage exceeding the sum of the its storage and
    overdraft quotas.

    By default, this quantity is specified in units of kbytes;
    however, the SET STORAGE_UNITS command can be used to change
    the units used.

    The /NOOVERDRAFT qualifier is equivalent to /OVERDRAFT=0 and
    specifies that the new account has no overdraft quota.

    The maximum value is 4 gigabytes minus 1. If the value specified
    exceeds the maximum, the value is set to zero (no overdraft
    quota).

28.2.3.6    /OWNER

       /OWNER=owner

    A text string specifying the name of the owner of the new
    account. The length of the string can not exceed 40 bytes. The
    owner field is not used by the popstore itself; it is generally
    used by humans to associate account usernames with the actual
    owner of the account.

28.2.3.7    /PASSWORD

       /PASSWORD=password
       /NOPASSWORD

    Specifies the new account's access password. The length of the
    password can not exceed 32 bytes. Access by non-managers to the
    account requires knowledge of this password. For instance, to
    access the account from a POP3 client, the correct username and
    password associated with the account must be supplied.

    The /NOPASSWORD qualifier specifies that the new account does not
    require a password to access it.

    Note that passwords are case sensitive. Note further that the
    command line reader will convert to lower case any string not
    enclosed in quotes. As such, a password containing upper case
    characters must be enclosed in quotes.

28.2.3.8    /PRIVATE

       /PRIVATE=data

    Site-specific account data for the new account can be stored in
    the account profile file using this qualifier. The data string
    can not exceed a length of 64 bytes. This data is not used by
    the popstore itself but can be used by site-developed procedures
    which access account profiles.

28.2.3.9    /PROMPT

       /PROMPT (default)
       /NOPROMPT

    By default if a wildcard is used, even if /NOCONFIRM is
    specified, one confirmation prompt is issued. If /NOPROMPT is
    specified, there is no prompting at all.

28.2.3.10    /PWDEXPIRED

       /PWDEXPIRED
       /NOPWDEXPIRED (default)

    If /PWDEXPIRED is specified, then the account is marked as
    pre-expired. This means that if password expiration is enabled
    through the PASSWORD_LIFETIME option, then the user must change
    their password immediately.

    If /NOPWDEXPIRED is specified (the default), then the account is
    marked as not pre-expired. The time of last password change is
    set to the current time. If password expiration is enabled, then
    the user does not have to change the password until the PASSWORD_
    LIFETIME has run out.

28.2.3.11    /QUOTA

       /QUOTA=value
       /NOQUOTA

    The /QUOTA qualifier specifies the new account's message storage
    quota. The account can continue to receive new messages so long
    as the storage consumed by its currently stored messages does not
    exceed its message storage quota. See also /OVERDRAFT.

    A quota value of zero, as specified with either /QUOTA=0 or
    /NOQUOTA, conveys unlimited storage. That is, to grant an account
    unlimited storage set its quota to zero.

    By default, this quantity is specified in units of kbytes;
    however, the SET STORAGE_UNITS command can be used to change
    the units used.

    The maximum value is 4 gigabytes minus 1. If the value specified
    exceeds the maximum, the value is set to zero (unlimited quota).

28.2.4  –  Examples

      To create a new account JDOE for Jane Doe which duplicates the
      account BSMITH but has different owner and password fields, use
      the command

 popstore> COPY BSMITH JDOE/PASSWORD="SeCrEt"/OWNER="Jane Doe"

28.3  –  DELETE

    Remove user accounts from the popstore or delete users' messages.

    Syntax

      DELETE  username[,...]

    Command Qualifiers             Defaults

    /CONFIRM
    /GROUP=name
    /LOG
    /MESSAGES
    /PROMPT
    /RETURN                        /NORETURN

28.3.1  –  Parameters

 username

    Name of the account to delete. Can contain wild card characters.

28.3.2  –  Description

    Use the DELETE command to remove one or more user accounts. By
    default, stored messages for the accounts are deleted silently.
    To cause unread messages to be returned to their originators as
    undelivered, specify /RETURN.

    Use the /MESSAGES qualifier to delete or return a user's
    messages. The account itself will not be deleted.

    When the USERNAME parameter contains wild card characters, all
    matching accounts within the manager's management group and
    subgroups thereof will be deleted. The /GROUP qualifier can be
    used to further constrain which accounts are deleted.

28.3.3  –  Command Qualifiers

28.3.3.1    /CONFIRM

       /CONFIRM
       /NOCONFIRM

    Prompt for positive confirmation before carrying out the
    indicated operation. When wild cards are not used, /NOCONFIRM
    is the default. When wild cards are used, /CONFIRM is the default
    and a prompt is issued for each account to be operated upon.
    Moreover, when wild cards are used, /NOCONFIRM causes only a
    single prompt to be issued-it does not eliminate the prompt
    altogether.

28.3.3.2    /GROUP

       /GROUP=name

    Name of a management group to constrain the operation to. This
    qualifier can be used in conjunction with a username parameter
    containing wild card characters so as to further constrain the
    delete operation.

28.3.3.3    /LOG

       /LOG
       /NOLOG

    When the operation is successful, output a status message stating
    that the operation succeeded. Note that error messages are always
    indicated. /NOLOG is the default behavior unless wild cards are
    used in which case /LOG is the default.

28.3.3.4    /MESSAGES

    When the /MESSAGES qualifier is specified, only the user's
    messages are deleted or returned. The account itself is not
    deleted.

28.3.3.5    /PROMPT

       /PROMPT (default)
       /NOPROMPT

    By default if a wildcard is used, even if /NOCONFIRM is
    specified, one confirmation prompt is issued. If /NOPROMPT is
    specified, there is no prompting at all.

28.3.3.6    /RETURN

       /RETURN
       /NORETURN (default)

    When /RETURN is specified, unread messages are returned to their
    originator as undelivered. By default unread messages are deleted
    without sending a non-delivery notice back to their originators.

28.3.4  –  Examples

      To delete the accounts JDOE and BSMITH, issue the command

        popstore> DELETE JDOE,BSMITH

28.4  –  EXIT

    Exit the utility.

    Syntax

      EXIT

    Command Qualifiers             Defaults

    None

28.4.1  –  Parameters

    None.

28.4.2  –  Description

    The EXIT command exits the utility.

28.5  –  FORWARD

    Establish a forwarding address.

    Syntax

      FORWARD  username forward-to-address

    Command Qualifiers             Defaults

    /OVERRIDE                      /OVERRIDE

28.5.1  –  Parameters

 username

    Username for which to establish a forwarding address.

 forward-to-address

    Address to which to forward messages. Must be a single, fully-
    qualified RFC822 address-specifically, a RFC822 "addr-spec".

28.5.2  –  Description

    Messages destined for the popstore can be automatically forwarded
    to a different popstore addressee or to another address outside
    of the popstore altogether. This is done by establishing a
    forwarding address with the FORWARD command. For instance, to
    forward all mail for the popstore user SANDY to the address
    sandra@example.com, issue the command

    popstore> FORWARD SANDY SANDRA@EXAMPLE.COM

    The username supplied (e.g., SANDY) need not correspond to an
    actual popstore account.

    Note that if more than one forwarding address is supplied, then
    each address should be separated by commas and all the addresses
    enclosed in a set of double quotes. For example,

    popstore> FORWARD SANDY "SANDY,SANDRA@EXAMPLE.COM"

    When a forwarding address is established for an actual popstore
    user, that user will no longer receive mail in the popstore
    unless the forwarding includes their account in the list of
    addresses to forward to. For instance, the first example
    above would cause the account SANDY to no longer receive into
    the popstore mail sent to it. The mail is instead directed
    to sandra@example.com. In the second example, however, mail
    will still be stored into the popstore for the account
    SANDY. In addition, a copy of the mail will be forwarded to
    sandra@example.com.

28.5.3  –  Command Qualifiers

28.5.3.1    /OVERRIDE

       /OVERRIDE (default)
       /NOOVERRIDE

    By default, forwarding addresses can be established for existing
    popstore users. Specify /NOOVERRIDE to prevent inadvertently
    forwarding an existing user's messages elsewhere.

    A manager cannot establish a forwarding address which will
    override a popstore account outside of their own management
    group.

28.6  –  GROUP

    Manipulate management groups.

    Syntax

      GROUP/ADD  [group-name [subgroup-name[,...]]]

      GROUP/DELETE  group-name

      GROUP/LIST  [group-name]

      GROUP/MODIFY  group-name [subgroup-name[,...]]

    Command Qualifiers             Defaults

    /ADD
    /CONFIRM
    /DELETE
    /FORMAT_FILE=file-spec
    /LIST
    /LOG
    /MODIFY
    /OUTPUT=file-spec
    /PROMPT
    /RECUR

28.6.1  –  Parameters

 group-name

    Name of the group to add, delete, list, or modify. Wild cards can
    be used in conjunction with the /LIST qualifier.

 subgroup-name[,...]

    A comma separated list group names to associated with the group
    being added or modified. The listed groups will become subgroups
    of the group being added or modified.

28.6.2  –  Description

    The GROUP command is used to manipulate the popstore management
    groups. Only managers with either operating system privileges or
    a privileged popstore account with access to the WORLD group can
    use this command. In regards to the latter case, that means that
    the manager's account must have the MANAGE usage flag set and
    either have no group name associated with the account-the empty
    group-or be in a management group which contains as a subgroup
    the WORLD group. The one exception to this rule is that a manager
    can always use the /LIST qualifier to list their own management
    group and subgroups thereof.

28.6.3  –  Command Qualifiers

28.6.3.1    /ADD

    This qualifier indicates that a new management group is to be
    added. If a group already exists with the same name, then an
    error will be output.

28.6.3.2    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    Prompt for positive confirmation before carrying out the
    indicated operation. /NOCONFIRM is the default behavior.

28.6.3.3    /DELETE

    This qualifier indicates that the specified management group
    is to be deleted. Note that subgroups contained within the
    group are not deleted by default. Specify /RECUR to also
    delete any subgroups. Moreover, the actual accounts in the
    group are not deleted either. They can only be deleted with a
    DELETE/GROUP=GROUP_NAME * command.

28.6.3.4    /FORMAT_FILE

       /FORMAT_FILE=file-spec

    Specify a formatting file to use to format the output of
    GROUP/LIST command.

28.6.3.5    /LIST

    List the specified groups and subgroups. When this qualifier is
    used, the GROUP-NAME parameter can contain wild card characters.
    When the parameter is omitted, * is assumed.

28.6.3.6    /LOG

       /LOG
       /NOLOG (default)

    When the operation is successful, output a status message stating
    that the operation succeeded. Note that error messages are always
    indicated. /NOLOG is the default behavior.

28.6.3.7    /MODIFY

    Modify the specified group, replacing its list of subgroups with
    the specified list. If no list is specified, then the group is
    changed to contain no subgroups.

28.6.3.8    /OUTPUT

       /OUTPUT=file-spec

    Write the output to the specified file rather than to the
    terminal.

28.6.3.9    /PROMPT

       /PROMPT (default)
       /NOPROMPT

    By default if a wildcard is used, even if /NOCONFIRM is
    specified, one confirmation prompt is issued. If /NOPROMPT is
    specified, there is no prompting at all. This qualifier can be
    used in conjunction with the /ADD, /DELETE, or /MODIFY switches.

28.6.3.10    /RECUR

       /RECUR
       /NORECUR (default)

    This qualifier can be used in conjunction with /DELETE. By
    default, only the specified group is deleted. Subgroups of that
    group are not deleted unless /RECUR is also specified.

28.7  –  LOGIN

    Activate management privileges.

    Syntax

      LOGIN  [username]

    Command Qualifiers             Defaults

    None

28.7.1  –  Parameters

 username

    Name of the account under which to log in.

28.7.2  –  Description

    Popstore users who have popstore management privileges but lack
    operating system privileges must log in to their account with
    the LOGIN command in order to perform management operations.
    Once logged in, the utility will then allow the user to perform
    management operations. Users who have operating system privileges
    (e.g., SYSPRV and SYSLCK privileges on OpenVMS), need not log in
    to their account.

    To log in to a popstore account, the popstore account's username
    should be supplied using the username parameter to the LOGIN
    command. If the username parameter is omitted, the utility will
    use the name of the operating system account under which the user
    is logged in. The utility will then prompt for a password. If
    the correct password for the popstore account is supplied, and
    the account has the manage flag set, then the utility will allow
    management operations to be undertaken using the utility's image
    privileges.

    A popstore account is granted management privileges by specifying

    /FLAGS=MANAGE

    when creating or modifying it with the ADD or MODIFY commands.

    See also the LOGOUT command.

28.7.3  –  Examples

      To log in to the account BOB, issue the command

        popstore> LOGIN BOB
        Password: santaclaus
        Login succeeded; management capabilities enabled

28.8  –  LOGOUT

    Deactivate management privileges.

    Syntax

      LOGOUT

    Command Qualifiers             Defaults

    None

28.8.1  –  Parameters

    None.

28.8.2  –  Description

    Use the LOGOUT command to deactivate privileges activated with
    the LOGIN command. Note that management privileges are also
    deactivated when the utility is exited.

28.9  –  MODIFY

    Change characteristics of one or more existing accounts.

    Syntax

      MODIFY  username[,...]

    Command Qualifiers             Defaults

    /CONFIRM
    /FLAGS=flags
    /GROUP=name
    /GROUP_NAME=name
    /LAST_CONNECT
    /LAST_DISCONNECT
    /LOG
    /MESSAGE_COUNT=value
    /OVERDRAFT=value
    /OWNER=owner
    /PASSWORD=password
    /PAST_BLOCK_DAYS=value
    /PRIVATE=data
    /PROMPT
    /PWDEXPIRED
    /QUOTA=value
    /RECEIVED_BYTES=value
    /RECEIVED_MESSAGES=value
    /TOTAL_CONNECT=value
    /TOTAL_CONNECTIONS=value

28.9.1  –  Parameters

 username

    Name of the account for which to make the modifications. Can
    contain wild card characters.

28.9.2  –  Description

    The MODIFY command changes one or more characteristics of an
    existing account. Characteristics not specified with qualifiers
    in the command are left unchanged.

    When the username parameter contains wild card characters, all
    matching accounts within the manager's management group and
    subgroups thereof will be modified. The /GROUP qualifier can
    be used to further constrain which accounts are modified.

28.9.3  –  Command Qualifiers

28.9.3.1    /CONFIRM

       /CONFIRM
       /NOCONFIRM

    Prompt for positive confirmation before carrying out the
    indicated operation. When wild cards are not used, /NOCONFIRM
    is the default. When wild cards are used, /CONFIRM is the default
    and a prompt is issued for each account to be operated upon.
    Moreover, when wild cards are used, /NOCONFIRM causes only a
    single prompt to be issued-it does not eliminate the prompt
    altogether.

28.9.3.2    /FLAGS

       /FLAGS=(flag[,...])

    Change the usage flags associated with the account. The
    recognized flags are as follows:

    DISMAIL        User is not allowed to receive new mail messages.
    DISUSER        User is not allowed to access their account.
    LOCKPWD        User is not allowed to change their password.
    MANAGE         User is allowed to manage popstore accounts.
    MIGRATED       Internal flag used by the PMDF migration
                   utilities.
    PWD_           Password information is stored outside of the
    ELSEWHERE      popstore.
    NODISMAIL      User is allowed to receive new mail messages.
    NODISUSER      User is allowed to access their account.
    NOLOCKPWD      User is allowed to change their password.
    NOMANAGE       User is not allowed to manage popstore accounts.
    NOMIGRATED     Internal flag used by the PMDF migration
                   utilities.
    NOPWD_         Password information is stored within the
    ELSEWHERE      popstore.

28.9.3.3    /GROUP

       /GROUP=name

    Name of a management group to constrain the operation to. This
    qualifier can be used in conjunction with a username parameter
    containing wild card characters so as to further constrain the
    modify operation.

28.9.3.4    /GROUP_NAME

       /GROUP_NAME=name

    Change the accounts to be in the specified management group. A
    manager can not change an account's management group to be a
    group outside of the manager's group.

28.9.3.5    /LAST_CONNECT

    Clear the user's last connect time field.

28.9.3.6    /LAST_DISCONNECT

    Clear the user's last disconnect time field.

28.9.3.7    /LOG

       /LOG
       /NOLOG

    When the operation is successful, output a status message stating
    that the operation succeeded. Note that error messages are always
    indicated. /NOLOG is the default behavior unless wild cards are
    used in which case /LOG is the default.

28.9.3.8    /MESSAGE_COUNT

       /MESSAGE_COUNT=value

    Reduce the user's message count to the specified value, deleting
    stored messages if necessary. The act of deleting stored message
    will change the past block days field.

28.9.3.9    /OVERDRAFT

       /OVERDRAFT=value
       /NOOVERDRAFT

    Change the account's overdraft quota which is the amount of
    message storage by which the account can exceed its primary
    message storage quota. By default, this quantity is specified
    in units of kbytes; however, the SET STORAGE_UNITS command can be
    used to change the units used.

    The /NOOVERDRAFT qualifier is equivalent to specifying
    /OVERDRAFT=0 and indicates that the account has no overdraft
    quota.

    The maximum value is 4 gigabytes minus 1. If the value specified
    exceeds the maximum, the value is set to zero (no overdraft
    quota).

28.9.3.10    /OWNER

       /OWNER=owner

    Change the accounts ownership field. The length of the string
    can not exceed 40 bytes. The owner field is not used by the
    popstore itself; it is generally used by humans to associate
    account usernames with the actual owner of the account.

28.9.3.11    /PASSWORD

       /PASSWORD=password
       /NOPASSWORD

    Change the account's password. The length of the password can not
    exceed 32 bytes. Access by non-managers to the account requires
    knowledge of this password. For instance, to access the account
    from a POP3 client, the correct username and password associated
    with the account must be supplied.

    The /NOPASSWORD qualifier specifies that the account does not
    require a password to access it.

    Note that passwords are case sensitive. Note further that the
    command line reader will convert to lower case any string not
    enclosed in quotes. As such, a password containing upper case
    characters must be enclosed in quotes.

28.9.3.12    /PAST_BLOCK_DAYS

       /PAST_BLOCK_DAYS=value

    Set the user's past block days field to the specified, integer
    value. Changing this value clears the past block days remainder
    field.

28.9.3.13    /PRIVATE

       /PRIVATE=data

    Change the site-specific account data stored in the account
    profile file. The data string can not exceed a length of 64
    bytes. This data is not used by the popstore itself but can be
    used by site-developed procedures which access account profiles.

28.9.3.14    /PROMPT

       /PROMPT (default)
       /NOPROMPT

    By default if a wildcard is used, even if /NOCONFIRM is
    specified, one confirmation prompt is issued. If /NOPROMPT is
    specified, there is no prompting at all.

28.9.3.15    /PWDEXPIRED

       /PWDEXPIRED
       /NOPWDEXPIRED

    If /PWDEXPIRED is specified, then the account is marked as
    pre-expired. This means that if password expiration is enabled
    through the PASSWORD_LIFETIME option, then the user must change
    their password immediately.

    If /NOPWDEXPIRED is specified, then the account is marked as
    not pre-expired. The time of last password change is set to the
    current time. If password expiration is enabled, then the user
    does not have to change the password until the PASSWORD_LIFETIME
    has run out.

    The default is to not change the pre-expired status of the
    account.

28.9.3.16    /QUOTA

       /QUOTA=value
       /NOQUOTA

    Change the account's message storage quota. The account can
    continue to receive new messages so long as the storage consumed
    by its currently stored messages does not exceed its message
    storage quota. See also /OVERDRAFT.

    A quota value of zero, as specified with /NOQUOTA or /QUOTA=0,
    conveys unlimited storage. That is, to grant an account unlimited
    storage set its quota to zero.

    A quota value of zero, conveys unlimited storage. That is, to
    grant an account unlimited storage set its quota to zero.

    By default, this quantity is specified in units of kbytes;
    however, the SET STORAGE_UNITS command can be used to change
    the units used.

    The maximum value is 4 gigabytes minus 1. If the value specified
    exceeds the maximum, the value is set to zero (unlimited quota).

28.9.3.17    /RECEIVED_BYTES

       /RECEIVED_BYTES=value

    Set the cumulative count of received message bytes to the
    specified, integer value. By default, this quantity is specified
    in units of kbytes; however, the SET STORAGE_UNITS command can be
    used to change the units used. The maximum value is 4 gigabytes
    minus 1. If the value specified exceeds the maximum, the value is
    set to zero.

28.9.3.18    /RECEIVED_MESSAGES

       /RECEIVED_MESSAGES=value

    Set the cumulative count of received messages to the specified,
    integer value.

28.9.3.19    /TOTAL_CONNECT

       /TOTAL_CONNECT=value

    Set the user's total connect field to the specified, integer
    value.

28.9.3.20    /TOTAL_CONNECTIONS

       /TOTAL_CONNECTIONS=value

    Set the user's count of total connections to the specified,
    integer value.

28.9.4  –  Examples

      In the following example, the quota and password fields are
      changed for the user JDOE:

        popstore> MODIFY JDOE/PASSWORD="TodaY"/QUOTA=20000

28.10  –  NOFORWARD

    Remove a forwarding address.

    Syntax

      NOFORWARD  username[,...]

    Command Qualifiers             Defaults

    None

28.10.1  –  Parameters

 username

    Username for which to remove the forwarding.

28.10.2  –  Description

    Forwarding addresses are removed with the UNFORWARD command. If
    the supplied username also matches an existing popstore account,
    then that account will resume receiving new mail messages.

28.11  –  QUIT

    Exit the utility.

    Syntax

      QUIT

    Command Qualifiers             Defaults

    None

28.11.1  –  Parameters

    None.

28.11.2  –  Description

    The QUIT command exits the utility. The QUIT command is a synonym
    for the EXIT command.

28.12  –  RENAME

    Change the username associated with an account (popstore only).

    Syntax

      RENAME  old-username new-username

    Command Qualifiers             Defaults

    /CONFIRM
    /LOG
    /PROMPT

28.12.1  –  Parameters

 old-username

    The old name of the account.

 new-username

    The new name for the account.

28.12.2  –  Description

    The RENAME command changes the username associated with a
    popstore account. Once an account is renamed, it can no longer
    receive mail under the old name unless a forwarding from the
    old name to the new name is also established with the FORWARD
    command.

28.12.3  –  Command Qualifiers

28.12.3.1    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    Prompt for positive confirmation before carrying out the
    indicated operation. /NOCONFIRM is the default behavior.

28.12.3.2    /LOG

       /LOG
       /NOLOG (default)

    When the operation is successful, output a status message stating
    that the operation succeeded. Note that error messages are always
    indicated. /NOLOG is the default behavior.

28.12.3.3    /PROMPT

       /PROMPT (default)
       /NOPROMPT

    By default if a wildcard is used, even if /NOCONFIRM is
    specified, one confirmation prompt is issued. If /NOPROMPT is
    specified, there is no prompting at all.

28.12.4  –  Examples

      To rename the popstore account JDOE to JANEDOE, issue the
      command:

        popstore> RENAME JDOE JANEDOE

28.13  –  SET

28.13.1  –  DOMAIN

    Select the user domain to manage.

    Syntax

      SET DOMAIN  domain-name

    Command Qualifiers             Defaults

    None

28.13.1.1  –  Parameters

 domain-name

    Name of the user domain to manage.

28.13.1.2  –  Description

    By default, the DEFAULT user domain is managed with this utility.
    To manage a different user domain, select that domain with the
    SET DOMAIN command.

    For example, to manage the EXAMPLE.COM domain, specify

    popstore> SET
    Using the "default" user domain
    ...
    popstore> SET DOMAIN EXAMPLE.COM
    popstore> SET
    Using the "example.com" user domain
    ...
    popstore>

28.13.2  –  STORAGE_UNITS

    Set the units used to measure byte-counted values.

    Syntax

      SET STORAGE_UNITS  type

    Command Qualifiers             Defaults

    None

28.13.2.1  –  Parameters

 type

    Type of units to use. Must be one of BYTES, KBYTES, MBYTES, or
    GBYTES.

28.13.2.2  –  Description

    By default, units of KBYTES (1024 bytes) are used when specifying
    values for byte-count valued fields such as message quotas.

    To select a unit of measure other than KBYTES, use the SET
    STORAGE_UNITS command. BYTES selects bytes, KBYTES selects
    1024 bytes, MBYTES selects 1024 KBYTES, and GBYTES selects 1024
    MBYTES.

    After issuing a SET STORAGE_UNITS command, all byte-count valued
    numbers input on the command line will be interpreted as being
    measured in the newly selected units. Note that displayed values
    are displayed in the units called for by the formatting template
    used to generate the display.

    For example, to use units of megabytes, specify

    popstore> SET STORAGE_UNITS MBYTES

28.13.3  –  TIME_UNITS

    Set the units used to measure time-valued fields.

    Syntax

      SET TIME_UNITS  type

    Command Qualifiers             Defaults

    None

28.13.3.1  –  Parameters

 type

    Type of units to use. Must be one of SECONDS, MINUTES, HOURS, or
    DAYS.

28.13.3.2  –  Description

    By default, time units of DAYS are used when specifying values
    for time-valued fields. Presently, the only time-valued field
    is the total connect time field which can be modified with the
    /TOTAL_CONNECT qualifier of the MODIFY command.

    To select a unit of measure other than DAYS, use the SET TIME_
    UNITS command. After issuing a SET TIME_UNITS command, all time-
    valued numbers input on the command line will be interpreted as
    being measured in the newly selected units. Note that displayed
    values are displayed in the units called for by the formatting
    template used to generate the display. For example, to use units
    of HOURS, specify

    popstore> SET TIME_UNITS HOURS

28.14  –  SHOW

    Display user accounts.

    Syntax

      SHOW  username[,...]

    Command Qualifiers             Defaults

    /ALL
    /BRIEF
    /COUNT_USERS
    /DOMAINS
    /FORMAT_FILE=file-spec
    /FORWARDINGS
    /GROUP=name
    /MESSAGES
    /OUTPUT=file-spec
    /STORE=store-type

28.14.1  –  Parameters

 username

    Names of the accounts for which to display information. Wild
    cards are permitted.

28.14.2  –  Description

    The SHOW command shows settings for one or more user profiles,
    displays established forwarding addresses, and lists information
    about messages received by users. The username parameter can
    contain wild cards when displaying account information; it can
    not contain wild cards when listing forwardings.

    Use the SHOW/FORWARDINGS and SHOW/DOMAINS commands to generate
    listings of, respectively, user e-mail forwardings and user
    domains.

    Use the SHOW/COUNT_USERS command to list the number of currently
    defined accounts as well as any licensing limits.

28.14.3  –  Command Qualifiers

28.14.3.1    /ALL

    By default, only popstore accounts are displayed: MessageStore
    and native accounts are not displayed. Specify /ALL to list all
    accounts. Note that /ALL and /STORE=ALL are synonyms.

28.14.3.2    /BRIEF

    Generate a brief profile or message listing. By default, the
    formatting file POPMGR_PROFILE_BRIEF.TXT is used to format the
    output for profile displays and POPMGR_MESSSAGE_BRIEF.TXT for
    message displays. This qualifier has no effect when used in
    conjunction with the /FORWARDINGS qualifier.

28.14.3.3    /COUNT_USERS

    Display the number of currently defined user accounts as well as
    the number allowed by your PMDF-POPSTORE license. Specify /ALL to
    see both the popstore and MessageStore counts.

28.14.3.4    /DOMAINS

    Generate a list of defined user domains. By default, the
    formatting file POPMGR_DOMAINS.TXT is used to format the output.

28.14.3.5    /FORMAT_FILE

       /FORMAT_FILE=file-spec

    Specify a formatting file to use to format the output.

28.14.3.6    /FORWARDINGS

    Display information about established forwarding addresses. By
    default, the formatting file POPMGR_FORWARD.TXT is used to format
    the output.

28.14.3.7    /FULL

       /FULL (default)

    Generate verbose output. By default, the formatting file POPMGR_
    PROFILE.TXT is used to format profile information; POPMGR_
    MESSAGE.TXT for message listings; POPMGR_DOMAINS.TXT for domain
    listings; and, POPMGR_FORWARD.TXT for forwarding addresses. Those
    formatting files are found with the other formatting files in the
    PMDF_ROOT:[WWW.POPSTORE] directory.

28.14.3.8    /GROUP

       /GROUP=name

    Confine the listing to the specified management group and its
    subgroups.

28.14.3.9    /MESSAGES

    Display information on the users' messages. By default, the
    formatting file POPMGR_MESSAGE.TXT is used to format the display.

28.14.3.10    /OUTPUT

       /OUTPUT=file-spec

    Write the output to the specified file rather than to the
    terminal.

28.14.3.11    /STORE

       /STORE=store-type

    By default, only popstore accounts are displayed: MessageStore
    and native accounts are not displayed. Specify /STORE=ALL to list
    all accounts; use a store-type of MSGSTORE or IMAP to list only
    MessageStore accounts; use a store-type of POPSTORE or POP to
    list only popstore accounts; and, use a store-type of NATIVE to
    list only profiles marked as being native.

28.14.4  –  Examples

      In the following example, full and brief listings are generated
      for the DEFAULT popstore account:

 popstore> SHOW DEFAULT

 Username:        default
 Owner:           Default user profile
 Group:
 Store Type:     popstore
 Usage flags:
 Site-defined:

 Last pwd change:    No time recorded
 Last connect:       No time recorded
 Last disconnect:    No time recorded
 Total connect time: 0 00:00:00
 Total connections:  0
 Past block days:    0
 Last billing:       Fri Nov 15 10:23:54 2012

 Message count:              0 (0 total messages received)
 Quota used:              0.00 Kbytes
 Quota:                1024.00 Kbytes
 Overdraft:              51.00 Kbytes

 popstore> SHOW/BRIEF DEFAULT
                                        Quota  Message  Quota used
  Username                           (kbytes)    Count    (kbytes)
  ----------------------------------------------------------------
  default                             1024.00        0        0.00
  ----------------------------------------------------------------
 *Note: privileged users are flagged with an asterisk

28.15  –  TEST

    Test optional, site-supplied subroutines to verify that they load
    and function correctly.

    Syntax

      TEST/BLOCK_DAYS  image-spec starting-time ending-time size

                       remainder

      TEST/CONNECT  image-spec starting-time ending-time

      TEST/MESSAGE_MAPPING  image-spec

      TEST/PATHS  path-file-spec

      TEST/PROFILE_MAPPING  image-spec

    Command Qualifiers             Defaults

    /BLOCK_DAYS
    /CONNECT
    /MESSAGE_MAPPING
    /PATHS
    /PROFILE_MAPPING

28.15.1  –  Parameters

 image-spec

    Executive mode logical whose translation value is the file
    specification for the shareable image containing the subroutine
    to test.

 starting-time

    Starting time value to pass to the COMPUTE_CONNECT or COMPUTE_
    BLOCK_DAYS subroutine.

 ending-time

    Ending time value to pass to the COMPUTE_CONNECT or COMPUTE_
    BLOCK_DAYS subroutine.

 size

    Size value to pass to the COMPUTE_BLOCK_DAYS subroutine.

 remainder

    Remainder value to pass to the COMPUTE_BLOCK_DAYS subroutine.

 path-file-spec

    File specification for the file of directory paths to check.

28.15.2  –  Description

    The TEST command provides a mechanism to test site-supplied
    subroutines intended for use with the popstore. The purpose and
    usage of those subroutines is described in the PMDF popstore
    & MessageStore Manager's Guide. Note that the shareable image
    containing the subroutine to be tested must be installed as a
    known image with the DCL INSTALL CREATE command. Moreover, an
    executive mode logical must be used to reference the image.
    The name of that logical is specified with the image-spec
    parameter. And, any logical referenced by that logical must also
    be an executive mode logical. These requirements are OpenVMS
    requirements and are enforced by LIB$FIND_IMAGE_SYMBOL, the run-
    time library subroutine used by the popstore to dynamically load
    and link to the subroutine.

    Note that if you use the TEST command and then subsequently
    change your subroutine, then you will need to exit the utility
    and restart it before you can retest your subroutine. This is
    because LIB$FIND_IMAGE_SYMBOL won't reload the subroutine a
    second time. Also, when rebuilding a shareable image, be sure
    to use the DCL INSTALL REPLACE command to install the new version
    of the image.

    The TEST/MESSAGE_MAPPING and TEST/PROFILE_MAPPING commands test,
    respectively, MAP_MESSAGE_FILENAME and MAP_PROFILE_FILENAME
    subroutines. The command will load the subroutine from the
    specified image and then, for each stored message or profile
    file, run the filename through the subroutine. The input and
    output file names for each file will be displayed along with
    diagnostic information, should an error occur.

    The TEST/CONNECT and TEST/BLOCK_DAYS commands test, respectively,
    the COMPUTE_CONNECT and COMPUTE_BLOCK_DAYS subroutines. With
    each command, you can specify the values of the input arguments
    to be passed to those subroutines. The results produced by
    the subroutine will then be displayed. Should an error occur,
    diagnostic information will be displayed.

    Text files intended for use as PMDF_TABLE:POPSTORE_MESSAGE_PATHS.
    or PMDF_TABLE:POPSTORE_PROFILES_PATHS. files can be tested with
    the TEST /PATHS command. The command will scan the directory
    trees listed in the specified file, displaying the files found in
    each directory tree.

28.15.3  –  Command Qualifiers

28.15.3.1    /BLOCK_DAYS

    Test the COMPUTE_BLOCK_DAYS subroutine from the shareable image
    image-spec.

28.15.3.2    /CONNECT

    Test the COMPUTE_CONNECT subroutine from the shareable image
    image-spec.

28.15.3.3    /MESSAGE_MAPPING

    Test the MAP_MESSAGE_FILENAME subroutine from the shareable image
    image-spec.

28.15.3.4    /PROFILE_MAPPING

    Test the MAP_PROFILE_FILENAME subroutine from the shareable image
    image-spec.

28.15.3.5    /PATHS

    List the files from the directory trees specified in the path
    file path-file-spec.

28.15.4  –  Examples

      In the following example, the MAP_PROFILE_FILENAME subroutine
      described in the PMDF popstore & MessageStore Manager's Guide
      is tested with the TEST/PROFILE_MAPPING command on an OpenVMS
      Alpha system.

 $ DEFINE/SYSTEM/EXECUTIVE_MODE POP_MAP_PROFILES -
 _$      DISK3:[IMAGES]MAP_PROFILES.EXE
 $ CC MAP_PROFILES.C
 $ LINK/SHAREABLE=POP_MAP_PROFILES MAP_PROFILES.OBJ,SYS$INPUT:/OPT
 SYMBOL_VECTOR=(map_profile_filename=PROCEDURE)
 <CTRL/Z>

 $ INSTALL CREATE POP_MAP_PROFILES
 $ PMDF POPSTORE
 popstore> TEST/PROFILE_MAPPING POP_MAP_PROFILES
 PMDF_POPSTORE_PROFILES:[C.R.W]CRW.;1 -> DISK0:[PROFILES.C.R.W]CRW.;
 PMDF_POPSTORE_PROFILES:[D.A.D]DAVID.;1 -> DISK0:[PROFILES.D.A.D]DAVID.;
 PMDF_POPSTORE_PROFILES:[D.A.N]DAN.;1 -> DISK0:[PROFILES.D.A.N]DAN.;
 PMDF_POPSTORE_PROFILES:[D.E.T]DEFAULT.;1 -> DISK0:[PROFILES.D.E.T]DEFAULT.;
 PMDF_POPSTORE_PROFILES:[K.E.N]KEVIN.;1 -> DISK0:[PROFILES.K.E.N]KEVIN.;
 PMDF_POPSTORE_PROFILES:[K.R.N]KRISTIN.;1 -> DISK0:[PROFILES.K.R.N]KRISTIN.;
 PMDF_POPSTORE_PROFILES:[P.E.E]PEKIE.;1 -> DISK1:[PROFILES.P.E.E]PEKIE.;
 PMDF_POPSTORE_PROFILES:[T.E.T]TEST.;1 -> DISK1:[PROFILES.T.E.T]TEST.;
 popstore>

29  –  PROCESS

    List currently executing PMDF jobs.

    Syntax

      PMDF PROCESS  [node]

    Command Qualifiers             Defaults

    /MEMORY                        See text

29.1  –  Restrictions

    Requires WORLD privilege in order to see all processes.

29.2  –  Parameters

 node

    The name of the node whose PMDF processes are to be displayed.
    The asterisk character, *, may be specified to display processes
    on all nodes in the cluster.

29.3  –  Description

    Show current PMDF processes. Normally, the PMDF Service
    Dispatcher should always be present; additional processes may be
    present if messages are currently being processed, or if certain
    additional PMDF components are in use.

29.4  –  Command Qualifiers

29.4.1    /MEMORY

    Show the amount of memory being used by the processes.

29.5  –  Examples

      The following command shows current PMDF processes:

  $ PMDF PROCESS
  VAX OpenVMS V6.2     on node NAPLES 15-AUG-2012 10:56:23.25
  Physical memory 80 MB (163840 pages) up since 14-AUG-2012 06:34:27.50

  ----- The following are on node NAPLES, a VAXstation 4000-90A -----
    Pid    Process Name    State  Pri      I/O       CPU       Page flts  Pages
  22600127 PMDF counters   HIB      8     2028   0 00:00:07.66      4390    203
  22600372 <HTTP-01>       HIB      6     1824   0 00:00:02.74      4921    124
  226002B2 <DISPATCHER-01> HIB      6     4412   0 00:00:10.04     15578    554
  226002B3 <SMTP-01>       HIB      6     5249   0 00:00:28.85     22094   1246
  226002B6 <POPPASSD-01>   HIB      6      166   0 00:00:01.62      5248    198

30  –  PS

    Convert text and Runoff .MEM output files to PostScript.

30.1  –  Restrictions

    This utility is supplied only with the PMDF-FAX optional layered
    product.

    Syntax

      PMDF PS  input-file-spec [output-file-spec]

    Qualifiers                     Defaults

    /BOTTOM_MARGIN=margin          /BOTTOM_MARGIN=72
    /CALCULATE                     None
    /CHARSET=charset_name          /CHARSET=US-ASCII
    /COLUMNS=columns_per_page      /COLUMNS=1
    /END_PAGE=page_number          See text
    /FONT=font                     /FONT=COURIER
    /FORM=form_type                /FORM=LETTER
    /HEIGHT=form_height            /HEIGHT=11
    /ITALIC                        /UNDERLINE
    /LANDSCAPE                     /PORTRAIT
    /LEFT_MARGIN=margin            /LEFT_MARGIN=72
    /LINES=lines_per_page          None
    /MAIL                          None
    /NUMBER_PAGES                  /NONUMBER_PAGES
    /PORTRAIT                      /PORTRAIT
    /SIZE=font_size                /SIZE=12
    /SPACING=spacing_factor        /SPACING=1
    /START_PAGE=page_number        /START_PAGE=1
    /TOP_MARGIN=margin             /TOP_MARGIN=72
    /UNDERLINE                     /UNDERLINE
    /WIDTH=form_width              /WIDTH=8.5

30.2  –  Prompts

    Input file:   input-file-spec
    Output file:  output-file-spec

30.3  –  Parameters

 input-file-spec

    The name of the text or Runoff .MEM file to convert to
    PostScript. Only a single file can be specified; wildcards cannot
    be used.

 output-file-spec

    An optional parameter specifying the name of the file to which
    to write the PostScript. If no file name is specified, then the
    output file will have the same name as the input file but with a
    file extension of .PS.

30.4  –  Description

    PS converts normal text files to PostScript (PS) files that can
    be printed or displayed on PostScript devices. The PS utility can
    also translate Runoff .MEM files to Postscript.

    PostScript graphics can be inserted into the text at any point.
    The PostScript graphics should be in a separate file and
    referenced in the text file being converted using the command
    sequence

    `~`~{include file-spec}

    with FILE-SPEC the name of the file containing the PostScript
    graphics (or commands) to insert. This command sequence can
    occur anywhere in the file and as often as desired. PS sets
    the PostScript coordinate system so that (0,0) corresponds to
    the position on the page where the next text to be converted to
    PostScript will be positioned, and then merges the PostScript
    code from the file into the PS output stream. The effect of this
    is that the lower left corner of the included image will appear
    just where the command sequence appeared in the text. The command
    sequence itself is removed and does not appear in the output. No
    blank space is reserved for the image; you must do this yourself
    in the text file.

    PostScript commands can also be inserted directly into the text
    input file being processed. To do this, use the command sequence

    `~`~{insert PostScript commands}

    The inserted PostScript commands sequence will be preceeded by
    a save operator and followed by a restore operator. As with the
    include command, space is not reserved for the output of the
    inserted PostScript commands.

                                   NOTE

       PS is part of the PMDF-FAX product. It is not part of the
       base PMDF distribution.

30.5  –  Qualifiers

30.5.1    /BOTTOM_MARGIN

       /BOTTOM_MARGIN=margin

    This is the distance, in points, from the bottom of the sheet of
    paper to the bottom of the last line of text which is to appear
    on the page. The default is 72 points (1 inch).

30.5.2    /CALCULATE

    When supplied with a value for /LINES, /CALC will calculate the
    font size so that your output will fill the page less the top and
    bottom margins. /CALCULATE will only make the font size large (or
    small) enough to fit the number of lines you specified onto the
    page. It will not check to see whether the horizontal length of
    your lines will fit within the left and right margins.

    This command must be used with the /LINES qualifier and cannot be
    used with the /SIZE qualifier.

30.5.3    /CHARSET

       /CHARSET=charset_name

    The character set used in the input text. Many character
    sets are supported; see the complete list in the file PMDF_
    TABLE:CHARSETS.TXT. PMDF PS will construct an appropriate
    encoding vector to render the character set as well as possible
    in PostScript.

    Note that the selection of fonts can affect whether or not all
    characters can be correctly displayed. The Courier font works
    quite well; other fonts can lack some accented characters.

30.5.4    /COLUMNS

       /COLUMNS=columns_per_page

    /COLUMNS allows you to select the number of columns that your
    text will be printed in on a single sheet of paper. The default
    is 1 column per page.

30.5.5    /END_PAGE

       /END_PAGE=page_number

    This is the page number of the last page that will be included
    in the PostScript output file. The default is to print the entire
    file.

30.5.6    /FONT

       /FONT=font

    By default, PS will set the document in the Courier font. With
    this qualifier, an alternate font can be selected. The name of
    the font to be used must be selected from the list shown in the
    table below-the thirty-nine fonts listed in the table include
    the standard "Adobe 35" plus four additional fonts representing
    four faces of the Charter font family from Bitstream. Note that
    not all of these fonts are available on all printers; consult the
    printer documentation for information about what fonts a given
    printer supports.

    Table 3 Font Names Recognized by the PS Utility

    AvantGarde-Book, AvantGarde-Demi, AvantGarde-Oblique, AvantGarde-
    DemiOblique
    Bookman-Light, Bookman-Demi, Bookman-LightItalic, Bookman-
    DemiItalic
    Charter-Roman, Charter-Bold, Charter-Italic, Charter-BoldItalic
    Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique
    Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-
    BoldOblique
    Helvetica-Narrow, Helvetica-Narrow-Bold, Helvetica-Narrow-
    Oblique, Helvetica-Narrow-BoldOblique
    NewCenturySchlbk-Roman, NewCenturySchlbk-Bold, NewCenturySchlbk-
    Italic, NewCenturySchlbk-BoldItalic
    Palatino-Roman, Palatino-Bold, Palatino-Italic, Palatino-
    BoldItalic
    Symbol
    Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic
    ZapfChancery-MediumItalic
    ZapfDingbats

30.5.7    /FORM

       /FORM=form_type

    Specifies a form type that the output device is currently using.
    The possible values are given in the table below. A letter size
    form (8.5 inches wide by 11 inches long) is the default. The size
    of the output page can also be set using the /HEIGHT and /WIDTH
    qualifiers.

    Table 4 Form Names Recognized by the PS Utility

    Form name      Dimensions (vertical height x horizontal width)

    LETTER         8.5 x 11 inches
    LEGAL          8.5 x 14 inches
    LEDGER         11 x 17 inches
    GLETTER        8 x 10 inches
    GLEGAL         8 x 13 inches
    FOLIO          8.3 x 13 inches
    A0             841 x 1189 millimeters
    A1             594 x 841 millimeters
    A2             420 x 594 millimeters
    A3             297 x 420 millimeters
    A4             210 x 297 millimeters
    A5             148.5 x 210 millimeters
    A6             105 x 148.5 millimeters
    B0             1000 x 1414 millimeters
    B1             707 x 1000 millimeters
    B2             500 x 707 millimeters
    B3             353 x 500 millimeters
    B4             250 x 353 millimeters
    B5             176 x 250 millimeters
    B6             125 x 176 millimeters
    A              8.5 x 11 inches
    B              11 x 17 inches
    C              17 x 22 inches
    D              22 x 34 inches
    E              34 x 44 inches
    LP             13.7 x 11 inches
    VT             8 x 5 inches

30.5.8    /HEIGHT

       /HEIGHT=form_height

    Specifies the height in inches of the form to use. The default
    is 11 inches (792 points). The height is also set by the
    /FORM qualifier. The /HEIGHT qualifier will override the /FORM
    qualifier if both are specified.

30.5.9    /ITALIC

    /ITALIC mode is used with Runoff files. /ITALIC will replace all
    text that is flagged for underlining with italicized print. The
    default is to underline text flagged for underlining.

30.5.10    /LANDSCAPE

    This option produces output that is wider than it is tall. This
    may or may not actually rotate the image; it depends on the size
    of the form that is used. With letter size output (the default),
    the output is rotated. Choose this option when you have very long
    lines to print, but do not want to set the size of your font very
    small or when using /COLUMNS=2.

30.5.11    /LEFT_MARGIN

       /LEFT_MARGIN=margin

    With this qualifier, you can specify, in points, the distance
    from the left edge of the sheet of paper to the left margin of
    your text. The default is 72 points (1 inch).

30.5.12    /LINES

       /LINES=lines_per_page

    This is the number of lines to appear on a page, starting at the
    top margin. By default, PS merely attempts to place as many lines
    on the page as possible; each line displaced vertically below the
    previous line by amount font_size * spacing_factor; font_size has
    the default value of 12 points (10 points for FAXes) and spacing_
    factor has the default value of 1.

30.5.13    /MAIL

    This qualifier instructs PS that no file is to be processed.
    Instead, the qualifiers specified on the command line will
    modify any text-to-PostScript conversions performed by the PMDF
    message distribution system (e.g., messages processed by the
    PMDF-FAX channels). This is achieved through the use of the
    PMDF_X_PS_QUALIFIERS logical which PS will set. Currently, the
    only application which makes use of this logical is the optional
    layered product PMDF-FAX.

    Any mail subsequently sent that gets converted into PostScript
    will be converted in the manner specified. Any settings made
    by a previous use of the /MAIL qualifier are lost. Settings
    only last for the life of a given login session; they must be
    re-established in subsequent sessions (this can be done in a
    LOGIN.COM file if desired).

30.5.14    /NUMBER_PAGES

       /NUMBER_PAGES
       /NONUMBER_PAGES (default)

    Pages will automatically be numbered when the /NUMBER_PAGES
    qualifier is specified. By default, pages are not numbered.

30.5.15    /PORTRAIT

       /PORTRAIT (default)

    This option produces output that is taller than it is wide. This
    may or may not actually rotate the image; it depends on the size
    of the form that is used.

30.5.16    /SIZE

       /SIZE=font_size

    This is the size, in points, of the font to be used. The default
    size is 12 points for converted documents; mail system text-to-
    PostScript conversion defaults to 10 points. The minimum size
    is 4 points; the maximum size is limited to the size of a normal
    letter size sheet of paper.

    Note that /SIZE is not restricted to integer values-a font size
    of 10.5 is both acceptable and often times useful.

30.5.17    /SPACING

       /SPACING=spacing_factor

    This qualifier specifies the vertical line spacing. /SPACING=2
    yields double-spaced output while /SPACING=3 results in triple-
    spaced output. Spacing factor can be any positive number and is
    not limited to integral values. The actual spacing in points
    between lines is giving by the product font_size * spacing_
    factor.

30.5.18    /START_PAGE

       /START_PAGE=page_number

    This is the page number of the first page that will be included
    in the PostScript output file. The default is to print the entire
    document.

30.5.19    /TOP_MARGIN

       /TOP_MARGIN=margin

    This is the distance, in points, from the top of the sheet of
    paper to the first line of text. The default is 72 points (1
    inch).

30.5.20    /UNDERLINE

       /UNDERLINE (default)

    /UNDERLINE mode is used with Runoff files. To generate PostScript
    to underline the text in a Runoff .MEM file that is flagged for
    underlining, use the /UNDERLINE qualifier.

30.5.21    /WIDTH

       /WIDTH=form_width

    Specifies the width, in inches, of the form to use. The default
    is 8.5 inches. The width is also set by the /FORM qualifier. The
    /WIDTH qualifier will override the /FORM qualifier if both are
    specified.

30.6  –  Examples

    1.$ PMDF PS THESIS.TXT

      In this example, the name of the output file is omitted.
      Consequently, the output will be stored in a file named
      thesis.ps.

    2.$ PMDF PS/FONT=BOOKMAN-LIGHT THESIS.TXT

      This command illustrates the use of the /FONT qualifier to
      select an alternate font.

    3.$ PMDF PS/COLUMNS=2/LANDSCAPE/SIZE=8 THESIS.TXT

      This last command shows how to format the file THESIS.TXT
      for printing in two columns. When more than one column is
      requested, use of the /LANDSCAPE qualifier is recommended.
      Furthermore, the font size should be reduced with the /SIZE
      qualifier so as to keep lines of text from running into
      adjacent columns or off of the page.

31  –  PSWRAP

    Convert a PostScript file to a file which can be mailed without
    requiring encoding or other special handling.

31.1  –  Restrictions

    This utility cannot produce correct output for some PostScript
    files.

    Syntax

      PMDF PSWRAP  input-file-spec [output-file-spec]

    Qualifiers                     Defaults

    /RECORD_LENGTH=width           /RECORD_LENGTH=76

31.2  –  Prompts

    Input file:   input-file-spec
    Output file:  output-file-spec

31.3  –  Parameters

 input-file-spec

    The name of the PostScript file to process. Only a single file
    can be specified; wildcards cannot be used.

 output-file-spec

    An optional parameter specifying the name of the new PostScript
    file to output. If no file name is specified, then the output
    file will have the same name as the input file.

31.4  –  Description

    The PSWRAP utility can be used to convert a PostScript file to
    a file with varying length records, carriage return carriage
    control, and no record longer than the specified length.

                                 WARNING

       This utility cannot produce correct output for some
       PostScript files. PostScript files contain complex programs
       written in the PostScript language. The PSWRAP utility
       understands the PostScript language syntax and can perform
       syntactically correct line wrappings. However, some
       PostScript files contain data which cannot be wrapped, for
       instance, input to the PostScript "readstring" operator.
       Short of actually interpreting the PostScript file, it is
       not possible to determine whether or not it is safe to wrap
       lines in the file. The PSWRAP utility ignores this issue
       and as such could output non-functioning PostScript. Be sure
       to test (e.g., print) the output of PSWRAP before mailing
       it to someone else or deleting the input file. QuarkXPress,
       for example, produces output which PSWRAP will not properly
       wrap.

       If a readstring operator is seen in the PostScript file, a
       PMDF-W-READSTRSEEN warning message will be output.

31.5  –  Qualifiers

31.5.1    /RECORD_LENGTH

       /RECORD_LENGTH=length

    Maximum record length to allow in the output file. If not
    specified, a length of 76 bytes will be imposed.

31.6  –  Examples

      In the following example the file JACS_PAPER2.PS is processed
      and the new file JACS.PS output. The resulting file is then
      printed to assure validity and then mailed to another user.

 $ PMDF PSWRAP JACS_PAPER2.PS JACS.PS
 $ PRINT/QUEUE=PS_PRINTER/NOTIFY JACS.PS
 Job JACS (queue PS_PRINTER, entry 741) started on PS_PRINTER
 $
 Job JACS (queue PS_PRINTER, entry 741) completed
 $ MAIL/SUBJECT="Latest draft" JACS.PS "IN%""BOB@EXAMPLE.COM"""

32  –  Password Change Utility

    If your system administrators have chosen to enable it, PMDF
    provides a web-based interface through which you can change the
    password on your account. This applies to all accounts, whether
    they are native message store (VMS MAIL mailbox) accounts,
    or popstore accounts, or MessageStore accounts, or if your
    username and password is located elsewhere for example in the
    PMDF password database.

    To use the web-based password change utility, you must have a web
    client and TCP/IP access to the PMDF system. To connect to the
    interface with your web browser, you normally open the URL:

    HTTP://HOST:7633/CHNG_PWD

    In place of host, use the actual IP host name of the system
    running PMDF. Your system administrator may have chosen to
    configure the web interface port to be a port other than 7633;
    if so, then you need to specify that other port number in place
    of 7633 in the above URL. Check with your system administrator if
    you are not sure of the exact URL to use.

    Once connected to the web page, you must fill in your username
    and the string that you want to change your password to. Make
    sure that you type the new password in twice, correctly, for
    verification. When you click on the "Change Password" button,
    your web browser will prompt you to enter your username and
    existing password. Type these in to authenticate yourself. PMDF
    will then modify your password as requested.

33  –  Pine

    Pine is a user-agent for reading, sending, and managing
    electronic messages. It was originally developed at the
    University of Washington with novice users in mind, but can be
    tailored to accommodate the needs of more experienced users. The
    UNIX, DOS, and Windows versions are maintained by the Computing &
    Communications group at the University of Washington and can be
    obtained from ftp.cac.washington.edu via anonymous FTP. A mailing
    list for Pine is maintained as pine-info@cac.washington.edu;
    however, bugs found in the PMDF version of Pine should be
    reported to support@process.com.

    Pine has a full-screen interface which uses one-character
    mnemonic commands and control sequences for its command input.
    You do not have to hit the RETURN or ENTER key to finish a
    command. A command menu is always present at the bottom of the
    screen, and help is only one keystroke away. It is intended that
    Pine can be learned by exploration and the browsing of extensive,
    context-sensitive on-line help provided within Pine, but some
    basic concepts to get a new user started are discussed below.

33.1  –  Getting Started

    To start PINE, use the PMDF PINE command:

    $ PMDF PINE

    Command line qualifiers for pine are not supported. Pine is
    exited using the QUIT command, Q.

    If you want to get started using pine, DON'T READ ANY FARTHER!
    Just start pine and try it. The help within pine should be more
    useful in actually operating pine than the configuration and
    OpenVMS-specific details covered in the topics here.

                                   NOTE

       System managers should see also under PMDF Pine System
       Configuration.

33.1.1  –  Terminal Characteristics

    Pine uses the OpenVMS SMG$ run-time library to implement terminal
    I/O. Pine will be unable to start if the terminal type is unknown
    to SMG$. If pine dies unexpectedly, it is possible that the
    terminal characteristics might need to be reset. Specifically
    you might need to issue the command:

    $ SET TERMINAL/NOPASTHRU/LINE_EDIT

    so as to restore your terminal characteristics.

33.1.2  –  Function Key Mode

    Pine has a function key mode which is enabled by the USE-
    FUNCTION-KEYS option in the pine resource file. When enabled,
    the VT numeric keypad keys are mapped to the function keys F1
    through F12 as follows:

    o  PF1-PF4 are mapped to F1-F4,

    o  KP5-KP9 are mapped to F5-F9,

    o  KP0 is mapped to F10,

    o  KP1 is mapped to F11, and

    o  KP2 is mapped to F12.

    In addition, the top row function keys F6 to F12 are mapped to
    their namesakes. The HELP key is mapped to F1.

    The MINUS key on the numeric keypad, KP-, can be used in place
    of the control, CTRL, key. However, it is used as a two key
    sequence. For example, to enter CTRL/A, you would press the two
    keys KP- followed by A.

    One consequence of using pine in function key mode is that you
    can only choose from twelve commands at any given time. That
    is, whereas in alphabetic key mode you can press a key for a
    command even though the command is not visible on the bottom of
    the screen, in function key mode you must toggle to the screen
    where the command is visible.

33.2  –  General Concepts

    Pine is an IMAP (Internet Message Access Protocol) client and
    POP (Post Office Protocol) client which can access local VMS MAIL
    mail files as well as other mail files served by an IMAP server
    or POP3 server.

    If only local mail is to be accessed, no network connection
    is created, and no IMAP server or POP server is needed on the
    local system. If your system does not have any TCP/IP software
    installed, then you will receive an error message when you
    attempt any operation requiring TCP/IP access. To access mail
    files on a remote OpenVMS system, an IMAP server such as the PMDF
    IMAP server, or a POP server such as the PMDF POP server, must be
    running on that remote system. To access mail files on a remote
    UNIX system, the remote system must have an IMAP daemon (server)
    or POP daemon (server) running.

    Pine is also an NNTP (Network News Transport Protocol, RFC 977)
    client, and can be used to read news from NNTP servers like the
    ANU News program or many common UNIX NNTP servers. Of course, you
    have to know the name of one such system before you can use this
    capability. Ask your system or network manager for help.

    The pine view is that messages are stored in folders, and
    folders are stored in folder collections. Folder collections
    can be physically located on the local system, or on any remote
    system with an IMAP server. Regardless of what system a folder
    collection is physically located on, a pine user sees it as
    just another folder collection: a pine user can read messages
    in any of their folder collections and can save (move) messages
    between different folder collections. See under PMDF Pine Folders
    and Folder Collections for more details on folders and folder
    collections.

    Or a read-and-delete-only pine folder can correspond to the "new
    messages" folder on a remote system with a POP3 server. (The
    POP3 protocol does not provide access to multiple folders-it only
    provides access to the "new" messages, usually those in a special
    "new" sort of folder. The POP3 protocol also does not allow for
    moving messages into a POP3 folder.)

33.3  –  Configuration Files

    The PINE RESOURCE file is the most important file used by Pine.
    This file contains the configuration options settable by a
    user. See under PMDF Pine Configuration_files Resource File for
    details.

    Users can have address books in pine, with nicknames for long
    addresses or mailing lists. See under PMDF Pine Configuration_
    files Addressbook for details.

    When using pine to read news group messages, a file is required
    listing the names of news groups you read; by default, pine uses
    the file PMDF_INIT:NEWSRC. See under PMDF Pine Configuration_
    files News Groups File for details.

    When reading MIME messages, pine uses a MAILCAP file to
    determine how to display the message parts. See under PMDF Pine
    Configuration_files Mailcap Files below for details.

    When sending attachments, pine consults a file to determine what
    MIME labelling to use on the attachment parts. By default, the
    file consulted is PMDF_INIT:MIME.TYPES, or as specified by the
    MIMETYPE-SEARCH-PATH option setting in the pine resource file.

    Pine also has other optional configuration files to control
    filtering incoming or outgoing message text, etc.

                                   NOTE

       System managers should also see under PMDF Pine System_
       configuration Configuration Files for information on
       tailoring the the pine environment on the system via
       additional system-level pine configuration files.

33.3.1  –  Resource File

    Pine uses a resource file to keep track of its configuration,
    user preferences, and other information. By customizing the
    option settings in your PINE RESOURCE file, you can customize
    your pine environment to your liking. Generally the best way to
    set or change option settings in your PINE RESOURCE file is from
    within pine, via the CONFIG option of the SETUP submenu accessed
    from pine's main menu. (Context sensitive help is available
    within pine for each such configurable item so you can get hints
    on setting your options.) However, the PINE RESOURCE file is
    a normal text file, so it is also possible to modify the PINE
    RESOURCE file using a text editor.

33.3.1.1  –  Location

    On OpenVMS systems, the Pine resource file is named PINE.PINERC
    and is located in the PMDF_INIT: directory. By default, PMDF_
    INIT is a logical which translates to SYS$LOGIN. Users wanting
    to keep their pine resource file elsewhere can redefine the PMDF_
    INIT logical. The logical name PINERC can be used to specify an
    alternate file name. For instance, the definition

    $ DEFINE PINERC PINE.RC

    causes the file name PINE.RC to instead be used, thereby
    accessing the file

    PMDF_INIT:PINE.RC

    The definition of the PINERC logical must not contain a device or
    directory reference.

33.3.1.2  –  Format

    In the Pine resource file, any line starting with # is considered
    to be a comment line. Lines not beginning with # contain settings
    for configuration options using the format

    option=value[,value,...]

    All values are strings; quotes can be used around any value.
    If a value is absent, then the associated option is not set
    and a system-wide default setting, if there is one, will be
    used instead. For some options, only the values YES and NO are
    allowed.

    A line beginning with a space or tab is considered to be a
    continuation of the previous line.

33.3.1.3  –  Dollar Sign

    The dollar sign, $, has a special meaning in the Pine resource
    file: it means that the word following it is an "environment
    variable", i.e., a DCL symbol or logical name, the value of which
    is then substituted at that point in the file. To specify $ in a
    value, you need to prefix it with a backslash; e.g.,

    SYS\$LOGIN:SIGNATURE.TXT

33.3.2  –  Addressbook

    You can have one or more addressbooks in Pine. In addition to a
    personal addressbook, one or more global, read-only addressbooks
    can be set up (for sharing between multiple users). The names
    of your personal addressbooks are specified in the Pine resource
    file by the ADDRESS-BOOK option. Normally, this option is set
    and modified from within Pine by using the SETUP menu and then
    selecting the Addressbook menu; it can, however, also be set by
    manually editing the Pine resource file. The built-in default
    file name used for an addressbook PMDF_INIT:PINE.ADDRESSBOOK.
    A "lookup" file is used to speed access to the addressbook. The
    lookup file has the same name as the addressbook, with -LU as
    suffix; e.g., PMDF_INIT:PINE.ADDRESSBOOK-LU. The lookup file
    is generated automatically by Pine. Global addressbooks can be
    specified using the GLOBAL-ADDRESS-BOOK option.

33.3.2.1  –  Addressbooks and PMDF Personal Alias Database

    A limited interface between Pine's address books and PMDF's
    personal alias database has existed since Pine 3.91. When you
    add an address to one of Pine's address books using Pine's
    ADDRESS BOOK menu, it will also be added to your personal alias
    database, overwriting any existing entry of the same name. The
    Pine "nickname" is the alias name used in PMDF's personal alias
    database and the e-mail address is the corresponding value for
    the alias. Adding or deleting Pine's address lists has no effect
    on PMDF's personal alias database.

    When you delete an address in one of Pine's address books, it is
    also deleted from PMDF's personal alias database if present.

    The J command can be used to dump the entire current addressbook
    into your PMDF personal alias database. If no personal alias
    database exists, it will be created.

33.3.3  –  News Groups File

    If you use the news reading capability in Pine to talk to a NNTP
    server, then you need to have a NEWSRC. file in the PMDF_INIT:
    directory, or a newsrc file with a non-default name as selected
    by your NEWSRC-PATH Setup Config option. This file contains the
    names of news groups you read. Pine updates it when you delete
    a message in the news group. Deleting a message in news does not
    really delete it, but simply makes the message unavailable to
    you when you next read the associated news group. The format of
    this file is one line per news group, with the lines having the
    format:

    newsgroupname:[message,...]

    where MESSAGE is either a number or a range of numbers (e.g.,
    1-3).

33.3.4  –  Mailcap Files

    When reading MIME messages, Pine uses a mailcap file to determine
    how to display message parts. Mailcap files are described in RFC
    1524, a copy of which can be found as PMDF_ROOT:[DOC.RFC]RFC1524.
    Or see the PMDF User's Guide which gives a brief overview of
    mailcap files.

    The default mailcap filename is MAILCAP. in the PMDF_INIT
    directory, unless the logical name PMDF_MAILCAP_DIR is defined,
    in which case the list of directories defined by PMDF_MAILCAP_DIR
    is searched for the file MAILCAP., in the order listed. The first
    entry found in the list of files will be used. For instance, with
    the following PMDF_MAILCAP_DIR definition, PMDF will use a user's
    own mailcap file, if they have one, and if the user does not have
    a personal mailcap file, PMDF will use a mailcap file in the PMDF
    table directory:

    $ DEFINE/SYSTEM PMDF_MAILCAP_DIR PMDF_INIT:,PMDF_TABLE:

    Note that a trailing colon is necessary if logical names are used
    because the filename MAILCAP. is appended to whatever value you
    have specified.

33.4  –  Folders and Folder Collections

    The Pine view is that messages are stored in folders, and
    folders are stored in folder collections. Folder collections
    can be physically located on the local system, or on any remote
    system with an IMAP server. Regardless of what system a folder
    collection is physically located on, a Pine user sees it as just
    another folder collection: a Pine user can read messages in any
    of their folder collections and can save (move) messages between
    different folder collections.

33.4.1  –  Folders

    Each mail message is stored in a folder. A Pine folder is
    equivalent to a VMS MAIL folder in a VMS MAIL mail file.

    While both Pine and VMS MAIL folder names are case sensitive,
    Pine users must be much more mindful of this fact. (VMS MAIL
    automatically converts folder names to upper case unless you
    surround the folder name with quotes.)

    For VMS MAIL files, a new folder is automatically created the
    first time a message is saved to it; a folder is automatically
    deleted when all messages in the folder are deleted. So when you
    use the Create folder command in Pine to create a new folder, the
    folder will be created with a placeholder message in it.

33.4.2  –  Collections

    A folder collection is a folder specification for a collection
    of folders on one system. For example, it can be all of your
    VMS MAIL folders which have the name prefix INFO-, or it can be
    all of your UNIX mail folders on a system called foo.bar.com, or
    it can be all of your VMS MAIL folders in a different mail file
    than you normally use. You can access multiple different folder
    collections from within Pine.

    By default, PMDF Pine knows only about the local folder
    collection, corresponding to your VMS MAIL mailbox. The use
    of additional folder collections is controlled by the FOLDER-
    COLLECTIONS option in your Pine resource file. Normally, this
    option is set from within Pine by using the SETUP menu and then
    selecting the L (collectionList) menu. However, the option can
    also be set by manually editing your Pine resource file.

33.4.2.1  –  Syntax

    The setting of the FOLDER-COLLECTIONS option can be a list of
    values, where each value specifies a folder or folders on the
    local system or accessible via an IMAP server, or specifies the
    new mail folder accessible via a POP3 server. Folders on the
    local system or accessible via an IMAP server are specified using
    the format:

 optional-label {imaphost}optional-file[view]

    or

 optional-label {imaphost:port/user=username}optional-file[view]

    OPTIONAL-LABEL is a label which will be displayed by Pine in
    place of the full name of the folder collection.

    The optional field IMAPHOST is the name of a host where the
    mail file resides. IMAPHOST can be any system which has an IMAP4
    server, and need not necessarily be an OpenVMS system.

    The optional PORT specification can be included if you want to
    connect to a port other than the default (for IMAP) of 143.

    The optional USERNAME can be included if you want to log in to
    the IMAPHOST under a different account name.

    The optional field OPTIONAL-FILE is the file specification
    of a mail file. If OPTIONAL-FILE is omitted but IMAP-HOST is
    specified, then the default mail file on the remote IMAPHOST
    system will be used. If neither OPTIONAL-FILE nor IMAP-HOST is
    specified, then your local default mail file will be used.

    When OPTIONAL-FILE is specified for an OpenVMS host locally or
    remotely running PMDF's legacy IMAP server, it must have the
    format

    #disk:<directory>mailfile.mai#

    where DISK, DIRECTORY, and MAILFILE.MAI specify the full path,
    disk, directory, and file name, to the mail file. For instance,
    to select the mail file MEMOS.MAI of DISK$USER1:[BOB], you would
    specify

    #DISK\$USER1:<BOB>MEMOS.MAI#

    Finally, the VIEW field controls which folders from the mail file
    are part of the collection. If specified as being empty, [],
    then all folders from the mail file are treated as part of the
    collection. Wild cards can be used to select folders matching a
    pattern. For example, [INFO-*] would select all folders beginning
    with the string INFO- from the mail file. Again, note that folder
    names are considered to be case sensitive.

    For POP3 access to a new mail folder on a remote system, the
    format is:

    "foldername" {pop3host/POP3}INBOX

    or

    "foldername" {pop3host/POP3/USER=username}INBOX

    where FOLDERNAME is the name by which Pine will refer to the
    folder, POP3HOST is the name of the system running the POP3
    server, and USERNAME is the name under which to log in to the
    remote POP3 server.

33.4.2.1.1  –  Example

    An example of setting the FOLDER-COLLECTIONS option in your
    Pine resource file, PINE.PINERC, to a list of several folder
    collections is:

    folder-collections=local [],
     archive #DRA0:<JONES.ARCHIVE>OLDMAIL.MAI#[],
     remoteVMS {vax.example.com}#DUA2:<JONES.MAIL>MAIL.MAI#[INFO*]
     remoteUNIX {sun.example.com}mail/[]

    In the above example, four collections with the names local,
    archive, remoteVMS, and remoteUNIX are created. local consists
    of all folders in the local default mail file; archive consists
    of all folders in the mail file DRA0:[JONES.ARCHIVE]OLDMAIL.MAI;
    remoteVMS consists of all folders whose name begin with INFO
    in the mail file DUA2:[JONES.MAIL]MAIL.MAI on the remote host
    vax.example.com; and remoteUNIX consists of all folders from the
    mail directory MAIL/ on the remote system sun.example.com.

33.4.2.2  –  Saving Messages

    When saving a message to a different folder collection, you can
    select PREV COLLECTION or NEXT COLLECTION to get to the folder
    collection you want to save to. Here, "Prev" is an abbreviation
    for "Previous". By default, the first folder collection is the
    one to save to.

    For local or remote OpenVMS servers, you can also specify the
    file name where the folder resides directly as

    #disk:[directory]mailfilename#foldername

    when prompted with the folder name. If you are saving to the same
    file in the folder collection, then only the folder name itself
    is needed.

33.5  –  OpenVMS Notes

    In the following subsections, some issues specific to Pine on
    OpenVMS are discussed.

33.5.1  –  Expunging

    When accessing mail locally, the Pine Expunge command moves all
    messages marked for deletion to the VMS MAIL WASTEBASKET folder.
    In addition, it performs the equivalent VMS MAIL PURGE command
    only when your VMS MAIL profile allows for AUTO_PURGE. If you
    have set NOAUTO_PURGE, then the deleted messages are left in the
    WASTEBASKET folder. However, should you expunge the WASTEBASKET
    folder, then the VMS MAIL PURGE function will be performed.
    Purged message space is not available for reuse until a reclaim
    operation is performed. When the amount of deleted message space
    in the mail file exceeds 32,767 bytes, a reclaim operation is
    automatically done by the Expunge command.

                                   NOTE

       Pine never compresses your mail file.

33.5.2  –  New Mail Updates

    By default, Pine automatically checks for new mail every 2.5
    minutes (150 seconds). This interval is settable per user as
    the MAIL-CHECK-INTERVAL configuration option (unless the system
    manager choose to fix its value in the PINE.CONF-FIXED file). You
    can also force a refresh of the folder by pressing the DOWN arrow
    key four times at the last message of the Index screen or by
    pressing CTRL/L. A folder is also refreshed whenever you expunge
    it. When you force a check, and you have no new mail, Pine will
    report the last message as new mail even though it is not new.

33.5.3  –  VMS MAIL Profile

    When accessing mail locally, Pine uses the same VMS MAIL mail
    file as VMS MAIL and PMDF MAIL, so you can use any of these
    programs interchangeably and access the same messages stored
    in a VMS MAIL mail file.

    Pine uses your VMS MAIL profile settings as follows:

 AUTO_PURGE

    When AUTO_PURGE is set, expunged messages will be purged from
    your mail file, i.e., purged from your WASTEBASKET folder.

 COPY_SELF

    Your VMS MAIL COPY_SELF settings are honored by Pine when sending
    or replying to messages.

 MAIL_DIRECTORY

    The MAIL_DIRECTORY profile setting is used when you do not
    specify a filename with your folder specification.

                                   NOTE

       Pine should not be used on an account whose login device
       is a search list and has MAIL_DIRECTORY defined as a
       subdirectory.

 PERSONAL_NAME

    Your VMS MAIL PERSONAL_NAME setting will be used if none is set
    in Pine's configuration file.

 WASTEBASKET_NAME

    As with VMS MAIL, the WASTEBASKET_NAME setting is used for your
    wastebasket folder name.

33.6  –  System Configuration

    PMDF Pine uses PMDF extensively. PMDF must be installed and
    configured on the system for Pine to function. Pine uses PMDF
    to send mail, to parse addresses, and to save copies of messages
    you have sent, if the Pine DEFAULT-FCC option is set. Once PMDF
    is configured and installed on a system, PMDF Pine is usually
    ready for use, although see under PMDF Pine System_configuration
    UCX Emulation and PMDF Pine System_configuration Subprocess Quota
    for descriptions of two installation issues to check, and see
    under PMDF Pine System_configuration Configuration Files for a
    description of tailoring the Pine environment on a system wide
    basis.

    In particular, note that Pine does not, by default, use IMAP
    to talk to your local system, so it is not necessary to have
    an IMAP server running on your system just to use Pine. (Only
    if a user were to specifically request that Pine treat the
    local system as if it were instead a remote system with an IMAP
    server, by specifying the IMAP-HOST field when accessing a folder
    collection, would PMDF Pine attempt to make an IMAP connection to
    the local system.)

    Pine is installed by PMDF with the privileges SYSPRV and CMKRNL.
    Without those privileges, users can not send mail, although they
    can still read mail.

33.6.1  –  UCX Emulation

    UCX$IPC_SHR is an executive-mode logical name pointing to a
    shareable image supplied by your TCP/IP vendor. If this logical
    is not defined, then either TCP/IP is not installed, or, in the
    case of a package other than DEC's TCP/IP Services for OpenVMS
    (a.k.a. UCX), UCX emulation was not installed when the package
    was installed. In order to use the TCP/IP functionality of
    PMDF Pine, this logical must be defined and be pointing to the
    appropriate image for your TCP/IP package. Moreover, the image
    must be installed as a known image,

    $ INSTALL UCX$IPC_SHR /OPEN/SHARED

    If you are running Pine on a system without any TCP/IP software,
    a dummy shareable image PMDF_EXE:UCX_DUMMY.EXE is provided with
    PMDF. Your system manager should define a system-wide, executive-
    mode logical named UCX$IPC_SHR which points to it and then
    install it:

    $ DEFINE/SYSTEM/EXEC UCX$IPC_SHR PMDF_EXE:UCX_DUMMY.EXE
    $ INSTALL UCX$IPC_SHR /OPEN/SHARED

                                   NOTE

       If you install any TCP/IP package later, remember to
       deassign the logical name or you won't have a functional
       TCP/IP.

    The definition of the logical and installation of the image
    should be made part of the system startup procedure. Note that
    the installation of the image can be effected through the site-
    supplied PMDF_COM:SITEIMAGE.DAT file which uses the same format
    as the Process-supplied PMDF_COM:PMDFIMAGE.DAT file.

33.6.2  –  Subprocess Quota

    Pine uses subprocesses to perform several of its tasks. As such,
    users without subprocess quota cannot do any of the following:

    o  use a customized printing command,

    o  view image or video attachments,

    o  use the spell checker, or

    o  use an alternate editor.

    A side effect of using subprocesses in Pine when you have a
    remote IMAP connection is that the connection might timeout while
    waiting for a subprocess to complete. This is especially likely
    when using an alternate editor to compose a message.

33.6.3  –  Configuration Files

    A system manager can tailor Pine's environment on a per system
    basis by the use of files described below. These files should all
    be world readable.

 PMDF_TABLE:PINE.CONF

    This file is shipped with PMDF and contains a default system-wide
    configuration for Pine. A new version is shipped with every PMDF
    release, so you should keep a copy of your customizations. This
    default configuration provides for one folder collection with the
    default mail file on the local system.

 PMDF_TABLE:PINE.CONF-FIXED

    You can create this Pine resource file and place in it options
    which you do not want users to be able to change or override.
    This file, as supplied with PMDF, initially contains the same
    information as hardcoded in the program for the BUGS-ADDRESS and
    BUGS-FULLNAME options with the local Postmaster being the one to
    receive the bug reports. You can change it to a different address
    if necessary, but we suggest you direct it to a local support
    address.

 PMDF_TABLE:PINE.INFO

    When this file exists, the information contained in it is
    presented to the user as LOCAL SUPPORT CONTACTS from the main
    menu's help screen.

 PMDF_TABLE:MIME.TYPES

    This file provides a basic set of file extension to MIME type
    mappings. Users can supplement or override these defaults with
    their own choices in their own file, via the MIMETYPE-SEARCH-PATH
    option in their Pine resource file.

33.6.3.1  –  Precedence of Settings

    There are potentially four sources of configuration settings
    which are shown below in decreasing order of precedence:

    1. Unchangeable, system-wide settings from the PMDF_
       TABLE:PINE.CONF-FIXED file.

    2. Per-user settings from the user's PMDF_INIT:PINE.PINERC file.

    3. System-wide settings from the PMDF_TABLE:PINE.CONF file.

    4. Default Pine values.

    One exception to the above precedence scheme is the FEATURE-LIST
    option which is cumulative. In order to turn off a feature, you
    have to negate it by prepending NO- in front of an individual
    feature.

34  –  QCLEAN

    Hold or delete message files from the PMDF queue area that
    contain specified substrings in their envelope From: address,
    Subject: header, or message content.

    Syntax

      PMDF QCLEAN  [channel]

    Command Qualifiers             Defaults

    /CONTENT=substring             None
    /DATABASE                      /DATABASE
    /DELETE                        /HOLD
    /DIRECTORY_TREE                /DATABASE
    /ENV_FROM=substring            None
    /HOLD                          /HOLD
    /MATCH=keyword                 /MATCH=AND
    /MIN_LENGTH=n                  /MIN_LENGTH=24
    /SUBJECT=substring             None
    /THREADS=n                     /NOTHREADS
    /VERBOSE                       /NOVERBOSE

34.1  –  Restrictions

    Privileges sufficient to read and delete files in the PMDF
    channel queue directory tree, as well as read and update the
    PMDF queue cache database, are required.

34.2  –  Parameters

 channel

    Optional parameter which specifies a specific PMDF channel area
    to be searched for matching messages. * or ? wildcard characters
    may be used in the channel specification.

34.3  –  Description

    Hold or delete message files containing specific substrings
    in their envelope From: address, Subject: line, or content.
    By default, message files are held (/HOLD). Specify /DELETE to
    instead delete matching message files. The /CONTENT, /ENV_FROM,
    and /SUBJECT qualifiers are used to specify the substrings for
    which to search.

    Any combination of /CONTENT, /ENV_FROM, and /SUBJECT may be
    specified. However, only one of each may be used. The /MATCH
    qualifier controls whether a message file must contain all
    (/MATCH=AND, the default) or only one of (/MATCH=OR) the
    specified substrings in order to be held or deleted. The default
    is /MATCH=AND.

    By default, each substring to be searched for must be at least
    24 bytes long (/MIN_LENGTH=24). This is a safety measure: the
    longer the substring, the less likely the chance of false "hits".
    Use the /MIN_LENGTH qualifier to override this limit. Also
    by default, only message files identified by the queue cache
    database are searched (/DATABASE). Use the /DIRECTORY_TREE
    qualifier to instead search all message files actually present
    in the channel queue directory tree.

    The optional channel parameter restricts the search to message
    files in the specified channel. The channel parameter may use *
    and ? wild cards.

    The /THREADS qualifier may be used to accelerate searching on
    multiprocessor systems by dividing the work amongst multiple,
    simultaneously running threads. To run n simultaneous searchingg
    threads, specify /THREADS=n. The value n must be in the range
    1-8. The default is /NOTHREADS.

34.4  –  Command Qualifiers

34.4.1    /CONTENT

       /CONTENT=substring
       /ENV_FROM=substring
       /SUBJECT=substring

    The /CONTENT, /ENV_FROM, and /SUBJECT qualifiers are used to
    specify the substrings for which to search. Any combination of
    /CONTENT, /ENV_FROM, and /SUBJECT may be specified. However, only
    one of each may be used. When a combination of such qualifiers
    is used, the /MATCH qualifier controls whether the qualifiers
    are interpreted as further restrictions (/MATCH=AND), or as
    alternatives (/MATCH=OR).

34.4.2    /DATABASE

       /DATABASE (default)
       /DIRECTORY_TREE

    The /DATABASE qualifier, the default, specifies that only message
    files identified by the queue cache database be searched. Use
    the /DIRECTORY_TREE qualifier to instead search all message files
    actually present in the channel queue directory tree.

34.4.3    /DELETE

       /DELETE
       /HOLD (default)

    /HOLD is the default and means that matching message files will
    be held. Specify /DELETE to instead delete matching message
    files.

34.4.4    /MATCH

       /MATCH=keyword

    The default is /MATCH=AND, meaning that any criteria specified
    by /CONTENT, /ENV_FROM, and /SUBJECT qualifiers must all match
    in order for the current hold or delete operation to be applied.
    Specifying /MATCH=OR means that a message will match as long as
    at least one such criterion matches.

34.4.5    /MIN_LENGTH

       /MIN_LENGTH=n

    By default, each substring to be searched for must be at least 24
    bytes long (/MIN_LENGTH=24). This is a safety measure: the longer
    the substring, the less likely the chance of false "hits". Use
    the /MIN_LENGTH qualifier to override this limit.

34.4.6    /THREADS

       /THREADS=n
       /NOTHREADS (default)

    The /THREADS qualifier may be used to accelerate searching on
    multiprocessor systems by dividing the work amongst multiple,
    simultaneously running threads. To run n simultaneous searching
    threads, specify /THREADS=n. The value n must be an integer in
    the range 1-8. The default is /NOTHREADS.

34.4.7    /VERBOSE

       /VERBOSE
       /NOVERBOSE (default)

    The /VERBOSE qualifier may be used to request that the utility
    print out information about what it is doing as it operates.

34.5  –  Examples

      The following example shows holding all message files in the
      PMDF queue area that have the string "real estate" in the
      Subject: header and have the string "ownership.com" in the
      envelope From: address.

 $ PMDF QCLEAN/MIN_LENGTH=11/SUBJECT="real estate"

34.5.1    /ENV_FROM="ownership.com"

 %QM-I-QCLISTING, building a list of message files to scan from the
 queue cache
 %QM-I-SCANNING, scanning 72 message files
 %QM-I-SCANNED, scanned 72 message files in 3.7500 seconds
 (19.20 messages/second)
 %QM-I-HELD, held 5 message files

35  –  QM

    PMDF QM is a utility program which allows inspection and
    manipulation of queued messages. PMDF QM has two modes:
    maintenance mode and user mode. Maintenance mode can be used
    to inspect and manipulate the channel queue directories and
    the messages contained in them. Privileges sufficient to read,
    create, and delete files in the channel queue directory tree as
    well as read and update the queue cache database are required to
    use maintenance mode. User mode is a very restricted version of
    maintenance mode which allows unprivileged users to read their
    own messages from the queues and to return them (bounce them)
    back to their originator if desired. Users' own messages are
    messages which they themselves have sent or were posted to a list
    they own. They are not messages destined for the user. Users can
    read or return any of their own queued messages, and, in the case
    of outgoing PMDF-FAX messages, change FAX telephone numbers.

    Note that this utility merely reports on messages in PMDF's
    delivery queues. That a message you have sent no longer appears
    in PMDF's queues, does not imply that it has reached its final
    destination. All that it means is that the message has left the
    PMDF system and is no longer under PMDF's control. For example,
    it is not uncommon for a message to make an intermediate stop
    on another system such as a mail hub. In such cases, PMDF will
    consider the message to be "delivered" when it hands the message
    and responsibility for it off to the intermediate system.

    To run PMDF QM in user mode, issue the command

    $ PMDF QM

    To run PMDF QM in maintenance mode, issue the command

    $ PMDF QM/MAINTENANCE

    Use the EXIT or QUIT command to exit PMDF QM.

    The commands accepted by this utility are described under the
    User_mode_commands and Maintenance_mode_commands subtopics.

35.1  –  User Mode Commands

35.1.1  –  DATE

    Show the current date and time.

    Syntax

      DATE

    Command Qualifiers    Defaults

    None.                 None.

35.1.1.1  –  Parameters

    None.

35.1.1.2  –  Description

    The DATE command can be used to show the current date and time,
    in RFC 822/1123 format - the same format as used in Internet-
    style messages.

35.1.1.3  –  Examples

      In the following example, the current date and time in RFC
      822/1123 format is displayed with the DATE command.

        qm.user> DATE
        Fri, 2 Aug 2012 13:34:16 PDT
        qm.user>

35.1.2  –  DIRECTORY

    List currently queued messages.

    Syntax

      DIRECTORY  [type]

    Command Qualifiers    Defaults

    None.                 None.

35.1.2.1  –  Parameters

 type

    An optional parameter specifying the type of messages to display
    (e.g., FAX, INTERNET, CC:MAIL, etc.). Wild cards are permitted.

35.1.2.2  –  Description

    Use the DIRECTORY command to list any messages which you've sent
    but which have not yet been delivered. The optional type argument
    can be used to restrict the listing to certain types of messages
    such as messages sent to the Internet or other TCP/IP connected
    machines such as UNIX workstations, cc:Mail users, FAX machines,
    etc. A complete list of the available types are shown below. You
    can also use the ? key to obtain a listing of the available types
    as shown in the examples below.

    Type         Message Types Listed

    all_in_1     Messages sent to ALL-IN-1 users
    bitnet       Messages set to BITNET users
    ccmail       Messages sent to Lotus cc:Mail users
    decnet       Messages sent to DECnet users
    fax          Messages sent as FAXes via PMDF-FAX
    groupwise    Messages to GroupWise Office users
    internet     Messages sent to Internet users
    local        Messages sent to local VMS MAIL users
    lotus_notes  Messages sent to Lotus Notes users
    mailbus_400  Messages sent to MAILbus 400 users
    mailworks    Messages sent to MailWorks users
    message_     Messages sent to Message Router users
    router
    microsoft_   Messages sent to Microsoft Mail users
    mail
    netdata      Messages sent to Netdata (PROFS) users
    novell_mhs   Messages sent to Novell MHS users
    ovvm         Messages sent to OV/VM (PROFS) users
    pager        Messages sent to personal pagers
    popstore     Messages sent to popstore users
    snads        Messages sent to SNADS users
    tcpip        Messages sent to TCP/IP users
    teamlinks    Messages sent to TeamLinks users
    uucp         Messages sent to UUCP users
    wordperfect  Messages sent to WordPerfect Office users
    x400         Messages sent to X.400 users

    In the directory listing, each message is assigned a message
    identification number, or "message id" for short. The message id
    appears in the leftmost column. These identification numbers can
    be used with the READ, RETURN, and EDIT_FAX commands to identify
    which messages to read, return, or edit.

    It is important to note that when you send a message to more
    than one recipient, the message might split into multiple message
    copies. Consequently, the same message might appear multiple
    times as being queued to different networks (or possibly even for
    the same network). Such would be the case for a message sent both
    to local users and remote users.

35.1.2.3  –  Examples

    1.qm.user> DIRECTORY ?
      Optional keyword, must be chosen from:
       (1) all_in_1             Messages sent to ALL-IN-1 users
       (2) bitnet               Messages sent to BITNET users
       (3) ccmail               Messages sent to cc:Mail users
       (4) decnet               Messages sent to DECnet users
       (5) fax                  Messages sent as FAXes with PMDF-FAX
       (6) groupwise            Messages sent to GroupWise Office users
       (7) internet             Messages sent to Internet users
       (8) local                Messages sent to local users
       (9) lotus_notes          Messages sent to Lotus Notes users
      (10) mailbus_400          Messages sent to MAILbus 400 users
      (11) mailworks            Messages sent to MailWorks users
      (12) message_router       Messages sent to Message Router users
      (13) microsoft_mail       Messages sent to Microsoft Mail users
      (14) netdata              Messages sent to Netdata (PROFS) users
      (15) novell_mhs           Messages sent to Novell MHS users
      (16) ovvm                 Messages sent to OV/VM (PROFS) users
      (17) pager                Messages sent to personal pagers
      (18) popstore             Messages sent to popstore users
      (19) snads                Messages sent to SNADS users
      (20) tcpip                Messages sent to TCP/IP users
      (21) teamlinks            Messages sent to TeamLinks users
      (22) uucp                 Messages sent to UUCP users
      (23) wordperfect          Messages sent to WordPerfect Office users
      (24) x400                 Messages sent to X.400 users
      qm.user>

      This example shows how to obtain a list of the recognized
      message types. Whenever you are entering a command, you can
      always press the question mark key, ?, to obtain help on what
      to type next.

    2.qm.user> DIRECTORY
      Fri, 2 Aug 2012 18:49:40 PDT

      Id Network           From          To                  Size Queued since
      ------------------------------------------------------------------------
       1 Internet (TCP/IP) bob@example.com  service@example.com   8  2-AUG 17:31
                                            service@internode.co
       2 Internet (TCP/IP) bob@example.com  ietf-822@dimacs.rut   8  2-AUG 15:07
       3 Internet (TCP/IP) bob@example.com  mwalnut@cnri.reston   16 2-AUG 15:26
       4 Internet (TCP/IP) bob@example.com  jbakin@adoc.xerox.c   8  2-AUG 17:18
       5 Internet (TCP/IP) bob@example.com  klensin@MAIL1.RESTO   16 2-AUG 15:26
       6 Internet (TCP/IP) bob@example.com  MAILSERV@EXAMPLE.C    8  2-AIG 15:38
       7 Internet (TCP/IP) bob@example.com  john@EXAMPLE.COM      8  2-AUG 17:18
       8 Message Router    bob@example.com  john%doof@am.naples.   8  2-AUG 12:25
       9 Local delivery    bob@example.com  john                  8  2-AUG 16:11
      10 Internet (TCP/IP) bob@example.com  mailserv@example.org  8  2-AUG 12:43
      11 Internet (TCP/IP) bob@example.com  MARKJOSEPH@delphi.com 8  2-AUG 15:07
      --------------------------------------------------------------------------
      Total size:                                                104

      qm.user>

      In this example, the DIRECTORY command is used to list all
      queued messages. When a message has more than one envelope TO:
      recipient, the additional recipients are shown on additional
      lines of the listing as with message 1 which is addressed to
      service@example.com and service@internode.com.au.

35.1.3  –  EDIT_FAX

    Edit a queued PMDF-FAX message.

    Syntax

      EDIT_FAX  [message-id[,...]]

    Qualifiers            Defaults

    /ALL                  /NOALL
    /CONFIRM              /NOCONFIRM
    /LOG                  /LOG

35.1.3.1  –  Parameters

 message-id

    A comma separated list of one or more message identification
    numbers shown with a previous DIRECTORY command. Ranges are
    allowed.

35.1.3.2  –  Description

    The addresses of queued FAX messages can be edited so as, for
    instance, to correct a FAX telephone number. The messages to
    be edited are specified by their message identification numbers
    shown by the most recent DIRECTORY command. Those numbers appear
    in the leftmost column of the DIRECTORY command listing.

35.1.3.3  –  Qualifiers

35.1.3.3.1    /ALL

       /ALL
       /NOALL (default)

    Edit all messages shown by the last DIRECTORY command.

    Unless /NOCONFIRM is specified with /ALL, you will be required to
    confirm any EDIT_FAX/ALL operation.

35.1.3.3.2    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will prompted to confirm each
    message edit operation.

35.1.3.3.3    /LOG

       /LOG (default)
       /NOLOG

    Specifies whether informational messages for each message edit
    operation are generated.

35.1.4  –  EXIT

    Exit the PMDF QM utility.

    Syntax

      EXIT

    Command Qualifiers    Defaults

    None.                 None.

35.1.4.1  –  Parameters

    None.

35.1.4.2  –  Description

    The EXIT and QUIT commands exit the PMDF QM utility.

35.1.5  –  HELP

    Obtain help on the use of PMDF QM.

    Syntax

      HELP  [topic]

    Command Qualifiers    Defaults

    None.                 None.

35.1.5.1  –  Parameters

 topic

    Optional topic to obtain help on.

35.1.5.2  –  Description

    The HELP command can be used to obtain information on PMDF QM
    commands. To obtain information on all of the PMDF QM commands,
    use the command

    qm.user> HELP

    To obtain information on individual commands or topics use the
    command

    qm.user> HELP topic

    where TOPIC is the name of the command or topic of interest.

35.1.6  –  HISTORY

    Display message history information.

    Syntax

      HISTORY  [message-id[,...]]

    Command Qualifiers    Defaults

    /ALL                  /NOALL
    /CONFIRM              /NOCONFIRM

35.1.6.1  –  Parameters

 message-id

    A comma separated list of one or more message identification
    numbers shown with a previous DIRECTORY command. Ranges are
    allowed.

35.1.6.2  –  Description

    For many channels, delivery history information is appended
    to the end of each message file after an unsuccessful delivery
    attempt has been made. With the HISTORY command, this information
    can be displayed.

    The messages to show histories for are specified by their message
    identification numbers shown by the most recent DIRECTORY
    command. That number appears in the leftmost column of the
    DIRECTORY command listing.

    Note that history information is not recorded by some channels.

35.1.6.3  –  Qualifiers

35.1.6.3.1    /ALL

       /ALL
       /NOALL (default)

    Display history information for all messages shown with the last
    DIRECTORY command.

35.1.6.3.2    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will be prompted to confirm
    whether or not to display the history for each selected message.

35.1.7  –  QUIT

    Exit the PMDF QM utility.

    Syntax

      QUIT

    Command Qualifiers    Defaults

    None.                 None.

35.1.7.1  –  Parameters

    None.

35.1.7.2  –  Description

    The EXIT and QUIT commands exit the PMDF QM utility.

35.1.8  –  READ

    Read a message.

    Syntax

      READ  [message-id[,...]]

    Qualifiers            Defaults

    /ALL                  /NOALL
    /CONFIRM              /NOCONFIRM
    /CONTENT              /CONTENT

35.1.8.1  –  Parameters

 message-id

    A comma separated list of one or more message identification
    numbers shown with a previous DIRECTORY command. Ranges are
    allowed.

35.1.8.2  –  Description

    The READ command can be used to read one or more queued
    messages. The messages to display are specified by their message
    identification numbers shown by the most recent DIRECTORY
    command. Those numbers appear in the leftmost column of the
    DIRECTORY command listing.

35.1.8.3  –  Qualifiers

35.1.8.3.1    /ALL

       /ALL
       /NOALL (default)

    Display all messages shown with the last DIRECTORY command.

35.1.8.3.2    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will prompted to confirm whether
    or not to display each selected message.

35.1.8.3.3    /CONTENT

       /CONTENT (default)
       /NOCONTENT

    Specify /NOCONTENT if you only want to read the message envelope
    and header.

35.1.8.4  –  Examples

      In the following example, message 3 is displayed.

 qm.user> READ 3
 Message id: 3

 Transport layer information:
 ----------------------------------------------------------------------
 Envelope From: address: doej@example.com
 Envelope To: addresses: jones

 Message header:
 ----------------------------------------------------------------------
 Received: from EXAMPLE.COM by EXAMPLE.COM (PMDF V5.0-1 #8790)
  id <01HNPFR0P5OW9D4GAS@EXAMPLE.COM> for BERNOULLI@EXAMPLE.COM; Fri,
  02 Aug 2012 16:48:41 -0700 (PDT)
 Date: Fri, 02 Aug 2012 16:48:40 -0700 (PDT)
 From: John Doe <doej@example.com>
 To:   jones@example.com
 Subject: sea voyage
 Message-id: <01HNPFR12JYA9D4GAS@EXAMPLE.COM>
 MIME-version: 1.0
 Content-type: TEXT/PLAIN; CHARSET=US-ASCII
 Content-transfer-encoding: 7BIT

 Message content:
 ----------------------------------------------------------------------
 Would you be interested in taking a short cruise to Nova Scotia?

               - DoeJ
 qm.user>

35.1.9  –  RETURN

    Return a message to its sender.

    Syntax

      RETURN  [message-id[,...]]

    Qualifiers            Defaults

    /ALL                  /NOALL
    /CONFIRM              /NOCONFIRM
    /LOG                  /LOG

35.1.9.1  –  Parameters

 message-id

    A comma separated list of one or more message identification
    numbers shown with a previous DIRECTORY command. Ranges are
    allowed.

35.1.9.2  –  Description

    Queued messages can be returned to their originator with the
    RETURN command. The messages to be returned are specified by
    their message identification numbers shown by the most recent
    DIRECTORY command. Those numbers appear in the leftmost column of
    the DIRECTORY command listing.

35.1.9.3  –  Qualifiers

35.1.9.3.1    /ALL

       /ALL
       /NOALL (default)

    Return all messages shown by the last DIRECTORY command. Unless
    /NOCONFIRM is specified with /ALL, you will be required to
    confirm any RETURN/ALL operation.

35.1.9.3.2    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will be prompted to confirm each
    message return operation.

35.1.9.3.3    /LOG

       /LOG (default)
       /NOLOG

    Specifies whether informational messages for each message return
    operation are generated.

35.1.10  –  SPAWN

    Create a subprocess.

    Syntax

      SPAWN  [command]

    Qualifiers            Defaults

    /INPUT=in-file-spec   None
    /LOGICAL_NAMES        /LOGICAL_NAMES
    /OUTPUT=out-file-spec None
    /PROCESS=name         None
    /SYMBOLS              /SYMBOLS
    /WAIT                 /WAIT

35.1.10.1  –  Restrictions

    Cannot be used from a captive account.

35.1.10.2  –  Parameters

 command

    Optional parameter specifying the command string for the
    subprocess to execute. After the command completes, the
    subprocess terminates and control is returned to the parent
    process.

35.1.10.3  –  Description

    The SPAWN command can be used to either issue a single DCL
    command from within PMDF QM or to leave PMDF QM temporarily, do
    other work (e.g., type out a file, generate a directory listing,
    etc.), and then return to PMDF QM.

    By default, the context of the current process is copied to the
    subprocess. This behavior can be controlled with the /LOGICAL_
    NAMES and /SYMBOLS qualifiers.

35.1.10.4  –  Qualifiers

35.1.10.4.1    /INPUT

       /INPUT=in-file-spec

    Specifies an input command file from which the subprocess is to
    draw command input. Once command processing is completed, the
    subprocess terminates. When you specify both a command string and
    input file, then the command string is first processed and then
    the commands from the input file.

35.1.10.4.2    /LOGICAL_NAMES

       /LOGICAL_NAMES (default)
       /NOLOGICAL_NAMES

    The /LOGICAL_NAMES qualifier specifies that the logical names
    of the parent process are to be copied to the subprocess. This
    is the default behavior. Specify /NOLOGICAL_NAMES to prevent the
    subprocess from inheriting the logical name definitions of its
    parent.

35.1.10.4.3    /OUTPUT

       /OUTPUT=out-file-spec

    Specifies the output file to which the output of the subprocess
    is to be directed. If the /OUTPUT qualifier is omitted, then
    subprocess output is directed to the current SYS$OUTPUT device
    (generally, your terminal).

35.1.10.4.4    /PROCESS

       /PROCESS=name

    Specifies the process name to associate with the subprocess.
    If not specified, a default name of the form USERNAME_n, where
    "USERNAME" is your username, is used.

35.1.10.4.5    /SYMBOLS

       /SYMBOLS (default)
       /NOSYMBOLS

    The /SYMBOLS qualifier specifies that the DCL symbol definitions
    of the parent process are to be copied to the subprocess. This
    is the default behavior. Specify /NOSYMBOLS to prevent the
    subprocess from inheriting the symbol definitions of its parent.

35.1.10.4.6    /WAIT

       /WAIT (default)
       /NOWAIT

    By default, your current (parent) process will wait until the
    subprocess has finished its processing and terminated. This
    default behavior is explicitly selected with the /WAIT qualifier.
    The /NOWAIT qualifier allows you to continue working from your
    current process while the subprocess is running. When you specify
    /NOWAIT, you should also specify the /OUTPUT qualifier so as to
    prevent the subprocess output from appearing on your terminal
    screen.

35.1.10.5  –  Examples

    1.qm.user> SPAWN DIRECTORY/SIZE=ALL A.TXT

      Directory D1:[BOB]

      A.TXT;10    125/126
      A.TXT;9     124/126
      A.TXT;8     124/126

      Total of 3 files, 373/378.
      qm.user> SPAWN PURGE/LOG A.TXT
      %PURGE-I-FILPURG, D1:[BOB]A.TXT;9 deleted (126 blocks)
      %PURGE-I-FILPURG, D1:[BOB]A.TXT;8 deleted (126 blocks)
      %PURGE-I-TOTAL, 2 files deleted (252 blocks)
      qm.user>

      In this example, the SPAWN command is used to obtain a
      directory listing of the files A.TXT, and then to purge back
      old versions of that file. The ability to do this is useful
      when you find that you have insufficient disk quota to create
      and edit a mail message you want to send.

    2.qm.user> SPAWN
         .
         .
         .
      $ LOGOUT
        Process BOB_1 logged out at 23-AUG-2012 12:12:51.42
      qm.user>

      In this example a SPAWN command with no command string is
      issued. This places you into the subprocess where you can issue
      DCL commands and perform other processing. When you are done
      with the subprocess and ready to return to PMDF QM, use the
      LOGOUT or EOJ command.

35.2  –  Maintenance Mode Commands

35.2.1  –  CLEAN

    Hold or delete message files from the PMDF queue area that
    contain specified substrings in their envelope From: address,
    Subject: header, or message content.

    Syntax

      CLEAN  [channel]

    Command Qualifiers             Defaults

    /CONTENT=substring             None
    /DATABASE                      See text
    /DELETE                        /HOLD
    /DIRECTORY_TREE                See text
    /ENV_FROM=substring            None
    /HOLD                          /HOLD
    /MATCH=keyword                 /MATCH=AND
    /MIN_LENGTH=n                  /MIN_LENGTH=24
    /SUBJECT=substring             None
    /THREADS=n                     /NOTHREADS
    /VERBOSE                       /NOVERBOSE

35.2.1.1  –  Parameters

 channel

    Optional parameter which specifies a specific PMDF channel area
    to be searched for matching messages. * or ? wildcard characters
    may be used in the channel specification.

35.2.1.2  –  Description

    Hold or delete message files containing specific substrings
    in their envelope From: address, Subject: line, or content.
    By default, message files are held (/HOLD). Specify /DELETE to
    instead delete matching message files. The /CONTENT, /ENV_FROM,
    and /SUBJECT qualifiers are used to specify the substrings for
    which to search.

    Any combination of /CONTENT, /ENV_FROM, and /SUBJECT may be
    specified. However, only one of each may be used. The /MATCH
    qualifier controls whether a message file must contain all
    (/MATCH=AND, the default) or only one of (/MATCH=OR) the
    specified substrings in order to be held or deleted. The default
    is /MATCH=AND.

    By default, each substring to be searched for must be at least
    24 bytes long (/MIN_LENGTH=24). This is a safety measure:
    the longer the substring, the less likely the chance of false
    "hits". Use the /MIN_LENGTH qualifier to override this limit.
    The message files searched may be either all those present in the
    channel queue directory tree, or only those files with entries
    in the queue cache database. Use either the VIEW command or the
    /DIRECTORY_TREE or /DATABASE qualifier to control which files are
    searched.

    The optional channel parameter restricts the search to message
    files in the specified channel. The channel parameter may use *
    and ? wild cards.

    The /THREADS qualifier may be used to accelerate searching on
    multiprocessor systems by dividing the work amongst multiple,
    simultaneously running threads. To run n simultaneous searchingg
    threads, specify /THREADS=n. The value n must be in the range
    1-8. The default is /NOTHREADS.

35.2.1.3  –  Command Qualifiers

35.2.1.3.1    /CONTENT

       /CONTENT=substring
       /ENV_FROM=substring
       /SUBJECT=substring

    The /CONTENT, /ENV_FROM, and /SUBJECT qualifiers are used to
    specify the substrings for which to search. Any combination of
    /CONTENT, /ENV_FROM, and /SUBJECT may be specified. However, only
    one of each may be used. When a combination of such qualifiers
    is used, the /MATCH qualifier controls whether the qualifiers
    are interpreted as further restrictions (/MATCH=AND), or as
    alternatives (/MATCH=OR).

35.2.1.3.2    /DATABASE

       /DATABASE
       /DIRECTORY_TREE

    Controls whether the message files searched are only those with
    entries in the queue cache database, /DATABASE, or all message
    files actually present in the channel queue directory tree,
    /DIRECTORY_TREE.

    When neither /DATABASE nor /DIRECTORY_TREE is specified, then the
    "view" selected with the VIEW command will be used. If no VIEW
    command has been issued, then /DIRECTORY_TREE is assumed.

35.2.1.3.3    /DELETE

       /DELETE
       /HOLD (default)

    /HOLD is the default and means that matching message files will
    be held. Specify /DELETE to instead delete matching message
    files.

35.2.1.3.4    /MATCH

       /MATCH=keyword

    The default is /MATCH=AND, meaning that any criteria specified
    by /CONTENT, /ENV_FROM, and /SUBJECT qualifiers must all match
    in order for the current hold or delete operation to be applied.
    Specifying /MATCH=OR means that a message will match as long as
    at least one such criterion matches.

35.2.1.3.5    /MIN_LENGTH

       /MIN_LENGTH=n

    By default, each substring to be searched for must be at least 24
    bytes long (/MIN_LENGTH=24). This is a safety measure: the longer
    the substring, the less likely the chance of false "hits". Use
    the /MIN_LENGTH qualifier to override this limit.

35.2.1.3.6    /THREADS

       /THREADS=n
       /NOTHREADS (default)

    The /THREADS qualifier may be used to accelerate searching on
    multiprocessor systems by dividing the work amongst multiple,
    simultaneously running threads. To run n simultaneous searching
    threads, specify /THREADS=n. The value n must be an integer in
    the range 1-8. The default is /NOTHREADS.

35.2.1.3.7    /VERBOSE

       /VERBOSE
       /NOVERBOSE (default)

    The /VERBOSE qualifier may be used to request that the utility
    print out information about what it is doing as it operates.

35.2.1.4  –  Examples

      The following example shows holding all message files in the
      PMDF queue area that have the string "real estate" in the
      Subject: header and have the string "ownership.com" in the
      envelope From: address.

 qm.maint> CLEAN/MIN_LENGTH=11/SUBJECT="real estate"

35.2.1.4.1    /ENV_FROM="ownership.com"

 %QM-I-QCLISTING, building a list of message files to scan from the queue cache
 %QM-I-SCANNING, scanning 72 message files
 %QM-I-SCANNED, scanned 72 message files in 3.7500 seconds (19.20 messages/second)
 %QM-I-HELD, held 5 message files

35.2.2  –  COUNTERS

35.2.2.1  –  CLEAR

    Clear the node-specific, in-memory cache of counters.

    Syntax

      COUNTERS CLEAR

    Command Qualifiers             Defaults

    /ASSOCIATIONS                  /ASSOCIATIONS
    /CHANNELS                      /CHANNELS

35.2.2.1.1  –  Parameters

    None.

35.2.2.1.2  –  Description

    To clear (zero) the counters in a node-specific, in-memory
    cache, issue the COUNTERS CLEAR command on that particular node.
    The command creates the node-specific, in-memory section of
    association and channel counters if it does not already exist.
    Then it zeros all fields in the in-memory section. Note that the
    counters will be zeroed without first merging their values into
    the cluster-wide database of channel counters. If a cluster-
    wide, on-disk database does not already exist, a new one will be
    created. Finally, the fields in the on-disk database for numbers
    of stored messages, message recipients, and message volumes are
    set based on the entries in the PMDF queue cache database.

    Either the association counters, or channel counters, or both,
    may be cleared. The default is to clear both association and
    channel counters.

    If you want to update the on-disk database with the old in-memory
    values before clearing them, then you should issue a COUNTERS
    SYNCHRONIZE command before issuing the COUNTERS CLEAR command.

35.2.2.1.3  –  Command Qualifiers

35.2.2.1.3.1    /ASSOCIATIONS

       /ASSOCIATIONS (default)
       /NOASSOCIATIONS

    This qualifier specifies whether to clear the in-memory cache of
    association counters.

35.2.2.1.3.2    /CHANNELS

       /CHANNELS (default)
       /NOCHANNELS

    This qualifier specifies whether to clear the in-memory cache of
    channel counters.

35.2.2.2  –  CRDB

    Create a cluster-wide database of accumulated association and
    channel counters.

    Syntax

      COUNTERS CRDB

    Command Qualifiers    Defaults

    None.                 None.

35.2.2.2.1  –  Parameters

    None.

35.2.2.2.2  –  Description

    A new, cluster-wide database of channel counters can be created
    with the COUNTERS CRDB command. The new database will have all
    counters zeroed except for the count of messages stored in each
    channel. Those counts will be determined by entries in the PMDF
    queue cache database. In addition, if an in-memory section for
    association and channel counters on this node does not already
    exist, it will be created as well.

    Once the on-disk, cluster-wide database exists, you may use
    the COUNTERS SYNCHRONIZE command to merge the information from
    the node-specific, in-memory cache of counters into the on-disk
    database.

35.2.2.3  –  SHOW

    Display the contents of the cluster-wide database of channel
    counters.

    Syntax

      COUNTERS SHOW  [channel]

    Command Qualifiers             Defaults

    /HEADER                        /HEADER
    /OUTPUT=file-spec              None
    /SYNCHRONIZE                   /SYNCHRONIZE
    /TIMEOUT=seconds               /TIMEOUT=120

35.2.2.3.1  –  Parameters

 channel

    Optional channel name indicating the channel(s) for which to show
    counters. May contain wildcards.

35.2.2.3.2  –  Description

    The contents of the cluster-wide channel counter database may be
    displayed with the COUNTERS SHOW command. By default, before the
    counters are displayed, an implicit COUNTERS SYNCHRONIZE command
    will be executed, to attempt to synchronize each node-specific
    cache with the main cluster-wide database. Specify /NOSYNCHRONIZE
    to merely display the current contents of the database without
    first synchronizing the node-specific caches.

    Note that SYSLCK privilege is required to perform the
    synchronization step.

    Note that the output of PMDF QM's COUNTERS SHOW command is
    currently not as detailed as the output of the DCL level PMDF
    COUNTERS/SHOW command.

35.2.2.3.3  –  Command Qualifiers

35.2.2.3.3.1    /HEADER

       /HEADER (default)
       /NOHEADER

    Controls whether or not a header line describing each column in
    the table of counters is output.

35.2.2.3.3.2    /OUTPUT

       /OUTPUT=file-spec

    Direct the output to the specified file. By default the output
    appears on your display.

35.2.2.3.3.3    /SYNCHRONIZE

       /SYNCHRONIZE (default)
       /NOSYNCHRONIZE

    Before displaying the counters, attempt to synchronize each of
    the node-specific caches with the cluster-wide database. Specify
    /NOSYNCHRONIZE to skip this synchronization step.

35.2.2.3.3.4    /TIMEOUT

       /TIMEOUT=seconds

    By default, QM will wait upwards of 120 seconds for the node-
    specific caches to be synchronized with the cluster-wide
    database. Should the synchronization step not be completed before
    the specified time period, then QM will stop waiting and proceed
    to display the information from the database. You may specify a
    different period of time to wait with the /TIMEOUT qualifier.

    This qualifier has no effect when /NOSYNCHRONIZE is specified.

35.2.2.3.4  –  Examples

      To display the counters information for all TCP/IP channels,
      use the command

 qm.maint> COUNTERS SHOW *tcp_*
 Channel                     Messages  Recipients      Blocks
 ------------------------  ----------  ----------  ----------
 tcp_local
     Received                      33          41          95
     Stored                         0           0           0
     Delivered                     33          41          95
     Submitted                      1           1           3
 tcp_internal
     Received                     632         758        1453
     Stored                         1           2          10
     Delivered                    631         756        1443
     Submitted                      3           6          12
 qm.maint>

35.2.2.4  –  SYNCHRONIZE

    Synchronize each of the node-specific, in-memory caches of
    channel counters with the cluster-wide database.

    Syntax

      COUNTERS SYNCHRONIZE

    Command Qualifiers             Defaults

    /TIMEOUT=seconds               /TIMEOUT=120

35.2.2.4.1  –  Parameters

    None.

35.2.2.4.2  –  Description

    To synchronize each of the node-specific, in-memory cache of
    channel counters with the cluster-wide database, issue a COUNTERS
    SYNCHRONIZE command. The command will not return control back
    to you until either all the caches have been synchronized
    or a "timeout" period has elapsed. Should the timeout period
    elapse, then control will be returned to you. However, the
    synchronization process will continue in the background. Use
    the /TIMEOUT qualifier to adjust the timeout period which has a
    default value of 120 seconds.

    Note that SYSLCK privilege is required to use this command.

    Note that the COUNTERS SYNCHRONIZE command signals each PMDF
    counters synchronization process in the cluster to perform the
    synchronization-there should be one such process on each node
    running PMDF. Note that on each node, the synchronization can
    only be performed if the PMDF counters synchronization process is
    running on that node.

    Assuming that the PMDF counters synchronization process is
    running on each node, then for each node the node-specific, in-
    memory cache will be created, if it does not already exist. If
    the cluster-wide, on-disk database does not exist, it will be
    created. The in-memory cache values will be used to update the
    on-disk database, and then the on-disk database values for stored
    messages, recipients, and volume will be set by scanning the PMDF
    queue cache database.

35.2.2.4.3  –  Command Qualifiers

35.2.2.4.3.1    /TIMEOUT

       /TIMEOUT=seconds

    By default, QM will wait upwards of 120 seconds for the node-
    specific caches to be synchronized. Should the synchronizations
    not be completed before the specified time period, QM will
    return control to you prompting you for another command.
    The synchronization process will, however, continue in the
    background.

35.2.2.5  –  TODAY

    Display PMDF's count of the number of messages processed so far
    today.

    Syntax

      COUNTERS TODAY

    Command Qualifiers    Defaults

    None.                 None.

35.2.2.5.1  –  Description

    PMDF's count of the number of messages processed so far today may
    be displayed with the COUNTERS TODAY command.

35.2.2.5.2  –  Examples

      This example illustrates displaying PMDF's count of the number
      of messages processed so far today.

  qm.maint> COUNTERS TODAY
  4263 messages processed so far today
  30000 messages per day are permitted by your license
  qm.maint>

35.2.3  –  DATE

    Show the current date and time.

    Syntax

      DATE

    Command Qualifiers    Defaults

    None.                 None.

35.2.3.1  –  Parameters

    None.

35.2.3.2  –  Description

    The DATE command may be used to show the current date and time,
    in RFC 822 and RFC 1123 format. It is useful for placing time
    stamps in log files for command procedures which periodically run
    PMDF QM to check on PMDF's channel queues.

35.2.3.3  –  Examples

        qm.maint> DATE
        Fri, 15 Nov 2012 13:34:16 PST
        qm.maint>

35.2.4  –  DELETE

    Delete one or more messages from the channel queue directory.

    Syntax

      DELETE  [message-id[,...]]

    Command Qualifiers             Defaults

    /ALL                           /NOALL
    /CHANNEL=name                  None
    /CONFIRM                       /NOCONFIRM
    /LOG                           /LOG

35.2.4.1  –  Parameters

 message-id[,...]

    A comma separated list of one or more message identification
    number or numbers shown by a previous DIRECTORY command. Ranges
    are allowed.

35.2.4.2  –  Description

    The DELETE command is used to delete one or more messages from
    the channel queue directories. The messages to be deleted are
    specified by their message identification numbers shown by
    the most recent DIRECTORY command. That number appears in the
    leftmost column of the DIRECTORY command listing. Ambiguous
    message numbers must be qualified by the proper channel name
    with the /CHANNEL qualifier.

    Note that the DELETE command irrevocably deletes each message
    it is instructed to delete: the messages are not returned to
    their originators nor will any further attempts to be made to
    deliver them to their recipients. The messages are permanently
    deleted. Often, it is preferable to use the RETURN command so as
    to return the message to its originator, (e.g., bounce it back to
    the sender).

35.2.4.3  –  Qualifiers

35.2.4.3.1    /ALL

       /ALL
       /NOALL (default)

    Delete all messages shown by the last DIRECTORY command. When
    used in conjunction with the /CHANNEL qualifier, only those
    messages shown by the last DIRECTORY command for the specified
    channel will be deleted.

    Unless /NOCONFIRM is specified with /ALL, you will be required to
    confirm any DELETE/ALL operation.

35.2.4.3.2    /CHANNEL

       /CHANNEL=name

    Specifies the name of the channel from which to delete messages.
    Wildcards are not permitted.

35.2.4.3.3    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will be prompted to confirm each
    message delete operation.

35.2.4.3.4    /LOG

       /LOG (default)
       /NOLOG

    Specifies whether informational messages for each message delete
    operation are generated.

35.2.4.4  –  Examples

      In the following example, the DIRECTORY command is used to
      list the messages in the local, l, channel. Then, the DELETE
      command is used to delete messages 1, 3, 20, 21, and 22. A
      range specification, 20-22, is used to specify message numbers
      20, 21, and 22.

  qm.maint> DIRECTORY L
  Mon, 23 Sep 2012 13:43:39 PDT
  Data gathered from the queue directory tree

  Channel: l                        Size Queued since
  --------------------------------------------------------------
      1 ZZ01HNP17LSUWY9D4DNR.00        4 23-SEP-2012 01:10:23
      2 ZZ01HNP1RP3B6G9D4DNR.00       10 23-SEP-2012 01:10:24
      3 ZZ01HNP42MAMAI9D4DNR.00        3 23-SEP-2012 01:10:24
      4 ZZ01HNP4MEWC8G9D4DNR.00        8 23-SEP-2012 06:18:57
        ...
     24 ZZ01HNP90X63ZG9D4DNR.00        6 23-SEP-2012 13:21:14
  --------------------------------------------------------------
  Total size:                        108

  24 total messages queued
  qm.maint> DELETE 1,3,20-22
  %QM-I-DELETED, deleted the message file PMDF_QUEUE:[L]ZZ01HNP17LSUWY9D4DNR.00
  %QM-I-DELETED, deleted the message file PMDF_QUEUE:[L]ZZ01HNP42MAMAI9D4DNR.00
  %QM-I-DELETED, deleted the message file PMDF_QUEUE:[L]ZZ01HNP76RTGHY9D4DNR.00
  %QM-I-DELETED, deleted the message file PMDF_QUEUE:[L]ZZ01HNP82HTXYB9D4DNR.00
  %QM-I-DELETED, deleted the message file PMDF_QUEUE:[L]ZZ01HNP83JPOCV9D4DNR.00
  qm.maint>

35.2.5  –  DIRECTORY

    List currently queued messages.

    Syntax

      DIRECTORY  [channel-name]

    Command Qualifiers             Defaults

    /DATABASE                      See text
    /DIRECTORY_TREE                See text
    /ENVELOPE                      /NOENVELOPE
    /FILE_INFO                     /FILE_INFO
    /FROM                          See text
    /HELD                          /NOHELD
    /MATCH                         See text
    /OWNER                         See text
    /TO                            See text
    /TOTAL                         See text

35.2.5.1  –  Parameters

 channel-name

    An optional parameter specifying the channel for which to obtain
    a directory listing. Wildcards are permitted.

35.2.5.2  –  Description

    The DIRECTORY command is used to show the currently queued
    message files in either all channel queues or a particular
    channel queue. In the listing, message identification numbers
    will appear to the left of each message file name. These numbers
    may be used with the DELETE, HISTORY, HOLD, READ, RELEASE, and
    RETURN commands so as to identify which message to operate on.

    The DIRECTORY command produces its listing by looking at either
    the actual queue directory tree on disk, or by looking at
    the queue cache database. Use either the VIEW command or the
    /DIRECTORY_TREE or /DATABASE qualifiers to control the source
    of information used. Note that when /DIRECTORY_TREE or VIEW
    DIRECTORY_TREE is used, the "queued since" dates are the date
    and time that the message file was created; when /DATABASE or
    VIEW DATABASE is used, the queued since dates are the date and
    time that the message was enqueued and may pre-date the actual
    creation date for the message file itself.

35.2.5.3  –  Qualifiers

35.2.5.3.1    /DATABASE

       /DATABASE
       /DIRECTORY_TREE

    Controls whether the information presented is gathered from the
    queue cache database, /DATABASE, or by looking at the actual
    directory tree containing the channel queues, /DIRECTORY_TREE.

    When neither /DATABASE nor /DIRECTORY_TREE is specified, then the
    "view" selected with the VIEW command will be used. If no VIEW
    command has been issued, then /DIRECTORY_TREE is assumed.

35.2.5.3.2    /DIRECTORY_TREE

    See /DATABASE

35.2.5.3.3    /ENVELOPE

       /ENVELOPE
       /NOENVELOPE (default)

    Use the /ENVELOPE qualifier to generate a directory listing
    including the envelope From: address and the list of envelope
    To: recipients for each listed message. By default, envelope
    information is not displayed as it involves opening each message
    file and reading through its envelope.

35.2.5.3.4    /FILE_INFO

       /FILE_INFO (default)
       /NOFILE_INFO

    By default, message file size and creation date information is
    gathered. However, this requires accessing each message file.
    Specify /NOFILE_INFO if you want to avoid that overhead.

35.2.5.3.5    /FROM

       /FROM=address

    This qualifier may be used to request showing only those messages
    with the specified envelope From: address. This qualifier implies
    /ENVELOPE. To specify an empty (blank) envelope From: address,
    use /FROM=<>.

35.2.5.3.6    /HELD

       /HELD
       /NOHELD (default)

    Show information only for those channels with held messages.

35.2.5.3.7    /MATCH

       /MATCH=keyword

    This qualifier controls the interpretation of the /FROM and /TO
    qualifiers. Valid keywords are AND and OR.

35.2.5.3.8    /OWNER

       /OWNER=username

    This qualifier may be used to request showing only those
    message "owned" by the specified username. This qualifier
    implies /DATABASE. Note that messages submitted via SMTP with
    authentication (SMTP AUTH) will be considered to be owned by
    the username that authenticated, prefixed with the asterisk, *,
    character. For instance, if user JDOE submits a message from an
    IMAP client that successfully performs SMTP authentication, then
    PMDF QM will consider the owner of the message to be *JDOE, and
    to see such messages one would use the command

    qm.maint> DIR/OWNER=*JDOE

35.2.5.3.9    /TO

       /TO=address

    This qualifier may be used to request showing only those messages
    with the specified envelope To: address. This qualifier implies
    /ENVELOPE.

35.2.5.3.10    /TOTAL

    This qualifier may be used to request showing only the total
    number of messages, rather than listing each individual message
    as is the default.

35.2.5.4  –  Examples

    1.qm.maint> DIRECTORY *TCP_*
      Mon, 23 Sep 2012 14:53:39 PST
      Data gathered from the queue directory tree

      Channel: tcp_local               Size Queued since
      --------------------------------------------------------------
          1 ZL01HNM78RMBP496VPJS.00        4 21-SEP-2012 09:12:29.53
          2 ZM01HNMEDX5T8E96VQDN.00       10 21-SEP-2012 12:36:41.35
          3 ZX01HNP9IO1ZAM96W55R.00        6 21-SEP-2012 13:50:06.89
          4 ZY01HNP9HTAO9696W55R.00        5 21-SEP-2012 13:49:25.61
          5 ZY01HNPBGF8JVI96W55R.00        6 21-SEP-2012 14:45:34.33
          6 ZZ01HNPBFPQ4LG96W55R.00        5 21-SEP-2012 14:45:00.01
          7 ZZ01HNPBFQ4BS896W55R.00        5 21-SEP-2012 14:45:00.53
          8 ZZ01HNPBFR5KG296W55R.00        5 21-SEP-2012 14:45:01.92
          9 ZZ01HNPBFRD2IC96W55R.00        5 21-SEP-2012 14:45:02.19
         10 ZZ01HNPBFS7VP896W55R.00        5 21-SEP-2012 14:45:03.36
         11 ZZ01HNPBFTM8YY96W55R.00        5 21-SEP-2012 14:45:05.23
         12 ZZ01HNPBFY7JYU96W55R.00        5 21-SEP-2012 14:45:11.41
         13 ZZ01HNPBGL2BYC96W55R.00        5 21-SEP-2012 14:45:42.10
      --------------------------------------------------------------
      Total size:                         71

      Channel: mtcp_gateway             Size Queued since
      --------------------------------------------------------------
          1 ZY01HNP9HYJ0QK96W55R.00        6 23-SEP-2012 13:49:32.60
          2 ZY01HNP9ID452296W55R.00        6 23-SEP-2012 13:49:52.18
          3 ZZ01HNPBFT1MAC96W55R.00        5 23-SEP-2012 14:45:04.47
          4 ZZ01HNPBGH5OAM96W55R.00        5 23-SEP-2012 14:45:36.85
          5 ZZ01HNPBGZO97C96W55R.00        5 23-SEP-2012 14:46:01.73
      --------------------------------------------------------------
      Total size:                         27

      Grand total size:                   98
      28 total messages queued
      qm.maint>

      This example shows how to use the DIRECTORY command to list the
      messages queued to all channels whose names match the pattern
      "*tcp_*"; i.e., all TCP/IP channels.

    2.qm.maint> DIRECTORY/HELD
      Mon, 23 Sep 2012 13:45:18 PST
      Data gathered from the queue directory tree

      Channel: tcp_local               Size Queued since
      --------------------------------------------------------------
          1 ZZG01HNM78RMBP496VPJS.HELD    10 12-SEP-2012 23:31:18.34
          2 ZZM01HNMEDX5T8E96VQDN.HELD     8  8-JUL-2012 13:36:14.89
          3 ZZX01HNP9IO1ZAM96W55R.HELD    23 29-AUG-2012 07:27:49.01
      --------------------------------------------------------------
      Total size:                          41

      Grand total size:                    41
      3 total held messages queued
      qm.maint>

      In this example, the /HELD qualifier is used to check for held
      messages.

35.2.6  –  EDIT_FAX

    Edit a queued PMDF-FAX message.

    Syntax

      EDIT_FAX  [message-id[,...]]

    Command Qualifiers             Defaults

    /ALL                           /NOALL
    /CHANNEL=name                  None
    /CONFIRM                       /NOCONFIRM
    /LOG                           /LOG

35.2.6.1  –  Parameters

 message-id[,...]

    A comma separated list of one or more message identification
    numbers shown with a previous DIRECTORY command. Ranges are
    allowed.

35.2.6.2  –  Description

    The addresses of queued FAX messages may be edited so as,
    for instance, to correct an incorrect FAX telephone number.
    The messages to be edited are specified by their message
    identification numbers shown by the most recent DIRECTORY
    command. That number appears in the leftmost column of the
    DIRECTORY command listing. Ambiguous message numbers must be
    qualified by the proper channel name with the /CHANNEL qualifier.

35.2.6.3  –  Qualifiers

35.2.6.3.1    /ALL

       /ALL
       /NOALL (default)

    Edit all messages shown by the last DIRECTORY command. When used
    in conjunction with the /CHANNEL qualifier, only those messages
    shown by the last DIRECTORY command for the specified channel
    will be edited.

    Unless /NOCONFIRM is specified with /ALL, you will be required to
    confirm any EDIT_FAX/ALL operation.

35.2.6.3.2    /CHANNEL

       /CHANNEL=name

    Specifies the name of the channel from which to edit messages.
    Wildcards are not permitted.

35.2.6.3.3    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will prompted to confirm each
    message edit operation.

35.2.6.3.4    /LOG

       /LOG (default)
       /NOLOG

    Specifies whether informational messages for each message edit
    operation are generated.

35.2.7  –  EXIT

    Exit the PMDF QM utility.

    Syntax

      EXIT

    Command Qualifiers    Defaults

    None.                 None.

35.2.7.1  –  Parameters

    None.

35.2.7.2  –  Description

    The EXIT and QUIT commands exit the PMDF QM utility.

35.2.8  –  HELD

    List currently queued messages which have been marked as held.

    Syntax

      HELD  [channel-name]

    Command Qualifiers             Defaults

    /DATABASE                      See text
    /DIRECTORY_TREE                See text
    /ENVELOPE                      See text
    /FILE_INFO                     /FILE_INFO
    /HELD                          /HELD

35.2.8.1  –  Parameters

 channel-name

    An optional parameter specifying the channel for which to obtain
    a directory listing. Wildcards are permitted.

35.2.8.2  –  Description

    The HELD command is a synonym for the DIRECTORY/HELD command. See
    the description of the DIRECTORY command for further information.

35.2.8.3  –  Qualifiers

35.2.8.3.1    /DATABASE

       /DATABASE
       /DIRECTORY_TREE

    Controls whether the information presented is gathered from the
    queue cache database, /DATABASE, or by looking at the actual
    directory tree containing the channel queues, /DIRECTORY_TREE.

    When neither /DATABASE or /DIRECTORY_TREE is specified, then the
    "view" selected with the VIEW command will be used. If no VIEW
    command has been issued, then /DIRECTORY_TREE is assumed.

35.2.8.3.2    /DIRECTORY_TREE

    See /DATABASE

35.2.8.3.3    /ENVELOPE

    Display envelope To: and From: for the held messages listed.

35.2.8.3.4    /FILE_INFO

       /FILE_INFO
       /NOFILE_INFO (default)

    By default, message file size and creation date information is
    gathered. However, this requires accessing each message file.
    Specify /NOFILE_INFO if you want to avoid that overhead.

35.2.8.3.5    /HELD

       /HELD (default)
       /NOHELD

    Show information only for those channels with held messages.

35.2.9  –  HELP

    Obtain help on the use of PMDF QM.

    Syntax

      HELP  [topic]

    Command Qualifiers    Defaults

    None.                 None.

35.2.9.1  –  Parameters

 topic

    Optional topic to obtain help on.

35.2.9.2  –  Description

    The HELP command may be used to obtain information on PMDF QM
    commands. To obtain information on all of the PMDF QM commands,
    use the command

    qm.maint> HELP

    To obtain information on individual commands or topics use the
    command

    qm.maint> HELP topic

    where TOPIC is the name of the command or topic of interest.

35.2.10  –  HISTORY

    Display message history information.

    Syntax

      HISTORY  [message-id[,...]]

    Command Qualifiers             Defaults

    /ALL                           /NOALL
    /CHANNEL=name                  None
    /CONFIRM                       /NOCONFIRM

35.2.10.1  –  Parameters

 message-id[,...]

    A comma separated list of one or more message identification
    numbers shown with a previous DIRECTORY command. Ranges are
    allowed.

35.2.10.2  –  Description

    For many channels, delivery history information is appended
    to the end of each message file after an unsuccessful delivery
    attempt has been made. With the HISTORY command, this information
    can be displayed.

    The messages to show histories for are specified by their message
    identification numbers shown by the most recent DIRECTORY
    command. That number appears in the leftmost column of the
    DIRECTORY command listing. Ambiguous message numbers must be
    qualified by the proper channel name with the /CHANNEL qualifier.

    Note that history information is not recorded by some channels.

35.2.10.3  –  Qualifiers

35.2.10.3.1    /ALL

       /ALL
       /NOALL (default)

    Display history information for all messages shown with the last
    DIRECTORY command. When used in conjunction with the /CHANNEL
    qualifier, only histories of those messages shown with the last
    DIRECTORY command for the specified channel will be shown.

35.2.10.3.2    /CHANNEL

       /CHANNEL=name

    Specifies the name of the channel for which to show message
    histories. Wild cards are not permitted.

35.2.10.3.3    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will be prompted to confirm
    whether or not to display the history for each selected message.

35.2.11  –  HOLD

    Mark one or more messages as being held.

    Syntax

      HOLD  [message-id[,...]]

    Command Qualifiers             Defaults

    /ALL                           /NOALL
    /CHANNEL=name                  None
    /CONFIRM                       /NOCONFIRM
    /LOG                           /LOG

35.2.11.1  –  Parameters

 message-id[,...]

    A comma separated list of one or more message identification
    numbers shown with a previous DIRECTORY command. Ranges are
    allowed.

35.2.11.2  –  Description

    Use the HOLD command to mark as held any messages which should
    temporarily be placed on "hold". PMDF will not attempt to deliver
    any messages which are marked as held. To resume processing of a
    held message, use the RELEASE command. Messages which have been
    held can be listed with the DIRECTORY/HELD command.

    The messages to be held are specified by their message
    identification numbers shown by the most recent DIRECTORY
    command. That number appears in the leftmost column of the
    DIRECTORY command listing. Ambiguous message numbers must be
    qualified by the proper channel name with the /CHANNEL qualifier.

35.2.11.3  –  Qualifiers

35.2.11.3.1    /ALL

       /ALL
       /NOALL (default)

    Hold all messages shown by the last DIRECTORY command. When used
    in conjunction with the /CHANNEL qualifier, only those messages
    shown by the last directory command for the specified channel
    will be held.

    Unless /NOCONFIRM is specified with /ALL, you will be required to
    confirm any HOLD/ALL operation.

35.2.11.3.2    /CHANNEL

       /CHANNEL=name

    Specifies the name of the channel from which to hold messages.
    Wildcards are not permitted.

35.2.11.3.3    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will be prompted to confirm each
    message hold operation.

35.2.11.3.4    /LOG

       /LOG (default)
       /NOLOG

    Specifies whether informational messages for each message hold
    operation are generated.

35.2.11.4  –  Examples

      In the following example, the DIRECTORY command is used to
      list the messages in the local, l, channel. Then, the HOLD
      command is used to hold messages 1, 3, 20, 21, and 22. A range
      specification, 20-22, is used to specify message numbers 20,
      21, and 22.

  qm.maint> DIRECTORY L
  Fri, 10 Mar 2012 13:43:39 PDT
  Data gathered from the queue directory tree

  Channel: l                        Size Queued since
  --------------------------------------------------------------
      1 ZZ01HNP17LSUWY9D4DNR.00        4 15-NOV-2012 01:10:23
      2 ZZ01HNP1RP3B6G9D4DNR.00       10 10-MAR-2012 01:10:24
      3 ZZ01HNP42MAMAI9D4DNR.00        3 10-MAR-2012 01:10:24
      4 ZZ01HNP4MEWC8G9D4DNR.00        8 10-MAR-2012 06:18:57
        ...
     24 ZZ01HNP90X63ZG9D4DNR.00        6 10-MAR-2012 13:21:14
  --------------------------------------------------------------

  24 total messages queued
  qm.maint> HOLD 1,3,20-22
  %QM-I-HELD, held the message file PMDF_QUEUE:[L]ZZ01HNP17LSUWY9D4DNR.00
  %QM-I-HELD, held the message file PMDF_QUEUE:[L]ZZ01HNP42MAMAI9D4DNR.00
  %QM-I-HELD, held the message file PMDF_QUEUE:[L]ZZ01HNP76RTGHY9D4DNR.00
  %QM-I-HELD, held the message file PMDF_QUEUE:[L]ZZ01HNP82HTXYB9D4DNR.00
  %QM-I-HELD, held the message file PMDF_QUEUE:[L]ZZ01HNP83JPOCV9D4DNR.00
  qm.maint>

35.2.12  –  QUIT

    Exit the PMDF QM utility.

    Syntax

      QUIT

    Command Qualifiers    Defaults

    None.                 None.

35.2.12.1  –  Parameters

    None.

35.2.12.2  –  Description

    The EXIT and QUIT commands exit the PMDF QM utility.

35.2.13  –  READ

    Display message envelope and header information.

    Syntax

      READ  [message-id[,...]]

    Command Qualifiers             Defaults

    /ALL                           /NOALL
    /CHANNEL=name                  None
    /CONFIRM                       /NOCONFIRM
    /CONTENT                       /NOCONTENT

35.2.13.1  –  Parameters

 message-id[,...]

    A comma separated list of one or more message identification
    numbers shown with a previous DIRECTORY command. Ranges are
    allowed.

35.2.13.2  –  Description

    The READ command may be used to display envelope and header
    information for one or more queued messages. To also view the
    message content, use the /CONTENT qualifier.

    The messages to display are specified by their message
    identification numbers shown by the most recent DIRECTORY
    command. That number appears in the leftmost column of the
    DIRECTORY command listing. Ambiguous message numbers must be
    qualified by the proper channel name with the /CHANNEL qualifier.

35.2.13.3  –  Qualifiers

35.2.13.3.1    /ALL

       /ALL
       /NOALL (default)

    Display all messages shown with the last DIRECTORY command.
    When used in conjunction with the /CHANNEL qualifier, only those
    messages shown with the last DIRECTORY command for the specified
    channel will be shown.

35.2.13.3.2    /CHANNEL

       /CHANNEL=name

    Specifies the name of the channel from which to display messages.
    Wildcards are not permitted.

35.2.13.3.3    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will be prompted to confirm
    whether or not to display each selected message.

35.2.13.3.4    /CONTENT

       /CONTENT
       /NOCONTENT (default)

    When /CONTENT is specified, the content of the message will also
    be shown.

35.2.13.4  –  Examples

      In the following example, the envelope and header information
      for message number 1 is displayed.

 qm.maint> READ 1
 Filename: PMDF_QUEUE:[L]ZZ01HNPFR2FUN89D4GAS.00

 Message id: 1
 Transport layer information:
 ----------------------------------------------------------------------
 Envelope From: address: fresnel@example.com
 Envelope To: addresses: bernoulli

 Message header:
 ----------------------------------------------------------------------
 Received: from EXAMPLE.COM by EXAMPLE.COM (PMDF V6.1-1 #8790)
  id <01HNPFR0P5OW9D4GAS@EXAMPLE.COM> for BERNOULLI@EXAMPLE.COM; Fri,
  15 Nov 2012 16:48:41 -0700 (PDT)
 Date: Fri, 15 Nov 2012 16:48:40 -0700 (PDT)
 From: Fresnel the tabby cat <fresnel@example.com>
 To: bernoulli@example.com
 Subject: catnip and catnaps
 Message-id: <01HNPFR12JYA9D4GAS@EXAMPLE.COM>
 MIME-version: 1.0
 Content-type: TEXT/PLAIN; CHARSET=US-ASCII
 Content-transfer-encoding: 7BIT

 qm.maint>

35.2.14  –  RELEASE

    Release one or more held messages.

    Syntax

      RELEASE  [message-id[,...]]

    Command Qualifiers             Defaults

    /ALL                           /NOALL
    /CHANNEL=name                  None
    /CONFIRM                       /NOCONFIRM
    /LOG                           /LOG

35.2.14.1  –  Parameters

 message-id[,...]

    A comma separated list of one or more message identification
    numbers shown with a previous DIRECTORY/HELD command. Ranges are
    allowed.

35.2.14.2  –  Description

    Use the RELEASE command to release any messages previously marked
    as held, re-enter them in the queue cache database, and run the
    associated channel so the messages can be processed. Messages
    which have been held can be listed with the DIRECTORY/HELD
    command.

    The messages to be released are specified by their message
    identification numbers shown by the most recent DIRECTORY
    command. That number appears in the leftmost column of the
    DIRECTORY command listing. Ambiguous message numbers must be
    qualified by the proper channel name with the /CHANNEL qualifier.

35.2.14.3  –  Qualifiers

35.2.14.3.1    /ALL

       /ALL
       /NOALL (default)

    Release all messages shown by the last DIRECTORY/HELD command.
    When used in conjunction with the /CHANNEL qualifier, only
    those messages shown by the last DIRECTORY/HELD command for the
    specified channel will be released.

    Unless /NOCONFIRM is specified with /ALL, you will be required to
    confirm any RELEASE/ALL operation.

35.2.14.3.2    /CHANNEL

       /CHANNEL=name

    Specifies the name of the channel from which to release messages.
    Wildcards are not permitted.

35.2.14.3.3    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will be prompted to confirm each
    message release operation.

35.2.14.3.4    /LOG

       /LOG (default)
       /NOLOG

    Specifies whether informational messages for each message release
    operation are generated.

35.2.14.4  –  Examples

      In the following example, the DIRECTORY/HELD command is used to
      list held messages in the tcp_local channel. Then, the RELEASE
      command is used to release all of the held messages from that
      channel.

  qm.maint> DIRECTORY/HELD TCP_LOCAL
  Fri, 15 Nov 2012 13:43:39 PDT
  Data gathered from the queue directory tree

  Channel: tcp_local                Size Queued since
  --------------------------------------------------------------
      1 ZZ01HNP17LSUWY9D4DNR.HELD      4 13-NOV-2012 03:12:00
      2 ZZ01HNP1RP3B6G9D4DNR.HELD     10 14-NOV-2012 11:46:23
      3 ZZ01HNP42MAMAI9D4DNR.HELD      5 14-NOV-2012 18:17:01
  --------------------------------------------------------------
  Total size:                         19

  3 total messages queued
  qm.maint> RELEASE/ALL
  Release all message files (Y/N, default is N)? YES
  %QM-I-RELEASED, released the message file
     PMDF_QUEUE:[TCP_LOCAL]ZZ01HNP17LSUWY9D4DNR.HELD
  %QM-I-RELEASED, released the message file
     PMDF_QUEUE:[TCP_LOCAL]ZZ01HNP1RP3B6G9D4DNR.HELD
  %QM-I-RELEASED, released the message file
     PMDF_QUEUE:[TCP_LOCAL]ZZ01HNP42MAMAI9D4DNR.HELD
  qm.maint>

35.2.15  –  RETURN

    Return a message to its sender.

    Syntax

      RETURN  [message-id[,...]]

    Command Qualifiers             Defaults

    /ALL                           /NOALL
    /CHANNEL=name                  None
    /CONFIRM                       /NOCONFIRM
    /LOG                           /LOG

35.2.15.1  –  Parameters

 message-id[,...]

    A comma separated list of one or more message identification
    numbers shown with a previous DIRECTORY command. Ranges are
    allowed.

35.2.15.2  –  Description

    Queued messages may be returned to their originator with the
    RETURN command. The messages to be returned are specified by
    their message identification numbers shown by the most recent
    DIRECTORY command. That number appears in the leftmost column of
    the DIRECTORY command listing. Ambiguous message numbers must be
    qualified by the proper channel name with the /CHANNEL qualifier.

    The returned message is in two parts. The first part explains the
    reason why the message is being returned; the text of the reason
    is contained in the file RETURN_BOUNCED.TXT file located in the
    PMDF language-specific directory. The second part of the returned
    message contains the original message itself.

35.2.15.3  –  Qualifiers

35.2.15.3.1    /ALL

       /ALL
       /NOALL (default)

    Return all messages shown by the last DIRECTORY command. When
    used in conjunction with the /CHANNEL qualifier, only those
    messages shown by the last DIRECTORY command for the specified
    channel will be returned.

    Unless /NOCONFIRM is specified with /ALL, you will be required to
    confirm any RETURN/ALL operation.

35.2.15.3.2    /CHANNEL

       /CHANNEL=name

    Specifies the name of the channel from which to return messages.
    Wildcards are not permitted.

35.2.15.3.3    /CONFIRM

       /CONFIRM
       /NOCONFIRM (default)

    When /CONFIRM is specified, you will be prompted to confirm each
    message return operation.

35.2.15.3.4    /LOG

       /LOG (default)
       /NOLOG

    Specifies whether informational messages for each message return
    operation are generated.

35.2.16  –  SPAWN

    Create a subprocess.

    Syntax

      SPAWN  [command]

    Command Qualifiers             Defaults

    /INPUT=in-file-spec            None
    /LOGICAL_NAMES                 /LOGICAL_NAMES
    /OUTPUT=out-file-spec          None
    /PROCESS=name                  None
    /SYMBOLS                       /SYMBOLS
    /WAIT                          /WAIT

35.2.16.1  –  Restrictions

    Cannot be used from a captive account.

35.2.16.2  –  Parameters

 command

    Optional parameter specifying the command string for the
    subprocess to execute. After the command completes, the
    subprocess terminates and control is returned to the parent
    process.

35.2.16.3  –  Description

    The SPAWN command may be used to either issue a single DCL
    command from within PMDF QM or to leave PMDF QM temporarily, do
    other work (e.g., type out a file, generate a directory listing,
    etc.), and then return to PMDF QM.

    By default, the context of the current process is copied to the
    subprocess. This behavior may be controlled with the /LOGICAL_
    NAMES and /SYMBOLS qualifiers.

35.2.16.4  –  Qualifiers

35.2.16.4.1    /INPUT

       /INPUT=in-file-spec

    Specifies an input command file from which the subprocess is to
    draw command input. Once command processing is completed, the
    subprocess terminates. When you specify both a command string and
    input file, then the command string is first processed and then
    the commands from the input file.

35.2.16.4.2    /LOGICAL_NAMES

       /LOGICAL_NAMES (default)
       /NOLOGICAL_NAMES

    The /LOGICAL_NAMES qualifier specifies that the logical names
    of the parent process are to be copied to the subprocess. This
    is the default behavior. Specify /NOLOGICAL_NAMES to prevent the
    subprocess from inheriting the logical name definitions of its
    parent.

35.2.16.4.3    /OUTPUT

       /OUTPUT=out-file-spec

    Specifies the output file to which the output of the subprocess
    is to be directed. If the /OUTPUT qualifier is omitted, then
    subprocess output is directed to the current SYS$OUTPUT device
    (generally, your terminal).

35.2.16.4.4    /PROCESS

       /PROCESS=name

    Specifies the process name to associate with the subprocess.
    If not specified, a default name of the form USERNAME_n, where
    "USERNAME" is your username, is used.

35.2.16.4.5    /SYMBOLS

       /SYMBOLS (default)
       /NOSYMBOLS

    The /SYMBOLS qualifier specifies that the DCL symbol definitions
    of the parent process are to be copied to the subprocess. This
    is the default behavior. Specify /NOSYMBOLS to prevent the
    subprocess from inheriting the symbol definitions of its parent.

35.2.16.4.6    /WAIT

       /WAIT (default)
       /NOWAIT

    By default, your current (parent) process will wait until the
    subprocess has finished its processing and terminated. This
    default behavior is explicitly selected with the /WAIT qualifier.
    The /NOWAIT qualifier allows you to continue working from your
    current process while the subprocess is running. When you specify
    /NOWAIT, you should also specify the /OUTPUT qualifier so as to
    prevent the subprocess output from appearing on your terminal
    screen.

35.2.16.5  –  Examples

    1.qm.maint> SPAWN DIRECTORY/SIZE=ALL a.txt

      Directory D1:[BOB]

      A.TXT;10    125/126
      A.TXT;9     124/126
      A.TXT;8     124/126

      Total of 3 files, 373/378.
      qm.maint> SPAWN PURGE/LOG a.txt
      %PURGE-I-FILPURG, D1:[BOB]A.TXT;9 deleted (126 blocks)
      %PURGE-I-FILPURG, D1:[BOB]A.TXT;8 deleted (126 blocks)
      %PURGE-I-TOTAL, 2 files deleted (252 blocks)
      qm.maint>

      In this example, the SPAWN command is used to obtain a
      directory listing of the files A.TXT, and then to purge back
      old versions of that file. The ability to do this is useful
      when you find that you have insufficient disk quota to create
      and edit a mail message you want to send.

    2.qm.maint> SPAWN
         .
         .
         .
      $ LOGOUT
        Process BOB_1 logged out at 15-NOV-2012 12:12:51.42
      qm.maint>

      In this example a SPAWN command with no command string is
      issued. This places you into the subprocess where you can issue
      DCL commands and perform other processing. When you are done
      with the subprocess and ready to return to PMDF QM, use the
      LOGOUT or EOJ command.

35.2.17  –  SUMMARIZE

    Display a summary listing of message files.

    Syntax

      SUMMARIZE

    Command Qualifiers             Defaults

    /DATABASE                      See text
    /DIRECTORY_TREE                See text
    /HEADING                       /HEADING
    /HELD                          /NOHELD
    /TRAILING                      /TRAILING

35.2.17.1  –  Parameters

    None.

35.2.17.2  –  Description

    Display a summary listing of message files.

35.2.17.3  –  Command Qualifiers

35.2.17.3.1    /DATABASE

       /DATABASE
       /DIRECTORY_TREE

    Controls whether the information presented is gathered from the
    queue cache database, /DATABASE, or by looking at the actual
    directory tree containing the channel queues, /DIRECTORY_TREE.

    When neither /DATABASE or /DIRECTORY_TREE is specified, then the
    "view" selected with the VIEW command will be used. If no VIEW
    command has been issued, then /DIRECTORY_TREE is assumed.

35.2.17.3.2    /HEADING

       /HEADING (default)
       /NOHEADING

    Controls whether or not a heading line describing each column of
    output is displayed at the start of the summary listing.

35.2.17.3.3    /HELD

       /HELD
       /NOHELD (default)

    Controls whether or not to include counts of .HELD messages in
    the output.

35.2.17.3.4    /TRAILING

       /TRAILING (default)
       /NOTRAILING

    Controls whether or not a trailing line with totals is displayed
    at the end of the summary.

35.2.17.4  –  Examples

      The following example shows displaying a summary listing of
      message files.

 qm.maint> SUMMARIZE
                                                 Messages
                          Channel  Queued   Size (Kb)   Oldest
 -------------------------------- -------- ----------- -----------------
                         cc_local       0        0.00
                     circuitcheck       4        7.51    8 Jun, 10:19:20
                       conversion       0        0.00
                                l       0        0.00
                         mailserv       0        0.00
                     mime_to_x400       0        0.00
                         mr_local       0        0.00
                         popstore       0        0.00
                          process       0        0.00
                        reprocess       0        0.00
                     tcp_internal      15       51.47    2 Jun, 12:10:03
                        tcp_local       0        0.00
                        wpo_local       0        0.00
                       x400_local       0        0.00
                     x400_to_mime       0        0.00
 -------------------------------- -------- ----------- -----------------
                           Totals      19       58.98

 qm.maint>

35.2.18  –  TOP

    Display the most frequently occurring envelope From:, Subject:,
    or message content fields found in message files in the channel
    queues.

    Syntax

      TOP  [channel]

    Command Qualifiers             Defaults

    /CONTENT[=offset-specifier]    None
    /DATABASE                      See text
    /DIRECTORY_TREE                See text
    /ENV_FROM[=offset-specifier]   None
    /MIN_COUNT=n                   /MIN_COUNT=2
    /SUBJECT[=offset-specifier]    /SUBJECT=(START=1,LENGTH=2147483647)
    /THREADS=n                     /NOTHREADS
    /TOP=n                         /TOP=20
    /VERBOSE                       /NOVERBOSE

35.2.18.1  –  Parameters

 channel

    Optional parameter which specifies a specific PMDF channel area
    to be scanned for string frequencies. * or ? wildcard characters
    may be used in the channel specification.

35.2.18.2  –  Description

    Display the most frequently occurring envelope From:, Subject:,
    or message content fields found in message files in the channel
    queues. By default, only Subject: fields are shown (/SUBJECT).
    Use /ENV_FROM to display frequent envelope From: fields or
    /CONTENT to display frequent message contents. Any combination
    of /CONTENT, /ENV_FROM, and /SUBJECT may be specified. However,
    only one of each may be used.

    The optional channel parameter restricts the scan to message
    files in the specified channel. The channel parameter may use *
    and ? wild cards.

    By default, the top 20 most frequently occurring fields are
    shown (/TOP=20) provided that they occur 2 or more times (/MIN_
    COUNT=2). Use the /TOP and /MIN_COUNT qualifiers to alter this
    behavior. The message files searched may be either all those
    present in the channel queue directory tree, or only those files
    with entries in the queue cache database. Use either the VIEW
    command of the /DIRECTORY_TREE or /DATABASE qualifier to control
    which files are searched.

    The /THREADS qualifier may be used to accelerate scanning on
    multiprocessor systems by dividing the work amongst multiple,
    simultaneously running threads. To run n simultaneous scanning
    threads, specify /THREADS=n. The value N must be in the range
    1-8. The default is /NOTHREADS.

    The /CONTENT, /ENV_FROM, and /SUBJECT qualifiers accept the
    optional qualifiers START=n and LENGTH=n. These qualifiers
    indicate the starting offset and number of bytes in the field
    to consider. The defaults are /CONTENT=(START=1,LENGTH=256),
    /ENV_FROM=(START=1,LENGTH=2147483647), and
    /SUBJECT=(START=1,LENGTH=2147483647). Use of these qualifiers
    is useful when, for example, trying to identify occurrences of a
    spam message which uses random text at the start of the Subject:
    line.

35.2.18.3  –  Command Qualifiers

35.2.18.3.1    /CONTENT

       /CONTENT[=offset-specifier]
       /ENV_FROM[=offset-specifier]
       /SUBJECT[=offset-specifier]

    The /CONTENT, /ENV_FROM, and /SUBJECT qualifiers are used to
    specify which frequently occurring fields should be displayed. By
    default, only Subject: fields are shown (/SUBJECT). Use /ENV_FROM
    to display frequent envelope From: fields or /CONTENT to display
    frequent message contents. Any combination of /CONTENT, /ENV_
    FROM, and /SUBJECT may be specified. However, only one of each
    may be used.

    The /CONTENT, /ENV_FROM, and /SUBJECT qualifiers accept the
    optional qualifiers START=n and LENGTH=n. These qualifiers
    indicate the starting offset and number of bytes in the field
    to consider. The defaults are /CONTENT=(START=1,LENGTH=256),
    /ENV_FROM=(START=1,LENGTH=2147483647), and
    /SUBJECT=(START=1,LENGTH=2147483647). Use of these qualifiers
    is useful when, for example, trying to identify occurrences of a
    spam message which uses random text at the start of the Subject:
    line.

35.2.18.3.2    /DATABASE

       /DATABASE
       /DIRECTORY_TREE

    Controls whether the message files scanned are only those with
    entries in the queue cache database, /DATABASE, or all message
    files actually present in the channel queue directory tree,
    /DIRECTORY_TREE.

    When neither /DATABASE nor /DIRECTORY_TREE is specified, then the
    "view" selected with the VIEW command will be used. If no VIEW
    command has been issued, then /DIRECTORY_TREE is assumed.

35.2.18.3.3    /MIN_COUNT

       /MIN_COUNT=n

    By default, a string must occur at least 2 times, /MIN_COUNT=2,
    in order to be displayed.

35.2.18.3.4    /THREADS

       /THREADS=n
       /NOTHREADS (default)

    The /THREADS qualifier may be used to accelerate searching on
    multiprocessor systems by dividing the work amongst multiple,
    simultaneously running threads. To run n simultaneous searching
    threads, specify /THREADS=n. The value n must be an integer in
    the range 1-8. The default is /NOTHREADS.

35.2.18.3.5    /TOP

       /TOP=n

    By default, the top 20 most frequently occurring fields are
    shown, (/TOP=20).

35.2.18.3.6    /VERBOSE

       /VERBOSE
       /NOVERBOSE (default)

    The /VERBOSE qualifier may be used to request that the utility
    print out information about what it is doing as it operates.

35.2.18.4  –  Examples

      The following example shows displaying the most frequently
      occurring Subject: and envelope From: addresses amongst
      messages in the PMDF queue area.

 qm.maint> TOP/SUBJECT/ENV_FROM
 %QM-I-QCLISTING, building a list of message files to scan from the queue cache
 %QM-I-SCANNING, scanning 73 message files
 %QM-I-SCANNED, scanned 73 message files in 0.5600 seconds (130.36 messages/secon
 d)
 Top 20 Envelope From: addresses which occur 2 or more times
  Count  Envelope From: address
     27
     10  owner-ex-list@example.com
      2  owner-test-list@example.com

 Top 20 Subject: header lines which occur 2 or more times
  Count  Subject
      6  Re: your ex-list posting
      2  Test posting to test-list

      The following example shows displaying the most frequently
      occuring Subject: lines that occur 20 times or more, starting
      from 12 characters into the Subject: header value. This may be
      useful when trying to spot spam that inserts random characters
      at the beginning of the Subject: header value.

 qm.maint> TOP/SUBJECT=START=12/MIN_COUNT=15
 %QM-I-QCLISTING, building a list of message files to scan from the queue cache
 %QM-I-SCANNING, scanning 73 message files
 %QM-I-SCANNED, scanned 73 message files in 0.5600 seconds (130.36 messages/secon
 d)
 Top 20 Subject: header lines which occur 15 or more times
  Count  Subject
     25  ake money fast $$$

35.2.19  –  VIEW

    Control whether the DIRECTORY command shows the channel queue
    directory tree or the queue cache database.

    Syntax

      VIEW  type

    Command Qualifiers    Defaults

    None.                 None.

35.2.19.1  –  Parameters

 type

    The type of view to use: DIRECTORY_TREE or DATABASE

35.2.19.2  –  Description

    The DIRECTORY command produces its listing by looking at either
    the actual channel queue directory tree on disk, or by looking
    at the queue cache database. The VIEW command controls which is
    used. By default, the view is the channel queue directory tree.
    Issue the command,

    qm.maint> VIEW DATABASE
    qm.maint>

    to switch to viewing the queue cache database. The command

    qm.maint> VIEW DIRECTORY_TREE
    qm.maint>

    will switch you back to viewing the channel queue directory tree.
    Issuing the VIEW command without any parameter will restore the
    default behavior and is thus equivalent to the VIEW DIRECTORY_
    TREE command.

36  –  QTOP

    Display the most frequently occurring envelope From:, Subject:,
    or message content fields found in message files in the channel
    queues.

    Syntax

      PMDF QTOP  [channel]

    Command Qualifiers             Defaults

    /CONTENT[=offset-specifier]    None
    /DATABASE                      /DATABASE
    /DIRECTORY_TREE                /DATABASE
    /ENV_FROM[=offset-specifier]   None
    /MIN_COUNT=n                   /MIN_COUNT=2
    /SUBJECT[=offset-specifier]    /SUBJECT=(START=1,LENGTH=2147483647)
    /THREADS=n                     /NOTHREADS
    /TOP=n                         /TOP=20
    /VERBOSE                       /NOVERBOSE

36.1  –  Restrictions

    Privileges sufficient to read files in the PMDF channel queue
    directory tree, as well as read the PMDF queue cache database,
    are required.

36.2  –  Parameters

 channel

    Optional parameter which specifies a specific PMDF channel area
    to be scanned for string frequencies. * or ? wildcard characters
    may be used in the channel specification.

36.3  –  Description

    Display the most frequently occurring envelope From:, Subject:,
    or message content fields found in message files in the channel
    queues. By default, only Subject: fields are shown (/SUBJECT).
    Use /ENV_FROM to display frequent envelope From: fields or
    /CONTENT to display frequent message contents. Any combination
    of /CONTENT, /ENV_FROM, and /SUBJECT may be specified. However,
    only one of each may be used.

    The optional channel parameter restricts the scan to message
    files in the specified channel. The channel parameter may use *
    and ? wild cards.

    By default, the top 20 most frequently occurring fields are
    shown (/TOP=20) provided that they occur 2 or more times (/MIN_
    COUNT=2). Use the /TOP and /MIN_COUNT qualifiers to alter this
    behavior. Also by default, only message files identified by the
    queue cache database are scanned (/DATABASE). Use the /DIRECTORY_
    TREE qualifier to instead scan all message files actually present
    in the channel queue directory tree.

    The /THREADS qualifier may be used to accelerate scanning on
    multiprocessor systems by dividing the work amongst multiple,
    simultaneously running threads. To run n simultaneous scanning
    threads, specify /THREADS=n. The value N must be in the range
    1-8. The default is /NOTHREADS.

    The /CONTENT, /ENV_FROM, and /SUBJECT qualifiers accept the
    optional qualifiers START=n and LENGTH=n. These qualifiers
    indicate the starting offset and number of bytes in the field
    to consider. The defaults are /CONTENT=(START=1,LENGTH=256),
    /ENV_FROM=(START=1,LENGTH=2147483647), and
    /SUBJECT=(START=1,LENGTH=2147483647). Use of these qualifiers
    is useful when, for example, trying to identify occurrences of a
    spam message which uses random text at the start of the Subject:
    line.

36.4  –  Command Qualifiers

36.4.1    /CONTENT

       /CONTENT[=offset-specifier]
       /ENV_FROM[=offset-specifier]
       /SUBJECT[=offset-specifier]

    The /CONTENT, /ENV_FROM, and /SUBJECT qualifiers are used to
    specify which frequently occurring fields should be displayed. By
    default, only Subject: fields are shown (/SUBJECT). Use /ENV_FROM
    to display frequent envelope From: fields or /CONTENT to display
    frequent message contents. Any combination of /CONTENT, /ENV_
    FROM, and /SUBJECT may be specified. However, only one of each
    may be used.

    The /CONTENT, /ENV_FROM, and /SUBJECT qualifiers accept the
    optional qualifiers START=n and LENGTH=n. These qualifiers
    indicate the starting offset and number of bytes in the field
    to consider. The defaults are /CONTENT=(START=1,LENGTH=256),
    /ENV_FROM=(START=1,LENGTH=2147483647), and
    /SUBJECT=(START=1,LENGTH=2147483647). Use of these qualifiers
    is useful when, for example, trying to identify occurrences of a
    spam message which uses random text at the start of the Subject:
    line.

36.4.2    /DATABASE

       /DATABASE (default)
       /DIRECTORY_TREE

    The /DATABASE qualifier, the default, specifies that only message
    files identified by the queue cache database be searched. Use
    the /DIRECTORY_TREE qualifier to instead search all message files
    actually present in the channel queue directory tree.

36.4.3    /MIN_COUNT

       /MIN_COUNT=n

    By default, a string must occur at least 2 times, /MIN_COUNT=2,
    in order to be displayed.

36.4.4    /THREADS

       /THREADS=n
       /NOTHREADS (default)

    The /THREADS qualifier may be used to accelerate searching on
    multiprocessor systems by dividing the work amongst multiple,
    simultaneously running threads. To run n simultaneous searching
    threads, specify /THREADS=n. The value n must be an integer in
    the range 1-8. The default is /NOTHREADS.

36.4.5    /TOP

       /TOP=n

    By default, the top 20 most frequently occurring fields are
    shown, (/TOP=20).

36.4.6    /VERBOSE

       /VERBOSE
       /NOVERBOSE (default)

    The /VERBOSE qualifier may be used to request that the utility
    print out information about what it is doing as it operates.

36.5  –  Examples

      The following example shows displaying the most frequently
      occurring Subject: and envelope From: addresses amongst
      messages in the PMDF queue area.

 $ PMDF QTOP/SUBJECT/ENV_FROM
 %QM-I-QCLISTING, building a list of message files to scan from the queue cache
 %QM-I-SCANNING, scanning 73 message files
 %QM-I-SCANNED, scanned 73 message files in 0.5600 seconds (130.36 messages/secon
 d)
 Top 20 Envelope From: addresses which occur 2 or more times
  Count  Envelope From: address
     27
     10  owner-ex-list@example.com
      2  owner-test-list@example.com

 Top 20 Subject: header lines which occur 2 or more times
  Count  Subject
      6  Re: your ex-list posting
      2  Test posting to test-list

      The following example shows displaying the most frequently
      occuring Subject: lines that occur 20 times or more, starting
      from 12 characters into the Subject: header value. This may be
      useful when trying to spot spam that inserts random characters
      at the beginning of the SUBJECT: header value.

 $ PMDF QTOP/SUBJECT=START=12/MIN_COUNT=15
 %QM-I-QCLISTING, building a list of message files to scan from the queue cache
 %QM-I-SCANNING, scanning 73 message files
 %QM-I-SCANNED, scanned 73 message files in 0.5600 seconds (130.36 messages/secon
 d)
 Top 20 Subject: header lines which occur 15 or more times
  Count  Subject
     25  ake money fast $$$

37  –  RESTART

    Restart detached PMDF processes.

    Syntax

      PMDF RESTART  [component]

    Command Qualifiers             Defaults

    /CLUSTER                       /NODE
    /NODE[=node]                   /NODE
    /ID=pid                        /NODE

37.1  –  Restrictions

    SYSLCK privilege is required to restart detached PMDF processes.

37.2  –  Prompts

    Comcomponent

37.3  –  Parameters

 component

    Optional parameter which specifies a specific PMDF component
    to be restarted, such as BN_SLAVE, CIRCUIT_CHECK, COUNTERS,
    DISPATCHER, FAX_RECEIVE, HTTP, IMAP (which restarts both the
    system mailbox server and the PMDF MessageStore mailbox server),
    IMAP_SERVER (the PMDF MessageStore server), POP_SERVER (the
    PMDF MessageStore server), POP3 (which restarts both the system
    mailbox server and PMDF MessageStore server), POPPASSD, SMTP,
    or any other Dispatcher service such as the names of PMDF-XGS
    servers, PMDF-LAN Lotus Notes servers, or PMDF-DIRSYNC Lotus
    Notes directory agent servers. Note that restarting the PMDF
    Service Dispatcher, i.e., the DISPATCHER component, effectively
    restarts all the service components it handles, which may include
    HTTP, IMAP, IMAP_SERVER, POP_SERVER, POP3, POPPASSD, SMTP, PMDF-
    XGS, PMDF-LAN, and PMDF-DIRSYNC servers. If no component name is
    given then all active components will be restarted.

37.4  –  Description

    Detached PMDF processes should be restarted whenever the PMDF
    configuration is altered-these processes load information from
    the configuration once only and need to be restarted in order for
    configuration changes to become visible to them.

    The RESTART utility is used to restart detached PMDF processes.
    The default is to restart processes on the node on which the
    command is executed. Use the /NODE qualifier with a specific
    node name to affect processes on a different node in the cluster;
    use the /CLUSTER qualifier to restart PMDF processes across the
    cluster; use the /ID qualifier to affect only a single process
    in the cluster. If no component parameter is specified, then all
    detached processes (including processes which use the PMDF API
    PMDF_SET_CALL_BACK procedure) will be restarted. If a component
    parameter is specified, then only detached processes associated
    with that component will be restarted. The standard component
    names are

    Component  Description

    BN_SLAVE   Detached processes which act as the Jnet Local Mail
               Delivery (LMD) daemon. Handles incoming local BITNET
               mail.
    CIRCUIT_   Detached process which monitors loopback message
    CHECK      delivery.
    COUNTERS   Detached processes which synchronize the channel
               counters.
    DISPATCHER PMDF multithreaded Service Dispatcher handling
               services such as SMTP, POP, IMAP, and HTTP servers.
    FAX_       Detached processes which process incoming FAXes.
    RECEIVE
    HTTP       HTTP server processes.
    IMAP       This restarts both IMAP server processes serving out
               system mailboxes, and IMAP server processes serving
               out PMDF MessageStore mailboxes.
    IMAP_      IMAP server processes serving out PMDF MessageStores
    SERVER     mailboxes.
    POP_       PMDF MessageStore POP3 server processes; that is,
    SERVER     the processes serving out PMDF MessageStore and PMDF
               popstore mailboxes.
    POP3       This restarts both POP3 server processes serving out
               system mailboxes, and POP3 server processes serving
               out PMDF MessageStore and PMDF popstore mailboxes.
    POPPASSD   POPPASSD server processes.
    SMTP       SMTP server processes.

    Detached PMDF processes will restart as soon as is convenient.
    They restart by performing an orderly shutdown, exiting the image
    they are running, starting a new detached process running, and
    then exiting.

    If there are no currently running process associated with a given
    component, then that component will not be restarted.

37.5  –  Command Qualifiers

37.5.1    /CLUSTER

    When the /CLUSTER qualifier is specified, the RESTART command
    will affect all nodes in the cluster.

37.5.2    /NODE

       /NODE[=node]

    By default, the RESTART command affects only processes on the
    node on which the command is executed; this corresponds to
    specifying the /NODE qualifier without the optional node name
    value. To restart processes on a different node, specify the node
    name. The node name must be the SCS cluster node name.

37.5.3    /ID

       /ID=pid

    When the /ID qualifier is specified, only the process with the
    given process id (pid) is affected. Note that process id's are
    unique cluster wide and as such there is no need to also specify
    /NODE.

37.6  –  Examples

      To restart cluster-wide all detached processes, simply use the
      command

        $ PMDF RESTART/CLUSTER

      To only restart, for instance, IMAP and POP3 servers on the
      current node, use the commands

        $ PMDF RESTART IMAP
        $ PMDF RESTART POP3

37.7  –  Error messages

  SYSTEM-F-TIMEOUT, device timeout

      After waiting two minutes for the component(s) in question
      to acknowledge the restart request, the PMDF RESTART utility
      returns control to the command line. The restart request
      is still outstanding and should be honored by the PMDF
      component(s) for which the command was issued; the utility
      has just given up waiting for the component(s) to immediately
      acknowledge the request as it (they) may be busy with existing
      activity.

38  –  RETURN

    Return (bounce) a mail message to its originator.

    Syntax

      PMDF RETURN  message-file-spec

    Command Qualifiers    Defaults

    None.                 None.

38.1  –  Restrictions

    Postmaster privileges (write access to the PMDF channel queues)
    are required to use this utility.

38.2  –  Parameters

 message-file-spec

    File specification of the message file to return. The
    specification may include wildcards.

38.3  –  Description

    The RETURN utility returns a message to the message's originator.
    The returned message is in two parts. The first part explains
    the reason why the message is being returned; the text of the
    reason is contained in the file RETURN_BOUNCED.TXT file located
    in the PMDF language-specific directory. The second part of the
    returned message contains the original message itself. Postmaster
    privileges (write access to the PMDF channel queues) are required
    to use this utility.

39  –  SEND

    Sends a mail message using PMDF.

39.1  –  Restrictions

    None.

    Syntax

      PMDF SEND  message-file-spec[,...] recipient-address[,...]

    Qualifiers                     Defaults

    /ABORT                         See text
    /COMMENTS=comment              None
    /DELIVERY_RECEIPT_TO           None
    /ERRORS_TO=address             None
    /EXPAND_LIMIT=limit            None
    /EXTRA=header_line             None
    /FAX                           See text
    /FROM=address                  See text
    /HEADERS                       /NOHEADERS
    /IGNORE                        See text
    /IMPORTANCE=importance         None
    /KEYWORDS=keywords             None
    /LOG=log-list                  /NOLOG
    /MULTIPART                     None
    /ORGANIZATION=organization     None
    /PRIORITY=priority             None
    /READ_RECEIPT_TO               None
    /REFERENCES=references         None
    /REPLY_TO=address              None
    /RETURN_ADDRESS=address        See text
    /RFROM=address                 None
    /RREPLY_TO=address             None
    /SENSITIVITY=sensitivity       None
    /SUBADDRESS=subaddress         None
    /SUBJECT=subject               None
    /USER=username                 See text
    /WARNINGS_TO=address           None
    /X_PS_QUALIFIERS=qualifiers    None

    Positional Qualifiers          Defaults

    /BCC                           /TO
    /CC                            /TO
    /ENCODING=encoding             See text
    /FILENAME=name                 /NOFILENAME
    /MODE=mode                     /MODE=TEXT
    /TO                            /TO

39.2  –  Prompts

    Message file:  message-file-spec[,...]
    Address:       recipient-address[,...]

39.3  –  Parameters

 message-file-spec[,...]

    One or more files to comprise the message; wildcards are not
    allowed. Each file is included in the mail message as a separate
    part.

 recipient-address

    The recipients who are to receive copies of the message. Standard
    RFC 822 format addresses must be used. Quoting might be needed to
    preserve case and special characters. This parameter is optional
    when the /FAX qualifier is used.

39.4  –  Description

    The SEND utility provides a simple easy-to-use interface to PMDF
    for sending messages.

39.5  –  Qualifiers

39.5.1    /ABORT

    By default, if an error occurs while processing an input message
    file or recipient address, PMDF SEND will ask the user whether
    or not to send the message anyhow. If the /ABORT qualifier is
    specified, then PMDF SEND will merely exit (with an error) when a
    problem occurs during file or address processing.

    The /ABORT and /IGNORE qualifiers are mutually exclusive - only
    one or the other can be used.

39.5.2    /BCC

    Positional parameter which can be used to specify that the given
    recipient address, and subsequent recipient addresses, should be
    treated as Bcc: addresses. By default, recipient addresses are
    interpreted as To: addresses.

39.5.3    /CC

    Positional parameter which can be used to specify that the given
    recipient address, and subsequent recipient addresses, should
    be treated as Cc: addresses. By default, recipient addresses are
    interpreted as To: addresses.

39.5.4    /COMMENTS

       /COMMENTS=comments

    This qualifier can be used to specify the contents of the
    Comments: header line. If this qualifier is not used, any
    existing Comments: header line is used; if none exists no
    Comments: header line will appear in the outgoing message unless
    the PMDF_COMMENTS logical is defined.

39.5.5    /DELIVERY_RECEIPT_TO

       /DELIVERY_RECEIPT_TO=address

    This qualifier can be used to specify the contents of the
    Delivery-receipt-to: header line. If this qualifier is not used,
    any existing Delivery-receipt-to: header line is used; if none
    exists, no Delivery-receipt-to: header line will appear in the
    outgoing message.

39.5.6    /ENCODING

       /ENCODING=encoding

    Specify the encoding method to use to encode an input message
    file. Normally, no encoding is used; however, this depends upon
    the file type as determined by the file extension. The available
    encoding methods are BASE32, BASE64, CBASE64 (compressed base64),
    BASE85, BINHEX, BTOA HEXADECIMAL, PATHWORKS, QUOTED_PRINTABLE,
    UUENCODE, and CUUENCODE (compressed UUENCODE). No encoding can be
    specified for a file containing header information (/HEADERS).

39.5.7    /ERRORS_TO

       /ERRORS_TO=address

    This qualifier can be used to specify the contents of the Errors-
    to: header line. If this qualifier is not used, any existing
    Errors-to: header line is used; if none exists no Errors-to:
    header line will appear in the outgoing message unless the PMDF_
    ERRORS_TO logical is defined.

39.5.8    /EXPAND_LIMIT

       /EXPAND_LIMIT=limit

    If, during the process of expanding the message's recipient
    addresses, the count of recipients exceeds the specified limit
    then the address expansion will be deferred. PMDF SEND will
    expand the addresses "off-line" so that the user need not wait.

39.5.9    /EXTRA

       /EXTRA=header_line

    Additional header lines can be specified with the /EXTRA
    qualifier. Specify the entire text of the header line; e.g.,
    /EXTRA="X-Sign: Aquarius". Multiple header lines should be
    specified using the format /EXTRA=(hdr1,hdr2,...).

39.5.10    /FAX

    When the /FAX qualifier is specified, the pop-up FAX addressing
    form is invoked. The message being sent will be sent to the
    addresses specified via pop-up form as well as any additional
    addresses specified with the recipient address parameter.

39.5.11    /FILENAME

       /FILENAME=name
       /NOFILENAME (default)

    This positional qualifier, when specified, causes the name of
    the input file to be included as a parameter to the associated
    MIME Content-type: header line. You can specify the name to be
    included in the header line, or if you do not specify a name, by
    default the name of the input file will be used.

39.5.12    /FROM

       /FROM=address

    This qualifier can be used to specify the contents of the From:
    header line. If this qualifier is not used, any existing From:
    header line is used; if none exists and the PMDF_FROM logical is
    not defined, then a From: header line will be constructed from
    the username of the user invoking SEND and from the local host
    name. Note that even if a From: address is provided your address
    will appear in a Sender: header line.

39.5.13    /HEADERS

       /HEADERS
       /NOHEADERS (default)

    The input message is assumed to have no header attached to it
    by default. The /HEADERS qualifier tells SEND that a header is
    already attached to the message; it is modified and used to form
    the header for the message that is actually sent.

39.5.14    /IGNORE

    By default, if an error occurs while processing an input message
    file or recipient address, PMDF SEND will ask the user whether
    or not to send the message anyhow. If the /IGNORE qualifier is
    specified, then PMDF SEND will not ask the user whether or not to
    send the message - it will send the good input files to the good
    recipient addresses.

    The /ABORT and /IGNORE qualifiers are mutually exclusive - only
    one or the other can be used.

39.5.15    /IMPORTANCE

       /IMPORTANCE=importance

    This qualifier can be used to specify the contents of the
    Importance: header line. If this qualifier is not used, any
    existing Importance: header line is used; if none exists no
    Importance: header line will appear in the outgoing message
    unless the PMDF_IMPORTANCE logical is defined.

39.5.16    /KEYWORDS

       /KEYWORDS=keywords

    This qualifier can be used to specify the contents of the
    Keywords: header line. If this qualifier is not used, any
    existing Keywords: header line is used; if none exists no
    Keywords: header line will appear in the outgoing message unless
    the PMDF_KEYWORDS logical is defined.

39.5.17    /LOG

       /LOG=log-list

    Specify what sort of informational message PMDF SEND should
    issue. The log-list is a list of zero or more of the following:
    NONE, ADDRESSES, FILES, MESSAGES, IDS, or ALL. NONE indicates no
    logging, is equivalent to /NOLOG, and is the default. ADDRESSES
    causes one informational message to be output for each specified
    recipient address. FILES causes one information message to be
    output for each input file. MESSAGES produces a summary message
    that indicates how many addresses and files were processed
    successfully. IDS produces an informational message showing the
    contents of the Message-Id: header of the resulting message.
    ALL activates all forms of logging; it cannot be specified
    simultaneously with NONE. /LOG=MESSAGES is the default if /LOG
    is specified without an explicit log-list.

39.5.18    /MODE

       /MODE=mode

    Specify the file access mode to use when reading an input message
    file. By default, input files are read in text mode. The access
    modes are TEXT, RECORD, CRATTRIBUTE, LFATTRIBUTE, CRLFATTRIBUTE,
    and BLOCK. A file containing header information must be accessed
    using TEXT mode.

39.5.19    /MULTIPART

    This qualifier may be used to tell PMDF SEND to always format the
    messages it sends as multipart MIME messages.

39.5.20    /ORGANIZATION

       /ORGANIZATION=organization

    This qualifier can be used to specify the contents of the
    Organization: header line. This qualifier is ignored if an
    Organization: header line is already present. If this qualifier
    is not specified or negated no Organization: header line is added
    unless the PMDF_ORGANIZATION logical is defined.

39.5.21    /PRIORITY

       /PRIORITY=priority

    This qualifier can be used to specify the contents of the
    Priority: header line. If this qualifier is not used, any
    existing Priority: header line is used; if none exists no
    Priority: header line will appear in the outgoing message.

39.5.22    /READ_RECEIPT_TO

       /READ_RECEIPT_TO=address

    This qualifier can be used to specify the contents of the Read-
    receipt-to: header line. If this qualifier is not used, any
    existing Read-receipt-to: header line is used; if none exists, no
    Read-receipt-to: header line will appear in the outgoing message.

39.5.23    /REFERENCES

       /REFERENCES=references

    This qualifier can be used to specify the contents of the
    References: header line. If this qualifier is not used, any
    existing References: header line is used; if none exists no
    References: header line will appear in the outgoing message
    unless the PMDF_REFERENCES logical is defined.

39.5.24    /REPLY_TO

       /REPLY_TO=address

    This qualifier can be used to specify the contents of the Reply-
    to: header line. If this qualifier is not used, any existing
    Reply-to: header line is used; if none exists no Reply-to: header
    line will appear in the outgoing message unless the PMDF_REPLY_TO
    logical is defined.

39.5.25    /RETURN_ADDRESS

       /RETURN_ADDRESS=address

    Specify the address to be used as the envelope originator
    address. If the message is returned as undeliverable by the mail
    system transport the nondelivery notice is normally sent to this
    address.

39.5.26    /RFROM

       /RFROM=address

    This qualifier can be used to specify the contents of the Resent-
    From: header line. If this qualifier is not used, any existing
    Resent-From: header line is used; if no such header line exists
    no Resent-From: header line will be attached to the outgoing
    message.

39.5.27    /RREPLY_TO

       /RREPLY_TO=address

    This qualifier can be used to specify the contents of the
    Resent-Reply-to: header line. If this qualifier is not used, any
    existing Resent-Reply-to: header line is used; if no such header
    line exists no Resent-Reply-to: header line will be attached to
    the outgoing message.

39.5.28    /SENSITIVITY

       /SENSITIVITY=sensitivity

    This qualifier can be used to specify the contents of the
    Sensitivity: header line. If this qualifier is not used, any
    existing Sensitivity: header line is used; if none exists no
    Sensitivity: header line will appear in the outgoing message
    unless the PMDF_SENSITIVITY logical is defined.

39.5.29    /SUBADDRESS

       /SUBADDRESS=subaddress

    Specify a subaddress to attach to the envelope From: address;
    e.g., if the envelope From: address is rex@example.com then
    specifying /SUBADDRESS="Postmaster" would result in the envelope
    From: address rex+Postmaster@example.com.

39.5.30    /SUBJECT

       /SUBJECT=subject

    This qualifier can be used to specify the contents of the
    Subject: header line. If this qualifier is not used, any existing
    Subject: header line is used; if none exists no Subject: header
    line will appear in the outgoing message.

39.5.31    /TO

    Positional parameter which can be used to specify that a given
    recipient address should be treated as a To: address, which is
    the default interpretation.

39.5.32    /USER

       /USER=username

    Specify the local username to use in the message sender's
    address; (this will be the From: address if no other From:
    address is given and the Sender: address otherwise). You must
    either have WORLD privilege or hold the PMDF_WORLD or PMDF_WORLD_
    username rightslist identifier in order to use this qualifier
    and specify a username other than your own. The special case of a
    blank string will not insert any Sender: information.

39.5.33    /WARNINGS_TO

       /WARNINGS_TO=address

    This qualifier can be used to specify the contents of the
    Warnings-to: header line. If this qualifier is not used, any
    existing Warnings-to: header line is used; if none exists no
    Warnings-to: header line will appear in the outgoing message
    unless the PMDF_WARNINGS_TO logical is defined.

39.5.34    /X_PS_QUALIFIERS

       /X_PS_QUALIFIERS=qualifiers

    This qualifier can be used to specify the contents of the X-
    ps-qualifiers: header line. If this qualifier is not used, any
    existing X-ps-qualifiers: header line is used; if none exists no
    X-ps-qualifiers: header line will appear in the outgoing message
    unless the PMDF_X_PS_QUALIFIERS logical is defined.

39.6  –  Examples

    1.$ PMDF SEND/SUBJECT="Test message" MSG.TXT "BOB@EXAMPLE.COM"

      This command will send as a mail message the contents of the
      file MSG.TXT to the address BOB@EXAMPLE.COM. The Subject: line
      of the message will read "Subject: Test message".

    2.$ PMDF SEND/SUBJECT="Test message" -
      _$         /EXTRA=("X-Favorite-Drink: Hot chocolate",-
      _$         "X-IQ: 20/20") MSG.TXT "BOB@EXAMPLE.COM"

      Send a message to BOB@EXAMPLE.COM with the header lines

        Subject: Test message
        X-Favorite-Drink: Hot chocolate
        X-IQ: 20/20

      (Of course, these will not be the only header lines present.)

    3.$ PMDF SEND/HEADERS MSG.TXT "BOB@EXAMPLE.COM"

      Send a message to BOB@EXAMPLE.COM. By using the /HEADERS
      qualifier, MSG.TXT is assumed to already contain the headers
      for the message as well as the body.

40  –  SHUTDOWN

    Shut down detached PMDF processes.

    Syntax

      PMDF SHUTDOWN  [component]

    Command Qualifiers             Defaults

    /CLUSTER                       /NODE
    /NODE[=node]                   /NODE
    /ID=pid                        /NODE

40.1  –  Restrictions

    SYSLCK privilege is required to shut down detached PMDF
    processes.

40.2  –  Prompts

    Comcomponent

40.3  –  Parameters

 component

    Optional parameter which specifies a specific PMDF component
    to be shut down: DISPATCHER (which effectively shuts down
    all components handled by the PMDF Service Dispatcher), BN_
    SLAVE, CIRCUIT_CHECK, COUNTERS, FAX_RECEIVE, HTTP, IMAP (which
    shuts down both the system mailbox IMAP server and the PMDF
    MessageStore mailbox server), IMAP_SERVER (which shuts down the
    PMDF MessageStore mailbox server), POP_SERVER (which shuts down
    the PMDF MessageStore mailbox server), POP3 (which shuts down
    the system mailbox POP server and the PMDF MessageStore mailbox
    server), POPPASSD, SMTP, or the name of any Dispatcher service
    (as defined in the Dispatcher configuration file) such as those
    for PMDF-XGS, PMDF-LAN Lotus Notes, or PMDF-DIRSYNC Lotus Notes
    servers. If no component name is given then all active components
    will be shut down.

40.4  –  Description

    The SHUTDOWN utility is used to shut down detached PMDF
    processes. The default is to shut down processes on the node
    on which the command is executed. Use the /NODE qualifier with
    a specific node name to shut down processes on a different node
    in the cluster; use the /CLUSTER qualifier to shut down detached
    PMDF processes cluster wide. For the FAX_RECEIVE process, the
    /ID qualifier may be used to affect only a single process in
    the cluster. If no component parameter is specified, then all
    detached processes (including processes which use the PMDF API
    PMDF_SET_CALL_BACK procedure) will be shutdown. If a component
    parameter is specified, then only detached processes associated
    with that component will be shut down. The standard component
    names are

    Component  Description

    BN_SLAVE   Detached processes which act as the Jnet Local Mail
               Delivery (LMD) daemon. Handles incoming local BITNET
               mail.
    CIRCUIT_   Detached process which monitors loopback message
    CHECK      delivery.
    COUNTERS   Detached processes which synchronize the channel
               counters.
    DISPATCHER Multithreaded Service Dispatcher.
    FAX_       Detached processes which process incoming FAXes.
    RECEIVE
    HTTP       HTTP server processes.
    IMAP       This shuts down both IMAP server processes serving out
               system mailboxes, and IMAP server processes serving
               out PMDF MessageStore mailboxes.
    IMAP_      IMAP server processes serving out PMDF MessageStore
    SERVER     mailboxes.
    POP_       PMDF MessageStore POP3 server processes; that is,
    SERVER     the processes serving out PMDF MessageStore and PMDF
               popstore mailboxes.
    POP3       This shuts down both POP3 server processes serving out
               system mailboxes, and POP3 server processes serving
               out PMDF MessageStore and PMDF popstore mailboxes.
    POPPASSD   POPPASSD server processes.
    SMTP       SMTP server processes.

    In addition, any Dispatcher service may be specified by name
    (that name used in the Dispatcher configuration file) such as
    PMDF-XGS, PMDF-LAN Lotus Notes, or PMDF-DIRSYNC Lotus Notes
    servers.

    Detached PMDF processes will shutdown as soon as is convenient
    for the process to do so. They do so by performing an orderly
    shutdown, exiting the image they are running, and then exiting
    the process.

    Note that in the case of BN_SLAVE, no Local Mail Delivery (LMD)
    daemon is left running, not even the default Jnet daemon.

40.5  –  Command Qualifiers

40.5.1    /CLUSTER

    When the /CLUSTER qualifier is specified, the SHUTDOWN command
    will affect all nodes in the cluster.

40.5.2    /NODE

       /NODE[=node]

    By default, the SHUTDOWN command affects only processes on the
    node on which the command is executed; this corresponds to
    specifying the /NODE qualifier without the optional node name
    value. To shut down processes on a different node, specify the
    node name. The node name must be the SCS cluster node name.

40.5.3    /ID

       /ID=pid

    For a FAX_RECEIVE process, the /ID qualifier may be used to
    specify that only the FAX_RECEIVE process with the given process
    id (pid) is to be affected. The /ID qualifier is only valid
    for FAX_RECEIVE; it is not valid for other processes such as
    Dispatcher services. Note that process id's are unique cluster
    wide and as such there is no need to also specify /NODE.

40.6  –  Examples

      To shutdown cluster-wide all detached processes, simply use the
      command

        $ PMDF SHUTDOWN/CLUSTER

      To only shutdown, for instance, IMAP and POP3 servers on the
      current node, use the commands

        $ PMDF SHUTDOWN IMAP
        $ PMDF SHUTDOWN POP3

40.7  –  Error messages

  SYSTEM-F-TIMEOUT, device timeout

      After waiting two minutes for the component(s) in question to
      acknowledge the shutdown request, the PMDF SHUTDOWN utility
      returns control to the command line. The shutdown request
      is still outstanding and should be honored by the PMDF
      component(s) for which the command was issued; the utility
      has just given up waiting for the component(s) to immediately
      acknowledge the request as it (they) may be busy with existing
      activity.

41  –  STARTUP

    Start up detached PMDF processes.

    Syntax

      PMDF STARTUP  component

    Command Qualifiers    Defaults

    None.                 None.

41.1  –  Restrictions

    SYSLCK privilege is required to start up detached PMDF processes.

41.2  –  Prompts

    Comcomponent

41.3  –  Parameters

 component

    Required parameter which specifies a specific PMDF component to
    be started: DISPATCHER (which effectively starts all components
    handled by the PMDF Service Dispatcher), CIRCUIT_CHECK, COUNTERS,
    FAX_RECEIVE.

41.4  –  Description

    The STARTUP utility is used to start up detached PMDF processes
    such as the PMDF Service Dispatcher, or specific service
    processes such as FAX_RECEIVE. The standard component names are

    Component  Description

    CIRCUIT_   Detached process which monitors loopback message
    CHECK      timings.
    COUNTERS   Detached processes which synchronize the channel
               counters.
    DISPATCHER Multithreaded Service Dispatcher.
    FAX_       Detached processes which process incoming FAXes.
    RECEIVE

    Note the services handled by the PMDF multithreaded Service
    Dispatcher must be started by starting the PMDF Service
    Dispatcher; only services not being handled by the PMDF Service
    Dispatcher can be individually started via the PMDF STARTUP
    utility. The Service Dispatcher may be configured to handle
    various services, e.g., and the multithreaded HTTP, IMAP (the
    system mailbox IMAP server), IMAP_SERVER (the PMDF MessageStore
    mailbox server), POP_SERVER (the PMDF MessageStore mailbox
    server), POP3 (the system mailbox POP server), POPPASSD, and
    SMTP servers. See the PMDF System Manager's Guide for details.

41.5  –  Examples

      The following command starts the PMDF Service Dispatcher:

        $ PMDF STARTUP DISPATCHER

42  –  TEST

    PMDF includes a number of test utilities, including utilities
    for testing general address rewriting and access control (PMDF
    TEST/REWRITE), testing low level PMDF mappings and pattern
    matching (PMDF TEST/MAPPING and PMDF TEST/MATCH), and for a
    variety of channel specific applications.

42.1    /CC

    Test cc:Mail channel address transformations.

    Syntax

      PMDF TEST/CC  [test-address|test-time]

    Command Qualifiers             Defaults

    /822TOLAN                      /822TOLAN
    /BACKWARD                      /FORWARD
    /CHANNEL=channel-name          /CHANNEL=cc_local
    /DEBUG                         /NODEBUG
    /ENVELOPE                      /HEADER
    /FORWARD                       /FORWARD
    /HEADER                        /HEADER
    /LANTO822                      /822TOLAN
    /TIME                          See text

42.1.1  –  Restrictions

    This utility is supplied only with the PMDF-LAN optional layered
    product.

42.1.2  –  Prompts

    Address:         test-address
    Time:       test-time

42.1.3  –  Parameters

 test-address

    Optional address to test.

 test-time

    Optional time to test.

42.1.4  –  Description

    Test a cc:Mail channel's transformation of an address or time.

42.1.5  –  Command Qualifiers

42.1.5.1    /822TOLAN

       /822TOLAN (default)
       /LANTO822

    The testing process can test conversion of RFC 822 addresses to
    cc:Mail format, /822TOLAN, or test conversion of cc:Mail format
    addresses to RFC 822 format, /LANTO822.

42.1.5.2    /BACKWARD

       /BACKWARD
       /FORWARD (default)

    The testing process can test conversion of backwards or forwards
    pointing addresses; the default is forward pointing addresses.

42.1.5.3    /CHANNEL

       /CHANNEL=channel-name

    Different cc:Mail channels may be configured to perform different
    transformations. If this qualifier is not specified, the default
    is to test the cc_local channel.

42.1.5.4    /DEBUG

       /DEBUG
       /NODEBUG (default)

    The testing process is capable of producing detailed processing
    information. The /DEBUG qualifier enables this output; it is
    disabled by default.

42.1.5.5    /ENVELOPE

       /ENVELOPE
       /HEADER (default)

    The testing process can test envelope or header addresses; the
    default is header addresses.

42.1.5.6    /TIME

    The testing process by default tests address transformations, but
    the /TIME qualifier specifies that it should instead test time
    transformations.

42.1.6  –  Examples

  $ PMDF TEST/CC adam@ccmail.examle.com
  ADAM
  $ PMDF TEST/CC postmaster@example.com
  POSTMASTER at PMDF
  $ PMDF TEST/CC service@example.com
  SERVICE@EXAMPLE.COM at PMDF

      This example shows testing a cc_local channel's transformation
      of several addresses. The output shown corresponds to a cc_
      local channel with official host name ccmail.example.com and
      channel option CC_GATEWAY_NAME=PMDF, and where the site has
      example.com as the official local host name.

42.2    /CHANNEL

42.2.1  –  X400

    Test X.400 channel connection.

    Syntax

      PMDF TEST/CHANNEL  X400

    Command Qualifiers             Defaults

    /MTA=mta-id                    See text
    /TRANSFER=file-spec            See text

42.2.1.1  –  Restrictions

    This utility is supplied only with the PMDF-X400 optional layered
    product.

42.2.1.2  –  Parameters

 X400

    The string parameter X400 is required.

42.2.1.3  –  Description

    The PMDF TEST/CHANNEL X400 utility can be used to test the
    configuration of the X400_LOCAL channel and verify that it can
    successfully connect to the remote MTA. Network configuration
    errors and validation problems will be reported by the utility.

    Any file can be specified for transfer via the /TRANSFER
    qualifier. However, if the file does not contain P1/P2/P22
    information valid to the remote X.400 MTA, then the behavior
    is undefined. Some X.400 MTAs, such as PMDF-X400 and HP's Message
    Router X.400 Gateway, MRX, will accept any data and generate an
    error at a later stage in processing. Other MTAs, such as PP and
    EAN will abort the network connection as soon as they detect that
    the incoming data is invalid.

    If PMDF TEST/CHANNEL X400 does not complete the connection
    successfully, it will indicate whether it is having trouble
    making the network connection itself or the network connection
    is rejected due to validation failure. If the former, make sure
    that the remote TSAP address is correctly specified for this MTA.
    If the latter, then check the MTA names and passwords. Remember
    that each MTA validates the name and password sent by the other
    MTA. Both sides of the connection must pass validation or the
    connection will be terminated with a validation failure error.
    Log or trace information on the remote MTA can prove invaluable
    when tracing validation failures or problems with messages being
    rejected.

    An additional level of detail, showing every I/O operation as
    well as every byte of data sent and received on the network
    connection, can be enabled by defining the logical name PMDF_
    UNIXLIB_TRACE before running PMDF TEST/CHANNEL X400. The
    equivalence value for the logical name may be a filename or the
    reserved word "TTY". In the latter case, trace output will be
    directed to the process's SYS$OUTPUT. For example:

    $ DEFINE PMDF_UNIXLIB_TRACE TTY

    followed by a PMDF TEST/CHANNEL X400 command will result in all
    of the test output as well as a complete trace of all data sent
    and received. The additional level of detail afforded by I/O
    tracing may be required should you need to work with Process
    Software support personnel to solve a problem.

42.2.1.4  –  Command Qualifiers

42.2.1.4.1    /MTA

       /MTA=mta-id

    Specifies the MTA to connect to when PMDF-X400 is configured for
    more than one remote MTA. This qualifier is only applicable when
    PMDF-X400 has been configured to support more than one remote
    MTA. The mta-id value must be an MTA identification as defined in
    the X400-MTAID database. Note that in a single MTA configuration,
    as generated by the PMDF CONFIGURE X400 utility, there is no MTA
    identification nor X400-MTAID database.

42.2.1.4.2    /TRANSFER

       /TRANSFER=file-spec

    Use RTS to transfer the specified file, file-spec. If no file is
    given it will default to NLA0: and transfer 0 bytes of data. Note
    that transferring 0 bytes of data by specifying /TRANSFER is not
    the same as transferring nothing, which is the behavior when this
    qualifier is not present.

42.2.1.5  –  Examples

  $ PMDF TEST/CHANNEL X400
  23:12:57.74: RTS rts_send: initializing
  23:12:57.85: RTS Transfer mode is NORMAL 1988
  23:12:57.85: RTS rts_send: preparing for RTS transfer to MTA
  23:12:57.85: RTS rts_send: found cached connection, slot = 0
  23:12:57.85: RTS rts_
 send: no cached connection, opening new connection
  23:12:57.85: RTS88 Local host is NAPLES.EXAMPLE.COM
  23:12:57.85: RTS88 Connecting to "MTA"/"MTA"/"X400-88"
    /Internet=OTHERMTA.EXAMPLE.COM
  23:12:57.85: RTS88.Request user-data: MTA-
 NAME [MyMTA]     PASSWORD [secret]
  23:12:57.89: RTS88 Called presentation address: "MTA"/"MTA"/"X400-
 88"
    /Internet=12.34.56.78
  23:12:57.90: RTS88 Calling presentation address: "MTA"/"MTA"/"PMDF-
 X400"/
  23:12:58.55: RTS.Response user-data: MTA-
 NAME [OtherMTA]     PASSWORD []
  23:12:58.55: RTS rts_send: Connection successful sd = 4
  23:12:58.57: RTS rts_send: new connection cached, slot = 0
  23:12:58.57: X400 TEST: RTS test successful!
  23:12:58.57: RTS rts_disconnect_all
  23:12:58.57: RTS disconnecting slot 0
  23:12:58.57: RTS88 rts88_disconnect: closing sd 4
  23:12:58.57: RTS88.CloseRequest

      This example shows testing an outgoing X.400 connection for a
      configuration with an PMDF_TABLE:X400_LOCAL_OPTION. file of:

      MODE=1988-NORMAL
      LOCAL_MTANAME="MyMTA"
      LOCAL_PASSWORD="secret"
      LOCAL_ADDR="MTA"/"MTA"/"PMDF-X400"
      REMOTE_MTANAME="OtherMTA"
      REMOTE_PASSWORD=""
      REMOTE_ADDR="MTA"/"MTA"/"X400-88"/Internet=OTHERMTA.EXAMPLE.COM

42.3    /FAX_ROUTING

    Test the effect on DATA_TO_BITMAP channel processing options of
    FAX routing mappings.

    Syntax

      PMDF TEST/FAX_ROUTING  [routing]

    Command Qualifiers             Defaults

    /DEBUG                         /NODEBUG
    /IMAGE_FILE=file-spec          /IMAGE_FILE=PMDF_CONFIG_DATA
    /MAPPING_FILE=file-spec        /MAPPING_FILE=PMDF_MAPPING_FILE

42.3.1  –  Restrictions

    This utility is supplied only with the PMDF-FAX optional layered
    product.

42.3.2  –  Prompts

    Routing:  routing

42.3.3  –  Parameters

 routing

    Optional routing to test.

42.3.4  –  Description

    TEST/FAX_ROUTING may be used to test entries in the FAX_ROUTING
    mapping tables used by the DATA_TO_BITMAP channel of PMDF-FAX.
    These entries are used to alter, on a per received FAX basis, the
    processing options used by that channel.

    The specified routing will be looked up in the FAX_ROUTING
    mapping table and, if found, the mapping result-a list of
    processing options for the DATA_TO_BITMAP channel-will be parsed.

    If a routing is specified on the command line, TEST/FAX_ROUTING
    acts upon the specified routing and then exits. If no routing is
    specified on the command line, then TEST/FAX_ROUTING will prompt
    for routings until a CTRL/Z is entered.

42.3.5  –  Command Qualifiers

42.3.5.1    /DEBUG

       /DEBUG
       /NODEBUG (default)

    The testing process is capable of producing detailed processing
    information. The /DEBUG qualifier enables this output; it is
    disabled by default.

42.3.5.2    /IMAGE_FILE

       /IMAGE_FILE[=filename]
       /NOIMAGE_FILE

    The /IMAGE_FILE qualifier serves two purposes. The first is when
    /NOIMAGE_FILE is specified; this instructs TEST/FAX_ROUTING to
    ignore any compiled configuration unconditionally and to read
    configuration information from the various text files instead.

    When the /IMAGE_FILE qualifier is specified without an optional
    file name, PMDF TEST/FAX_ROUTING will load the compiled
    configuration from the file PMDF_CONFIG_DATA. If, instead, a
    file name is specified then PMDF TEST/FAX_ROUTING will load the
    compiled configuration from the specified file.

42.3.5.3    /MAPPING_FILE

       /MAPPING_FILE=filename

    TEST/FAX_ROUTING normally consults the default mapping file,
    PMDF_MAPPING_FILE, during processing. The /MAPPING_FILE qualifier
    specifies an alternate file to use in place of PMDF_MAPPING_FILE.

    This qualifier has no effect unless /NOIMAGE_FILE is specified
    or no compiled configuration exists; use of any compiled
    configuration will preclude reading any sort of mapping file.

42.3.6  –  Examples

      The FAX_ROUTING table entry,

  6215319   /OUTPUT_AS=EMAIL/OUTPUT_FORMAT=DDIF/TO=dan@example/

      may be tested with this utility:

 $ PMDF TEST/FAX_ROUTING 6215319
 Processing options:
   OUTPUT_FORMAT      = DDIF
   PAGE_MAGNIFICATION = 0.95
   OUTPUT_AS          = EMAIL
   TO                 = dan@example
   SAVE_INPUT         = FALSE

42.4    /FF

    Test MS Mail channel address transformations.

    Syntax

      PMDF TEST/FF  [test-address|test-time]

    Command Qualifiers             Defaults

    /822TOLAN                      /822TOLAN
    /BACKWARD                      /FORWARD
    /CHANNEL=channel-name          /CHANNEL=ff_local
    /DEBUG                         /NODEBUG
    /ENVELOPE                      /HEADER
    /FORWARD                       /FORWARD
    /HEADER                        /HEADER
    /LANTO822                      /822TOLAN
    /TIME                          See text

42.4.1  –  Restrictions

    This utility is supplied only with the PMDF-LAN optional layered
    product.

42.4.2  –  Prompts

    Address:         test-address
    Time:       test-time

42.4.3  –  Parameters

 test-address

    Optional address to test.

 test-time

    Optional time to test.

42.4.4  –  Description

    Test a MS Mail channel's transformation of an address or time.

42.4.5  –  Command Qualifiers

42.4.5.1    /822TOLAN

       /822TOLAN (default)
       /LANTO822

    The testing process can test conversion of RFC 822 addresses to
    MS Mail format, /822TOLAN, or test conversion of MS Mail format
    addresses to RFC 822 format, /LANTO822.

42.4.5.2    /BACKWARD

       /BACKWARD
       /FORWARD (default)

    The testing process can test conversion of backwards or forwards
    pointing addresses; the default is forward pointing addresses.

42.4.5.3    /CHANNEL

       /CHANNEL=channel-name

    Different MS Mail channels may be configured to perform different
    transformations. If this qualifier is not specified, the default
    is to test the ff_local channel.

42.4.5.4    /DEBUG

       /DEBUG
       /NODEBUG (default)

    The testing process is capable of producing detailed processing
    information. The /DEBUG qualifier enables this output; it is
    disabled by default.

42.4.5.5    /ENVELOPE

       /ENVELOPE
       /HEADER (default)

    The testing process can test envelope or header addresses; the
    default is header addresses.

42.4.5.6    /TIME

    The testing process by default tests address transformations, but
    the /TIME qualifier specifies that it should instead test time
    transformations.

42.4.6  –  Examples

  $ PMDF TEST/FF adam@msmail.example.com
  CSI:EXAMPLE/HQ/ADAM
  $ PMDF TEST/FF "EXAMPLE/ADMIN/CARL@msmail.example.com"
  CSI:EXAMPLE/ADMIN/CARL
  $ PMDF TEST/FF service@example.com
  SMTP:SERVICE@EXAMPLE.COM

      This example shows testing a ff_local channel's transformation
      of several addresses. The output shown corresponds to a ff_
      local channel with the official host name msmail.example.com
      and with the channel option settings FF_DEFAULT_NETWORK=EXAMPLE
      and FF_DEFAULT_POSTOFFICE=HQ.

42.5    /GROUPWISE

    Test GroupWise (WordPerfect Office) channel address
    transformations; a synonym for PMDF TEST/WPO.

    Syntax

      PMDF TEST/GROUPWISE  [test-address|test-time]

    Command Qualifiers             Defaults

    /822TOLAN                      /822TOLAN
    /BACKWARD                      /FORWARD
    /CHANNEL=channel-name          /CHANNEL=wpo_local
    /DEBUG                         /NODEBUG
    /ENVELOPE                      /HEADER
    /FORWARD                       /FORWARD
    /HEADER                        /HEADER
    /LANTO822                      /822TOLAN
    /TIME                          See text

42.5.1  –  Restrictions

    This utility is supplied only with the PMDF-LAN optional layered
    product.

42.5.2  –  Prompts

    Address:         test-address
    Time:       test-time

42.5.3  –  Parameters

 test-address

    Optional address to test.

 test-time

    Optional time to test.

42.5.4  –  Description

    Test a GroupWise (WordPerfect Office) channel's transformation of
    an address or time; a synonym for PMDF TEST/WPO.

42.5.5  –  Command Qualifiers

42.5.5.1    /822TOLAN

       /822TOLAN (default)
       /LANTO822

    The testing process can test conversion of RFC 822 addresses
    to GroupWise format, /822TOLAN, or test conversion of GroupWise
    format addresses to RFC 822 format, /LANTO822.

42.5.5.2    /BACKWARD

       /BACKWARD
       /FORWARD (default)

    The testing process can test conversion of backwards or forwards
    pointing addresses; the default is forward pointing addresses.

42.5.5.3    /CHANNEL

       /CHANNEL=channel-name

    Different GroupWise channels may be configured to perform
    different transformations. If this option is not specified, the
    default is to test the wpo_local channel.

42.5.5.4    /DEBUG

       /DEBUG
       /NODEBUG (default)

    The testing process is capable of producing detailed processing
    information. The /DEBUG qualifier enables this output; it is
    disabled by default.

42.5.5.5    /ENVELOPE

       /ENVELOPE
       /HEADER (default)

    The testing process can test envelope or header addresses; the
    default is header addresses.

42.5.5.6    /TIME

    The testing process by default tests address transformations, but
    the /TIME qualifier specifies that it should instead test time
    transformations.

42.5.6  –  Examples

  $ PMDF TEST/GROUPWISE adam@groupwise.example.com
  EXAMPLE.HQ.ADAM
  $ PMDF TEST/GROUPWISE postmaster@example.com
  EXAMPLE.PMDF.POSTMASTER
  $ PMDF TEST/GROUPWISE service@example.com
  EXAMPLE.PMDF."service@example.com"

      This example shows testing a wpo_local channel's transformation
      of several addresses. The output shown corresponds to a wpo_
      local channel with official host name groupwise.example.com and
      channel options WPO_DEFAULT_DOMAIN=EXAMPLE, WPO_DEFAULT_PO=HQ,
      WPO_GATEWAY_DOMAIN=EXAMPLE, and WPO_GATEWAY_PO=PMDF, and where
      the site has example.com as the official local host name.

42.6    /LN

    Test Lotus NotesMail channel address transformations.

    Syntax

      PMDF TEST/LN  [test-address|test-time]

    Command Qualifiers             Defaults

    /822TOLAN                      /822TOLAN
    /BACKWARD                      /FORWARD
    /CHANNEL=channel-name          /CHANNEL=ln_local
    /DEBUG                         /NODEBUG
    /ENVELOPE                      /HEADER
    /FORWARD                       /FORWARD
    /HEADER                        /HEADER
    /LANTO822                      /822TOLAN
    /TIME                          See text

42.6.1  –  Restrictions

    This utility is supplied only with the PMDF-LAN optional layered
    product.

42.6.2  –  Prompts

    Address:         test-address
    Time:       test-time

42.6.3  –  Parameters

 test-address

    Optional address to test.

 test-time

    Optional time to test.

42.6.4  –  Description

    Test a Lotus NotesMail channel's transformation of an address or
    time.

42.6.5  –  Command Qualifiers

42.6.5.1    /822TOLAN

       /822TOLAN (default)
       /LANTO822

    The testing process can test conversion of RFC 822 addresses to
    Lotus NotesMail format, /822TOLAN, or test conversion of Lotus
    NotesMail format addresses to RFC 822 format, /LANTO822.

42.6.5.2    /BACKWARD

       /BACKWARD
       /FORWARD (default)

    The testing process can test conversion of backwards or forwards
    pointing addresses; the default is forward pointing addresses.

42.6.5.3    /CHANNEL

       /CHANNEL=channel-name

    Different Lotus NotesMail channels may be configured to perform
    different transformations. If this qualifier is not specified,
    the default is to test the ln_local channel.

42.6.5.4    /DEBUG

       /DEBUG
       /NODEBUG (default)

    The testing process is capable of producing detailed processing
    information. The /DEBUG qualifier enables this output; it is
    disabled by default.

42.6.5.5    /ENVELOPE

       /ENVELOPE
       /HEADER (default)

    The testing process can test envelope or header addresses; the
    default is header addresses.

42.6.5.6    /TIME

    The testing process by default tests address transformations, but
    the /TIME qualifier specifies that it should instead test time
    transformations.

42.6.6  –  Examples

  $ PMDF TEST/LN adam@notesmail.example.com
  adam @ PMDF

      This example shows testing a ln_local channel's transformation
      of an address. The output shown corresponds to a ln_local
      channel with official host name notesmail.example.com and
      channel option LN_GATEWAY_DOMAIN=PMDF.

42.7    /MAPPING

    Test a mapping table in the mapping file.

    Syntax

      PMDF TEST/MAPPING  [input-string]

    Command Qualifiers             Defaults

    /FLAGS=(a,b,c,...)             /NOFLAGS
    /IMAGE_FILE=file-spec          /IMAGE_FILE=PMDF_CONFIG_DATA
    /MAPPING_FILE=file-spec        /MAPPING_FILE=PMDF_MAPPING_FILE
    /OPTION_FILE=file-spec         /OPTION_FILE=PMDF_OPTION_FILE
    /TABLE=table-name              None

42.7.1  –  Restrictions

    None.

42.7.2  –  Prompts

    Enter table name:                 table-name

42.7.3  –  Parameters

 input-string

    Optional input string to map.

42.7.4  –  Description

    TEST/MAPPING may be used to test the behavior of a mapping table
    in the mapping file. The result of mapping an input string
    will be output along with information about any metacharacters
    specified in the output string.

    If an input string is supplied on the command line, then only the
    result of mapping that input string will be output. If no input
    string is specified TEST/MAPPING will enter a loop, prompting
    for an input string, mapping that string, and prompting again
    for another input string. TEST/MAPPING will exit when a CTRL/Z is
    entered.

42.7.5  –  Command Qualifiers

42.7.5.1    /FLAGS

       /FLAGS=(a,b,c,...)
       /NOFLAGS

    The /FLAGS qualifier is used to specify particular flags to set
    during the mapping testing; for instance, the E (envelope), B
    (header/body), or I (message id) flags when testing a REVERSE
    mapping.

42.7.5.2    /IMAGE_FILE

       /IMAGE_FILE[=filename]
       /NOIMAGE_FILE

    The /IMAGE_FILE qualifier serves two purposes. The first is when
    /NOIMAGE_FILE is specified; this instructs TEST/MAPPING to ignore
    any compiled mapping information unconditionally and to read
    mapping information from the mapping file itself.

    When the /IMAGE_FILE qualifier is specified without an optional
    file name, PMDF will load the compiled configuration file PMDF_
    CONFIG_DATA. If, instead, a file name is specified then that
    file, which is expected to be a compiled configuration image,
    will be loaded instead.

42.7.5.3    /MAPPING_FILE

       /MAPPING_FILE=filename

    This qualifier instructs TEST/MAPPING to use the specified
    mapping file rather than the default mapping file, PMDF_MAPPING_
    FILE.

    This qualifier has no effect unless /NOIMAGE_FILE is specified
    or no compiled configuration exists; use of any compiled
    configuration will preclude reading any sort of mapping file.

42.7.5.4    /OPTION_FILE

       /OPTION_FILE=filename
       /NOOPTION_FILE

    This qualifier instructs TEST/MAPPING to use the specified option
    file rather than the default option file PMDF_OPTION_FILE.

    This qualifier has no effect unless /NOIMAGE_FILE is specified
    or no compiled configuration exists; use of any compiled
    configuration will preclude reading any sort of option file.

    Use of the qualifier /NOOPTION_FILE will prevent the file
    PMDF_OPTION_FILE from being read in when there is no compiled
    configuration.

42.7.5.5    /TABLE

       /TABLE=table-name

    This qualifier specifies the name of the mapping table to test.
    If this qualifier is not specified, then TEST/MAPPING will prompt
    for the name of a table to use.

42.7.6  –  Examples

      In the following example, the sample PAGER mapping is tested.
      The /MAPPING_FILE qualifier is used to select the mapping file
      PAGER_TABLE.SAMPLE instead of the default mapping file.

 $ PMDF TEST/MAPPING/NOIMAGE/MAPPING_FILE=PMDF_TABLE:pager_table.sample
 Enter table name: PAGER
 Input string: H|From: "Daniel C. Newman"
 <dan@example.com> (Doof City)
 Output string: H|F:dan
 Output flags: [0, 1, 2, 'Y' 89]
 Input string: ^Z
 $

42.8    /MATCH

    Test a mapping wildcard pattern.

    Syntax

      PMDF TEST/MATCH

    Command Qualifiers    Defaults

    None.                 None.

42.8.1  –  Restrictions

    None.

42.8.2  –  Prompts

    Pattern:         mapping-pattern
    Target:          target-string

42.8.3  –  Parameters

    None.

42.8.4  –  Description

    TEST/MATCH may be used to test wildcard and glob matching, such
    as in a mapping pattern.

    When invoked, TEST/MATCH prompts for a pattern and then for a
    target string to compare against the pattern, and will output
    whether or not the target string matched and if it did match,
    which characters in the target string matched which wildcard or
    glob of the pattern. TEST/MATCH will loop, prompting for input,
    until exitted with a CTRL/Z.

42.8.5  –  Examples

      In the following example, the sample mapping pattern
      $[AX1]*@*.EXAMPLE.COM is tested for several sample target
      strings.

        $ PMDF TEST/MATCH
        Pattern: $[ax1]*@*.example.com
          [  1S] cglob [1ax]
          [  2] "@"
          [  3S] glob, req 109, reps 2
          [  4] "."
          [  5] "a"
          [  6] "c"
          [  7] "m"
          [  8] "e"
          [  9] "."
          [ 10] "c"
          [ 11] "o"
          [ 12] "m"
        Target: xx11a@sys1.example.com
        Match.
        0 - xx11a
        1 - sys1
        Pattern: $[ax1]*@*.example.com
          [  1S] cglob [1ax]
          [  2] "@"
          [  3S] glob, req 109, reps 2
          [  4] "."
          [  5] "a"
          [  6] "c"
          [  7] "m"
          [  8] "e"
          [  9] "."
          [ 10] "c"
          [ 11] "o"
          [ 12] "m"
        Target: 12a@node.example.com
        No match.
        Pattern: $[ax1]*@*.example.com
          [  1S] cglob [1ax]
          [  2] "@"
          [  3S] glob, req 109, reps 2
          [  4] "."
          [  5] "a"
          [  6] "c"
          [  7] "m"
          [  8] "e"
          [  9] "."
          [ 10] "c"
          [ 11] "o"
          [ 12] "m"
        Target: 1xa@node.example.com
        Match.
        0 - 1xa
        1 - node
        Pattern: ^Z
        $

42.9    /MHS

    Test MHS channel address transformations.

    Syntax

      PMDF TEST/MHS  [test-address|test-time]

    Command Qualifiers             Defaults

    /822TOLAN                      /822TOLAN
    /BACKWARD                      /FORWARD
    /CHANNEL=channel-name          /CHANNEL=mhs_local
    /DEBUG                         /NODEBUG
    /ENVELOPE                      /HEADER
    /FORWARD                       /FORWARD
    /HEADER                        /HEADER
    /LANTO822                      /822TOLAN
    /TIME                          See text

42.9.1  –  Restrictions

    This utility is supplied only with the PMDF-LAN optional layered
    product.

42.9.2  –  Prompts

    Address:         test-address
    Time:       test-time

42.9.3  –  Parameters

 test-address

    Optional address to test.

 test-time

    Optional time to test.

42.9.4  –  Description

    Test a MHS Mail channel's transformation of an address or time.

42.9.5  –  Command Qualifiers

42.9.5.1    /822TOLAN

       /822TOLAN (default)
       /LANTO822

    The testing process can test conversion of RFC 822 addresses to
    MHS format, /822TOLAN, or test conversion of MHS format addresses
    to RFC 822 format, /LANTO822.

42.9.5.2    /BACKWARD

       /BACKWARD
       /FORWARD (default)

    The testing process can test conversion of backwards or forwards
    pointing addresses; the default is forward pointing addresses.

42.9.5.3    /CHANNEL

       /CHANNEL=channel-name

    Different MHS channels may be configured to perform different
    transformations. If this option is not specified, the default is
    to test the mhs_local channel.

42.9.5.4    /DEBUG

       /DEBUG
       /NODEBUG (default)

    The testing process is capable of producing detailed processing
    information. The /DEBUG qualifier enables this output; it is
    disabled by default.

42.9.5.5    /ENVELOPE

       /ENVELOPE
       /HEADER (default)

    The testing process can test envelope or header addresses; the
    default is header addresses.

42.9.5.6    /TIME

    The testing process by default tests address transformations, but
    the /TIME qualifier specifies that it should instead test time
    transformations.

42.9.6  –  Examples

  $ PMDF TEST/MHS adam@mhs.example.com
  ADAM@EXAMPLE
  $ PMDF TEST/MHS postmaster@example.com
  POSTMASTER@PMDF
  $ PMDF TEST/MHS service@example.com
  MAILER@PMDF {smtp:SERVICE@example.COM}

      This example shows testing an mhs_local channel's
      transformation of several addresses. The output shown
      corresponds to a mhs_local channel with official host
      name mhs.example.com and channel options MHS_DEFAULT_
      WORKGROUP=EXAMPLE, MHS_GATEWAY_WORKGROUP=PMDF, MHS_GATEWAY_
      USERNAME=MAILER, and MHS_GATEWAY_TYPE=SMTP, and where the site
      has example.com as the official local host name.

42.10    /REWRITE

    Test address rewriting specified by a PMDF configuration

    Syntax

      PMDF TEST/REWRITE  [test-address[,...]]

    Command Qualifiers             Defaults

    /ALIAS_FILE=file-spec          /ALIAS_FILE=PMDF_ALIAS_FILE
    /CHANNEL                       /CHANNEL
    /CHECK_EXPANSIONS              /NOCHECK_EXPANSIONS
    /CONFIGURATION_FILE=file-spec  /CONFIGURATION_FILE=PMDF_CONFIG_FILE
    /DATABASE=database-list        See text
    /DEBUG                         /NODEBUG
    /DELIVERY_RECEIPT              See text
    /DESTINATION_CHANNEL=channel   None
    /FILTER                        /NOFILTER
    /FROM=address                  /FROM=postmaster@localhost
    /GREY=setting                  /GREY=0
    /IMAGE_FILE=file-spec          /IMAGE_FILE=PMDF_CONFIG_DATA
    /LOCAL_ALIAS=value             None
    /MAPPING_FILE=file-spec        /MAPPING_FILE=PMDF_MAPPING_FILE
    /OPTION_FILE=file-spec         /OPTION_FILE=PMDF_OPTION_FILE
    /READ_RECEIPT                  See text
    /REPROCESSING                  /REPROCESSING
    /RESTRICTED=setting            /RESTRICTED=0
    /SOURCE_CHANNEL=channel        /SOURCE_CHANNEL=L

42.10.1  –  Restrictions

    None.

42.10.2  –  Prompts

    Address:  test-address[,...]

42.10.3  –  Parameters

 test-address

    Optional parameter specifying one or more addresses to rewrite.

42.10.4  –  Description

    TEST/REWRITE provides a straightforward test facility for
    examining PMDF's address rewriting and channel mapping process
    without actually sending any message. Various qualifiers can be
    used to control whether TEST/REWRITE uses the configuration text
    files or the compiled configuration (if present), the amount of
    output produced, and so on.

    If one or more test addresses are specified on the command
    line, TEST/REWRITE applies PMDF address rewriting to those
    addresses, reports the results, and exits. If no test address
    is specified TEST/REWRITE will enter a loop, prompting for
    addresses, rewriting them, and prompting again for more
    addresses. TEST/REWRITE will exit when a CTRL/Z is entered.

    When testing rewriting of a alias corresponding to a mailing list
    which has an AUTH_ or CANT_ type of named parameter controlling
    who is authorized to post to the list, or when testing rewriting
    when SEND_ACCESS or related mapping tables are in effect, note
    that by default TEST/REWRITE uses as the posting address the
    return address of the local postmaster as specified by the
    RETURN_ADDRESS option in the PMDF option file. To specify a
    different posting address for the rewriting process, use the
    /FROM qualifier.

42.10.5  –  Command Qualifiers

42.10.5.1    /ALIAS_FILE

       /ALIAS_FILE=filename

    TEST/REWRITE normally consults the default alias file PMDF_ALIAS_
    FILE during the rewriting process. The /ALIAS_FILE qualifier
    specified an alternate file for TEST/REWRITE to use.

    This qualifier has no effect unless /NOIMAGE_FILE is specified
    or no compiled configuration exists; use of any compiled
    configuration precludes reading any sort of alias file.

42.10.5.2    /CHANNEL

       /CHANNEL (default)
       /NOCHANNEL

    This qualifier controls whether the utility outputs detailed
    information, e.g., channel flags, regarding the channel an
    address matches.

42.10.5.3    /CHECK_EXPANSIONS

       /CHECK_EXPANSIONS
       /NOCHECK_EXPANSIONS (default)

    This qualifier controls checking of alias address expansion.
    Normally PMDF considers the expansion of an alias to have been
    successful if any of the addresses the alias expands to are
    legal. The /CHECK_EXPANSIONS qualifier causes a much stricter
    policy to be applied; TEST/REWRITE checks each expanded address
    in detail and reports a list of any addresses, expanded or
    otherwise, that fail to rewrite properly. For addresses that
    match the L channel, PMDF also performs validity checks.

42.10.5.4    /CONFIGURATION_FILE

       /CONFIGURATION_FILE=filename

    TEST/REWRITE normally consults the default configuration
    file PMDF_CONFIG_FILE during the rewriting process. The
    /CONFIGURATION_FILE qualifier specifies an alternate file to
    use in place of the file PMDF_CONFIG_FILE.

    This qualifier has no effect unless /NOIMAGE_FILE is specified
    or no compiled configuration exists; use of any compiled
    configuration will preclude reading any sort of configuration
    file.

42.10.5.5    /DEBUG

       /DEBUG
       /NODEBUG (default)

    The address rewriting process is capable of producing additional,
    detailed explanations of what actions are taken and why. The
    /DEBUG qualifier enables this output; it is disabled by default.

42.10.5.6    /DATABASE

       /DATABASE=database-list

    TEST/REWRITE normally consults the usual PMDF databases
    during its operation. This qualifier is used to either disable
    references to various databases or to redirect the database paths
    to nonstandard locations.

    The allowed list items are ALIAS, NOALIAS, PERSONAL_ALIAS,
    NOPERSONAL_ALIAS, DOMAIN, NODOMAIN, FORWARD, NOFORWARD, GENERAL,
    NOGENERAL, REVERSE, and NOREVERSE. The list items beginning with
    "NO" disable use of the corresponding database. The remaining
    items require an associated value, which is taken to be the name
    of that database.

42.10.5.7    /DELIVERY_RECEIPT

       /DELIVERY_RECEIPT
       /NODELIVERY_RECEIPT

    The /DELIVERY_RECEIPT and /NODELIVERY_RECEIPT qualifiers, which
    explicitly set the corresponding receipt request flags, can
    be useful when testing the handling of receipt requests when
    rewriting forwarded addresses or mailing lists.

42.10.5.8    /DESTINATION_CHANNEL

       /DESTINATION_CHANNEL=channel

    The /DESTINATION_CHANNEL qualifier controls what destination or
    target channel TEST/REWRITE rewrites addresses for. Some address
    rewriting is destination channel specific; this qualifier allows
    control of the assumed destination channel.

42.10.5.9    /FILTER

       /FILTER
       /NOFILTER (default)

    The /FILTER qualifier may be used to have PMDF TEST/REWRITE
    output any filters (personal mailbox, channel, or system)
    applying for the address in question.

42.10.5.10    /FROM

       /FROM=address
       /NOFROM

    This qualifier controls what envelope From: address is used for
    access control probes and mailing list access probes. If the
    /FROM qualifier is omitted, then the address used for access
    checks is the postmaster return address. Specifying either
    /FROM=<> or /NOFROM tells the utility to use an empty envelope
    From: address for access checks.

42.10.5.11    /GREY

       /GREY=setting
       /NOGREY (default)

    This qualifier controls the setting of the Grey Book flag. By
    default, this flag has value 0. When set to 1, /GREY=1, the Grey
    Book flag will be set on and addresses will be rewritten using
    the Grey Book format.

    This flag is used to force rewriting of address in accordance
    with the JANET (Grey Book) specifications. The most significant
    effect is that domain specifications appear in reverse order,
    e.g., edu.claremont.ymir and not ymir.claremont.edu. See the PMDF
    System Manager's Guide for further details.

    Grey Book address formats are not currently used in PMDF, so this
    qualifier's usefulness is problematic at best.

42.10.5.12    /IMAGE_FILE

       /IMAGE_FILE[=filename]
       /NOIMAGE_FILE

    The /IMAGE_FILE qualifier serves two purposes. The first is
    when /NOIMAGE_FILE is specified; this instructs TEST/REWRITE
    to ignore any compiled configuration unconditionally and to read
    configuration information from the various text files instead.

    When the /IMAGE_FILE qualifier is specified without an optional
    file name, PMDF TEST/REWRITE will load the compiled configuration
    from the file PMDF_CONFIG_DATA. If, instead, a file name is
    specified then TEST/REWRITE will load the compiled configuration
    from the specified file.

42.10.5.13    /LOCAL_ALIAS

       /LOCAL_ALIAS=value
       /NOLOCAL_ALIAS (default)

    This qualifier controls the setting of an alias for the local
    host. PMDF supports multiple "identities" for the local host;
    the local host may have a different identity on each channel.
    This qualifier may be used to set the local host alias to the
    specified value; appearances of the local host in rewritten
    addresses will be replaced by this value.

42.10.5.14    /MAPPING_FILE

       /MAPPING_FILE[=filename]
       /NOMAPPING_FILE

    This qualifier instructs TEST/REWRITE to use the specified
    mapping file rather than the default mapping file named by the
    PMDF_MAPPING_FILE logical name, usually PMDF_TABLE:MAPPINGS.

    This qualifier has no effect unless /NOIMAGE_FILE was specified
    or no compiled configuration exists; use of any compiled
    configuration will preclude reading the mapping file.

    Use of the /NOMAPPING_FILE qualifier will prevent the PMDF_
    MAPPING_FILE file from being read in when there is no compiled
    configuration.

42.10.5.15    /OPTION_FILE

       /OPTION_FILE=filename
       /NOOPTION_FILE

    This qualifier instructs TEST/REWRITE to use the specified option
    file rather than the default option file PMDF_OPTION_FILE.

    This qualifier has no effect unless /NOIMAGE_FILE is specified
    or no compiled configuration exists; use of any compiled
    configuration will preclude reading any sort of option file.

    Use of the qualifier /NOOPTION_FILE will prevent the file
    PMDF_OPTION_FILE from being read in when there is no compiled
    configuration.

42.10.5.16    /READ_RECEIPT

       /READ_RECEIPT
       /NOREAD_RECEIPT

    The /READ_RECEIPT and /NOREAD_RECEIPT qualifiers, which
    explicitly set the corresponding receipt request flags, can
    be useful when testing the handling of receipt requests when
    rewriting forwarded addresses or mailing lists.

42.10.5.17    /REPROCESSING

       /REPROCESSING (default)
       /NOREPROCESSING

    This qualifier allows the utility to display the contents of a
    mailing list which uses the [REPROCESS] named parameter in its
    alias definition.

42.10.5.18    /RESTRICTED

       /RESTRICTED=value
       /NORESTRICTED

    This qualifier controls the setting of the restricted flag. By
    default, this flag has value 0. When set to 1, /RESTRICTED=1, the
    restricted flag will be set on and addresses will be rewritten
    using the restricted mailbox encoding format recommend by
    RFC1137.

    This flag is used to force rewriting of address mailbox names in
    accordance with the RFC1137 specifications; see the PMDF System
    Manager's Guide for further details.

42.10.5.19    /SOURCE_CHANNEL

       /SOURCE_CHANNEL=channel

    The /SOURCE_CHANNEL qualifier controls what source channel to
    rewrite addresses for. Some address rewriting is source channel
    specific; TEST/REWRITE normally pretends that the channel source
    it is rewriting for is the local channel, L.

42.10.6  –  Examples

      This example shows the typical output generated by
      TEST/REWRITE. Perhaps the single most important piece of
      information generated by TEST/REWRITE is the last few lines
      of the TEST/REWRITE output, 6, which give the channel to
      which TEST/REWRITE would submit a message with the specified
      test address and the form in which the test address would be
      rewritten for that channel. This output is invaluable when
      debugging configuration problems.

 $ PMDF TEST/REWRITE DAN@EXAMPLE.COM
    forward channel       = tcp_local
   channel description    =
   channel user filter    =
   dest channel filter    =
   source channel filter  =
    channel flags #0      = BIDIRECTIONAL SINGLE_SYSTEM IMMNORMAL NOSERVICEALL
   channel flags #1       = SMTP RANDOMMX MAYTLS DEFAULT
   channel flags #2       = NOLOCALPOST POSTHEADBODY HEADERINC NOEXPROUTE
   channel flags #3       = LOGGING NOGREY NORESTRICTED
   channel flags #4       = EIGHTNEGOTIATE NOHEADERTRIM NOHEADERREAD RULES
   channel flags #5       = MASTER_DEBUG
   channel flags #6       = LOCALUSER REPORTHEADER
   channel flags #7       = SWITCHCHANNEL NOREMOTEHOST DATEFOUR DAYOFWEEK
   channel flags #8       = NODEFRAGMENT EXQUOTA REVERSE NOCONVERT_OCTET_STREAM
   channel flags #9       = NOTHURMAN INTERPRETENCODING INCLUDEFINAL RECEIVEDFROM
   linelength             = 998
   addrsperfile           = 127
   channel env addr type  = SOURCEROUTE
   channel hdr addr type  = SOURCEROUTE
    channel official host = TCP-DAEMON
   channel local alias    =
    channel queue name    = MAIL_TCP_BATCH
   channel after param    = 60
   channel daemon name    = fw.example.com
   channel user name      =
   urgentnotices          = 1 4 8 12
   normalnotices          = 1 4 8 12
   nonurgentnotices       = 1 4 8 12
    channel rightslist ids =
    backward channel      = tcp_local
   header To: address     = DAN@EXAMPLE.COM
   header From: address   = DAN@EXAMPLE.COM
   envelope To: address   = DAN@EXAMPLE.COM  (route (TCP-DAEMON,TCP-DAEMON))
   envelope From: address = DAN@EXAMPLE.COM
   name                   =
   mbox                   = DAN
 Extracted address action list:
     DAN@EXAMPLE.COM
 Extracted 733 address action list:
     DAN@EXAMPLE.COM
 Address list expansion:
Close Help