1 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. 2 CACHE 3 /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. 4 Restrictions SYSLCK privilege is required to in order to use this utility. 4 Parameters None. 4 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. 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 3 /REBUILD Build a new, synchronized queue cache database. Syntax PMDF CACHE/REBUILD Command Qualifiers Defaults None. None. 4 Restrictions Requires sufficient privileges to create a file in the PMDF_ TABLE: directory, and to scan the PMDF_QUEUE:[*] directories. 4 Parameters None. 4 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. 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 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. 4 Restrictions Requires sufficient privileges to scan the PMDF_QUEUE:[*] subdirectories and add entries to the queue cache database. 4 Parameters None. 4 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. 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 3 Parameters None. 3 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. 3 Command_Qualifiers /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. /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. /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. /SIZES /SIZES /NOSIZES (default) The /SIZES qualifier instructs PMDF CHBUILD to output information on the sizes of the uncompiled character set tables. /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. 3 Examples The standard commands used to compile character set conversion tables and reinstall them are: $ PMDF CHBUILD $ INSTALL REPLACE PMDF_CHARSET_DATA 2 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 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 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 Command_Qualifiers /DEBUG /DEBUG /NODEBUG (default) The /DEBUG qualifier causes CLBUILD to output debug information regarding its operation. /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. /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. /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. /SIZES /SIZES /NOSIZES (default) The /SIZES qualifier instructs PMDF CLBUILD to output information on the sizes of the uncompiled command definitions. /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 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 2 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 3 Restrictions None. 3 Parameters None. 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. 3 Command_Qualifiers /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. /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. /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. /SIZES /SIZES /NOSIZES (default) The /SIZES qualifier instructs PMDF CNBUILD to output information on the sizes of the elements of the uncompiled configuration. /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. 3 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. 2 CONFIGURE Create basic PMDF configuration files. Syntax PMDF CONFIGURE [product-or-component-name] 3 Restrictions To write "live" files, must have write access to the PMDF table directory, PMDF_TABLE:. 3 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. 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. 2 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 3 Restrictions None. 3 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. 3 Description CONVERT is a utility to convert files from one format to another. 3 Command_Qualifiers /CHARSET /CHARSET=charset Specify the character set for the part. /CHECKSUM /CHECKSUM /NOCHECKSUM (default) /DEBUG /DEBUG /NODEBUG (default) Control whether or not to display debug output. /ENCODING /ENCODING=encoding Specify the encoding used for the part. /FILENAME /FILENAME=name /NOFILENAME (default) Specify a file name to include in the MIME labelling. /FTYPE /FTYPE=type /FCREATOR /FCREATOR=creator /FDL /FDL=fdl-spec /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. /LINE_LENGTH /LINE_LENGTH=value /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. /MPARAMETERS /MPARAMETERS=param-list /MSUBTYPE /MSUBTYPE=type /PARAMETERS /PARAMETERS=param-list /SUBTYPE /SUBTYPE=subtype Specify the MIME subtype. /TYPE /TYPE=type Specify the MIME type. 3 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. 2 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. 3 /CLEAR Clear the node-specific, in-memory cache of counters. Syntax COUNTERS/CLEAR Command Qualifiers Defaults /ASSOCIATIONS /ASSOCIATIONS /CHANNELS /CHANNELS 4 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. 4 Parameters None. 4 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. 4 Command_Qualifiers /ASSOCIATIONS /ASSOCIATIONS (default) /NOASSOCIATIONS This qualifier specifies whether to clear the in-memory cache of association counters. /CHANNELS /CHANNELS (default) /NOCHANNELS This qualifier specifies whether to clear the in-memory cache of channel counters. 3 /CRDB Create a cluster-wide, on-disk database of association and channel counters. Syntax COUNTERS/CRDB Command Qualifiers Defaults None. None. 4 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. 4 Parameters None. 4 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. 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 4 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. 4 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. 4 Command_Qualifiers /ASSOCIATIONS /ASSOCIATIONS (default) /NOASSOCIATIONS This qualifier specifies whether to show the in-memory cache of association counters. /CHANNELS /CHANNELS (default) /NOCHANNELS This qualifier specifies whether to show the in-memory cache of channel counters. /HEADERS /HEADERS (default) /NOHEADERS Controls whether or not a header line describing each column in the table of counters is output. /OUTPUT /OUTPUT=file-spec Direct the output to the specified file. By default the output appears on your display. /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. 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 ... $ 3 /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. 4 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. 4 Parameters None. 4 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. 3 /TODAY Display PMDF's count of the number of messages processed so far today. Syntax COUNTERS/TODAY Command Qualifiers Defaults None. None. 4 Restrictions WORLD privilege is required. 4 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. 4 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 $ 2 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 3 Restrictions None. 3 Prompts Input file: input-file-spec[,...] Output database: output-database-spec 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. 3 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. 3 Command_Qualifiers /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. 3 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 2 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. 3 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. 3 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. 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 " 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 " set foo-list public db> show foo-list attributes Key Value ----------- ----------------------------- foo-list 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. 3 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 " add foo-list " List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: 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 " add mem-list " add foo-list " add sample-list " set foo-list public db> exit 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 " add friends-list-stage2 " 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. 3 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. 3 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 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 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. 3 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. 4 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. 4 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. 4 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> 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. 4 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>".) 5 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. 5 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> 4 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. 4 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. 4 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. 4 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. 4 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 *". 4 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> 4 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. 4 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" 4 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. 4 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> < 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. 2 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 3 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. 3 Prompts Input file: input-file-spec Output file: output-file-spec 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). 3 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. 3 Positional_Qualifiers /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. 3 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. 2 DECODE Decodes a file which was previously encoded with the ENCODE utility or encoded using a MIME aware mail agent. 3 Restrictions None. Syntax PMDF DECODE encoded-file-spec output-file-spec Qualifiers Defaults /ENCODING=type None /FILENAME /NOFILENAME /HEADER /NOHEADER 3 Prompts Input file: encoded-file-spec Output file: output-file-spec 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. 3 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. 3 Qualifiers /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. /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. /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. 3 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. 2 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. 3 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 $ 3 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. 4 Directive_Applicability The 1-PATTERN, 2-PATTERN, 3-PATTERN, and ACCEPT items determine whether or not the directive applies to a particular message. In most cases a string comparison is performed between the patterns 1-PATTERN, 2-PATTERN, and 3-PATTERN and, respectively, the FROM:, TO: and SUBJECT: fields that would be seen in VMS MAIL. Note that these fields do not correspond exactly to the RFC 822 header lines of the same name; a complex set of mapping criteria are used to convert the RFC 822 header lines into VMS MAIL headers. Moreover, it is possible to rearrange the strings the patterns are compared against in complex ways using the 1, 2, and 3 actions. The comparison is not case sensitive. The usual OpenVMS wildcard characters, * and %, can be used in the patterns. The pattern * will match anything. For partial matches, the pattern * is used to indicate a field that should be ignored. The default string comparison operations can optionally be replaced with numeric comparisons. This is controlled by the second and third characters in the ACCEPT item. If present, both the column values and the comparison strings are converted to integer values. The match fails if the conversion fails. A single asterisk in the comparison string disables comparisons for that column completely. Once converted, the ACCEPT item determines the type of comparison: > Match if comparison string is greater than the column value. >= Match if comparison string is greater than or equal to the column value. < Match if comparison string is less than the column value. <= Match if comparison string is less than or equal to the column value. <> Match if comparison string is not equal to the column value. = Match if comparison string is equal to the column value. Once the comparisons, string or numeric, have been performed, the ACCEPT item determines if the directive should be applied to the message. Only the first two characters of ACCEPT are significant at this point. The first character should be one of the following: A Always apply this directive; ignore the results of the comparisons. Note that this directive does not count as an applied directive (see the O, B, S, and E actions below). X Never apply this directive; ignore the results of the comparisons. T, Apply this directive if the patterns all matched. Y F, Apply this directive if the patterns did not all match (i.e. N some or all failed). P Apply this directive if at least one of the patterns matched (i.e. some or all matched). In this case the pattern * is not treated as a match. O, Apply this directive if the patterns all matched and ? no previous directive has been applied to the message. Directives that used the A accept item don't count as having been applied. DELIVER can also be told to forget the fact the some directive has been applied by clearing the R flag with the R action. B, Apply this directive if a pattern did not match and no Q previous directive has been applied to the message. Directives that used the A accept item don't count as having been applied. S Apply this directive if at least one pattern matched and no previous directive has been applied to the message. Directives that used the A accept item don't count as having been applied. E This directive applies if all the patterns matched or no other directive has been applied so far. Directives that used the A accept item do not count as having been applied. Any other character is interpreted as an X. If the second character is an asterisk, *, then the ACCEPT item is modified in that it does not count as an applied directive. This makes it possible for any ACCEPT item to be treated like the A item (which never sets the applied flag). Directives are tested in the order they appear in the MAIL.DELIVERY file. For example, suppose JIM@EXAMPLE.COM sends a message to BOB@SAMPLE.COM. The subject line of the message is "Re: Mooses". BOB's MAIL.DELIVERY file contains the following lines (the function of the last two columns of each line, the ACTION and 1-PARAMETER items, is described later): "*FRED@SAMPLE.COM*" * * T Q "*JIM@EXAMPLE.COM*" * * T A JIM.LOG * * *mooses* T A MOOSE.LOG * * * O A OTHER.LOG * * * A D The first directive does not apply since the message is not from FRED@SAMPLE.COM. The second and third directives both apply since JIM@EXAMPLE.COM is the sender and the subject line contains the string "mooses". The fourth directive's patterns all match, but a preceeding directive has applied, so it does not itself apply. The final directive applies since it would apply to any message. The result is that three directives apply to this message, and thus three separate actions are taken in processing the message. Note that the patterns "*FRED@SAMPLE.COM*" and "*JIM@EXAMPLE.COM*" are useful since personal name fields and possibly other addresses and source routes can appear in addresses; (e.g., the address FRED@SAMPLE.COM might actually appear as "Fred Smith "). 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. 4 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 4 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: ! Messages with subject "Loopback" are returned to sender "*JIM@EXAMPLE.COM*" * "Loopback" T D * * "Loopback" O F """''F$ELEMENT(0,"" "",QFROM)'""" * * "Loopback" T Q ! All other messages are logged * * * A E @LOGALL.COM ! Just log messages from TERRY@ISI.COM "*TERRY@ISI.COM*" * * T Q ! Just log archive messages from myself "*JIM@EXAMPLE.COM*" * "Archives" T Q ! Save messages from BOB@STATEU.COM in a special file "*BOB@SAMPLE.COM*" * * T A BOB.LOG ! Then deliver anything that gets this far * * * 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. 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. 3 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. 3 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. 2 DIRECTORY The former PMDF DIRECTORY directory coordination utilities have been superseded by the new PMDF DIRSYNC utilities. 2 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. 3 /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 4 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. 4 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. 4 Command_Qualifiers /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. /DEBUG /DEBUG /NODEBUG (default) The option enables debugging. /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. /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. /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. /DOMAIN /DOMAIN=cc-domain This qualifier is valid when /SOURCE=CCMAIL. This optional qualifier specifies the pseudodomain name associated with the cc:Mail users. /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. /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. /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. /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. /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. /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. /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. /VERBOSE /VERBOSE=value The qualifier is valid in conjunction with /SOURCE=LDAP or /DESTINATION=LDAP. value is an integer specifying the level of verbosity. 3 /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 4 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. 4 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. 4 Command_Qualifiers /RECIPE /RECIPE=file-spec This required qualifier specifies the recipe file to use for converting the input LDIF file to the output LDIF file. 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. 4 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. 4 Description The PMDF DIRSYNC/DIFFERENCES command performs differencing of two LDIF files and generates a delta LDIF file of the differences. 4 Command_Qualifiers /DEBUG /DEBUG /NODEBUG (default) The option enables debugging. /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. /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. /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. 3 DIRSYNC 4 /DIRBOT Run a SYNC_DIRBOT channel. Syntax PMDF DIRSYNC/DIRBOT Command Qualifiers Defaults /LEFTOVERS See text /NOUPDATE=dirlist See text /UPDATE=dirlist See text 5 Parameters None. 5 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. 5 Command_Qualifiers /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. /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,.... 2 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. 3 Restrictions None. 3 Prompts Input database: input-database-spec[,...] Output filee: output-file-spec 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. 3 Description The PMDF DUMPDB utility writes the entries in a PMDF CRDB database to a flat ASCII file. 3 Examples The following command illustrates dumping the PMDF alias database to SYS$OUTPUT. $ PMDF DUMPDB PMDF_ALIAS_DATABASE !!PMDF CRDB/QUOTED/REMOVE/NOLONG_RECORDS PMDF_ALIAS_DATABASE adam.smith asmith@example.com bob.brown bbrown@example.com 2 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. 3 Restrictions None. Syntax PMDF ENCODE input-file-spec encoded-file-spec Qualifiers Defaults /ENCODING=type /ENCODING=BASE64 /FILENAME /NOFILENAME /HEADER /NOHEADER 3 Prompts Input file: input-file-spec Output file: encoded-file-spec 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. 3 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. 3 Qualifiers /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. /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. /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. 3 Examples See the example provided for the PMDF DECODE command. In that example, the use of PMDF ENCODE is also demonstrated. 2 FOLDER Place a message file into a VMS MAIL mail folder. 3 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 3 Prompts Message file: message-file-spec[,...] Folder: folder Mail file: mail-file-spec 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. 3 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. 3 Qualifiers /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. /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. /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. /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. /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. 2 FORWARD Sets a forwarding address in the PMDF alias database. 3 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 3 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, @. 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. 3 Qualifiers /ADD Add the entry to the database. This is the default action. /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. /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. /DELETE The /DELETE qualifier tells FORWARD to delete the specified alias. No parameter is allowed if this qualifier is used. 3 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. 2 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 3 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. 3 Prompts Input file: G3-file-spec Output file: DDIF-file-spec 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. 3 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. 3 Command_Qualifiers /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. /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. /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. /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. 3 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 2 INSTALL Install or deinstall PMDF images and databases. Syntax PMDF INSTALL operation-type Command Qualifiers Defaults None. None. 3 Restrictions Requires CMKRNL privilege. 3 Prompts Operation: operation-type 3 Parameters operation-type The type of operation to perform. May be one of ADD, CREATE, DELETE, LIST, REMOVE, or REPLACE. 3 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. 3 Examples The following command may be used to deinstall any installed PMDF images: $ PMDF INSTALL DELETE 2 KILL Kill all PMDF component processes. Syntax PMDF KILL Command Qualifiers Defaults None. None. 3 Restrictions Must have privileges sufficient to perform a STOP/ID upon the processes in question. 3 Parameters None. 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. 2 LICENSE Activate or deactivate PMDF bundle licenses on a node. Syntax PMDF LICENSE operation-type Command Qualifiers Defaults None. None. 3 Restrictions Requires SYSNAM and CMEXEC privileges. 3 Prompts Operation: operation-type 3 Parameters operation-type The type of operation to perform. May be one of LOAD or UNLOAD. 3 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. 3 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 2 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. 3 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 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 3 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. 4 CONFIRM Confirm a command from a previous message. Syntax CONFIRM cookie 5 Parameters cookie Required cookie string to confirm the command. 5 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. 5 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. 4 DIRECTORY Obtain a directory listing of the available files. Syntax DIRECTORY [file-spec] 5 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. 5 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...] 5 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. 5 /LIST Obtain a listing of the available mailing lists. Syntax DIRECTORY/LIST [list-spec] 6 Parameters list-spec Optional mailing list specification indicating which mailing lists to obtain a listing of. OpenVMS wild cards are supported. 6 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. 6 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. 4 ENCODING Specify the file encoding to use. Syntax ENCODING encoding 5 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). 5 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.). 5 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. 5 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. 4 END Terminates command processing. Syntax END 5 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. 4 HELP Obtain help on using the mail server. Syntax HELP 5 Description The HELP command returns a description of the commands recognized by the mail server. 5 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). 4 INDEX Obtain an index of the available files. Syntax INDEX 5 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. 5 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. 4 LISTS Obtain an index of the available mailing lists. Syntax LISTS 5 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.). 5 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. 4 MAXIMUM Set the maximum message size; larger messages will be split into several smaller messages. Syntax MAXIMUM size-units size-value 5 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. 5 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. 5 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. 4 MODE Set the file reading mode. Syntax MODE mode 5 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. 5 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. 5 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. 5 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. 4 PURGE 5 /LIST Remove comment lines from a mailing list file. Syntax PURGE/LIST list-name 6 Parameters list-name Required parameter specifying the name of the list from which comment lines are to be removed. Wildcards are not allowed. 6 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. 6 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. 6 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. 4 SEND Retrieve one or more files from the server. Syntax SEND file-spec extension Qualifiers Defaults /ENCODING=encoding None /MODE=mode /MODE=TEXT 5 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. 5 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. 5 Qualifiers /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. /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. 5 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 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 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). 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 6 Parameters list-name Required parameter specifying the name of the list whose subscribers are to be returned. Wild cards are not allowed. 6 Description The SEND/LIST command responds with a message containing a list of the current subscribers to a given mailing list. 6 Qualifiers /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. 6 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. 4 SUBSCRIBE Subscribe to a mailing list. Syntax SUBSCRIBE list-name [[personal-name] address] 5 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. 5 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. 5 Examples 1.SUBSCRIBE LOCAL-NEWS This example shows the command to SUBSCRIBE oneself to the list LOCAL-NEWS. 2.SUBSCRIBE LOCAL-NEWS "John Doe" This example shows the user jdoe@example.com subscribing the address "John Doe" 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. 5 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. 4 UNSUBSCRIBE Unsubscribe from a mailing list. Syntax UNSUBSCRIBE list-name [address] 5 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. 5 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. 5 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. 2 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 3 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. 3 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. 3 Qualifiers /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /FILENAME /FILENAME /NOFILENAME (default) The /FILENAME qualifier specifies that the original file name should be included in the message headers. /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". /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. /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. /LIST /LIST (default) /NOLIST When specified, /NOLIST becomes the default for the ANSWER and REPLY commands. /MESSAGE /MESSAGE (default) See /ENTIRE. /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. /PART See /ENTIRE. /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. /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. /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. /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. /REPEATED /REPEATED (default) /NOREPEATED Specify /REPEATED to imply /REPEATED for all REPLY/ALL commands; specify /NOREPEATED to imply /NOREPEATED for all REPLY/ALL commands. /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. /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. /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. /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. /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. /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. /SSUBADDRESS /SSUBADDRESS=subaddress Specify a subaddress to attach to your address in message copies sent to you via the COPY_SELF mechanism. /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. /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. /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. /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. /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. 3 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. 2 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 3 RESTRICTIONS Operating system privileges are required to run this utility. 3 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. 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. 3 Command_Qualifiers /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 /DEBUG /DEBUG /NODEBUG (default) Debug output can be enabled with the /DEBUG qualifier. /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). /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). /DSTUSERNAME /DSTUSERNAME=dest-username The username to use in the destination message store. If not specified, the source store username is used. /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. /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. /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. /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. /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. /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. /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. /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. /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). /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). /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. /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. 3 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. 2 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. 3 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. 4 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 3 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. 4 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. 2 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 3 Restrictions All operations other than setting or verifying one's own password, or showing one's own password database entries, require privileges. 3 Prompts New password: password 3 Parameters password The password to set. Note that APOP passwords are case sensitive. 3 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. 3 Command_Qualifiers /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. /CREATE Create a PMDF password database entry. This qualifier is the default. /DELETE Delete a user/password entry pair from the PMDF password database. /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. /SHOW Show a user/service/password-method entry in the PMDF password database. Note that this commmand does not show the password value. /TEST Compare a specified password against a password stored in the PMDF password database. /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. 3 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=* 3 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. 2 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. 3 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 4 Parameters username Username to associate with the account or accounts being created. 4 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. 4 Command_Qualifiers /CONFIRM /CONFIRM /NOCONFIRM (default) Prompt for positive confirmation before carrying out the indicated operation. /NOCONFIRM is the default behavior. /DOMAIN Create a new user domain. This switch can not be used in conjunction with any of the other ADD command qualifiers. /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. /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. /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). /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. /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. /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. /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. /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. /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). 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 3 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 4 Parameters from-username The name of the popstore account to copy. to-username The name of the popstore account or accounts to create. 4 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. 4 Command_Qualifiers /CONFIRM /CONFIRM /NOCONFIRM (default) Prompt for positive confirmation before carrying out the indicated operation. /NOCONFIRM is the default behavior. /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. /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. /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. /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). /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. /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. /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. /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. /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. /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). 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" 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 4 Parameters username Name of the account to delete. Can contain wild card characters. 4 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. 4 Command_Qualifiers /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. /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. /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. /MESSAGES When the /MESSAGES qualifier is specified, only the user's messages are deleted or returned. The account itself is not deleted. /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. /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. 4 Examples To delete the accounts JDOE and BSMITH, issue the command popstore> DELETE JDOE,BSMITH 3 EXIT Exit the utility. Syntax EXIT Command Qualifiers Defaults None 4 Parameters None. 4 Description The EXIT command exits the utility. 3 FORWARD Establish a forwarding address. Syntax FORWARD username forward-to-address Command Qualifiers Defaults /OVERRIDE /OVERRIDE 4 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". 4 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. 4 Command_Qualifiers /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. 3 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 4 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. 4 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. 4 Command_Qualifiers /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. /CONFIRM /CONFIRM /NOCONFIRM (default) Prompt for positive confirmation before carrying out the indicated operation. /NOCONFIRM is the default behavior. /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. /FORMAT_FILE /FORMAT_FILE=file-spec Specify a formatting file to use to format the output of GROUP/LIST command. /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. /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. /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. /OUTPUT /OUTPUT=file-spec Write the output to the specified file rather than to the terminal. /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. /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. 3 LOGIN Activate management privileges. Syntax LOGIN [username] Command Qualifiers Defaults None 4 Parameters username Name of the account under which to log in. 4 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. 4 Examples To log in to the account BOB, issue the command popstore> LOGIN BOB Password: santaclaus Login succeeded; management capabilities enabled 3 LOGOUT Deactivate management privileges. Syntax LOGOUT Command Qualifiers Defaults None 4 Parameters None. 4 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. 3 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 4 Parameters username Name of the account for which to make the modifications. Can contain wild card characters. 4 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. 4 Command_Qualifiers /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. /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. /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. /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. /LAST_CONNECT Clear the user's last connect time field. /LAST_DISCONNECT Clear the user's last disconnect time field. /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. /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. /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). /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. /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. /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. /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. /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. /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. /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). /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. /RECEIVED_MESSAGES /RECEIVED_MESSAGES=value Set the cumulative count of received messages to the specified, integer value. /TOTAL_CONNECT /TOTAL_CONNECT=value Set the user's total connect field to the specified, integer value. /TOTAL_CONNECTIONS /TOTAL_CONNECTIONS=value Set the user's count of total connections to the specified, integer value. 4 Examples In the following example, the quota and password fields are changed for the user JDOE: popstore> MODIFY JDOE/PASSWORD="TodaY"/QUOTA=20000 3 NOFORWARD Remove a forwarding address. Syntax NOFORWARD username[,...] Command Qualifiers Defaults None 4 Parameters username Username for which to remove the forwarding. 4 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. 3 QUIT Exit the utility. Syntax QUIT Command Qualifiers Defaults None 4 Parameters None. 4 Description The QUIT command exits the utility. The QUIT command is a synonym for the EXIT command. 3 RENAME Change the username associated with an account (popstore only). Syntax RENAME old-username new-username Command Qualifiers Defaults /CONFIRM /LOG /PROMPT 4 Parameters old-username The old name of the account. new-username The new name for the account. 4 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. 4 Command_Qualifiers /CONFIRM /CONFIRM /NOCONFIRM (default) Prompt for positive confirmation before carrying out the indicated operation. /NOCONFIRM is the default behavior. /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. /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. 4 Examples To rename the popstore account JDOE to JANEDOE, issue the command: popstore> RENAME JDOE JANEDOE 3 SET 4 DOMAIN Select the user domain to manage. Syntax SET DOMAIN domain-name Command Qualifiers Defaults None 5 Parameters domain-name Name of the user domain to manage. 5 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> 4 STORAGE_UNITS Set the units used to measure byte-counted values. Syntax SET STORAGE_UNITS type Command Qualifiers Defaults None 5 Parameters type Type of units to use. Must be one of BYTES, KBYTES, MBYTES, or GBYTES. 5 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 4 TIME_UNITS Set the units used to measure time-valued fields. Syntax SET TIME_UNITS type Command Qualifiers Defaults None 5 Parameters type Type of units to use. Must be one of SECONDS, MINUTES, HOURS, or DAYS. 5 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 3 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 4 Parameters username Names of the accounts for which to display information. Wild cards are permitted. 4 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. 4 Command_Qualifiers /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. /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. /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. /DOMAINS Generate a list of defined user domains. By default, the formatting file POPMGR_DOMAINS.TXT is used to format the output. /FORMAT_FILE /FORMAT_FILE=file-spec Specify a formatting file to use to format the output. /FORWARDINGS Display information about established forwarding addresses. By default, the formatting file POPMGR_FORWARD.TXT is used to format the output. /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. /GROUP /GROUP=name Confine the listing to the specified management group and its subgroups. /MESSAGES Display information on the users' messages. By default, the formatting file POPMGR_MESSAGE.TXT is used to format the display. /OUTPUT /OUTPUT=file-spec Write the output to the specified file rather than to the terminal. /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. 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 3 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 4 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. 4 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. 4 Command_Qualifiers /BLOCK_DAYS Test the COMPUTE_BLOCK_DAYS subroutine from the shareable image image-spec. /CONNECT Test the COMPUTE_CONNECT subroutine from the shareable image image-spec. /MESSAGE_MAPPING Test the MAP_MESSAGE_FILENAME subroutine from the shareable image image-spec. /PROFILE_MAPPING Test the MAP_PROFILE_FILENAME subroutine from the shareable image image-spec. /PATHS List the files from the directory trees specified in the path file path-file-spec. 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) $ 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> 2 PROCESS List currently executing PMDF jobs. Syntax PMDF PROCESS [node] Command Qualifiers Defaults /MEMORY See text 3 Restrictions Requires WORLD privilege in order to see all processes. 3 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. 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. 3 Command_Qualifiers /MEMORY Show the amount of memory being used by the processes. 3 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 HIB 6 1824 0 00:00:02.74 4921 124 226002B2 HIB 6 4412 0 00:00:10.04 15578 554 226002B3 HIB 6 5249 0 00:00:28.85 22094 1246 226002B6 HIB 6 166 0 00:00:01.62 5248 198 2 PS Convert text and Runoff .MEM output files to PostScript. 3 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 3 Prompts Input file: input-file-spec Output file: output-file-spec 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. 3 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. 3 Qualifiers /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). /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. /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. /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. /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. /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 /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 /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. /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. /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. /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). /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. /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). /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. /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. /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. /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. /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. /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). /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. /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. 3 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. 2 PSWRAP Convert a PostScript file to a file which can be mailed without requiring encoding or other special handling. 3 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 3 Prompts Input file: input-file-spec Output file: output-file-spec 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. 3 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. 3 Qualifiers /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. 3 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""" 2 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. 2 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. 3 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. 4 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. 4 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. 3 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.) 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. 4 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. 5 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. 5 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. 5 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 4 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. 5 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. 4 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). 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. 3 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. 4 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. 4 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. 5 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: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: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. 6 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:OLDMAIL.MAI#[], remoteVMS {vax.example.com}#DUA2: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. 5 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. 3 OpenVMS_Notes In the following subsections, some issues specific to Pine on OpenVMS are discussed. 4 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. 4 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. 4 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. 3 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. 4 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. 4 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. 4 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. 5 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. 2 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 3 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. 3 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. 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. 3 Command_Qualifiers /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). /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. /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. /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. /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. /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. /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. 3 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" /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 2 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. 3 User_Mode_Commands 4 DATE Show the current date and time. Syntax DATE Command Qualifiers Defaults None. None. 5 Parameters None. 5 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. 5 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> 4 DIRECTORY List currently queued messages. Syntax DIRECTORY [type] Command Qualifiers Defaults None. None. 5 Parameters type An optional parameter specifying the type of messages to display (e.g., FAX, INTERNET, CC:MAIL, etc.). Wild cards are permitted. 5 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. 5 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. 4 EDIT_FAX Edit a queued PMDF-FAX message. Syntax EDIT_FAX [message-id[,...]] Qualifiers Defaults /ALL /NOALL /CONFIRM /NOCONFIRM /LOG /LOG 5 Parameters message-id A comma separated list of one or more message identification numbers shown with a previous DIRECTORY command. Ranges are allowed. 5 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. 5 Qualifiers /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. /CONFIRM /CONFIRM /NOCONFIRM (default) When /CONFIRM is specified, you will prompted to confirm each message edit operation. /LOG /LOG (default) /NOLOG Specifies whether informational messages for each message edit operation are generated. 4 EXIT Exit the PMDF QM utility. Syntax EXIT Command Qualifiers Defaults None. None. 5 Parameters None. 5 Description The EXIT and QUIT commands exit the PMDF QM utility. 4 HELP Obtain help on the use of PMDF QM. Syntax HELP [topic] Command Qualifiers Defaults None. None. 5 Parameters topic Optional topic to obtain help on. 5 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. 4 HISTORY Display message history information. Syntax HISTORY [message-id[,...]] Command Qualifiers Defaults /ALL /NOALL /CONFIRM /NOCONFIRM 5 Parameters message-id A comma separated list of one or more message identification numbers shown with a previous DIRECTORY command. Ranges are allowed. 5 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. 5 Qualifiers /ALL /ALL /NOALL (default) Display history information for all messages shown with the last DIRECTORY command. /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. 4 QUIT Exit the PMDF QM utility. Syntax QUIT Command Qualifiers Defaults None. None. 5 Parameters None. 5 Description The EXIT and QUIT commands exit the PMDF QM utility. 4 READ Read a message. Syntax READ [message-id[,...]] Qualifiers Defaults /ALL /NOALL /CONFIRM /NOCONFIRM /CONTENT /CONTENT 5 Parameters message-id A comma separated list of one or more message identification numbers shown with a previous DIRECTORY command. Ranges are allowed. 5 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. 5 Qualifiers /ALL /ALL /NOALL (default) Display all messages shown with the last DIRECTORY command. /CONFIRM /CONFIRM /NOCONFIRM (default) When /CONFIRM is specified, you will prompted to confirm whether or not to display each selected message. /CONTENT /CONTENT (default) /NOCONTENT Specify /NOCONTENT if you only want to read the message envelope and header. 5 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 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> 4 RETURN Return a message to its sender. Syntax RETURN [message-id[,...]] Qualifiers Defaults /ALL /NOALL /CONFIRM /NOCONFIRM /LOG /LOG 5 Parameters message-id A comma separated list of one or more message identification numbers shown with a previous DIRECTORY command. Ranges are allowed. 5 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. 5 Qualifiers /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. /CONFIRM /CONFIRM /NOCONFIRM (default) When /CONFIRM is specified, you will be prompted to confirm each message return operation. /LOG /LOG (default) /NOLOG Specifies whether informational messages for each message return operation are generated. 4 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 5 Restrictions Cannot be used from a captive account. 5 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. 5 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. 5 Qualifiers /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. /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. /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). /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. /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. /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. 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. 3 Maintenance_Mode_Commands 4 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 5 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. 5 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. 5 Command_Qualifiers /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). /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. /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. /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. /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. /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. /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. 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. qm.maint> CLEAN/MIN_LENGTH=11/SUBJECT="real estate" /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 4 COUNTERS 5 CLEAR Clear the node-specific, in-memory cache of counters. Syntax COUNTERS CLEAR Command Qualifiers Defaults /ASSOCIATIONS /ASSOCIATIONS /CHANNELS /CHANNELS 6 Parameters None. 6 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. 6 Command_Qualifiers /ASSOCIATIONS /ASSOCIATIONS (default) /NOASSOCIATIONS This qualifier specifies whether to clear the in-memory cache of association counters. /CHANNELS /CHANNELS (default) /NOCHANNELS This qualifier specifies whether to clear the in-memory cache of channel counters. 5 CRDB Create a cluster-wide database of accumulated association and channel counters. Syntax COUNTERS CRDB Command Qualifiers Defaults None. None. 6 Parameters None. 6 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. 5 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 6 Parameters channel Optional channel name indicating the channel(s) for which to show counters. May contain wildcards. 6 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. 6 Command_Qualifiers /HEADER /HEADER (default) /NOHEADER Controls whether or not a header line describing each column in the table of counters is output. /OUTPUT /OUTPUT=file-spec Direct the output to the specified file. By default the output appears on your display. /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. /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. 6 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> 5 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 6 Parameters None. 6 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. 6 Command_Qualifiers /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. 5 TODAY Display PMDF's count of the number of messages processed so far today. Syntax COUNTERS TODAY Command Qualifiers Defaults None. None. 6 Description PMDF's count of the number of messages processed so far today may be displayed with the COUNTERS TODAY command. 6 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> 4 DATE Show the current date and time. Syntax DATE Command Qualifiers Defaults None. None. 5 Parameters None. 5 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. 5 Examples qm.maint> DATE Fri, 15 Nov 2012 13:34:16 PST qm.maint> 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 5 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. 5 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). 5 Qualifiers /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. /CHANNEL /CHANNEL=name Specifies the name of the channel from which to delete messages. Wildcards are not permitted. /CONFIRM /CONFIRM /NOCONFIRM (default) When /CONFIRM is specified, you will be prompted to confirm each message delete operation. /LOG /LOG (default) /NOLOG Specifies whether informational messages for each message delete operation are generated. 5 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> 4 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 5 Parameters channel-name An optional parameter specifying the channel for which to obtain a directory listing. Wildcards are permitted. 5 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. 5 Qualifiers /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. /DIRECTORY_TREE See /DATABASE /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. /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. /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=<>. /HELD /HELD /NOHELD (default) Show information only for those channels with held messages. /MATCH /MATCH=keyword This qualifier controls the interpretation of the /FROM and /TO qualifiers. Valid keywords are AND and OR. /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 /TO /TO=address This qualifier may be used to request showing only those messages with the specified envelope To: address. This qualifier implies /ENVELOPE. /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. 5 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. 4 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 5 Parameters message-id[,...] A comma separated list of one or more message identification numbers shown with a previous DIRECTORY command. Ranges are allowed. 5 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. 5 Qualifiers /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. /CHANNEL /CHANNEL=name Specifies the name of the channel from which to edit messages. Wildcards are not permitted. /CONFIRM /CONFIRM /NOCONFIRM (default) When /CONFIRM is specified, you will prompted to confirm each message edit operation. /LOG /LOG (default) /NOLOG Specifies whether informational messages for each message edit operation are generated. 4 EXIT Exit the PMDF QM utility. Syntax EXIT Command Qualifiers Defaults None. None. 5 Parameters None. 5 Description The EXIT and QUIT commands exit the PMDF QM utility. 4 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 5 Parameters channel-name An optional parameter specifying the channel for which to obtain a directory listing. Wildcards are permitted. 5 Description The HELD command is a synonym for the DIRECTORY/HELD command. See the description of the DIRECTORY command for further information. 5 Qualifiers /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. /DIRECTORY_TREE See /DATABASE /ENVELOPE Display envelope To: and From: for the held messages listed. /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. /HELD /HELD (default) /NOHELD Show information only for those channels with held messages. 4 HELP Obtain help on the use of PMDF QM. Syntax HELP [topic] Command Qualifiers Defaults None. None. 5 Parameters topic Optional topic to obtain help on. 5 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. 4 HISTORY Display message history information. Syntax HISTORY [message-id[,...]] Command Qualifiers Defaults /ALL /NOALL /CHANNEL=name None /CONFIRM /NOCONFIRM 5 Parameters message-id[,...] A comma separated list of one or more message identification numbers shown with a previous DIRECTORY command. Ranges are allowed. 5 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. 5 Qualifiers /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. /CHANNEL /CHANNEL=name Specifies the name of the channel for which to show message histories. Wild cards are not permitted. /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. 4 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 5 Parameters message-id[,...] A comma separated list of one or more message identification numbers shown with a previous DIRECTORY command. Ranges are allowed. 5 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. 5 Qualifiers /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. /CHANNEL /CHANNEL=name Specifies the name of the channel from which to hold messages. Wildcards are not permitted. /CONFIRM /CONFIRM /NOCONFIRM (default) When /CONFIRM is specified, you will be prompted to confirm each message hold operation. /LOG /LOG (default) /NOLOG Specifies whether informational messages for each message hold operation are generated. 5 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> 4 QUIT Exit the PMDF QM utility. Syntax QUIT Command Qualifiers Defaults None. None. 5 Parameters None. 5 Description The EXIT and QUIT commands exit the PMDF QM utility. 4 READ Display message envelope and header information. Syntax READ [message-id[,...]] Command Qualifiers Defaults /ALL /NOALL /CHANNEL=name None /CONFIRM /NOCONFIRM /CONTENT /NOCONTENT 5 Parameters message-id[,...] A comma separated list of one or more message identification numbers shown with a previous DIRECTORY command. Ranges are allowed. 5 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. 5 Qualifiers /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. /CHANNEL /CHANNEL=name Specifies the name of the channel from which to display messages. Wildcards are not permitted. /CONFIRM /CONFIRM /NOCONFIRM (default) When /CONFIRM is specified, you will be prompted to confirm whether or not to display each selected message. /CONTENT /CONTENT /NOCONTENT (default) When /CONTENT is specified, the content of the message will also be shown. 5 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 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> 4 RELEASE Release one or more held messages. Syntax RELEASE [message-id[,...]] Command Qualifiers Defaults /ALL /NOALL /CHANNEL=name None /CONFIRM /NOCONFIRM /LOG /LOG 5 Parameters message-id[,...] A comma separated list of one or more message identification numbers shown with a previous DIRECTORY/HELD command. Ranges are allowed. 5 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. 5 Qualifiers /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. /CHANNEL /CHANNEL=name Specifies the name of the channel from which to release messages. Wildcards are not permitted. /CONFIRM /CONFIRM /NOCONFIRM (default) When /CONFIRM is specified, you will be prompted to confirm each message release operation. /LOG /LOG (default) /NOLOG Specifies whether informational messages for each message release operation are generated. 5 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> 4 RETURN Return a message to its sender. Syntax RETURN [message-id[,...]] Command Qualifiers Defaults /ALL /NOALL /CHANNEL=name None /CONFIRM /NOCONFIRM /LOG /LOG 5 Parameters message-id[,...] A comma separated list of one or more message identification numbers shown with a previous DIRECTORY command. Ranges are allowed. 5 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. 5 Qualifiers /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. /CHANNEL /CHANNEL=name Specifies the name of the channel from which to return messages. Wildcards are not permitted. /CONFIRM /CONFIRM /NOCONFIRM (default) When /CONFIRM is specified, you will be prompted to confirm each message return operation. /LOG /LOG (default) /NOLOG Specifies whether informational messages for each message return operation are generated. 4 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 5 Restrictions Cannot be used from a captive account. 5 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. 5 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. 5 Qualifiers /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. /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. /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). /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. /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. /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. 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. 4 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 5 Parameters None. 5 Description Display a summary listing of message files. 5 Command_Qualifiers /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. /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. /HELD /HELD /NOHELD (default) Controls whether or not to include counts of .HELD messages in the output. /TRAILING /TRAILING (default) /NOTRAILING Controls whether or not a trailing line with totals is displayed at the end of the summary. 5 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> 4 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 5 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. 5 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. 5 Command_Qualifiers /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. /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. /MIN_COUNT /MIN_COUNT=n By default, a string must occur at least 2 times, /MIN_COUNT=2, in order to be displayed. /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. /TOP /TOP=n By default, the top 20 most frequently occurring fields are shown, (/TOP=20). /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. 5 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 $$$ 4 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. 5 Parameters type The type of view to use: DIRECTORY_TREE or DATABASE 5 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. 2 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 3 Restrictions Privileges sufficient to read files in the PMDF channel queue directory tree, as well as read the PMDF queue cache database, are required. 3 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. 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. 3 Command_Qualifiers /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. /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. /MIN_COUNT /MIN_COUNT=n By default, a string must occur at least 2 times, /MIN_COUNT=2, in order to be displayed. /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. /TOP /TOP=n By default, the top 20 most frequently occurring fields are shown, (/TOP=20). /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. 3 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 $$$ 2 RESTART Restart detached PMDF processes. Syntax PMDF RESTART [component] Command Qualifiers Defaults /CLUSTER /NODE /NODE[=node] /NODE /ID=pid /NODE 3 Restrictions SYSLCK privilege is required to restart detached PMDF processes. 3 Prompts Comcomponent 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. 3 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. 3 Command_Qualifiers /CLUSTER When the /CLUSTER qualifier is specified, the RESTART command will affect all nodes in the cluster. /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. /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. 3 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 3 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. 2 RETURN Return (bounce) a mail message to its originator. Syntax PMDF RETURN message-file-spec Command Qualifiers Defaults None. None. 3 Restrictions Postmaster privileges (write access to the PMDF channel queues) are required to use this utility. 3 Parameters message-file-spec File specification of the message file to return. The specification may include wildcards. 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. 2 SEND Sends a mail message using PMDF. 3 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 3 Prompts Message file: message-file-spec[,...] Address: recipient-address[,...] 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. 3 Description The SEND utility provides a simple easy-to-use interface to PMDF for sending messages. 3 Qualifiers /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. /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. /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. /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. /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. /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). /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. /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. /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,...). /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. /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. /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. /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. /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. /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. /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. /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. /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. /MULTIPART This qualifier may be used to tell PMDF SEND to always format the messages it sends as multipart MIME messages. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. 3 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. 2 SHUTDOWN Shut down detached PMDF processes. Syntax PMDF SHUTDOWN [component] Command Qualifiers Defaults /CLUSTER /NODE /NODE[=node] /NODE /ID=pid /NODE 3 Restrictions SYSLCK privilege is required to shut down detached PMDF processes. 3 Prompts Comcomponent 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. 3 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. 3 Command_Qualifiers /CLUSTER When the /CLUSTER qualifier is specified, the SHUTDOWN command will affect all nodes in the cluster. /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. /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. 3 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 3 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. 2 STARTUP Start up detached PMDF processes. Syntax PMDF STARTUP component Command Qualifiers Defaults None. None. 3 Restrictions SYSLCK privilege is required to start up detached PMDF processes. 3 Prompts Comcomponent 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. 3 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. 3 Examples The following command starts the PMDF Service Dispatcher: $ PMDF STARTUP DISPATCHER 2 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. 3 /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 4 Restrictions This utility is supplied only with the PMDF-LAN optional layered product. 4 Prompts Address: test-address Time: test-time 4 Parameters test-address Optional address to test. test-time Optional time to test. 4 Description Test a cc:Mail channel's transformation of an address or time. 4 Command_Qualifiers /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. /BACKWARD /BACKWARD /FORWARD (default) The testing process can test conversion of backwards or forwards pointing addresses; the default is forward pointing addresses. /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. /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. /ENVELOPE /ENVELOPE /HEADER (default) The testing process can test envelope or header addresses; the default is header addresses. /TIME The testing process by default tests address transformations, but the /TIME qualifier specifies that it should instead test time transformations. 4 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. 3 /CHANNEL 4 X400 Test X.400 channel connection. Syntax PMDF TEST/CHANNEL X400 Command Qualifiers Defaults /MTA=mta-id See text /TRANSFER=file-spec See text 5 Restrictions This utility is supplied only with the PMDF-X400 optional layered product. 5 Parameters X400 The string parameter X400 is required. 5 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. 5 Command_Qualifiers /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. /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. 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 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 4 Restrictions This utility is supplied only with the PMDF-FAX optional layered product. 4 Prompts Routing: routing 4 Parameters routing Optional routing to test. 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. 4 Command_Qualifiers /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. /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. /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. 4 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 3 /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 4 Restrictions This utility is supplied only with the PMDF-LAN optional layered product. 4 Prompts Address: test-address Time: test-time 4 Parameters test-address Optional address to test. test-time Optional time to test. 4 Description Test a MS Mail channel's transformation of an address or time. 4 Command_Qualifiers /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. /BACKWARD /BACKWARD /FORWARD (default) The testing process can test conversion of backwards or forwards pointing addresses; the default is forward pointing addresses. /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. /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. /ENVELOPE /ENVELOPE /HEADER (default) The testing process can test envelope or header addresses; the default is header addresses. /TIME The testing process by default tests address transformations, but the /TIME qualifier specifies that it should instead test time transformations. 4 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. 3 /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 4 Restrictions This utility is supplied only with the PMDF-LAN optional layered product. 4 Prompts Address: test-address Time: test-time 4 Parameters test-address Optional address to test. test-time Optional time to test. 4 Description Test a GroupWise (WordPerfect Office) channel's transformation of an address or time; a synonym for PMDF TEST/WPO. 4 Command_Qualifiers /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. /BACKWARD /BACKWARD /FORWARD (default) The testing process can test conversion of backwards or forwards pointing addresses; the default is forward pointing addresses. /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. /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. /ENVELOPE /ENVELOPE /HEADER (default) The testing process can test envelope or header addresses; the default is header addresses. /TIME The testing process by default tests address transformations, but the /TIME qualifier specifies that it should instead test time transformations. 4 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. 3 /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 4 Restrictions This utility is supplied only with the PMDF-LAN optional layered product. 4 Prompts Address: test-address Time: test-time 4 Parameters test-address Optional address to test. test-time Optional time to test. 4 Description Test a Lotus NotesMail channel's transformation of an address or time. 4 Command_Qualifiers /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. /BACKWARD /BACKWARD /FORWARD (default) The testing process can test conversion of backwards or forwards pointing addresses; the default is forward pointing addresses. /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. /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. /ENVELOPE /ENVELOPE /HEADER (default) The testing process can test envelope or header addresses; the default is header addresses. /TIME The testing process by default tests address transformations, but the /TIME qualifier specifies that it should instead test time transformations. 4 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. 3 /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 4 Restrictions None. 4 Prompts Enter table name: table-name 4 Parameters input-string Optional input string to map. 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. 4 Command_Qualifiers /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. /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. /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. /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. /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. 4 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" (Doof City) Output string: H|F:dan Output flags: [0, 1, 2, 'Y' 89] Input string: ^Z $ 3 /MATCH Test a mapping wildcard pattern. Syntax PMDF TEST/MATCH Command Qualifiers Defaults None. None. 4 Restrictions None. 4 Prompts Pattern: mapping-pattern Target: target-string 4 Parameters None. 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. 4 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 $ 3 /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 4 Restrictions This utility is supplied only with the PMDF-LAN optional layered product. 4 Prompts Address: test-address Time: test-time 4 Parameters test-address Optional address to test. test-time Optional time to test. 4 Description Test a MHS Mail channel's transformation of an address or time. 4 Command_Qualifiers /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. /BACKWARD /BACKWARD /FORWARD (default) The testing process can test conversion of backwards or forwards pointing addresses; the default is forward pointing addresses. /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. /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. /ENVELOPE /ENVELOPE /HEADER (default) The testing process can test envelope or header addresses; the default is header addresses. /TIME The testing process by default tests address transformations, but the /TIME qualifier specifies that it should instead test time transformations. 4 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. 3 /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 4 Restrictions None. 4 Prompts Address: test-address[,...] 4 Parameters test-address Optional parameter specifying one or more addresses to rewrite. 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. 4 Command_Qualifiers /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. /CHANNEL /CHANNEL (default) /NOCHANNEL This qualifier controls whether the utility outputs detailed information, e.g., channel flags, regarding the channel an address matches. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. /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. 4 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: 0 expansion total. Expanded address: DAN@EXAMPLE.COM Submitted address list: tcp_local DAN@EXAMPLE.COM (EXAMPLE.COM) *NOTIFY FAILURES* *NOTIFY DELAYS* Submitted notifications list: 1 The channel to which, after rewriting as an envelope To: address, the address is mapped. 2 The flags set for the channel indicated in 1. These flags are controlled by the channel keywords on the first line of the channel control block for the specified channel. Any unknown keywords-keywords which may have been mistyped-will be interpreted as rightslist identifiers and will appear on the line 4. 3 The channel's official host name as specified on the second line of the channel control block for the channel indicated in 1. 4 The channel queue name, channel after parameter, and channel daemon name correspond to values specified via the QUEUE, AFTER, and DAEMON channel keywords, respectively. If no such keyword is present on the channel, then no such line of output will be displayed. 5 Any items appearing on the first line of the channel block which were not channel keywords are interpreted as rightslist identifiers. Any rightslist identifiers so specified for the channel are listed on this line. 6 The channel which the address would match as an envelope From: address. 7 The channel to which a message with the address DAN@EXAMPLE.COM would be queued and the envelope To: address which would be used. Here, the message would be submitted to the TCP/IP channel, tcp_local, using the address DAN@EXAMPLE.COM. Other information appearing here might include an explicit Errors-to: address, which, if present, appears enclosed in square brackets; or notations such as *RR* or *NRR*, indicating whether or not a message is flagged for read receipts, or notations such as *NOTIFY FAILURES*, *NOTIFY DELAYS*, *NOTIFY SUCCESSES*, etc., indicating the message's delivery receipt mechanism and flagging. 8 Notification addresses (reserved for future use). 4 Error_messages Usually errors reported by PMDF TEST/REWRITE are not actually errors regarding PMDF TEST/REWRITE in particular, but rather are the utility warning of an underlying configuration problem. For instance, "Error in mm_init: ..." sorts of errors; see for a discussion of many such general error messages. Address list error -- unknown host or domain: The domain name in the specified address did not rewrite to any PMDF channel. Check that the domain name was correctly spelled. If the domain name was correct, then most likely you need a new (or changed) rewrite rule in the PMDF configuration file to handle that domain name; see Unknown rightslist identifier ... found on channel ... You do not have the specified rightslist identifier. Check that it is truly intended to be present as a rightslist identifier, rather than simply being a misspelled channel keyword. 3 /URL Test an LDAP query URL. Syntax PMDF TEST/URL [ldap-url] Command Qualifiers Defaults /DEBUG /NODEBUG 4 Restrictions None. 4 Prompts _URL: ldap-url 4 Parameters ldap-url LDAP URL to try resolving. 4 Description Test an LDAP query URL. Note that the LDAP server to query is controlled by the setting of the PMDF options LDAP_HOST and LDAP_PORT in the PMDF option file; see the PMDF System Manager's Guide. 4 Command_Qualifiers /DEBUG /DEBUG /NODEBUG (default) The testing process is capable of producing additional debug output. The /DEBUG qualifier enables this output; it is disabled by default. 4 Examples This example shows a sample query for a site example.com that has set the LDAP_HOST and LDAP_PORT options in the PMDF option file to point to an LDAP server containing e-mail addresses in a MAIL attribute. $ pmdf test/url "ldap:///dc=example,dc=com?mail?sub?sn=doe" URL> Jane.Doe@example.com URL> John.Doe@example.com 3 /WPO Test WordPerfect Office (GroupWise) channel address transformations. Syntax PMDF TEST/WPO [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 4 Restrictions This utility is supplied only with the PMDF-LAN optional layered product. 4 Prompts Address: test-address Time: test-time 4 Parameters test-address Optional address to test. test-time Optional time to test. 4 Description Test a WordPerfect Office (GroupWise) channel's transformation of an address or time; a synonym for PMDF TEST/GROUPWISE. 4 Command_Qualifiers /822TOLAN /822TOLAN (default) /LANTO822 The testing process can test conversion of RFC 822 addresses to WPO format, /822TOLAN, or test conversion of WPO format addresses to RFC 822 format, /LANTO822. /BACKWARD /BACKWARD /FORWARD (default) The testing process can test conversion of backwards or forwards pointing addresses; the default is forward pointing addresses. /CHANNEL /CHANNEL=channel-name Different WPO channels may be configured to perform different transformations. If this option is not specified, the default is to test the wpo_local channel. /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. /ENVELOPE /ENVELOPE /HEADER (default) The testing process can test envelope or header addresses; the default is header addresses. /TIME The testing process by default tests address transformations, but the /TIME qualifier specifies that it should instead test time transformations. 4 Examples $ PMDF TEST/WPO adam@wpo.example.com EXAMPLE.HQ.ADAM $ PMDF TEST/WPO postmaster@example.com EXAMPLE.PMDF.POSTMASTER $ PMDF TEST/WPO 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 wpo.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. 3 /X400 Invoke the PMDF TEST/X400 utility. Syntax PMDF TEST/X400 Command Qualifiers Defaults /DEBUG /NODEBUG /ENVELOPE /HEADER /FAX /X488 /FORWARD /REVERSE /HEADER /HEADER /IMAGE_FILE=file_spec /IMAGE_FILE=PMDF_CONFIG_DATA /LHS_ORDER See text /MB400 /X488 /MHS /X488 /MR /X488 /MRIF /X488 /RESTRICTED /NORESTRICTED /REVERSE /REVERSE /RHS_ORDER See text /X484 /X488 /X488 /X488 4 Parameters None. 4 Description PMDF TEST/X400 is a utility for testing PMDF's Attribute Value Pair List (AVPL) address transformations, in particular those performed by PMDF-X400 or PMDF-MR channels, though FAX and MHS address transformations may also be tested. The utility can also be used to "dump" X.400 (P1) or Message Router (NBS) files, or indeed the bytes of arbitrary binary files. 4 Command_Qualifiers /DEBUG /DEBUG NODEBUG (default) Specify whether to display debug output. /ENVELOPE /ENVELOPE /HEADER (default) Specify whether addresses will default to header (the default) or envelope style transformations. /FAX /FAX /MB400 /MHS /MR /MRIF /X484 /X488 (default) Specify what sort of addresses will be transformed. The specification of one of these qualifiers sets the address transformation database(s) to use, the ORNAMEs to use, and whether LHS_ORDER or RHS_ORDER should be the default. The default, if no such qualifier is explicitly set, is /X488, meaning that X.400-1988 address transformations will be used. /FORWARD /FORWARD /REVERSE (default) Specify whether addresses will default to forward or reverse (the default) style transformations. /IMAGE_FILE /IMAGE_FILE=file-spec /NOIMAGE_FILE The /IMAGE_FILE qualifier may be used to point to a non-default PMDF compiled configuration image. The /NOIMAGE_FILE qualifier may be used to cause the utility to disregard any compiled PMDF configuration and instead run directly from the PMDF configuration text files. /LHS_ORDER /LHS_ORDER /RHS_ORDER These qualifiers specify whether left-to-right or right-to- left ordering of attributes in the local part of an RFC 822 address will be assumed. The default will depend upon which qualifier(s) were specified on the PMDF TEST/X400 command line: for X.400 address processing as with the /MB400, /X484, or /X488 qualifiers, right-to-left ordering is the default; for Message Router address processing as with the /MR or /MRIF qualifiers, left-to-right ordering is the default. /RESTRICTED /RESTRICTED /NORESTRICTED (default) Specified whether or not to use restricted encoding of addresses. 4 Examples 1.$ PMDF TEST/X400/X488 X400> ... X400> EXIT This example shows how to invoke the PMDF TEST/X400 utility for testing X.400-1988 address transformations, and then exit the utility with the EXIT command. Specifying the /X488 qualifier will cause use of the following defaults: DATABASE X400, RHS_ ORDER, and ORNAME X488. 2.$ PMDF TEST/X400/X484 X400> ... X400> EXIT This example shows how to invoke the PMDF TEST/X400 utility for testing X.400-1988 address transformations, and then exit the utility with the EXIT command. Specifying the /X484 qualifier will cause use of the following defaults: DATABASE X400, RHS_ ORDER, and ORNAME X484. 3.$ PMDF TEST/X400/MB400 X400> ... X400> EXIT This example shows how to invoke the PMDF TEST/X400 utility for testing Mailbus 400 (X.400-1988) address transformations using PMDF-MB400's own special TO_MB400 and FROM_MB400 databases, and then exit the utility with the EXIT command. Specifying the /MB400 qualifier will cause use of the following defaults: DATABASE X400 (but using the TO_MB400 and FROM_MB400 databases rather than the default TO_X400 and FROM_X400 databases), RHS_ ORDER, and ORNAME X488. 4.$ PMDF TEST/X400/MR X400> ... X400> EXIT This example shows how to invoke the PMDF TEST/X400 utility for testing Message Router address transformations, and then exit the utility with the EXIT command. Specifying the /MR qualifier will cause use of the following defaults: DATABASE MR, LHS_ ORDER, and ORNAME MR. 5.$ PMDF TEST/X400/MRIF X400> ... X400> EXIT This example shows how to invoke the PMDF TEST/X400 utility for testing Message Router address transformations using PMDF-MR's MRIF channel special TO_MRIF and FROM_MRIF databases, and then exit the utility with the EXIT command. Specifying the /MRIF qualifier will cause use of the following defaults: DATABASE MR (but using the TO_MRIF and FROM_MRIF databases rather than the default TO_MR and FROM_MR databases), LHS_ORDER, and ORNAME MR. 4 Interactive_Commands 5 DECODE 6 DDRFC822 Decode X.400 DD.RFC822Cn attributes into a DD.RFC-822 attribute. Syntax DECODE DDRFC822 dd.rfc-822c-avpl Command Qualifiers Defaults None. None. 7 Parameters dd.rfc-822-avpl A DD.RFC-822 and DD.RFC822Cn attribute value pair list. 7 Description X.400 Domain Defined Attribute values are limited to a maximum of 128 characters. Internet addresses are normally "embedded" into an X.400 address by representing the Internet address using the X.400 DD.RFC-822 attribute; but since Internet addresses may be longer than the X.400 DDA value limit, a single DD.RFC- 822 attribute value may not be able to contain an entire long Internet address. To handle this case, three additional "continuation" DDA's have been defined, DD.RFC822C1, DD.RFC822C2, and DDRFC822C3. A single Internet address may be split among these four DDA's, thus allowing Internet addresses of up to 512 characters to be embedded into an X.400 address. The DECODE DDRFC822 command decodes an AVPL of X.400 DD.RFC-822 plus continuation DD.RFC822Cn attributes into a single DD.RFC-822 attribute. 7 Examples $ PMDF TEST/X400 X400> DECODE DDRFC822 "/DD.RFC- 822=amy.adams(a)example/DD.RFC822C1=.com/" Result: /DD.RFC-822=amy.adams(a)example.com/ This example shows decoding a DD.RFC-822 and a DD.RFC822C1 attribute into a single DD.RFC-822 attribute. 6 PERSONAL Decode an X.400 Personal Name (PN) value into individual component attributes. Syntax DECODE PERSONAL pn-value Command Qualifiers Defaults None. None. 7 Parameters pn-value A Personal Name (PN) value. 7 Description Decode an X.400 Personal Name (PN) value into corresponding individual component attributes. 7 Examples This example shows decoding a Personal Name value into its constituent Surname, Initials, and Given name attribute value pairs. $ PMDF TEST/X400 X400> DECODE PERSONAL "Amy.B.Carlson" Result: /S=Carlson/I=B/G=Amy/ 5 DUMP 6 BER Dump (decode) an X.400 BER-encoded message file. Syntax DUMP BER p1-file-spec Command Qualifiers Defaults None. None. 7 Parameters p1-file-spec The X.400 P1 file to be dumped. 7 Description Dump (decode) an X.400 BER-encoded message file. 7 Examples The following example shows dumping the contents of an outgoing X.400 message file. $ PMDF TEST/X400 X400> DUMP BER PMDF_QUEUE:[X400_LOCAL]ZZ01INYJFBUHWY94G5ZD.P1 CONTEXT CONSTRUCTOR 0 (indefinite length) UNIVERSAL CONSTRUCTOR SET (indefinite length) APPLICATION CONSTRUCTOR 4 57 APPLICATION CONSTRUCTOR 3 21 APPLICATION CONSTRUCTOR 1 4 UNIVERSAL PRIMITIVE PRINTABLESTRING 2 7375 us 0000 APPLICATION CONSTRUCTOR 2 5 UNIVERSAL PRIMITIVE PRINTABLESTRING 3 696969 iii 0000 UNIVERSAL PRIMITIVE PRINTABLESTRING 6 6569 6277656e newbie 0000 UNIVERSAL PRIMITIVE IA5STRING 32 30303047 5845575a 51304a4f 4931303c <01IOJ0QZWEXG000 0000 534f4e4e 492e4549 4257454e 4039564d MV9@NEWBIE.INNOS 0010 APPLICATION CONSTRUCTOR 0 36 ... 6 FILE Dump (decode) a binary file. Syntax DUMP FILE file-spec Command Qualifiers Defaults /DECIMAL /HEXADECIMAL /HEXADECIMAL /HEXADECIMAL /OCTAL /HEXADECIMAL 7 Parameters file-spec The file to dump. 7 Description Dump the bytes of a file. 7 Command_Qualifiers /DECIMAL /DECIMAL /HEXADECIMAL (default) /OCTAL By default, DUMP FILE's output is displayed in hexadecimal. The /OCTAL qualifier may be used to cause the output to be displayed in octal; the /DECIMAL qualifier may be used to cause the output to be displayed as base 10 (decimal) integer values. 7 Examples This example shows dumping the bytes of a sample WordPerfect document. $ PMDF TEST/X400 X400> DUMP FILE SAMPLE.WPC 00000000 01000a01 000000d7 435057ff .WPC............ 0000 00000010 00060000 00000032 0005fffb ....2........... 0010 00110000 00520000 005a000c 00000042 B.....Z...R..... 0020 00d50000 00020008 000000ac 00000029 )............... 0030 00000000 00020000 0078007c 23080000 ...#|.x......... 0040 00000000 00005350 33524553 414c0000 ..LASER3PS...... 0050 00000000 00000000 00000000 00000000 ................ 0060 2e303252 50555449 44000000 00000000 .......DITUPR20. 0070 00000a8c 170c1e14 007801db 00535250 PRS...x......... 0080 01680168 00010001 cf8700c9 40110400 ...@........h.h. 0090 ffffffff 40025852 bc1b12f0 01680168 h.h.....RX.@.... 00a0 3a524944 31355254 50245052 4f435057 WPCORP$PTR51DIR: 00b0 5352445f 31355254 505f5052 4f435057 WPCORP_PTR51_DRS 00c0 61207369 20736968 54000000 5352442e .DRS...This is a 00d0 66726550 64726f57 20656c70 6d617320 sample WordPerf 00e0 746e656d 75636f64 20312e35 20746365 ect 5.1 document 00f0 0258003f 00890600 000c01d4 0a0a0a2e ............?.X. 0100 746e6573 20736968 54c30cc3 d401000c .......This sent 0110 c42e6465 646c6f62 20736920 65636e65 ence is bolded.. 0120 746e6573 20736968 54c30ec3 0a0ac40c .......This sent 0130 6e696c72 65646e75 20736920 65636e65 ence is underlin 0140 00890600 000c01d4 0a0ac40e c42e6465 ed.............. 0150 20736968 54c308c3 d401000c 0578003f ?.x........This 0160 6c617469 20736920 65636e65 746e6573 sentence is ital 0170 0a0ac408 c42e6465 7a696369 icized...... 0180 6 NBS Dump (decode) a Message Router NBS message file. Syntax DUMP NBS nbs-file-spec Command Qualifiers Defaults None. None. 7 Parameters nbs-file-spec The NBS file to be dumped. 7 Description Dump (decode) a Message Router NBS message file. 7 Examples The following example shows dumping the contents of an NBS message file. $ PMDF TEST/X400 X400> DUMP NBS MR$NBS:MR1234.NBS message (qualifier 20) (length 24b) field (qualifier message-id) (length 1d) ascii (length 1b) Block number 0 (00000000), 27 (001b) bytes 312f3139 39373130 31333133 30373430 04703131017991/1 0000 445255 47495340 38333432 2438@NAPLES 0010 field (qualifier posted-date) (length 12) date (length 10) ascii (length 0e) Block number 0 (00000000), 14 (000e) bytes 3034 37303331 33313031 37393931 19971013130740 0000 ... 5 ENCODE 6 DDRFC822 Encode a long X.400 DD.RFC-822 attribute into continuation attributes. Syntax ENCODE DDRFC822 dd.rfc-822-attribute-value-pair Command Qualifiers Defaults None. None. 7 Parameters dd.rfc-822-attribute-value-pair A DD.RFC-822 attribute value pair. 7 Description X.400 Domain Defined Attribute values are limited to a maximum of 128 characters. Internet addresses are normally "embedded" into an X.400 address by representing the Internet address using the X.400 DD.RFC-822 attribute; but since Internet addresses may be longer than the X.400 DDA value limit, a single DD.RFC- 822 attribute value may not be able to contain an entire long Internet address. To handle this case, three additional "continuation" DDA's have been defined, DD.RFC822C1, DD.RFC822C2, and DDRFC822C3. A single Internet address may be split among these four DDA's, thus allowing Internet addresses of up to 512 characters to be embedded into an X.400 address. The ENCODE DDRFC822 command encode a "long" X.400 DD.RFC-822 attribute value-one with more than 128 characters into the value-into a DD.RFC-822 attribute plus continuation DD.RFC822Cn attributes. 6 PERSONAL Encode X.400 attributes into X.400 Personal Name (PN), Free Form name (FFN), and Telephone Number (TN) values. Syntax ENCODE PERSONAL avpl Command Qualifiers Defaults None. None. 7 Parameters avpl An attribute value pair list. 7 Description Encode an X.400 Attribute Value Pair List into Personal Name (PN), Free Form Name (FFN), and Telephone Number (TN) values. 7 Examples This example shows encoding X.400 Surname, Given name, Initials, Telephone Number, and Free Form Name attributes. $ PMDF TEST/X400 X400> ENCODE PERSONAL "/S=Last/I=I/G=First/TN=123-4567/FFN=nick name" Result: First.I.Last Free form: nick name Telephone number: 123-4567 5 EXIT Exit the PMDF TEST/X400 utility. Syntax EXIT Command Qualifiers Defaults None. None. 6 Parameters None. 6 Description The EXIT and QUIT commands exit the PMDF TEST/X400 utility. 5 HELP Obtain help on the use of PMDF TEST/X400. Syntax HELP Command Qualifiers Defaults None. None. 6 Parameters None. 6 Description The HELP command may be used to display a list of the available commands in PMDF TEST/X400. 5 QUIT Exit the PMDF TEST/X400 utility. Syntax QUIT Command Qualifiers Defaults None. None. 6 Parameters None. 6 Description The EXIT and QUIT commands exit the PMDF TEST/X400 utility. 5 SET 6 DATABASE Specify the sort of databases to use for address transformations. Syntax SET DATABASE keyword Command Qualifiers Defaults None. None. 7 Parameters keyword Required value of either MR, specifying Message Router databases, or X400, specifying X.400 databases. 7 Description The SET DATABASE command sets which sort of databases to use for address transformations. SET DATABASE MR specifies that PMDF-MR databases will be used; namely, the TO_MR and FROM_MR databases will be used, unless PMDF TEST/X400 was invoked with the /MRIF qualifier in which case TO_MRIF and FROM_MRIF databases will preferentially be used. SET DATABASE X400 specifies that PMDF-X400/PMDF-MB400 databases will be used; namely, the TO_X400 and FROM_X400 databases will be used, unless PMDF TEST/X400 was invoked with the /MB400 qualifier in which case TO_MB400 and FROM_MB400 databases will preferentially be used. Note that invoking PMDF TEST/X400 with a qualifier such as /MR, /MRIF, /X484, /X488, or /MB400, sets other defaults appropriately, in addition to the databases. Thus it is simpler to invoke PMDF TEST/X400 with appropriate qualifiers from the beginning, rather than manually setting the database from within PMDF TEST/X400. 6 DEBUG Control display of debug output. Syntax SET DEBUG SET NODEBUG Command Qualifiers Defaults None. None. 7 Parameters None. 7 Description The SET DEBUG and SET NODEBUG commands may be used to enable and disable, respectively, detailed debug output regarding the operation of PMDF TEST/X400's other commands. 7 Examples This example shows enabling debugging to see details of an address transformation. $ PMDF TEST/X400/X488 X400> TRANSLATE AVPL "/C=US/ADMD=GALACTIMAIL/PRMD=Example Corp/O=R and D/OU=Widgets /S=Borg/G=Bob/ Result: Bob.Borg@x400.example.com X400> SET DEBUG X400> TRANSLATE AVPL "/C=US/ADMD=GALACTIMAIL/PRMD=Example Corp/O=R and D/OU=Widgets /S=Borg/G=Bob/ 15:38:55.13: Rewrite: "$I" - $I$&0$W$&1$M$&2$M$&3$H$&4$X$&5$X$&6$X$TINI|" [OK] 15:38:55.13: Rewrite: "INI|/C=US/ADMD=GALACTIMAIL/PRMD=Example Corp/O=R and D/OU=Wi dgets/S=Borg/G=Bob/" - failed 15:38:55.13: Rewrite: "INI|/C=US/ADMD=GALACTIMAIL/PRMD=Example Corp/O=R and D/OU=Wi dgets/S=Borg/G=*/" - failed 15:38:55.13: Rewrite: "INI|/C=US/ADMD=GALACTIMAIL/PRMD=Example Corp/O=R and D/OU=Wi dgets/S=Borg" - failed 15:38:55.13: Rewrite: "INI|/C=US/ADMD=GALACTIMAIL/PRMD=Example Corp/O=R and D/OU=Wi dgets/S=*/G=*/" - failed 15:38:55.13: Rewrite: "INI|/C=US/ADMD=GALACTIMAIL/PRMD=Example Corp/O=R and D/OU=Wi dgets/S=*" - failed 15:38:55.13: Rewrite: "INI|/C=US/ADMD=GALACTIMAIL/PRMD=Example Corp/O=R and D/OU=Wi dgets" - $N$O$&3example.com$TLOC|" [OK] 15:38:55.13: Rewrite: "LOC|/S=Borg/G=Bob/" - failed 15:38:55.13: Rewrite: "LOC|/S=Borg/G=*/" - failed 15:38:55.14: Rewrite: "LOC|/S=Borg" - failed 15:38:55.14: Rewrite: "LOC|/S=*/G=*/" - failed 15:38:55.14: Rewrite: "LOC|/S=*" - failed 15:38:55.14: Material remaining after rules: /S=Borg/G=Bob/ 15:38:55.14: Attempting to rewrite as personal name. 15:38:55.14: Rewrite: "LOC|$N" - $&1$U$TFFN|" [OK] Result: Bob.Borg@example.com 6 ENVELOPE Treat addresses as envelope addresses. Syntax SET ENVELOPE SET HEADER Command Qualifiers Defaults None. None. 7 Parameters None. 7 Description Note that some PMDF-X400 and PMDF-MR address transformations are envelope or header specific. The SET ENVELOPE and SET HEADER commands may be used to control whether address transformations assume addresses are envelope addresses or header addresses. Header addresses are assumed by default. See also SET HEADER. 6 FORWARD Treat addresses as forward pointing addresses. Syntax SET FORWARD SET REVERSE Command Qualifiers Defaults None. None. 7 Parameters None. 7 Description Note that some PMDF-X400 and PMDF-MR address transformations are specific to either forward pointing or backward point addresses. The SET FORWARD and SET REVERSE commands may be used to control whether address transformations assume addresses are forwarding point or reverse pointing. Reverse pointing addresses are assumed by default. See also SET REVERSE. 6 HEADER Treat addresses as header addresses. Syntax SET HEADER SET ENVELOPE Command Qualifiers Defaults None. None. 7 Parameters None. 7 Description Note that some PMDF-X400 and PMDF-MR address transformations are envelope or header specific. The SET ENVELOPE and SET HEADER commands may be used to control whether address transformations assume addresses are envelope addresses or header addresses. Header addresses are assumed by default. See also SET ENVELOPE. 6 LHS_ORDER Interpret local mailbox parts in left-to-right order. Syntax SET LHS_ORDER SET RHS_ORDER Command Qualifiers Defaults None. None. 7 Parameters None. 7 Description The order in which to interpret attributes in the local mailbox portion of an RFC 822 address may be controlled with the SET LHS_ ORDER and SET RHS_ORDER commands. The proper interpretation order is dependent upon the sort of address under consideration; RHS_ ORDER is usually proper for X.400 addresses, whereas LHS_ORDER is usually proper for Message Router addresses. The qualifiers with which PMDF TEST/X400 was invoked may set a default ordering. See also SET RHS_ORDER. 6 LOCALHOST Syntax SET LOCALHOST host-name Command Qualifiers Defaults None. None. 7 Parameters host-name The local host name as far as address transformations are concerned; e.g., the name of the PMDF system itself. 7 Description If it is made known to the PMDF TEST/X400 utility, the utility will use the local host name for certain address transformation purposes, such as "fixing up" bare usernames presented as putative RFC 822 addresses. 7 Examples The following example illustrates how setting LOCALHOST can allow PMDF TEST/X400 to "fix up" bare usernames and thereby allow address transformation. The example assumes a PMDF-MR configuration where MILAN is the PMDF-MR node, and PMDF is the PMDF MRMAN mailbox name. $ PMDF TEST/X400/MR X400> TRANSLATE 822_TO_AVPL system Syntax error. X400> SET LOCALHOST example.com X400> TRANSLATE 822_TO_AVPL system Result: R 0 MILAN R 0 PMDF R 0 example.com U 0 system FFN 0 system 6 ORNAME Specify the set of valid attribute names to use for address transformations. Syntax SET ORNAME keyword Command Qualifiers Defaults None. None. 7 Parameters keyword Required value of one of DOC, FAX, MHS, MR, X484, or X488. 7 Description The SET ORNAME command sets which set of attribute names will be valid for address transformations. SET ORNAME MR specifies that Message Router attribute names will be used. SET ORNAME X484 specifies that X.400-1984 attribute names will be used. SET ORNAME X488 specifies that X.400-1988 attribute names will be used. Note that invoking PMDF TEST/X400 with a qualifier such as /MR, /MRIF, /X484, /X488, or /MB400, sets other defaults appropriately, in addition to the ORNAME set. Thus it is simpler to invoke PMDF TEST/X400 with appropriate qualifiers from the beginning, rather than manually setting the ORNAME set from within PMDF TEST/X400. 6 REVERSE Treat addresses as reverse pointing addresses. Syntax SET REVERSE SET FORWARD Command Qualifiers Defaults None. None. 7 Parameters None. 7 Description Note that some PMDF-X400 and PMDF-MR address transformations are specific to either forward pointing or backward point addresses. The SET FORWARD and SET REVERSE commands may be used to control whether address transformations assume addresses are forwarding point or reverse pointing. Reverse pointing addresses are assumed by default. See also SET FORWARD. 6 RHS_ORDER Interpret local mailbox parts in right-to-left order. Syntax SET RHS_ORDER SET LHS_ORDER Command Qualifiers Defaults None. None. 7 Parameters None. 7 Description The order in which to interpret attributes in the local mailbox portion of an RFC 822 address may be controlled with the SET LHS_ ORDER and SET RHS_ORDER commands. The proper interpretation order is dependent upon the sort of address under consideration; RHS_ ORDER is usually proper for X.400 addresses, whereas LHS_ORDER is usually proper for Message Router addresses. The qualifiers with which PMDF TEST/X400 was invoked may set a default ordering. See also SET LHS_ORDER. 6 STYLE Set command line style. Syntax SET STYLE keyword Command Qualifiers Defaults None. None. 7 Parameters keyword Required value of one of DEFAULT, UNIX, VMS. 7 Description The SET STYLE command sets the command line style; i.e., whether command qualifiers are specified with slashes or dashes. 5 TEST 6 NUMERIC Test whether all characters in a string are decimal digits. Syntax TEST NUMERIC string Command Qualifiers Defaults None. None. 7 Parameters string String whose characters to test. 7 Description The TEST NUMERIC command checks whether or not the characters in a string are decimal digits. Test whether all characters in a string are printable-string characters. Syntax TEST PRINTABLE string Command Qualifiers Defaults None. None. 7 Parameters string String whose characters to test. 7 Description The TEST PRINTABLE command checks whether or not the characters in a string are all printable-string characters. 7 Examples This example shows checking one string that does consist entirely of printable string characters, "abc", and another string that does not, "ab@". $ PMDF TEST/X400 X400> TEST PRINTABLE abc Yes X400> TEST PRINTABLE ab@ No 6 TRACE Test whether an X.400-Received: header value contains properly formatted X.400 trace information. Syntax TEST TRACE string Command Qualifiers Defaults None. None. 7 Parameters string String to try interpreting as the value of an X.400-Received: header line. 7 Description The TEST TRACE command checks whether the supplied string, interpreted as an X400-Received: header value, contains properly formatted X.400 trace information. 7 Examples This example shows checking that the header X400-Received: by /PRMD=PROCESS/ADMD=III/C=US/; Relayed; Fri, 15 Nov 2012 15:01:44 -0700 indeed contains syntactically valid X.400 trace information. $ PMDF TEST/X400 X400> TEST TRACE " by /PRMD=PROCESS/ADMD=III/C=US/; Relayed; Fri, 15Nov 2012 15:01:44 -0700" Result after decode/encode: by /PRMD=PROCESS/ADMD=III/C=US/; Relayed; Fri, 15 Nov 2012 15:01:44 -0700 5 TRANSLATE 6 822_TO_AVPL Translate an RFC 822 address to AVPL form. Syntax TRANSLATE 822_TO_AVPL rfc822-address Command Qualifiers Defaults None. None. 7 Parameters rfc822-address RFC 822 (Internet) address. 7 Description The TRANSLATE 822_TO_AVPL command translates a specified RFC 822 address into AVPL form, using the address transformation database currently in effect and the LHS_ORDER/RHS_ORDER ordering currently in effect. 7 Examples This example illustrates the transformation of an RFC 822 address to X.400 format, assuming that PMDF-X400 is configured with x400.example.com as its pseudodomain name. $ PMDF TEST/X400/X488 X400> SET ENVELOPE X400> SET FORWARD X400> TRANSLATE 822_TO_AVPL """/C=US/ADMD=TELCO/PRMD=Big Corp/S=Adamson/ G=Bob/""@x400.example.com" Result: C 0 US ADMD 0 TELCO PRMD 0 Big Corp S 0 Adamson G 0 Bob 6 ASCII_TO_PRINTABLESTRING Translate an ASCII string to a printable-string encoding of the string. Syntax TRANSLATE ASCII_TO_PRINTABLESTRING string Command Qualifiers Defaults None. None. 7 Parameters string An ASCII string. 7 Description The TRANSLATE ASCII_TO_PRINTABLESTRING command translates an ASCII string to a printable-string, using the multi-character substitutions specified in RFC 2156 for ASCII characters that have no printable-string equivalent. 7 Examples This example illustrates the transformation of the ASCII string "First Last"@example..com to a printable-string version of the string. Note that ASCII string corresponds to a rather common form of Internet address. But such a string cannot be literally represented in an X.400 address (if for instance one wants to embed this address using the DD.RFC-822 X.400 attribute), since the quote character and at character are not printable-string characters-such characters have to be encoded, as with the RFC 2156 multi- character substitutions. $ PMDF TEST/X400/X488 X400> TRANSLATE ASCII_TO_PRINTABLE """First Last""@example.com" Result: (q)First Last(q)(a)example.com 6 AVPL_TO_822 Translate an AVPL to an RFC 822 address. Syntax TRANSLATE AVPL_TO_822 avpl Command Qualifiers Defaults None. None. 7 Parameters avpl An Attribute Value Pair List (AVPL). 7 Description The TRANSLATE AVPL_TO_822 command translates an AVPL representation of an address to an RFC 822 (Internet) address, using the address transformation database currently in effect, and the LHS_ORDER/RHS_ORDER currently in effect. 7 Examples This example illustrates transforming a Message Router address of Ann Adams@A1@MILAN to an RFC 822 equivalent, assuming PMDF-MR has been configured to associate the A1 Message Router mailbox on the node MILAN with the pseudodomain name a1.example.com. $ PMDF TEST/X400/MR X400> set envelope X400> set forward X400> TRANSLATE AVPL_TO_822 "/R=MILAN/R=A1/U=Ann Adams" Result: "Ann Adams"@a1.example.com 6 OID Translate an OID to a descriptive sequence. Syntax TRANSLATE OID oid Command Qualifiers Defaults None. None. 7 Parameters oid An OID. 7 Description The TRANSLATE OID command converts an OID-dot separated sequence of integers - into descriptive text. 7 Examples This example shows obtaining a description of the OID for an X.400 File Transfer Body Part containing a PostScript attachment. $ PMDF TEST/X400 X400> TRANSLATE OID 1.3.6.1.7.1.2.1.2 Result: iso(1) identified-organization(3) dod(6) iana(1) mail(7) mixer(1) bodies (2) bp-data(1) postscript(2) 6 PRESENTATION_TO_AVPL Translate an X.400 presentation address to AVPL form. Syntax TRANSLATE PRESENTATION_TO_AVPL presentation-address 7 Parameters presentation-address An X.400 presentation address, e.g., "c=us; admd=teleco; prmd=Example; o=Engineering; ou=Widgets; S=Brown; G=Bob;". 7 Description The TRANSLATE PRESENTATION_TO_AVPL command transforms an X.400 presentation address-the sort that may be seen on a business card, for instance-into a canonical AVPL form. 7 Examples The following example shows transforming an X.400 presentation address into AVPL form, and then transforming the AVPL form into RFC 822 form (assuming a PMDF-X400 configuration as shown in the example in the appropriate edition of the PMDF Installation Guide). X400> TRANSLATE PRES "C=US; ADMD=GALACTIMAIL; PRMD=Example Corp; O=R and D; OU=Widg ets; S=Borg; G=Bob; Result: /C=US/ADMD=GALACTIMAIL/PRMD=Example Corp/O=R and D/OU=Widgets/S=Borg/G=Bob/ X400> TRANSLATE AVPL "/C=US/ADMD=GALACTIMAIL/PRMD=Example Corp/O=R and D/OU=Widgets /S=Borg/G=Bob/ Result: Bob.Borg@x400.example.com 2 VERSION Print PMDF version number. Syntax PMDF VERSION Command Qualifiers Defaults None. None. 3 Restrictions None. 3 Parameters None. 3 Description VERSION prints out the PMDF installed version number, and displays the system's architecture type and operating system version number. 3 Examples To check what version of PMDF you are running, issue the command: $ PMDF VERSION %PMDF-I-VERSION, PMDF version is PMDF V6.6 AlphaServer 4X00 5/466 4MB running OpenVMS Alpha V8.3 PMDF_SHARE_LIBRARY version V6.6; linked 13:06:23, Feb 4 2012 2 convert_cache.com Perform a CONVERT/RECLAIM operation on the queue cache database. Syntax @PMDF_COM:convert_cache.com 3 Description The CONVERT_CACHE.COM utility performs a CONVERT/RECLAIM operation on the queue cache database. If you encounter difficulties with the queue cache database which a CACHE/SYNCHRONIZE command does not resolve, using this utility should be your next step. 3 Examples To convert the queue cache database issue the command $ @PMDF_COM:convert_cache.com 2 migrate UNIX-style command utility to copy folders of messages from one system running an IMAP server to another system running an IMAP server. See the PMDF User's Guide for details.