--- /dev/null
+
+
+
+
+
+
+
+
+ _\bd_\bi_\bs_\bc_\ba_\br_\bd _\bt_\bh_\bi_\bs _\bp_\ba_\bg_\be
+
+
+
+
+ The RAND _\bM_\bH
+ Message Handling
+ System:
+ Administrator's Guide
+
+ UCI Version
+
+
+ February 1, 1991
+ 6.7.1a #6[UCI]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9\e9
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b1. _\bI_\bN_\bT_\bR_\bO_\bD_\bU_\bC_\bT_\bI_\bO_\bN
+
+
+
+\e9
+
+
+\e9 _\bS_\bc_\bo_\bp_\be _\bo_\bf _\bt_\bh_\bi_\bs _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt
+
+ This is the Administrator's Guide to _\bM_\bH. If you don't maintain an
+ _\bM_\bH system, don't read this; the information is entirely too technical.
+ If you are a maintainer, then read this guide until you understand it,
+ follow the advice it gives, and then forget about the guide.
+
+ Before continuing, I'll point out two facts:
+
+
+
+ _\bT_\bh_\bi_\bs _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt _\bw_\bi_\bl_\bl _\bn_\be_\bv_\be_\br _\bc_\bo_\bn_\bt_\ba_\bi_\bn _\ba_\bl_\bl _\bt_\bh_\be _\bi_\bn_\bf_\bo_\br_\bm_\ba_\bt_\bi_\bo_\bn
+ _\by_\bo_\bu _\bn_\be_\be_\bd _\bt_\bo _\bm_\ba_\bi_\bn_\bt_\ba_\bi_\bn _\bM_\bH.
+
+ _\bF_\bu_\br_\bt_\bh_\be_\br_\bm_\bo_\br_\be, _\bt_\bh_\bi_\bs _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt _\bw_\bi_\bl_\bl _\bn_\be_\bv_\be_\br _\bc_\bo_\bn_\bt_\ba_\bi_\bn _\be_\bv_\be_\br_\by_\bt_\bh_\bi_\bn_\bg
+ _\bI _\bk_\bn_\bo_\bw _\ba_\bb_\bo_\bu_\bt _\bm_\ba_\bi_\bn_\bt_\ba_\bi_\bn_\bi_\bn_\bg _\bM_\bH.
+
+
+
+ _\bM_\bH, and mailsystems in general, are more complex than most people real-
+ ize. A combination of experience, intuition, and tenacity is required
+ to maintain _\bM_\bH properly. This document can provide only guidelines for
+ bringing up an _\bM_\bH system and maintaining it. There is a sufficient
+ amount of customization possible that not all events or problems can be
+ forseen.
+
+
+
+\e9 _\bS_\bu_\bm_\bm_\ba_\br_\by
+
+ During _\bM_\bH generation, you specify several configuration constants
+ to the _\bm_\bh_\bc_\bo_\bn_\bf_\bi_\bg program. These directives take into consideration such
+ issues as hardware and operating system dependencies in the source code.
+ They also factor out some major mailsystem administrative decisions that
+ are likely to be made consistantly at sites with more than one host.
+ The manual entry _\bm_\bh-_\bg_\be_\bn (8) describes all the static configuration
+ directives.
+
+ However, when you install _\bM_\bH you may wish to make some
+ site-specific or host-specific changes which aren't hardware or even
+ software related. Rather, they are administrative decisions. That's
+ what this guide is for: it describes all of the dynamically tailorable
+ directives.
+
+\e9
+
+
+
+
+
+
+
+
+
+ -2-
+
+
+ Usually, after installing _\bM_\bH, you'll want to edit the
+ /usr/local/lib/mh/mtstailor file. This file fine-tunes the way _\bM_\bH
+ interacts with the message transport system (MTS). Section 2 talks
+ about the MTS interface and MTS tailoring.
+
+ After that, if you're running the UCI BBoards facility, or the POP
+ facility, you'll need to know how to maintain those systems. Sections 3
+ and 4 talk about these.
+
+ If for some reason you're not running an MTS that can handle both
+ Internet and _\bU_\bU_\bC_\bP traffic, you should read-up on mail filtering in Sec-
+ tion 5. Although this is considered "old technology" now, the mechan-
+ isms described in Section 5 were really quite useful when first intro-
+ duced way back in 1981.
+
+ Finally, you may want to know how to modify the _\bM_\bH source tree.
+ Section 6 talks (a little bit) about that.
+
+ The last two sections describe a few hidden features in _\bM_\bH, and the
+ configuration options that were in effect when this guide was generated.
+
+ After _\bM_\bH is installed, you should define the address "Bug-MH" to
+ map to either you or the _\bP_\bo_\bs_\bt_\bM_\ba_\bs_\bt_\be_\br at your site.
+
+ In addition, if you want to tailor the behavior of _\bM_\bH for new
+ users, you can create and edit the file /usr/local/lib/mh/mh.profile.
+ When the _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh program is run for a user, if this file exists, it
+ will copy it into the user's .mh_profile file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b2. _\bT_\bH_\bE _\bM_\bT_\bS _\bI_\bN_\bT_\bE_\bR_\bF_\bA_\bC_\bE
+
+
+
+\e9
+ The file /usr/local/lib/mh/mtstailor customizes certain
+ host-specific parameters of _\bM_\bH related primarily to interactions with
+ the transport system. The parameters in this file override the
+ compiled-in defaults given during _\bM_\bH configuration. Rather than recom-
+ piling _\bM_\bH on each host to make minor customizations, it is easier simply
+ to modify the mtstailor file. All hosts at a given site normally use
+ the same mtstailor file, though this need not be the case.
+
+ It is a good idea to run the _\bc_\bo_\bn_\bf_\bl_\bi_\bc_\bt (8) program each morning
+ under _\bc_\br_\bo_\bn. The following line usually suffices:
+
+ 00 05 * * * /usr/local/lib/mh/conflict -mail PostMaster
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9 -3-
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -4- MH-TAILOR(5)
+
+
+ _\bN_\bA_\bM_\bE
+ /usr/local/lib/mh/mtstailor - system customization for MH message
+ system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ any _\bM_\bH command that interacts with the MTS
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The file /usr/local/lib/mh/mtstailor defines run-time options for
+ those _\bM_\bH programs which interact (in some form) with the message
+ transport system. At present, these (user) programs are: _\ba_\bp, _\bc_\bo_\bn_\b-
+ _\bf_\bl_\bi_\bc_\bt, _\bi_\bn_\bc, _\bm_\bs_\bg_\bc_\bh_\bk, _\bm_\bs_\bh, _\bp_\bo_\bs_\bt, _\br_\bc_\bv_\bd_\bi_\bs_\bt, and _\br_\bc_\bv_\bp_\ba_\bc_\bk.
+
+ The options available along with default values and a description
+ of their meanings are listed below:
+
+ localname:
+ The host name _\bM_\bH considers local. If not set, depending on
+ the version of UNIX you're running, _\bM_\bH will query the system
+ for this value (e.g., <whoami.h>, gethostname, etc.). This
+ has no equivalent in the _\bM_\bH configuration file. POP client
+ hosts have this value set to the name of the POP service host.
+
+ systemname:
+ The name of the local host in the _\bU_\bU_\bC_\bP "domain". If not set,
+ depending on the version of UNIX you're running, _\bM_\bH will query
+ the system for this value. This has no equivalent in the _\bM_\bH
+ configuration file.
+
+ mmdfldir: /usr/spool/mail
+ The directory where maildrops are kept. If this is empty, the
+ user's home directory is used. This overrides the "mail"
+ field in the _\bM_\bH configuration file.
+
+ mmdflfil:
+ The name of the maildrop file in the directory where maildrops
+ are kept. If this is empty, the user's login name is used.
+ This overrides the "mail" field in the _\bM_\bH configuration file.
+
+ mmdelim1: \001\001\001\001\n
+ The beginning-of-message delimiter for maildrops.
+
+ mmdelim2: \001\001\001\001\n
+ The end-of-message delimiter for maildrops.
+
+ mmailid: 0
+ If non-zero, then support for MMailids in /etc/passwd is
+ enabled. Basically, the pw_gecos field in the password file
+ is of the form
+
+ My Full Name <mailid>
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -5- MH-TAILOR(5)
+
+
+ The _\bM_\bH internal routines that deal with user and full names
+ will return "mailid" and "My Full Name" respectively.
+
+ lockstyle: 0
+ The locking-discipline to perform. A value of "0" means to
+ use _\bf_\bl_\bo_\bc_\bk if available, or _\bl_\bo_\bc_\bk_\bf if LOCKF was defined when
+ building _\bM_\bH. On non-BSD42 systems, standard _\bB_\be_\bl_\bl_\bM_\ba_\bi_\bl locking
+ is used. A value of "1" means to use _\bB_\be_\bl_\bl_\bM_\ba_\bi_\bl locking always
+ (the name of the lock is based on the file name). A value of
+ "2" means to use _\bM_\bM_\bD_\bF locking always (the name of the lock is
+ based on device/inode pairs).
+
+ lockldir:
+ The name of the directory for making locks. If your system
+ doesn't have the _\bf_\bl_\bo_\bc_\bk or _\bl_\bo_\bc_\bk_\bf syscalls, then this directory
+ is used when creating locks. If the value is empty, then the
+ directory of the file to be locked is used.
+
+ maildelivery: /usr/local/lib/mh/maildelivery
+ The name of the system-wide default ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file. See
+ _\bm_\bh_\bo_\bo_\bk (1) for the details.
+
+ everyone: 200
+ The highest user-id which should NOT receive mail addressed to
+ "everyone".
+
+ noshell:
+ If set, then each user-id greater than "everyone" that has a
+ login shell equivalent to the given value (e.g., "/bin/csh")
+ indicates that mail for "everyone" should not be sent to them.
+ This is useful for handling admin, dummy, and guest logins.
+
+ _\bM_\ba_\bi_\bl _\bF_\bi_\bl_\bt_\be_\br_\bi_\bn_\bg
+
+ These options are only available if you compiled _\bM_\bH with
+ "options MF".
+
+ uucpchan: name of _\bU_\bU_\bC_\bP channel
+ Usually "UUCP". This has no equivalent in the _\bM_\bH configura-
+ tion file.
+
+ uucpldir: /usr/spool/mail
+ The name of the directory where _\bU_\bU_\bC_\bP maildrops are kept. This
+ has no equivalent in the _\bM_\bH configuration file.
+
+ uucplfil:
+ The name of the maildrop file in the directory where _\bU_\bU_\bC_\bP
+ maildrops are kept. If this is empty, the user's login name
+ is used. This has no equivalent in the _\bM_\bH configuration file.
+
+ umincproc: /usr/local/lib/mh/uminc
+ The path to the program that filters _\bU_\bU_\bC_\bP-style maildrops to
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -6- MH-TAILOR(5)
+
+
+ _\bM_\bM_\bD_\bF-style maildrops.
+
+ _\bS_\bt_\ba_\bn_\bd-_\bA_\bl_\bo_\bn_\be _\bD_\be_\bl_\bi_\bv_\be_\br_\by
+
+ These options are only available if you compiled _\bM_\bH to use stand-
+ alone delivery (i.e., "mts: mh").
+
+ mailqdir: /usr/spool/netmail
+ The directory where network mail is queued.
+
+ tmailqdir: /usr/tmp
+ The directory where network mail queue files are built.
+
+ syscpy: 1
+ If ON, unauthorized mail is copied to the overseer.
+
+ overseer: root
+ The user that receives reports of unauthorized mail.
+
+ mailer: root
+ The user acting for the mail system.
+
+ fromtmp: /tmp/rml.f.XXXXXX
+ The _\bm_\bk_\bt_\be_\bm_\bp template for storing from lines.
+
+ msgtmp: /tmp/rml.m.XXXXXX
+ The _\bm_\bk_\bt_\be_\bm_\bp template for storing the rest of the message.
+
+ errtmp: /tmp/rml.e.XXXXXX
+ The _\bm_\bk_\bt_\be_\bm_\bp template for storing error messages from other
+ mailers.
+
+ tmpmode: 0600
+ The octal mode which temporary files are set to.
+
+ okhosts: /usr/local/lib/mh/Rmail.OKHosts
+ A file containing a list of hosts that can sent ARPAnet mail.
+
+ okdests: /usr/local/lib/mh/RMail.OKDests
+ A file containing a list of hosts that can always receive
+ mail.
+
+ _\bT_\bh_\be `/_\bs_\bm_\bt_\bp' _\bM_\bT_\bS _\bS_\bu_\bf_\bf_\bi_\bx
+
+ These options are only available if you compiled _\bM_\bH with the
+ "/smtp" suffix to your "mts:" configuration.
+
+ hostable: /usr/local/lib/mh/hosts
+ The exceptions file for /etc/hosts used by _\bp_\bo_\bs_\bt to try to find
+ official names. The format of this file is quite simple:
+
+ 1. Comments are surrounded by sharp (`#') and newline.
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -7- MH-TAILOR(5)
+
+
+ 2. Words are surrounded by whitespace.
+ 3. The first word on the line is the official name of a
+ host.
+ 4. All words following the official names are aliases for
+ that host.
+
+ servers: localhost \01localnet
+ A lists of hosts and networks which to look for SMTP servers
+ when posting local mail. It turns out this is a major win for
+ hosts which don't run an message transport system. The value
+ of "servers" should be one or more items. Each item is the
+ name of either a host or a net (in the latter case, precede
+ the name of the net by a \01). This list is searched when
+ looking for a smtp server to post mail. If a host is present,
+ the SMTP port on that host is tried. If a net is present, the
+ SMTP port on each host in that net is tried. Note that if you
+ are running with the BIND code, then any networks specified
+ are ignored (sorry, the interface went away under BIND).
+
+ _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl
+
+ This option is only available if you compiled _\bM_\bH to use _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl as
+ your delivery agent (i.e., "mts: sendmail").
+
+ sendmail: /usr/lib/sendmail
+ The pathname to the _\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl program.
+
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl
+
+ This option is only available if you compiled _\bM_\bH with POP support
+ enabled (i.e., "pop: on").
+
+ pophost:
+ The name of the default POP service host. If this is not set,
+ then _\bM_\bH looks in the standard maildrop areas for waiting mail,
+ otherwise the named POP service host is consulted.
+
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bD_\be_\bl_\bi_\bv_\be_\br_\by
+
+ This option is only available if you compiled _\bM_\bH with
+ "bbdelivery: on".
+
+ bbdomain:
+ The local BBoards domain (a UCI hack).
+
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs & _\bT_\bh_\be _\bP_\bO_\bP
+
+ These options are only available if you compiled _\bM_\bH with
+ "bboards: pop" and "pop: on".
+
+ popbbhost:
+ The POP service host which also acts as a BBoard server. This
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -8- MH-TAILOR(5)
+
+
+ variable should be set on the POP BBoards client host.
+
+ popbbuser:
+ The guest account on the POP/BB service host. This should be
+ a different login ID than either the POP user or the BBoards
+ user. (The user-id "ftp" is highly recommended.) This vari-
+ able should be set on both the POP BBoards client and service
+ hosts.
+
+ popbblist: /usr/local/lib/mh/hosts.popbb
+ A file containing of lists of hosts that are allowed to use
+ the POP facility to access BBoards using the guest account.
+ If this file is not present, then no check is made. This
+ variable should be set on the POP BBoards service host.
+
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs & _\bT_\bh_\be _\bN_\bN_\bT_\bP
+
+ This option is only available if you compiled _\bM_\bH with
+ "bboards: nntp" and "pop: on".
+
+ nntphost:
+ The host which provides the NNTP service. This variable
+ should be set on the NNTP BBoards client host.
+
+ _\bF_\bi_\bl_\be _\bL_\bo_\bc_\bk_\bi_\bn_\bg
+
+ A few words on locking: _\bM_\bH has a flexible locking system for making
+ locks on files. There are two mtstailor variables you should be
+ aware of "lockstyle" and "lockldir". The first controls the method
+ of locking, the second says where lock files should be created.
+ The "lockstyle" variable can take on three values: 0, 1, 2. A
+ value of 0 is useful on BSD42 systems. If you included the LOCKF
+ option when building _\bM_\bH, the _\bl_\bo_\bc_\bk_\bf syscall is used, otherwise the
+ _\bf_\bl_\bo_\bc_\bk syscall is used. If you're not on a 4.2BSD system, a locking
+ style of 0 is considered the same as locking style 1.
+
+ A value of 1 or 2 specifies that a file should be created whose
+ existence means "locked" and whose non-existence means "unlocked".
+ A value of 1 says to construct the lockname by appending ".lock" to
+ the name of the file being locked. A value of 2 says to construct
+ the lockname by looking at the device and inode numbers of the file
+ being locked. If the "lockldir" variable is not specified, lock
+ files will be created in the directory where the file being locked
+ resides. Otherwise, lock files will be created in the directory
+ specified by "lockldir". Prior to installing _\bM_\bH, you should see
+ how locking is done at your site, and set the appropriate values.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -9- MH-TAILOR(5)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-gen(8), mh-mts(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ As listed above
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MTS(8) -10- MH-MTS(8)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-mts - the MH interface to the message transport system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ SendMail
+
+ MMDF (any release)
+
+ stand-alone
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bH can use a wide range of message transport systems to deliver
+ mail. Although the _\bM_\bH administrator usually doesn't get to choose
+ which MTS to use (since it's already in place), this document
+ briefly describes the interfaces.
+
+ When communicating with _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl, _\bM_\bH always uses the SMTP to post
+ mail. Depending on the _\bM_\bH configuration, _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl may be invoked
+ directly (via a _\bf_\bo_\br_\bk and an _\be_\bx_\be_\bc), or _\bM_\bH may open a TCP/IP connec-
+ tion to the SMTP server on the localhost.
+
+ When communicating with _\bM_\bM_\bD_\bF, normally _\bM_\bH uses the "mm_" routines
+ to post mail. However, depending on the _\bM_\bH configuration, _\bM_\bH
+ instead may open a TCP/IP connection to the SMTP server on the
+ localhost.
+
+ When using the stand-alone system (NOT recommended), _\bM_\bH delivers
+ local mail itself and queues _\bU_\bU_\bC_\bP and network mail. The network
+ mail portion will probably have to be modified to reflect the local
+ host's tastes, since there is no well-known practice in this area
+ for all types of UNIX hosts.
+
+ If you are running a UNIX system with TCP/IP networking, then it is
+ felt that the best interface is achieved by using either _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl
+ or _\bM_\bM_\bD_\bF with the SMTP option. This gives greater flexibility. To
+ enable this option you append the /smtp suffix to the mts option in
+ the _\bM_\bH configuration. This yields two primary advantages: First,
+ you don't have to know where _\bs_\bu_\bb_\bm_\bi_\bt or _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl live. This means
+ that _\bM_\bH binaries (e.g., _\bp_\bo_\bs_\bt ) don't have to have this information
+ hard-coded, or can run different programs altogether; and, second,
+ you can post mail with the server on different systems, so you
+ don't need either _\bM_\bM_\bD_\bF or _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl on your local host. Big win in
+ conserving cycles and disk space. Since _\bM_\bH supports the notion of
+ a server search-list in this respect, this approach can be tolerant
+ of faults. Be sure to set "servers:" as described in mh-tailor(8)
+ if you use this option.
+
+ There are four disadvantages to using the SMTP option: First, only
+ UNIX systems with TCP/IP are supported. Second, you need to have
+ an SMTP server running somewhere on any network your local host can
+ reach. Third, this bypasses any authentication mechanisms in _\bM_\bM_\bD_\bF
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MTS(8) -11- MH-MTS(8)
+
+
+ or _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl. Fourth, the file /etc/hosts is used for hostname
+ lookups (although there is an exception file). In response to
+ these disadvantages though: First, there's got to be an SMTP server
+ somewhere around if you're in the Internet or have a local network.
+ Since the server search-list is very general, a wide-range of
+ options are possible. Second, SMTP should be fixed to have authen-
+ tication mechanisms in it, like POP. Third, _\bM_\bH won't choke on mail
+ to hosts whose official names it can't verify, it'll just plug
+ along (and besides if you enable the BERK or DUMB configuration
+ options, _\bM_\bH ignores the hosts file altogether).
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bM_\bM_\bD_\bF-_\bI_\bI: _\bA _\bT_\be_\bc_\bh_\bn_\bi_\bc_\ba_\bl _\bR_\be_\bv_\bi_\be_\bw, Proceedings, Usenix Summer '84 Confer-
+ ence
+ _\bS_\bE_\bN_\bD_\bM_\bA_\bI_\bL -- _\bA_\bn _\bI_\bn_\bt_\be_\br_\bn_\be_\bt_\bw_\bo_\br_\bk _\bM_\ba_\bi_\bl _\bR_\bo_\bu_\bt_\be_\br
+ mh-tailor(8), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The /usr/local/lib/mh/mtstailor file ignores the information in the
+ _\bM_\bM_\bD_\bF-_\bI_\bI tailoring file. It should not.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b3. _\bB_\bB_\bO_\bA_\bR_\bD_\bS
+
+
+
+\e9
+ The UCI BBoards facility has two aspects: message reading, and mes-
+ sage delivery. The configuration directives applicable to BBoards are
+ "bboards: on/off/pop/nntp" and "bbdelivery: on/off".
+
+
+\e9 _\bB_\bB_\bo_\ba_\br_\bd _\bD_\be_\bl_\bi_\bv_\be_\br_\by
+
+ If you enabled BBoards delivery ("bbdelivery: on") during confi-
+ guration, then the initial environment for bboards delivery was set-up
+ during installation. A BBoard called "system" is established, which is
+ the BBoard for general discussion.
+
+ To add more BBoards, become the "bboards" user, and edit the
+ /usr/bboards/BBoards file. The file support/bboards/Example is a copy
+ of the /usr/bboards/BBoards file that we use at UCI. When you add a
+ BBoard, you don't have to create the files associated with it, the
+ BBoards delivery system will do that automatically.
+
+ Private BBoards may be created. To add the fictitious private
+ BBoard "hacks", add the appropriate entry to the BBoards file, create
+ the empty file /usr/bboards/hacks.mbox (or whatever), change the mode of
+ this file to 0640, and change the group of the file to be the groupid of
+ the people that you want to be able to read it. Also be sure to add the
+ "bboards" user to this group (in /etc/group), so the archives can be
+ owned correctly.
+
+ By using the special INVIS flag for a BBoard, special purpose
+ BBoards may be set-up which are invisible to the _\bM_\bH user. For example,
+ if a site distributes a BBoard both locally to a number of machines and
+ to a number of distant machines. It might be useful to have two distri-
+ bution lists: one for all machines on the list, and the other for local
+ machines only. This is actually very simple to do. For the main list,
+ put the standard entry of information in the /usr/bboards/BBoards file,
+ with the complete distribution list. For the local machines list, and
+ add a similar entry to the /usr/bboards/BBoards file. All the fields
+ should be the same except three: the BBoard name should reflect a local
+ designation (e.g., "l-hacks"), the distribution list should contain only
+ machines at the local site, and the flags field should contain the INVIS
+ flag. Since the two entries share the same primary and archive files,
+ messages sent to either list are read by local users, while only thoses
+ messages sent to the main list are read by all users.
+
+ Two automatic facilities for dealing with BBoards exist: automatic
+ archiving and automatic aliasing. The file support/bboards/crontab con-
+ tains some entries that you should add to your /usr/lib/crontab file to
+ run the specified programs at times that are convenient for you. The
+
+ -12-
+
+
+
+
+
+
+
+
+
+ -13-
+
+
+ bboards.daily file is run once a day and generates an alias file for _\bM_\bH.
+ By using this file, users of _\bM_\bH can use, for example, "unix-wizards"
+ instead of "unix-wizards@brl-vgr" when they want to send a message to
+ the "unix-wizards" discussion group. This is a major win, since you
+ just have to know the name of the group, not the address where it's
+ located.
+
+ The bboards.weekly file is run once a week and handles old messages
+ (those received more than 12 days ago) in the BBoards area. In short,
+ those BBoards which are marked for automatic archiving will have their
+ old messages placed in the /usr/bboards/archive/ area, or have their old
+ messages removed. Not only does this make BBoards faster to read, but
+ it conveniently partitions the new messages from the old messages so you
+ can easily put the old messages on tape and then remove them. It turns
+ out that this automatic archiving capability is also a major win.
+
+ At UCI, our policy is to save archived messages on tape (every two
+ months or so). We use a program called _\bb_\bb_\bt_\ba_\br to implement our particu-
+ lar policy. Since some BBoards are private (see above), we save the
+ archives on two tapes: one containing the world-readable archives (this
+ tape is read-only accessible to all users by calling the operator), and
+ the other containing the non-world-readable ones (this tape is kept
+ locked-up somewhere).
+
+
+\e9 _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bw_\bi_\bt_\bh _\bt_\bh_\be _\bP_\bO_\bP
+
+ If you configured _\bM_\bH with "bboards: pop" and "pop: on", then the _\bM_\bH
+ user is allowed to read BBoards on a server machine instead of the local
+ host (thus saving disk space). For completely transparent behavior, the
+ administrator may set certain variables in the mtstailor file on the
+ client host. The variable "popbbhost" indicates the host where BBoards
+ are kept (it doesn't have to be the POP service host, but this host must
+ run both a POP server and the BBoards system). The variable "popbbuser"
+ indicates the guest account on this host for BBoards. This username
+ should not be either the POP user or the BBoards user. Usually the
+ anonymous FTP user (ftp) is the best choice. Finally, the variable
+ "popbblist" indicates the name of a file which contains a list of hosts
+ (one to a line, official host names only) which should be allowed to use
+ the POP facility to access BBoards via the guest account. (If the file
+ is not present, then no check is made.)
+
+ The "popbbuser" variable should be set on both the client and ser-
+ vice host. The "popbbhost" variable need be set only on the client host
+ (the value, of course, is the name of the service host). The
+ "popbblist" variable need be set only on the service host.
+
+ Finally, on the client host, if a POP service host is not expli-
+ citly given by the user (i.e., "popbbhost" is implicitly used), then _\bb_\bb_\bc
+ will explicitly check the local host prior to contacting the service
+ host. This allows each POP client host to have a few local BBoards
+
+\e9
+
+
+
+
+
+
+
+
+
+ -14-
+
+
+ (e.g., each host could have one called "system"), and then have the POP
+ service host used for all the rest (a site-wide BBoard might be known as
+ "general").
+
+
+\e9 _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bw_\bi_\bt_\bh _\bt_\bh_\be _\bN_\bN_\bT_\bP
+
+ If you configured _\bM_\bH with "bboards: nntp" and "pop: on", then the
+ _\bM_\bH user is allowed to read the Network News on a server machine using
+ the standard _\bb_\bb_\bc command. For completely transparent behavior, the
+ administrator may set the "nntphost" variable in the mtstailor file to
+ indicate the host where the Network News is kept. The "nntphost" vari-
+ able should be set only on the client host Finally, on the client host,
+ if an NNTP service host is not explicitly given by the user (i.e.,
+ "nntphost" is implicitly used), then _\bb_\bb_\bc will explicitly check the local
+ host prior to contacting the service host. This allows each NNTP client
+ host to have a few local BBoards (e.g., each host could have one called
+ "system"), and then have the NNTP service host used for to read the Net-
+ work News.
+
+ Reading BBoards via the POP and via the NNTP are mutually
+ exclusive.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+
+
+
+
+
+
+
+
+
+ BBOARDS(5) -15- BBOARDS(5)
+
+
+ _\bN_\bA_\bM_\bE
+ BBoards - BBoards database
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bboards/BBoards
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The BBoards database contains for each BBoard the following infor-
+ mation:
+
+ _\bf_\bi_\be_\bl_\bd _\bv_\ba_\bl_\bu_\be
+ name the name of the BBoard
+ aliases local aliases for the BBoard
+ (separated by commas)
+ primary file the .mbox file
+ encrypted password leadership password
+ leaders local list maintainers (separated by commas)
+ usernames from the _\bp_\ba_\bs_\bs_\bw_\bd (5) file,
+ or groupnames preceded by `=' from the
+ _\bg_\br_\bo_\bu_\bp (5) file
+ network address the list address
+ request address the list maintainer's address
+ relay the host acting as relay for the local domain
+ distribution sites (separated by commas)
+ flags special flags (see <bboards.h>)
+
+ This is an ASCII file. Each field within each BBoard's entry is
+ separated from the next by a colon. Each BBoard entry is separated
+ from the next by a new-line. If the password field is null, no
+ password is demanded; if it contains a single asterisk, then no
+ password is valid.
+
+ This file resides in the home directory of the login "bboards".
+ Because of the encrypted passwords, it can and does have general
+ read permission.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bboards/BBoards BBoards database
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbaka(8), bbexp(8), bboards (8), bbtar(8)
+
+
+ _\bB_\bu_\bg_\bs
+ A binary indexed file format should be available for fast access.
+
+ Appropriate precautions must be taken to lock the file against
+ changes if it is to be edited with a text editor. A _\bv_\bi_\bb_\bb program
+ is needed.
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BBOARDS(5) -16- BBOARDS(5)
+
+
+ _\bN_\bA_\bM_\bE
+ bbaka - generate an alias list for BBoards
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bboards/bbaka [system]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bb_\bb_\ba_\bk_\ba program reads the BBoards database and produces on its
+ standard output a file suitable for inclusion in either the _\bM_\bM_\bD_\bF-_\bI_\bI
+ aliases file (if the argument `system' is given). If the argument
+ is not given, then _\bb_\bb_\ba_\bk_\ba produces on its standard output a file
+ suitable for becoming the /usr/local/lib/mh/BBoardsAliases file.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bboards/BBoards BBoards database
+ /usr/local/lib/mh/BBoardsAliases BBoards aliases file for _\bM_\bH
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bboards(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BBEXP(8) -17- BBEXP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ bbexp - expunge the BBoards area
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bboards/bbexp [-_\bf_\bi_\br_\bs_\bt-_\bm_\be_\bt_\br_\bi_\bc] [-_\bs_\be_\bc_\bo_\bn_\bd-_\bm_\be_\bt_\br_\bi_\bc] [bboards ...]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bb_\bb_\be_\bx_\bp program reads the BBoards database and calls _\bm_\bs_\bh to
+ archive the named BBoards (or all BBoards if none are specified).
+
+ The first-metric (which defaults to 12) gives the age in days of
+ the "BB-Posted:" field for messages which should be expunged. The
+ second-metric (which defaults to 20) gives the age in days of the
+ "Date:" field for messages which should be expunged. Any message
+ which meets either metric will be either archived or removed,
+ depending on what the _\bB_\bB_\bo_\ba_\br_\bd_\bs (5) file says.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bboards/BBoards BBoards database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ msh(1), bboards(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BBOARDS(8) -18- BBOARDS(8)
+
+
+ _\bN_\bA_\bM_\bE
+ bboards - BBoards channel/mailer
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/mmdf/chans/bboards fd1 fd2 [y]
+
+ /usr/local/lib/mh/sbboards bboard ...
+
+ /usr/local/lib/mh/sbboards file maildrop directory bboards.bboard
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ For _\bM_\bM_\bD_\bF, the BBoards channel delivers mail to the BBoards system.
+ For _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl and stand-alone _\bM_\bH, the SBBoards mailer performs this
+ task.
+
+ For each address given, these programs consult the _\bb_\bb_\bo_\ba_\br_\bd_\bs (5) file
+ to ascertain information about the BBoard named by the address.
+ The programs then perform local delivery, if appropriate. After
+ that, with the exception of _\bs_\bb_\bb_\bo_\ba_\br_\bd_\bs running under stand-alone _\bM_\bH,
+ the programs perform redistribution, if appropriate.
+
+ For redistribution, the return address is set to be the request
+ address at the local host, so bad addresses down the line return to
+ the nearest point of authority. If any failures occur during
+ redistribution, a mail message is sent to the local request
+ address.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/bboards/BBoards BBoards database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bboards(5), bbaka(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BBTAR(8) -19- BBTAR(8)
+
+
+ _\bN_\bA_\bM_\bE
+ bbtar - generate the names of archive files to be put to tape
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bboards/bbtar [private] [public]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bb_\bb_\bt_\ba_\br program reads the BBoards database and produces on its
+ standard output the names of BBoards archives which should be put
+ to tape, for direct use in a _\bt_\ba_\br (1) command.
+
+ If the argument `private' is given, only private BBoards are con-
+ sidered. If the argument `public' is given, only public BBoards
+ are considered. This lets the BBoards administrator write two
+ tapes, one for general read-access (the public BBoards), and one
+ for restricted access. The default is all BBoards
+
+ For example:
+
+ cd archive # change to the archive directory
+ tar cv `bbtar private` # save all private BBoard archives
+
+ After the archives have been saved to tape, they are usually
+ removed. The archives are then filled again, usually automatically
+ by cron jobs which run _\bb_\bb_\be_\bx_\bp (8).
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bboards/BBoards BBoards database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bboards(5), bbexp(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b4. _\bP_\bO_\bP
+
+
+
+\e9
+ For POP (Post Office Protocol) client hosts, you need to edit the
+ /usr/local/lib/mh/mtstailor file to know about two hosts: the SMTP ser-
+ vice host and the POP service host. Normally, these are the same.
+ Change the "localname" field of the mtstailor file of _\bM_\bH in the file to
+ be the name of the POP service host. This makes replies to mail gen-
+ erated on the POP client host possible, since _\bM_\bH will consider use the
+ hostname of the POP service host as the local hostname for outgoing
+ mail. Also set the value of "pophost" to this value. This tells _\bi_\bn_\bc
+ and _\bm_\bs_\bg_\bc_\bh_\bk to use POP instead of looking for mail locally. Finally,
+ make sure the value of "servers" includes the name of the SMTP service
+ host. The recommended value for "servers" is:
+
+ servers: SMTP-service-host localhost \01localnet
+
+ If you want more information on the Post Office Protocol used by
+ _\bM_\bH, consult the files support/pop/rfc1081.txt and
+ support/pop/rfc1082.txt which describe the _\bM_\bH version of the POP: POP3.
+
+ For POP service hosts, you need to run a daemon, _\bp_\bo_\bp_\bd (8). The
+ daemon should start at multi-user boot time, so adding the lines:
+
+ if [ -f /etc/popd ]; then
+ /etc/popd & echo -n ' pop' >/dev/console
+ fi
+
+ to the /etc/rc.local file is sufficient.
+
+ The port assigned to the POP3 protocol is "110". For historical
+ reasons, many sites are using port "109" which is the port assigned to
+ the "POP" (ver. 1) protocol. The configuration option "POPSERVICE" is
+ the name of the port number that _\bM_\bH POP will try to use, and defaults to
+ the name "pop".
+
+ To generate _\bM_\bH to use newer assigned port number, in your _\bM_\bH config
+ file, add:
+
+ options POPSERVICE='"pop3"'
+
+ And on both the POP client and service hosts, you need to define the
+ port that the POP service uses. Add the line:
+
+ pop3 110/tcp
+
+ to the /etc/services file (if it's not already there).
+
+
+
+\e9 -20-
+
+
+
+
+
+
+
+
+
+ -21-
+
+
+ There are two ways to administer POP: In "naive" mode, each user-id
+ in the _\bp_\ba_\bs_\bs_\bw_\bd (5) file is considered a POP subscriber. No changes are
+ required for the mailsystem on the POP service host. However, this
+ method requires that each POP subscriber have an entry in the password
+ file. The POP server will fetch the user's mail from wherever maildrops
+ are kept on the POP service host. This means that if maildrops are kept
+ in the user's home directory, then each POP subscriber must have a home
+ directory.
+
+ In "smart" mode (enabled via "DPOP" being given as a configuration
+ option), the list of POP subscribers and the list of login users are
+ completely separate name spaces. A separate database (simple file simi-
+ lar to the _\bB_\bB_\bo_\ba_\br_\bd_\bs (5) file) is used to record information about each
+ POP subscriber. Unfortunately, the local mailsystem must be changed to
+ reflect this. This requires two changes (both of which are simple):
+ First, the aliasing mechanism is augmented so that POP subscriber
+ addresses are diverted to a special delivery mechanism. _\bM_\bH comes with a
+ program, _\bp_\bo_\bp_\ba_\bk_\ba (8), which generates the additional information to be
+ put in the mailsystem's alias file. Second, a special POP channel (for
+ MMDF-II) or POP mailer (for SendMail) performs the actual delivery (_\bm_\bh._\b6
+ supplies both). All it really does is just place the mail in the POP
+ spool area.
+
+ These two different philosophies are not compatible on the same POP
+ service host: one or the other, but not both may be run. Clever mail-
+ system people will note that the POP mechanism is really a special case
+ of the more general BBoards mechanism.
+
+ In addition, there is one user-visible difference, which the
+ administrator controls the availability of. The difference is whether
+ the POP subscriber must supply a password to the POP server: The first
+ method uses the standard ARPA technique of sending a username and a
+ password. The appropriate programs (_\bi_\bn_\bc, _\bm_\bs_\bg_\bc_\bh_\bk, and possibly _\bb_\bb_\bc )
+ will prompt the user for this information.
+
+ The second method (which is enabled via "RPOP" being given as a
+ configuration option) uses the Berkeley UNIX reserved port method for
+ authentication. This requires that the two or three mentioned above
+ programs be _\bs_\be_\bt_\bu_\bi_\bd to root. (There are no known holes in any of these
+ programs.)
+
+ To add a POP subscriber, for the first method, one simply follows
+ the usual procedures for adding a new user, which eventually results in
+ adding a line to the _\bp_\ba_\bs_\bs_\bw_\bd (5) file; for the second method, one must
+ edit the POP database file (kept in the home directory of the POP user),
+ and then run the _\bp_\bo_\bp_\ba_\bk_\ba program. The output of this program is placed
+ in the aliases file for the transport system (e.g., /usr/lib/aliases for
+ SendMail).
+
+ These two different philosophies are compatible on the same POP
+ service host: to selectively disable RPOP for hosts which aren't
+ trusted, either modify the ._\br_\bh_\bo_\bs_\bt_\bs file in the case of POP subscribers
+
+
+
+
+
+
+
+
+
+
+
+ -22-
+
+
+ being UNIX logins, or zero the contents of network address field of the
+ _\bp_\bo_\bp (5) file for the desired POP subscribers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+ POP(5) -23- POP(5)
+
+
+ _\bN_\bA_\bM_\bE
+ POP - POP database of subscribers
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/spool/pop/POP
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The POP database has exactly the same format as the _\bB_\bB_\bo_\ba_\br_\bd_\bs (5)
+ database, although many fields are unused. Currently, only four
+ fields are examined:
+
+ _\bf_\bi_\be_\bl_\bd _\bv_\ba_\bl_\bu_\be
+ name the POP subscriber
+ primary file the maildrop for the POP subscriber
+ (relative to the POP directory)
+ encrypted password the POP subscriber's password
+ network address the remote user allowed to RPOP
+
+ This is an ASCII file. Each field within each POP subscriber's
+ entry is separated from the next by a colon. Each POP subscriber
+ is separated from the next by a new-line. If the password field is
+ null, then no password is valid.
+
+ To add a new POP subscriber, edit the file adding a line such as
+
+ mrose::mrose:::::::0
+
+ Then, use _\bp_\bo_\bp_\bw_\br_\bd to set the password for the POP subscriber. If
+ you wish to allow POP subscribers to access their maildrops without
+ supplying a password (by using privileged ports), fill-in the net-
+ work address field, as in:
+
+ mrose::mrose:::mrose@nrtc-isc::::0
+
+ which permits "mrose@nrtc-isc" to access the maildrop for the POP
+ subscriber "mrose". Multiple network addresses may be specified by
+ separating them with commas, as in:
+
+ dave::dave:9X5/m4yWHvhCc::dave@romano.wisc.edu,dave@rsch.wisc.edu::::
+
+ To disable a POP subscriber from _\br_\be_\bc_\be_\bi_\bv_\bi_\bn_\bg mail, set the primary
+ file name to the empty string. To prevent a POP subscriber from
+ _\bp_\bi_\bc_\bk_\bi_\bn_\bg-_\bu_\bp mail, set the encrypted password to "*" and set the net-
+ work address to the empty string.
+
+ This file resides in home directory of the login "pop". Because of
+ the encrypted passwords, it can and does have general read permis-
+ sion.
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ POP(5) -24- POP(5)
+
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/pop/POP POP database
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bboards(5), pop(8), popaka(8), popd(8), popwrd(8)
+
+
+ _\bB_\bu_\bg_\bs
+ A binary indexed file format should be available for fast access.
+
+ Appropriate precautions must be taken to lock the file against
+ changes if it is to be edited with a text editor. A _\bv_\bi_\bp_\bo_\bp program
+ is needed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ POP(8) -25- POP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ pop - POP channel/mailer
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/mmdf/chans/pop fd1 fd2 [y]
+
+ /usr/local/lib/mh/spop POP-subscriber ...
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ For _\bM_\bM_\bD_\bF-_\bI_\bI, the POP channel delivers mail to the POP spool area
+ for later retrieval by POP subscribers. For _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl, the SPOP
+ mailer performs this task.
+
+ For each address given, these programs consult the _\bp_\bo_\bp (5) file to
+ obtain information about the POP-subscriber named by the address.
+ The programs then deliver the message to the spool area for the
+ POP-subscriber.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/spool/pop/POP POP database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bboards(5), bbaka(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ POPAKA(8) -26- POPAKA(8)
+
+
+ _\bN_\bA_\bM_\bE
+ popaka - generate POP entries for SendMail or MMDF-II alias file
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/popaka
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bp_\bo_\bp_\ba_\bk_\ba program reads the POP database and produces on its stan-
+ dard output a file suitable for inclusion in the SendMail or
+ _\bM_\bM_\bD_\bF-_\bI_\bI aliases file. The contents of this file divert mail for
+ POP subscribers to the POP channel.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/pop/POP POP database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ pop(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ POPD(8) -27- POPD(8)
+
+
+ _\bN_\bA_\bM_\bE
+ popd - the POP server
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/etc/popd [-p portno] (under /etc/rc.local)
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bp_\bo_\bp_\bd server implements the Post Office protocol, as described
+ in RFC1081 and RFC1082. Basically, the server listens on the TCP
+ port named "pop" for connections and enters the POP upon establish-
+ ing a connection. The `-p' option overrides the default TCP port.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/pop/POP POP database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl - _\bv_\be_\br_\bs_\bi_\bo_\bn _\b3 (aka RFC-1081),
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl - _\bv_\be_\br_\bs_\bi_\bo_\bn _\b3: _\bE_\bx_\bt_\be_\bn_\bd_\be_\bd _\bs_\be_\br_\bv_\bi_\bc_\be _\bo_\bf_\bf_\be_\br_\bi_\bn_\bg_\bs
+ (RFC-1082),
+ pop(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ For historical reasons, the _\bM_\bH POP defaults to using the port named
+ "pop" (109) instead of its newly assigned port named "pop3" (110).
+ See the POPSERVICE configuration option for more details.
+
+ Previous versions of the server (10/28/84) had the restriction that
+ the POP client may retrieve messages for login users only. This
+ restriction has been lifted, and true POB support is available
+ (sending mail to a mailbox on the POP service host which does not
+ map to a user-id in the password file).
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ POPWRD(8) -28- POPWRD(8)
+
+
+ _\bN_\bA_\bM_\bE
+ popwrd - set password for a POP subscriber
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/popwrd POP-subscriber
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bp_\bo_\bp_\bw_\br_\bd program lets the super-user or the master POP user or a
+ "leader" of a POP subscriber change the password field for the POP
+ subscriber in the POP database. This program is very similar to
+ the _\bp_\ba_\bs_\bs_\bw_\bd (1) program.
+
+ Since only the super-user and the master POP user may change any
+ other fields of the POP database (using an ordinary editor), it is
+ possible for the system administrator to delegate responsibility to
+ others to manage groups of POP subscribers.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/pop/POP POP database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ pop(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ Although _\bp_\bo_\bp_\bw_\br_\bd does locking against other invocations of _\bp_\bo_\bp_\bw_\br_\bd,
+ editor locking for the POP database in general is not implemented.
+ A _\bv_\bi_\bp_\bo_\bp program is needed.
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b5. _\bM_\bA_\bI_\bL _\bF_\bI_\bL_\bT_\bE_\bR_\bI_\bN_\bG
+
+
+
+\e9
+ There was a time when users on a UNIX host might have had two mail-
+ drops: one from _\bM_\bM_\bD_\bF and the other from _\bU_\bU_\bC_\bP. This was really a bad
+ problem since it prevented using a single user-interface on all of your
+ mail. Furthermore, if you wanted to send a message to addresses on dif-
+ ferent mailsystems, you couldn't send just one message. To solve all
+ these problems, the notion of _\bm_\ba_\bi_\bl _\bf_\bi_\bl_\bt_\be_\br_\bi_\bn_\bg was developed that allowed
+ sophisticated munging and relaying between the two pseudo-domains.
+
+ _\bM_\bH will perform mail filtering, transparently, if given the MF con-
+ figuration option. However, with the advent of _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl and further
+ maturation of _\bM_\bM_\bD_\bF, _\bM_\bH doesn't really need to do this anymore, since
+ these message transport agents handle it.
+
+ The mail-filtering stuff is too complicated. It should be simpler,
+ but, protocol translation really _\bi_\bs difficult.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9 -29-
+
+
+
+
+
+
+
+
+
+ MF(1) -30- MF(1)
+
+
+ _\bN_\bA_\bM_\bE
+ muinc, musift, uminc, umsift - mail filters
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/muinc
+
+ /usr/local/lib/mh/musift [files ...]
+
+ /usr/local/lib/mh/uminc
+
+ /usr/local/lib/mh/umsift [files ...]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The mail filters are a set of programs that filter mail from one
+ format to another. In particular, _\bU_\bU_\bC_\bP- and _\bM_\bM_\bD_\bF-style mail files
+ are handled.
+
+ _\bm_\bu_\bi_\bn_\bc filters mail from the user's _\bM_\bM_\bD_\bF maildrop into the user's
+ _\bU_\bU_\bC_\bP maildrop; similarly, _\bu_\bm_\bi_\bn_\bc filters mail from the user's _\bU_\bU_\bC_\bP
+ maildrop into the user's _\bM_\bM_\bD_\bF maildrop. These two programs respect
+ each system's maildrop locking protocols.
+
+ _\bm_\bu_\bs_\bi_\bf_\bt filters each file on the command line (or the standard input
+ if no arguments are given), and places the result on the standard
+ output in _\bU_\bU_\bC_\bP format. The files (or standard input) are expected
+ to be in _\bM_\bM_\bD_\bF format. _\bu_\bm_\bs_\bi_\bf_\bt does the same thing filtering _\bU_\bU_\bC_\bP
+ formatted files (or input), and places the _\bM_\bM_\bD_\bF formatted result on
+ the standard output. No locking protocols are used by these pro-
+ grams.
+
+ If the files aren't in the expected format, the mail filters will
+ try to recover. In really bad cases, you may lose big.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/mail/ UUCP spool area for maildrops
+ /usr/spool/mail/$USER Location of standard maildrop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\be_\ba_\bd_\be_\br _\bM_\bu_\bn_\bg_\bi_\bn_\bg (aka RFC-886),
+ inc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MF(1) -31- MF(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+
+
+ _\bB_\bu_\bg_\bs
+ Numerous; protocol translation is very difficult.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ RMAIL(8) -32- RMAIL(8)
+
+
+ _\bN_\bA_\bM_\bE
+ rmail - UUCP interface to mail
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ rmail address ...
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bm_\ba_\bi_\bl is intended as a replacement for those systems without _\bS_\be_\bn_\bd_\b-
+ _\bM_\ba_\bi_\bl or _\bM_\bM_\bD_\bF. It is normally invoked by _\bu_\bu_\bx on behalf of the
+ remote _\bU_\bU_\bC_\bP site. For each address, it decides where to send it:
+ either locally, via another _\bU_\bU_\bC_\bP link, or via the Internet.
+
+ _\bR_\bm_\ba_\bi_\bl implements a crude access control facility by consulting the
+ files Rmail.OkHosts and Rmail.OkDests in the /usr/local/lib/mh/
+ directory. Hosts listed in the former file can send messages to
+ anywhere they please. Hosts listed in the latter file can receive
+ messages from anywhere. Note that a host listed in the first file
+ is implicitly listed in the second file.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/local/lib/mh/Rmail.OkHosts list of privileged hosts
+ /usr/local/lib/mh/Rmail.OkDests list of privileged destinations
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mf(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b6. _\bM_\bH _\bH_\bA_\bC_\bK_\bI_\bN_\bG
+
+
+
+\e9
+ Finally, here's a little information on modifying the _\bM_\bH sources.
+ A word of advice however:
+
+
+ _\bD_\bO_\bN'_\bT
+
+
+
+ If you really want new _\bM_\bH capabilities, write a shell script instead.
+ After all, that's what UNIX is all about, isn't it?
+
+ Here's the organization of the _\bM_\bH source tree.
+
+ conf/ configurator tree
+ config/ compiled configuration constants
+ dist/ distributor
+ doc/ manual entries
+ h/ include files
+ miscellany/ various sundries
+ mts/ MTS-specific areas
+ mh/ standalone delivery
+ mmdf/ MMDF-I, MMDF-II
+ sendmail/ SendMail, SMTP
+ papers/ papers about _\bM_\bH
+ sbr/ subroutines
+ support/ support programs and files
+ bboards/ UCI BBoards facility
+ general/ templates
+ pop/ POP facility
+ tma/ Trusted Mail Agent (not present in all distributions)
+ uip/ programs
+ zotnet/ MTS-independent areas
+ bboards/ UCI BBoards facility
+ mf/ Mail Filtering
+ mts/ MTS constants
+ tws/ date routines
+
+
+
+
+
+
+
+
+
+
+
+\e9 -33-
+
+
+
+
+
+
+
+
+
+ MH-HACK(8) -34- MH-HACK(8)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-hack - how to hack MH
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ big hack attack
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ This is a description of how one can modify the _\bM_\bH system. The _\bM_\bH
+ distribution has a lot of complex inter-relations, so before you go
+ modifying any code, you should read this and understand what is
+ going on.
+
+ ADDING A NEW PROGRAM
+ Suppose you want to create a new _\bM_\bH command called "pickle".
+ First, create and edit "pickle.c" in the uip/ directory. Next
+ edit conf/makefiles/uip to include "pickle". This file has
+ directions at the end of it which explain how it should be
+ modified. Next, update any documentation (described below).
+ At this point you can re-configure _\bM_\bH. See _\bm_\bh-_\bg_\be_\bn(_\b8) for
+ instructions on how to do this (basically, you want "mhconfig
+ MH").
+
+ ADDING A NEW SUBROUTINE
+ Suppose you want to create a new _\bM_\bH routine called "pickle".
+ First, create and edit "pickle.c" in the sbr/ directory. Next
+ edit conf/makefiles/sbr to include "pickle". This file has
+ directions at the end of it which explain how it should be
+ modified. You should modify config/mh.h to define "pickle
+ ();". Similarly, sbr/llib-lsbr should be modified for _\bl_\bi_\bn_\bt.
+ At this point you can re-configure _\bM_\bH.
+
+ UPDATING DOCUMENTATION
+ Edit whatever files you want in conf/doc/. When documenting a
+ new program, such as "pickle", you should create a manual page
+ with the name "pickle.rf". The file conf/doc/template has a
+ manual page template that you can use. If you are documenting
+ a new program, then you should also update three other files:
+ The file conf/doc/mh.rf should be modified to include the
+ ".NA" section from "pickle.rf". The file conf/doc/mh-chart.rf
+ should be modified to include the ".SY" section from
+ "pickle.rf". Finally, the file conf/doc/MH.rf should be modi-
+ fied to include a ".so pickle.me". Naturally, none of these
+ changes will be reflected in the configuration until you actu-
+ ally run _\bm_\bh_\bc_\bo_\bn_\bf_\bi_\bg.
+
+ _\bF_\bi_\bl_\be_\bs
+ Too numerous to mention. Honest.
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-HACK(8) -35- MH-HACK(8)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-gen(8)
+
+
+ _\bB_\bu_\bg_\bs
+ Hacking is an art, but most programmers are butchers, not artists.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b7. _\bH_\bI_\bD_\bD_\bE_\bN _\bF_\bE_\bA_\bT_\bU_\bR_\bE_\bS
+
+
+
+\e9
+ The capabilities discussed here should not be used on a production
+ basis, as they are either experimental, are useful for debugging _\bM_\bH, or
+ are otherwise not recommended.
+
+
+
+\e9 _\bD_\be_\bb_\bu_\bg _\bF_\ba_\bc_\bi_\bl_\bi_\bt_\bi_\be_\bs
+
+ The _\bm_\ba_\br_\bk command has a `-debug' switch which essentially prints out
+ all the internal _\bM_\bH data structures for the folder you're looking at.
+
+ The _\bp_\bo_\bs_\bt command has a `-debug' switch which does everything but
+ actually post the message for you. Instead of posting the draft, it
+ sends it to the standard output. Similarly, _\bs_\be_\bn_\bd has a `-debug' switch
+ which gets passed to _\bp_\bo_\bs_\bt.
+
+ Some _\bM_\bH commands look at envariables to determine debug-mode opera-
+ tion of certain new facilities. The current list of envariables is:
+
+ MHFDEBUG OVERHEAD facility
+ MHLDEBUG mhl
+ MHPDEBUG pick
+ MHPOPDEBUG POP transactions
+ MHVDEBUG window management transactions
+ MHWDEBUG alternate-mailboxes
+
+
+
+\e9 _\bF_\bo_\br_\bw_\ba_\br_\bd_\bi_\bn_\bg _\bM_\ba_\bi_\bl
+
+ The _\bf_\bo_\br_\bw and _\bm_\bh_\bl commands have two switches, `-dashmunging' and
+ `-nodashmunging' which enable or disable the prepending of `- ' in for-
+ warded messages. To use `-nodashmunging', you must use an _\bm_\bh_\bl filter
+ file.
+
+
+
+\e9 _\bS_\be_\bn_\bd
+
+ The _\bs_\be_\bn_\bd command has two switches, `-unique' and `-nounique', which
+ are useful to certain individuals who, for obscure reasons, do not use
+ draft-folders.
+
+ "Distribution Carbon Copy" addresses may be specified in the _\bD_\bc_\bc:
+ header. This header is removed before posting the message,and a copy of
+
+ -36-
+
+
+
+
+
+
+
+
+
+ -37-
+
+
+ the message is distributed to each listed address. This could be con-
+ sidered a form of Blind Carbon Copy which is best used for sending to an
+ address which would never reply (such as an auto-archiver).
+
+
+
+\e9 _\bP_\bo_\bs_\bt_\bi_\bn_\bg _\bM_\ba_\bi_\bl
+
+ If you're running a version of _\bM_\bH which talks directly to an _\bS_\bM_\bT_\bP
+ server (or perhaps an advanced _\bM_\bM_\bD_\bF submit process), there are lots of
+ interesting switches for your amusement which _\bs_\be_\bn_\bd and _\bp_\bo_\bs_\bt understand:
+ -mail Use the _\bM_\bA_\bI_\bL command (default)
+ -saml Use the _\bS_\bA_\bM_\bL command
+ -send Use the _\bS_\bE_\bN_\bD command
+ -soml Use the _\bS_\bO_\bM_\bL command
+ -snoop Watch the _\bS_\bM_\bT_\bP transaction
+ -client host Claim to be "host" when posting mail
+ -server host Post mail with "host"
+
+ The last switch is to be useful when _\bM_\bH resides on small worksta-
+ tions (or PC:s) in a network--they can post their outgoing mail with a
+ local relay, and reduce the load on the local system. On POP client
+ hosts, the `-server host' switch is defaulted appropriately using the
+ SMTP search-list mechanism. The _\bw_\bh_\bo_\bm command understands the last three
+ switches.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b8. _\bC_\bO_\bN_\bF_\bI_\bG_\bU_\bR_\bA_\bT_\bI_\bO_\bN _\bO_\bP_\bT_\bI_\bO_\bN_\bS
+
+
+
+\e9
+ This manual was generated with the following configuration options
+ in effect:
+
+
+ ________________________________________________________________________
+
+ Generation Date February 1, 1991
+ Primary Directory /usr/local/
+ Secondary Directory /usr/local/lib/mh/
+ Maildrop Location /usr/spool/mail/$USER
+ POP Support Enabled
+ BBoards using NNTP Enabled
+ Transport System MMDF-II with SMTP
+ ________________________________________________________________________
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9 -38-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bC_\bO_\bN_\bT_\bE_\bN_\bT_\bS
+
+
+
+
+ Section
+
+ 1. INTRODUCTION ............................................... 1
+\e9 Scope of this document ....................................... 1
+\e9 Summary ...................................................... 1
+
+ 2. THE MTS INTERFACE .......................................... 3
+ MH-TAILOR ................................................. 4
+ MH-MTS .................................................... 10
+
+ 3. BBOARDS .................................................... 12
+\e9 BBoard Delivery .............................................. 12
+\e9 BBoards with the POP ......................................... 13
+\e9 BBoards with the NNTP ........................................ 14
+ BBOARDS ................................................... 15
+ BBAKA ..................................................... 16
+ BBEXP ..................................................... 17
+ BBOARDS ................................................... 18
+ BBTAR ..................................................... 19
+
+ 4. POP ........................................................ 20
+ POP ....................................................... 23
+ POP ....................................................... 25
+ POPAKA .................................................... 26
+ POPD ...................................................... 27
+ POPWRD .................................................... 28
+
+ 5. MAIL FILTERING ............................................. 29
+ MF ........................................................ 30
+ RMAIL ..................................................... 32
+
+ 6. MH HACKING ................................................. 33
+ MH-HACK ................................................... 34
+
+ 7. HIDDEN FEATURES ............................................ 36
+\e9 Debug Facilities ............................................. 36
+\e9 Forwarding Mail .............................................. 36
+\e9 Send ......................................................... 36
+\e9 Posting Mail ................................................. 37
+
+ 8. CONFIGURATION OPTIONS ...................................... 38
+
+
+\e9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9 THE RAND MH
+
+\e9 MESSAGE HANDLING
+
+\e9 SYSTEM:
+
+\e9 ADMINISTRATOR'S GUIDE
+
+
+
+
+
+
+ UCI Version
+
+
+
+
+
+ Marshall T. Rose
+
+
+
+
+ _\bF_\bi_\br_\bs_\bt _\bE_\bd_\bi_\bt_\bi_\bo_\bn:
+
+ _\bM_\bH _\bC_\bl_\ba_\bs_\bs_\bi_\bc
+
+ (_\bN_\bo_\bt _\bt_\bo _\bb_\be _\bc_\bo_\bn_\bf_\bu_\bs_\be_\bd _\bw_\bi_\bt_\bh _\ba _\bw_\be_\bl_\bl-_\bk_\bn_\bo_\bw_\bn _\bs_\bo_\bf_\bt _\bd_\br_\bi_\bn_\bk)
+
+
+
+
+
+
+
+ February 1, 1991
+
+ 6.7.1a #6[UCI]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
--- /dev/null
+
+
+
+
+
+
+
+
+ _\bd_\bi_\bs_\bc_\ba_\br_\bd _\bt_\bh_\bi_\bs _\bp_\ba_\bg_\be
+
+
+
+
+ The RAND _\bM_\bH
+ Message Handling
+ System:
+ Administrator's Guide
+
+ UCI Version
+
+
+ November 30, 1993
+ 6.8.3 #1[UCI]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b1. _\bI_\bN_\bT_\bR_\bO_\bD_\bU_\bC_\bT_\bI_\bO_\bN
+
+
+
+
+
+
+
+ _\bS_\bc_\bo_\bp_\be _\bo_\bf _\bt_\bh_\bi_\bs _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt
+
+ This is the Administrator's Guide to _\bM_\bH. If you don't maintain an
+ _\bM_\bH system, don't read this; the information is entirely too technical.
+ If you are a maintainer, then read this guide until you understand it,
+ follow the advice it gives, and then forget about the guide.
+
+ Before continuing, I'll point out two facts:
+
+
+
+ _\bT_\bh_\bi_\bs _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt _\bw_\bi_\bl_\bl _\bn_\be_\bv_\be_\br _\bc_\bo_\bn_\bt_\ba_\bi_\bn _\ba_\bl_\bl _\bt_\bh_\be _\bi_\bn_\bf_\bo_\br_\bm_\ba_\bt_\bi_\bo_\bn
+ _\by_\bo_\bu _\bn_\be_\be_\bd _\bt_\bo _\bm_\ba_\bi_\bn_\bt_\ba_\bi_\bn _\bM_\bH.
+
+ _\bF_\bu_\br_\bt_\bh_\be_\br_\bm_\bo_\br_\be, _\bt_\bh_\bi_\bs _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt _\bw_\bi_\bl_\bl _\bn_\be_\bv_\be_\br _\bc_\bo_\bn_\bt_\ba_\bi_\bn _\be_\bv_\be_\br_\by_\bt_\bh_\bi_\bn_\bg
+ _\bI _\bk_\bn_\bo_\bw _\ba_\bb_\bo_\bu_\bt _\bm_\ba_\bi_\bn_\bt_\ba_\bi_\bn_\bi_\bn_\bg _\bM_\bH.
+
+
+
+ _\bM_\bH, and mailsystems in general, are more complex than most people real-
+ ize. A combination of experience, intuition, and tenacity is required
+ to maintain _\bM_\bH properly. This document can provide only guidelines for
+ bringing up an _\bM_\bH system and maintaining it. There is a sufficient
+ amount of customization possible that not all events or problems can be
+ forseen.
+
+
+
+ _\bS_\bu_\bm_\bm_\ba_\br_\by
+
+ During _\bM_\bH generation, you specify several configuration constants
+ to the _\bm_\bh_\bc_\bo_\bn_\bf_\bi_\bg program. These directives take into consideration such
+ issues as hardware and operating system dependencies in the source code.
+ They also factor out some major mailsystem administrative decisions that
+ are likely to be made consistantly at sites with more than one host.
+ The manual entry _\bm_\bh-_\bg_\be_\bn (8) describes all the static configuration
+ directives.
+
+ However, when you install _\bM_\bH you may wish to make some
+ site-specific or host-specific changes which aren't hardware or even
+ software related. Rather, they are administrative decisions. That's
+ what this guide is for: it describes all of the dynamically tailorable
+ directives.
+
+
+
+
+
+
+
+
+
+
+
+
+ -2-
+
+
+ Usually, after installing _\bM_\bH, you'll want to edit the
+ /usr/local/lib/mh/mtstailor file. This file fine-tunes the way _\bM_\bH
+ interacts with the message transport system (MTS). Section 2 talks
+ about the MTS interface and MTS tailoring.
+
+ After that, if you're running the UCI BBoards facility, or the POP
+ facility, you'll need to know how to maintain those systems. Sections 3
+ and 4 talk about these.
+
+ If for some reason you're not running an MTS that can handle both
+ Internet and _\bU_\bU_\bC_\bP traffic, you should read-up on mail filtering in Sec-
+ tion 5. Although this is considered "old technology" now, the mechan-
+ isms described in Section 5 were really quite useful when first intro-
+ duced way back in 1981.
+
+ Finally, you may want to know how to modify the _\bM_\bH source tree.
+ Section 6 talks (a little bit) about that.
+
+ The last two sections describe a few hidden features in _\bM_\bH, and the
+ configuration options that were in effect when this guide was generated.
+
+ After _\bM_\bH is installed, you should define the address "Bug-MH" to
+ map to either you or the _\bP_\bo_\bs_\bt_\bM_\ba_\bs_\bt_\be_\br at your site.
+
+ In addition, if you want to tailor the behavior of _\bM_\bH for new
+ users, you can create and edit the file /usr/local/lib/mh/mh.profile.
+ When the _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh program is run for a user, if this file exists, it
+ will copy it into the user's .mh_profile file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b2. _\bT_\bH_\bE _\bM_\bT_\bS _\bI_\bN_\bT_\bE_\bR_\bF_\bA_\bC_\bE
+
+
+
+
+
+ The file /usr/local/lib/mh/mtstailor customizes certain
+ host-specific parameters of _\bM_\bH related primarily to interactions with
+ the transport system. The parameters in this file override the
+ compiled-in defaults given during _\bM_\bH configuration. Rather than recom-
+ piling _\bM_\bH on each host to make minor customizations, it is easier simply
+ to modify the mtstailor file. All hosts at a given site normally use
+ the same mtstailor file, though this need not be the case.
+
+ It is a good idea to run the _\bc_\bo_\bn_\bf_\bl_\bi_\bc_\bt (8) program each morning
+ under _\bc_\br_\bo_\bn. The following line usually suffices:
+
+ 00 05 * * * /usr/local/lib/mh/conflict -mail PostMaster
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -3-
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -4- MH-TAILOR(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-tailor, mtstailor - system customization for MH message handler
+
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /_\bu_\bs_\br/_\bl_\bo_\bc_\ba_\bl/_\bl_\bi_\bb/_\bm_\bh/_\bm_\bt_\bs_\bt_\ba_\bi_\bl_\bo_\br
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The file /usr/local/lib/mh/mtstailor defines run-time options for
+ those _\bM_\bH programs which interact (in some form) with the message
+ transport system. At present, these (user) programs are: _\ba_\bp, _\bc_\bo_\bn_\b-
+ _\bf_\bl_\bi_\bc_\bt, _\bi_\bn_\bc, _\bm_\bs_\bg_\bc_\bh_\bk, _\bm_\bs_\bh, _\bp_\bo_\bs_\bt, _\br_\bc_\bv_\bd_\bi_\bs_\bt, and _\br_\bc_\bv_\bp_\ba_\bc_\bk.
+
+ Each option should be given on a single line. Blank lines and
+ lines which begin with `#' are ignored. The options available
+ along with default values and a description of their meanings are
+ listed below:
+
+ localname:
+ The host name _\bM_\bH considers local. If not set, depending on
+ the version of UNIX you're running, _\bM_\bH will query the system
+ for this value (e.g., <whoami.h>, gethostname, etc.). This
+ has no equivalent in the _\bM_\bH configuration file. POP client
+ hosts should set this value to the name of the POP service
+ host.
+
+ localdomain:
+ If this is set, a `.' followed by this string will be appended
+ to your host name. This might be useful for sites where the
+ host name returned by the system (e.g., <whoami.h>, gethost-
+ name, etc.), is not a "fully qualified domain name" (i.e.,
+ does not contain a `.').
+
+ clientname:
+ The host name _\bM_\bH will give in the SMTP HELO (and EHLO) com-
+ mand, when posting mail. If not set, no HELO command will be
+ given. Although the HELO command is required by RFC 821, many
+ SMTP servers do not require it.
+
+ Early versions of SendMail will fail if the host name given in
+ the HELO command is the local host; later versions of SendMail
+ will complain if you omit the HELO command. If you run Send-
+ Mail, find out what your system expects and set this field
+ accordingly.
+
+ systemname:
+ The name of the local host in the _\bU_\bU_\bC_\bP "domain". If not set,
+ depending on the version of UNIX you're running, _\bM_\bH will query
+ the system for this value. This has no equivalent in the _\bM_\bH
+ configuration file.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -5- MH-TAILOR(5)
+
+
+ mmdfldir: /usr/spool/mail
+ The directory where maildrops are kept. If this is empty, the
+ user's home directory is used. This overrides the "mail"
+ field in the _\bM_\bH configuration file.
+
+ mmdflfil:
+ The name of the maildrop file in the directory where maildrops
+ are kept. If this is empty, the user's login name is used.
+ This overrides the "mail" field in the _\bM_\bH configuration file.
+
+ mmdelim1: \001\001\001\001\n
+ The beginning-of-message delimiter for maildrops.
+
+ mmdelim2: \001\001\001\001\n
+ The end-of-message delimiter for maildrops.
+
+ mmailid: 0
+ If non-zero, then support for MMailids in /etc/passwd is
+ enabled. Basically, the pw_gecos field in the password file
+ is of the form
+
+ My Full Name <mailid>
+
+ The _\bM_\bH internal routines that deal with user and full names
+ will return "mailid" and "My Full Name" respectively.
+
+ lockstyle: 0
+ The locking discipline to perform. A value of "0" means to
+ use kernel-level locking if available. (See below for more
+ details.) On systems compiled without kernel-level locking,
+ standard _\bB_\be_\bl_\bl_\bM_\ba_\bi_\bl locking is used. A value of "1" means to
+ use _\bB_\be_\bl_\bl_\bM_\ba_\bi_\bl locking always (the name of the lock is based on
+ the file name). A value of "2" means to use _\bM_\bM_\bD_\bF locking
+ always (the name of the lock is based on device/inode pairs).
+
+ lockldir:
+ The name of the directory for making locks. If your system
+ isn't configured to use kernel-level locking, then this direc-
+ tory is used when creating locks. If the value is empty, then
+ the directory of the file to be locked is used.
+
+ maildelivery: /usr/local/lib/mh/maildelivery
+ The name of the system-wide default ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file. See
+ _\bm_\bh_\bo_\bo_\bk (1) for the details.
+
+ everyone: 200
+ The highest user-id which should NOT receive mail addressed to
+ "everyone".
+
+ noshell:
+ If set, then each user-id greater than "everyone" that has a
+ login shell equivalent to the given value (e.g., "/bin/csh")
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -6- MH-TAILOR(5)
+
+
+ indicates that mail for "everyone" should not be sent to them.
+ This is useful for handling admin, dummy, and guest logins.
+
+ _\bM_\ba_\bi_\bl _\bF_\bi_\bl_\bt_\be_\br_\bi_\bn_\bg
+
+ These options are only available if you compiled _\bM_\bH with
+ "options MF".
+
+ uucpchan: name of _\bU_\bU_\bC_\bP channel
+ Usually "UUCP". This has no equivalent in the _\bM_\bH configura-
+ tion file.
+
+ uucpldir: /usr/spool/mail
+ The name of the directory where _\bU_\bU_\bC_\bP maildrops are kept. This
+ has no equivalent in the _\bM_\bH configuration file.
+
+ uucplfil:
+ The name of the maildrop file in the directory where _\bU_\bU_\bC_\bP
+ maildrops are kept. If this is empty, the user's login name
+ is used. This has no equivalent in the _\bM_\bH configuration file.
+
+ umincproc: /usr/local/lib/mh/uminc
+ The path to the program that filters _\bU_\bU_\bC_\bP-style maildrops to
+ _\bM_\bM_\bD_\bF-style maildrops.
+
+ _\bS_\bt_\ba_\bn_\bd-_\bA_\bl_\bo_\bn_\be _\bD_\be_\bl_\bi_\bv_\be_\br_\by
+
+ These options are only available if you compiled _\bM_\bH to use stand-
+ alone delivery (i.e., "mts: mh").
+
+ mailqdir: /usr/spool/netmail
+ The directory where network mail is queued.
+
+ tmailqdir: /usr/tmp
+ The directory where network mail queue files are built.
+
+ syscpy: 1
+ If ON, unauthorized mail is copied to the overseer.
+
+ overseer: root
+ The user that receives reports of unauthorized mail.
+
+ mailer: root
+ The user acting for the mail system.
+
+ fromtmp: /tmp/rml.f.XXXXXX
+ The _\bm_\bk_\bt_\be_\bm_\bp template for storing from lines.
+
+ msgtmp: /tmp/rml.m.XXXXXX
+ The _\bm_\bk_\bt_\be_\bm_\bp template for storing the rest of the message.
+
+ errtmp: /tmp/rml.e.XXXXXX
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -7- MH-TAILOR(5)
+
+
+ The _\bm_\bk_\bt_\be_\bm_\bp template for storing error messages from other
+ mailers.
+
+ tmpmode: 0600
+ The octal mode which temporary files are set to.
+
+ okhosts: /usr/local/lib/mh/Rmail.OKHosts
+ A file containing a list of hosts that can send ARPAnet mail.
+
+ okdests: /usr/local/lib/mh/RMail.OKDests
+ A file containing a list of hosts that can always receive
+ mail.
+
+ _\bT_\bh_\be `/_\bs_\bm_\bt_\bp' _\bM_\bT_\bS _\bS_\bu_\bf_\bf_\bi_\bx
+
+ These options are only available if you compiled _\bM_\bH with the
+ "/smtp" suffix to your "mts:" configuration.
+
+ hostable: /usr/local/lib/mh/hosts
+ The exceptions file for /etc/hosts used by _\bp_\bo_\bs_\bt to try to find
+ official names. The format of this file is quite simple:
+
+ 1. Comments are surrounded by sharp (`#') and newline.
+ 2. Words are surrounded by white space.
+ 3. The first word on the line is the official name of a
+ host.
+ 4. All words following the official names are aliases for
+ that host.
+
+ servers: localhost \01localnet
+ A lists of hosts and networks which to look for SMTP servers
+ when posting local mail. It turns out this is a major win for
+ hosts which don't run an message transport system. The value
+ of "servers" should be one or more items. Each item is the
+ name of either a host or a net (in the latter case, precede
+ the name of the net by a \01). This list is searched when
+ looking for a smtp server to post mail. If a host is present,
+ the SMTP port on that host is tried. If a net is present, the
+ SMTP port on each host in that net is tried. Note that if you
+ are running with the BIND code, then any networks specified
+ are ignored (sorry, the interface went away under BIND).
+
+ _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl
+
+ This option is only available if you compiled _\bM_\bH to use _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl as
+ your delivery agent (i.e., "mts: sendmail").
+
+ sendmail: /usr/lib/sendmail
+ The pathname to the _\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl program.
+
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -8- MH-TAILOR(5)
+
+
+ This option is only available if you compiled _\bM_\bH with POP support
+ enabled (i.e., "pop: on").
+
+ pophost:
+ The name of the default POP service host. If this is not set,
+ then _\bM_\bH looks in the standard maildrop areas for waiting mail,
+ otherwise the named POP service host is consulted.
+
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bD_\be_\bl_\bi_\bv_\be_\br_\by
+
+ This option is only available if you compiled _\bM_\bH with
+ "bbdelivery: on".
+
+ bbdomain:
+ The local BBoards domain (a UCI hack).
+
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs & _\bT_\bh_\be _\bP_\bO_\bP
+
+ These options are only available if you compiled _\bM_\bH with
+ "bboards: pop" and "pop: on".
+
+ popbbhost:
+ The POP service host which also acts as a BBoard server. This
+ variable should be set on the POP BBoards client host.
+
+ popbbuser:
+ The guest account on the POP/BB service host. This should be
+ a different login ID than either the POP user or the BBoards
+ user. (The user-id "ftp" is highly recommended.) This vari-
+ able should be set on both the POP BBoards client and service
+ hosts.
+
+ popbblist: /usr/local/lib/mh/hosts.popbb
+ A file containing of lists of hosts that are allowed to use
+ the POP facility to access BBoards using the guest account.
+ If this file is not present, then no check is made. This
+ variable should be set on the POP BBoards service host.
+
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs & _\bT_\bh_\be _\bN_\bN_\bT_\bP
+
+ This option is only available if you compiled _\bM_\bH with
+ "bboards: nntp" and "pop: on".
+
+ nntphost:
+ The host which provides the NNTP service. This variable
+ should be set on the NNTP BBoards client host.
+
+ _\bF_\bi_\bl_\be _\bL_\bo_\bc_\bk_\bi_\bn_\bg
+
+ A few words on locking: _\bM_\bH has a flexible locking system for making
+ locks on files. There are two mtstailor variables you should be
+ aware of "lockstyle" and "lockldir". The first controls the method
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-TAILOR(5) -9- MH-TAILOR(5)
+
+
+ of locking, the second says where lock files should be created.
+
+ The "lockstyle" variable can take on three values: 0, 1, 2. A
+ value of 0 is useful on systems with kernel-level locking. If you
+ are on a BSD42 system, _\bM_\bH assumes you have the _\bf_\bl_\bo_\bc_\bk system call.
+ On other systems: define FLOCK if you want to use the _\bf_\bl_\bo_\bc_\bk system
+ call; define LOCKF if you want to use the _\bl_\bo_\bc_\bk_\bf system call; or
+ define FCNTL if you want to use the _\bf_\bc_\bn_\bt_\bl system call for kernel-
+ level locking. If you haven't configured _\bM_\bH to use kernel-level
+ locking, a locking style of 0 is considered the same as locking
+ style 1.
+
+ A value of 1 or 2 specifies that a file should be created whose
+ existence means "locked" and whose non-existence means "unlocked".
+ A value of 1 says to construct the lockname by appending ".lock" to
+ the name of the file being locked. A value of 2 says to construct
+ the lockname by looking at the device and inode numbers of the file
+ being locked. If the "lockldir" variable is not specified, lock
+ files will be created in the directory where the file being locked
+ resides. Otherwise, lock files will be created in the directory
+ specified by "lockldir". Prior to installing _\bM_\bH, you should see
+ how locking is done at your site, and set the appropriate values.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-gen(8), mh-mts(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ As listed above
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MTS(8) -10- MH-MTS(8)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-mts - the MH interface to the message transport system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ SendMail
+
+ Zmailer
+
+ MMDF (any release)
+
+ stand-alone
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bH can use a wide range of message transport systems to deliver
+ mail. Although the _\bM_\bH administrator usually doesn't get to choose
+ which MTS to use (since it's already in place), this document
+ briefly describes the interfaces.
+
+ When communicating with _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl, _\bM_\bH always uses the SMTP to post
+ mail. Depending on the _\bM_\bH configuration, _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl may be invoked
+ directly (via a _\bf_\bo_\br_\bk and an _\be_\bx_\be_\bc), or _\bM_\bH may open a TCP/IP connec-
+ tion to the SMTP server on the localhost.
+
+ When communicating with _\bz_\bm_\ba_\bi_\bl_\be_\br, the _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl compatibility program
+ is required to be installed in /usr/lib. _\bM_\bH communicates with
+ _\bz_\bm_\ba_\bi_\bl_\be_\br by using the SMTP. It does this by invoking the
+ /usr/lib/sendmail compatibility program directly, with the `-bs'
+ option.
+
+ When communicating with _\bM_\bM_\bD_\bF, normally _\bM_\bH uses the "mm_" routines
+ to post mail. However, depending on the _\bM_\bH configuration, _\bM_\bH
+ instead may open a TCP/IP connection to the SMTP server on the
+ localhost.
+
+ When using the stand-alone system (NOT recommended), _\bM_\bH delivers
+ local mail itself and queues _\bU_\bU_\bC_\bP and network mail. The network
+ mail portion will probably have to be modified to reflect the local
+ host's tastes, since there is no well-known practice in this area
+ for all types of UNIX hosts.
+
+ If you are running a UNIX system with TCP/IP networking, then it is
+ felt that the best interface is achieved by using either _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl
+ or _\bM_\bM_\bD_\bF with the SMTP option. This gives greater flexibility. To
+ enable this option you append the /smtp suffix to the mts option in
+ the _\bM_\bH configuration. This yields two primary advantages: First,
+ you don't have to know where _\bs_\bu_\bb_\bm_\bi_\bt or _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl live. This means
+ that _\bM_\bH binaries (e.g., _\bp_\bo_\bs_\bt ) don't have to have this information
+ hard-coded, or can run different programs altogether; and, second,
+ you can post mail with the server on different systems, so you
+ don't need either _\bM_\bM_\bD_\bF or _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl on your local host. Big win in
+ conserving cycles and disk space. Since _\bM_\bH supports the notion of
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MTS(8) -11- MH-MTS(8)
+
+
+ a server search-list in this respect, this approach can be tolerant
+ of faults. Be sure to set "servers:" as described in mh-tailor(8)
+ if you use this option.
+
+ There are four disadvantages to using the SMTP option: First, only
+ UNIX systems with TCP/IP are supported. Second, you need to have
+ an SMTP server running somewhere on any network your local host can
+ reach. Third, this bypasses any authentication mechanisms in _\bM_\bM_\bD_\bF
+ or _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl. Fourth, the file /etc/hosts is used for hostname
+ lookups (although there is an exception file). In response to
+ these disadvantages though: First, there's got to be an SMTP server
+ somewhere around if you're in the Internet or have a local network.
+ Since the server search-list is very general, a wide-range of
+ options are possible. Second, SMTP should be fixed to have authen-
+ tication mechanisms in it, like POP. Third, _\bM_\bH won't choke on mail
+ to hosts whose official names it can't verify, it'll just plug
+ along (and besides if you enable the BERK or DUMB configuration
+ options, _\bM_\bH ignores the hosts file altogether).
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bM_\bM_\bD_\bF-_\bI_\bI: _\bA _\bT_\be_\bc_\bh_\bn_\bi_\bc_\ba_\bl _\bR_\be_\bv_\bi_\be_\bw, Proceedings, Usenix Summer '84 Confer-
+ ence
+ _\bS_\bE_\bN_\bD_\bM_\bA_\bI_\bL -- _\bA_\bn _\bI_\bn_\bt_\be_\br_\bn_\be_\bt_\bw_\bo_\br_\bk _\bM_\ba_\bi_\bl _\bR_\bo_\bu_\bt_\be_\br
+ mh-tailor(8), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The /usr/local/lib/mh/mtstailor file ignores the information in the
+ _\bM_\bM_\bD_\bF-_\bI_\bI tailoring file. It should not.
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b3. _\bB_\bB_\bO_\bA_\bR_\bD_\bS
+
+
+
+
+
+ The UCI BBoards facility has two aspects: message reading, and mes-
+ sage delivery. The configuration directives applicable to BBoards are
+ "bboards: on/off/pop/nntp" and "bbdelivery: on/off".
+
+
+ _\bB_\bB_\bo_\ba_\br_\bd _\bD_\be_\bl_\bi_\bv_\be_\br_\by
+
+ If you enabled BBoards delivery ("bbdelivery: on") during confi-
+ guration, then the initial environment for bboards delivery was set-up
+ during installation. A BBoard called "system" is established, which is
+ the BBoard for general discussion.
+
+ To add more BBoards, become the "bboards" user, and edit the
+ /usr/spool/bboards/BBoards file. The file support/bboards/Example is a
+ copy of the /usr/spool/bboards/BBoards file that we use at UCI. When
+ you add a BBoard, you don't have to create the files associated with it,
+ the BBoards delivery system will do that automatically.
+
+ Private BBoards may be created. To add the fictitious private
+ BBoard "hacks", add the appropriate entry to the BBoards file, create
+ the empty file /usr/spool/bboards/hacks.mbox (or whatever), change the
+ mode of this file to 0640, and change the group of the file to be the
+ groupid of the people that you want to be able to read it. Also be sure
+ to add the "bboards" user to this group (in /etc/group), so the archives
+ can be owned correctly.
+
+ By using the special INVIS flag for a BBoard, special purpose
+ BBoards may be set-up which are invisible to the _\bM_\bH user. For example,
+ if a site distributes a BBoard both locally to a number of machines and
+ to a number of distant machines. It might be useful to have two distri-
+ bution lists: one for all machines on the list, and the other for local
+ machines only. This is actually very simple to do. For the main list,
+ put the standard entry of information in the /usr/spool/bboards/BBoards
+ file, with the complete distribution list. For the local machines list,
+ and add a similar entry to the /usr/spool/bboards/BBoards file. All the
+ fields should be the same except three: the BBoard name should reflect a
+ local designation (e.g., "l-hacks"), the distribution list should con-
+ tain only machines at the local site, and the flags field should contain
+ the INVIS flag. Since the two entries share the same primary and
+ archive files, messages sent to either list are read by local users,
+ while only thoses messages sent to the main list are read by all users.
+
+ Two automatic facilities for dealing with BBoards exist: automatic
+ archiving and automatic aliasing. The file support/bboards/crontab con-
+ tains some entries that you should add to your /usr/lib/crontab file to
+ run the specified programs at times that are convenient for you. The
+
+ -12-
+
+
+
+
+
+
+
+
+
+ -13-
+
+
+ bboards.daily file is run once a day and generates an alias file for _\bM_\bH.
+ By using this file, users of _\bM_\bH can use, for example, "unix-wizards"
+ instead of "unix-wizards@brl-vgr" when they want to send a message to
+ the "unix-wizards" discussion group. This is a major win, since you
+ just have to know the name of the group, not the address where it's
+ located.
+
+ The bboards.weekly file is run once a week and handles old messages
+ (those received more than 12 days ago) in the BBoards area. In short,
+ those BBoards which are marked for automatic archiving will have their
+ old messages placed in the /usr/spool/bboards/archive/ area, or have
+ their old messages removed. Not only does this make BBoards faster to
+ read, but it conveniently partitions the new messages from the old mes-
+ sages so you can easily put the old messages on tape and then remove
+ them. It turns out that this automatic archiving capability is also a
+ major win.
+
+ At UCI, our policy is to save archived messages on tape (every two
+ months or so). We use a program called _\bb_\bb_\bt_\ba_\br to implement our particu-
+ lar policy. Since some BBoards are private (see above), we save the
+ archives on two tapes: one containing the world-readable archives (this
+ tape is read-only accessible to all users by calling the operator), and
+ the other containing the non-world-readable ones (this tape is kept
+ locked-up somewhere).
+
+
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bw_\bi_\bt_\bh _\bt_\bh_\be _\bP_\bO_\bP
+
+ If you configured _\bM_\bH with "bboards: pop" and "pop: on", then the _\bM_\bH
+ user is allowed to read BBoards on a server machine instead of the local
+ host (thus saving disk space). For completely transparent behavior, the
+ administrator may set certain variables in the mtstailor file on the
+ client host. The variable "popbbhost" indicates the host where BBoards
+ are kept (it doesn't have to be the POP service host, but this host must
+ run both a POP server and the BBoards system). The variable "popbbuser"
+ indicates the guest account on this host for BBoards. This username
+ should not be either the POP user or the BBoards user. Usually the
+ anonymous FTP user (ftp) is the best choice. Finally, the variable
+ "popbblist" indicates the name of a file which contains a list of hosts
+ (one to a line, official host names only) which should be allowed to use
+ the POP facility to access BBoards via the guest account. (If the file
+ is not present, then no check is made.)
+
+ The "popbbuser" variable should be set on both the client and ser-
+ vice host. The "popbbhost" variable need be set only on the client host
+ (the value, of course, is the name of the service host). The
+ "popbblist" variable need be set only on the service host.
+
+ Finally, on the client host, if a POP service host is not expli-
+ citly given by the user (i.e., "popbbhost" is implicitly used), then _\bb_\bb_\bc
+ will explicitly check the local host prior to contacting the service
+ host. This allows each POP client host to have a few local BBoards
+
+
+
+
+
+
+
+
+
+
+
+ -14-
+
+
+ (e.g., each host could have one called "system"), and then have the POP
+ service host used for all the rest (a site-wide BBoard might be known as
+ "general").
+
+
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bw_\bi_\bt_\bh _\bt_\bh_\be _\bN_\bN_\bT_\bP
+
+ If you configured _\bM_\bH with "bboards: nntp" and "pop: on", then the
+ _\bM_\bH user is allowed to read the Network News on a server machine using
+ the standard _\bb_\bb_\bc command. For completely transparent behavior, the
+ administrator may set the "nntphost" variable in the mtstailor file to
+ indicate the host where the Network News is kept. The "nntphost" vari-
+ able should be set only on the client host Finally, on the client host,
+ if an NNTP service host is not explicitly given by the user (i.e.,
+ "nntphost" is implicitly used), then _\bb_\bb_\bc will explicitly check the local
+ host prior to contacting the service host. This allows each NNTP client
+ host to have a few local BBoards (e.g., each host could have one called
+ "system"), and then have the NNTP service host used for to read the Net-
+ work News.
+
+ Reading BBoards via the POP and via the NNTP are mutually
+ exclusive.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BBOARDS(5) -15- BBOARDS(5)
+
+
+ _\bN_\bA_\bM_\bE
+ BBoards - BBoards database
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/spool/bboards/BBoards
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The BBoards database contains for each BBoard the following infor-
+ mation:
+
+ _\bf_\bi_\be_\bl_\bd _\bv_\ba_\bl_\bu_\be
+ name the name of the BBoard
+ aliases local aliases for the BBoard
+ (separated by commas)
+ primary file the .mbox file
+ encrypted password leadership password
+ leaders local list maintainers (separated by commas)
+ usernames from the _\bp_\ba_\bs_\bs_\bw_\bd (5) file,
+ or groupnames preceded by `=' from the
+ _\bg_\br_\bo_\bu_\bp (5) file
+ network address the list address
+ request address the list maintainer's address
+ relay the host acting as relay for the local domain
+ distribution sites (separated by commas)
+ flags special flags (see <bboards.h>)
+
+ This is an ASCII file. Each field within each BBoard's entry is
+ separated from the next by a colon. Each BBoard entry is separated
+ from the next by a new-line. If the password field is null, no
+ password is demanded; if it contains a single asterisk, then no
+ password is valid.
+
+ This file resides in the home directory of the login "bboards".
+ Because of the encrypted passwords, it can and does have general
+ read permission.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/bboards/BBoards BBoards database
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbaka(8), bbexp(8), bboards (8), bbtar(8)
+
+
+ _\bB_\bu_\bg_\bs
+ A binary indexed file format should be available for fast access.
+
+ Appropriate precautions must be taken to lock the file against
+ changes if it is to be edited with a text editor. A _\bv_\bi_\bb_\bb program
+ is needed.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBOARDS(5) -16- BBOARDS(5)
+
+
+ _\bN_\bA_\bM_\bE
+ bbaka - generate an alias list for BBoards
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/spool/bboards/bbaka [system]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bb_\bb_\ba_\bk_\ba program reads the BBoards database and produces on its
+ standard output a file suitable for inclusion in either the _\bM_\bM_\bD_\bF-_\bI_\bI
+ aliases file (if the argument `system' is given). If the argument
+ is not given, then _\bb_\bb_\ba_\bk_\ba produces on its standard output a file
+ suitable for becoming the /usr/local/lib/mh/BBoardsAliases file.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/bboards/BBoards BBoards database
+ /usr/local/lib/mh/BBoardsAliases BBoards aliases file for _\bM_\bH
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bboards(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBEXP(8) -17- BBEXP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ bbexp - expunge the BBoards area
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/spool/bboards/bbexp [-_\bf_\bi_\br_\bs_\bt-_\bm_\be_\bt_\br_\bi_\bc] [-_\bs_\be_\bc_\bo_\bn_\bd-_\bm_\be_\bt_\br_\bi_\bc]
+ [bboards ...]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bb_\bb_\be_\bx_\bp program reads the BBoards database and calls _\bm_\bs_\bh to
+ archive the named BBoards (or all BBoards if none are specified).
+
+ The first-metric (which defaults to 12) gives the age in days of
+ the "BB-Posted:" field for messages which should be expunged. The
+ second-metric (which defaults to 20) gives the age in days of the
+ "Date:" field for messages which should be expunged. Any message
+ which meets either metric will be either archived or removed,
+ depending on what the _\bB_\bB_\bo_\ba_\br_\bd_\bs (5) file says.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/bboards/BBoards BBoards database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ msh(1), bboards(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBOARDS(8) -18- BBOARDS(8)
+
+
+ _\bN_\bA_\bM_\bE
+ bboards - BBoards channel/mailer
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/mmdf/chans/bboards fd1 fd2 [y]
+
+ /usr/local/lib/mh/sbboards bboard ...
+
+ /usr/local/lib/mh/sbboards file maildrop directory bboards.bboard
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ For _\bM_\bM_\bD_\bF, the BBoards channel delivers mail to the BBoards system.
+ For _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl and stand-alone _\bM_\bH, the SBBoards mailer performs this
+ task.
+
+ For each address given, these programs consult the _\bb_\bb_\bo_\ba_\br_\bd_\bs (5) file
+ to ascertain information about the BBoard named by the address.
+ The programs then perform local delivery, if appropriate. After
+ that, with the exception of _\bs_\bb_\bb_\bo_\ba_\br_\bd_\bs running under stand-alone _\bM_\bH,
+ the programs perform redistribution, if appropriate.
+
+ For redistribution, the return address is set to be the request
+ address at the local host, so bad addresses down the line return to
+ the nearest point of authority. If any failures occur during
+ redistribution, a mail message is sent to the local request
+ address.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/spool/bboards/BBoards BBoards database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bboards(5), bbaka(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBTAR(8) -19- BBTAR(8)
+
+
+ _\bN_\bA_\bM_\bE
+ bbtar - generate the names of archive files to be put to tape
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/spool/bboards/bbtar [private] [public]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bb_\bb_\bt_\ba_\br program reads the BBoards database and produces on its
+ standard output the names of BBoards archives which should be put
+ to tape, for direct use in a _\bt_\ba_\br (1) command.
+
+ If the argument `private' is given, only private BBoards are con-
+ sidered. If the argument `public' is given, only public BBoards
+ are considered. This lets the BBoards administrator write two
+ tapes, one for general read-access (the public BBoards), and one
+ for restricted access. The default is all BBoards
+
+ For example:
+
+ cd archive # change to the archive directory
+ tar cv `bbtar private` # save all private BBoard archives
+
+ After the archives have been saved to tape, they are usually
+ removed. The archives are then filled again, usually automatically
+ by cron jobs which run _\bb_\bb_\be_\bx_\bp (8).
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/bboards/BBoards BBoards database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bboards(5), bbexp(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b4. _\bP_\bO_\bP
+
+
+
+
+
+ For POP (Post Office Protocol) client hosts, you need to edit the
+ /usr/local/lib/mh/mtstailor file to know about two hosts: the SMTP ser-
+ vice host and the POP service host. Normally, these are the same.
+ Change the "localname" field of the mtstailor file of _\bM_\bH in the file to
+ be the name of the POP service host. This makes replies to mail gen-
+ erated on the POP client host possible, since _\bM_\bH will consider use the
+ hostname of the POP service host as the local hostname for outgoing
+ mail. Also set the value of "pophost" to this value. This tells _\bi_\bn_\bc
+ and _\bm_\bs_\bg_\bc_\bh_\bk to use POP instead of looking for mail locally. Finally,
+ make sure the value of "servers" includes the name of the SMTP service
+ host. The recommended value for "servers" is:
+
+ servers: SMTP-service-host localhost \01localnet
+
+ If you want more information on the Post Office Protocol used by
+ _\bM_\bH, consult the files support/pop/rfc1081.txt and
+ support/pop/rfc1082.txt which describe the _\bM_\bH version of the POP: POP3.
+
+ For POP service hosts, you need to run a daemon, _\bp_\bo_\bp_\bd (8). The
+ daemon should start at multi-user boot time, so adding the lines:
+
+ if [ -f /etc/popd ]; then
+ /etc/popd & echo -n ' pop' >/dev/console
+ fi
+
+ to the /etc/rc.local file is sufficient.
+
+ The port assigned to the POP3 protocol is "110". For historical
+ reasons, many sites are using port "109" which is the port assigned to
+ the "POP" (version 1 and 2) protocol. The configuration option "POPSER-
+ VICE" is the name of the port number that _\bM_\bH POP will try to use, and
+ defaults to the name "pop".
+
+ To generate _\bM_\bH to use newer assigned port number, in your _\bM_\bH config
+ file, add:
+
+ options POPSERVICE='"pop3"'
+
+ And on both the POP client and service hosts, you need to define the
+ port that the POP service uses. Add the line:
+
+ pop3 110/tcp
+
+ to the /etc/services file (if it's not already there).
+
+
+
+ -20-
+
+
+
+
+
+
+
+
+
+ -21-
+
+
+ There are two ways to administer POP: In "naive" mode, each user-id
+ in the _\bp_\ba_\bs_\bs_\bw_\bd (5) file is considered a POP subscriber. No changes are
+ required for the mailsystem on the POP service host. However, this
+ method requires that each POP subscriber have an entry in the password
+ file. The POP server will fetch the user's mail from wherever maildrops
+ are kept on the POP service host. This means that if maildrops are kept
+ in the user's home directory, then each POP subscriber must have a home
+ directory.
+
+ In "smart" mode (enabled via "DPOP" being given as a configuration
+ option), the list of POP subscribers and the list of login users are
+ completely separate name spaces. A separate database (simple file simi-
+ lar to the _\bB_\bB_\bo_\ba_\br_\bd_\bs (5) file) is used to record information about each
+ POP subscriber. Unfortunately, the local mailsystem must be changed to
+ reflect this. This requires two changes (both of which are simple):
+ First, the aliasing mechanism is augmented so that POP subscriber
+ addresses are diverted to a special delivery mechanism. _\bM_\bH comes with a
+ program, _\bp_\bo_\bp_\ba_\bk_\ba (8), which generates the additional information to be
+ put in the mailsystem's alias file. Second, a special POP channel (for
+ MMDF-II) or POP mailer (for SendMail) performs the actual delivery (_\bm_\bh._\b6
+ supplies both). All it really does is just place the mail in the POP
+ spool area.
+
+ These two different philosophies are not compatible on the same POP
+ service host: one or the other, but not both may be run. Clever mail-
+ system people will note that the POP mechanism is really a special case
+ of the more general BBoards mechanism.
+
+ In addition, there is one user-visible difference, which the
+ administrator controls the availability of. The difference is whether
+ the POP subscriber must supply a password to the POP server: The first
+ method uses the standard ARPA technique of sending a username and a
+ password. The appropriate programs (_\bi_\bn_\bc, _\bm_\bs_\bg_\bc_\bh_\bk, and possibly _\bb_\bb_\bc )
+ will prompt the user for this information.
+
+ The second method (which is enabled via "RPOP" being given as a
+ configuration option) uses the Berkeley UNIX reserved port method for
+ authentication. This requires that the two or three mentioned above
+ programs be _\bs_\be_\bt_\bu_\bi_\bd to root. (There are no known holes in any of these
+ programs.)
+
+ To add a POP subscriber, for the first method, one simply follows
+ the usual procedures for adding a new user, which eventually results in
+ adding a line to the _\bp_\ba_\bs_\bs_\bw_\bd (5) file; for the second method, one must
+ edit the POP database file (kept in the home directory of the POP user),
+ and then run the _\bp_\bo_\bp_\ba_\bk_\ba program. The output of this program is placed
+ in the aliases file for the transport system (e.g., /usr/lib/aliases for
+ SendMail).
+
+ Authentication for POP subscribers differs depending on the two
+ methods. When the user supplies a password for the POP session: under
+ the first method, the contents of the password field for the user's
+
+
+
+
+
+
+
+
+
+
+
+ -22-
+
+
+ entry in the _\bp_\ba_\bs_\bs_\bw_\bd (5) is consulted; under the second method, the con-
+ tents of the password field for the subscriber's entry in the _\bp_\bo_\bp (5)
+ file is consulted. (To set this field, the _\bp_\bo_\bp_\bw_\br_\bd (8) program is used.)
+
+ If you are allowing RPOP, under the first method, the user's
+ ._\br_\bh_\bo_\bs_\bt_\bs file is consulted; under the second method, the contents of the
+ network address field for the subscriber's entry in the _\bp_\bo_\bp (5) file is
+ consulted.
+
+ In addition, a third authentication scheme is available. When the
+ APOP configuration option is given, e.g.,
+
+ options APOP='"/etc/pop.auth"'
+
+ In this case, the server also allows a client to supply authentication
+ credentials to provide for origin authentication and reply protection,
+ but which do not involve sending a password in the clear over the net-
+ work. A POP authorization DB, having as its name the value of APOP con-
+ figuration option, is used to keep track of this information. This file
+ is created and manipulated by the _\bp_\bo_\bp_\ba_\bu_\bt_\bh (8) program. Because this
+ file contains secret information, it must be protected mode 0600 and
+ owned by the super-user. Hence, your first step after installing the
+ software is to issue
+
+ # popauth -init
+
+ which creates and initalizes the POP authorization DB.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POP(5) -23- POP(5)
+
+
+ _\bN_\bA_\bM_\bE
+ POP - POP database of subscribers
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/spool/pop/POP
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The POP database has exactly the same format as the _\bB_\bB_\bo_\ba_\br_\bd_\bs (5)
+ database, although many fields are unused. Currently, only four
+ fields are examined:
+
+ _\bf_\bi_\be_\bl_\bd _\bv_\ba_\bl_\bu_\be
+ name the POP subscriber
+ primary file the maildrop for the POP subscriber
+ (relative to the POP directory)
+ encrypted password the POP subscriber's password
+ network address the remote user allowed to RPOP
+
+ This is an ASCII file. Each field within each POP subscriber's
+ entry is separated from the next by a colon. Each POP subscriber
+ is separated from the next by a new-line. If the password field is
+ null, then no password is valid.
+
+ To add a new POP subscriber, edit the file adding a line such as
+
+ mrose::mrose:::::::0
+
+ Then, use _\bp_\bo_\bp_\bw_\br_\bd to set the password for the POP subscriber. If
+ you wish to allow POP subscribers to access their maildrops without
+ supplying a password (by using privileged ports), fill-in the net-
+ work address field, as in:
+
+ mrose::mrose:::mrose@nrtc-isc::::0
+
+ which permits "mrose@nrtc-isc" to access the maildrop for the POP
+ subscriber "mrose". Multiple network addresses may be specified by
+ separating them with commas, as in:
+
+ dave::dave:9X5/m4yWHvhCc::dave@romano.wisc.edu,dave@rsch.wisc.edu::::
+
+ To disable a POP subscriber from _\br_\be_\bc_\be_\bi_\bv_\bi_\bn_\bg mail, set the primary
+ file name to the empty string. To prevent a POP subscriber from
+ _\bp_\bi_\bc_\bk_\bi_\bn_\bg-_\bu_\bp mail, set the encrypted password to "*" and set the net-
+ work address to the empty string.
+
+ This file resides in home directory of the login "pop". Because of
+ the encrypted passwords, it can and does have general read permis-
+ sion.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/pop/POP POP database
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POP(5) -24- POP(5)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bboards(5), pop(8), popaka(8), popd(8), popwrd(8)
+
+
+ _\bB_\bu_\bg_\bs
+ A binary indexed file format should be available for fast access.
+
+ Appropriate precautions must be taken to lock the file against
+ changes if it is to be edited with a text editor. A _\bv_\bi_\bp_\bo_\bp program
+ is needed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POP(8) -25- POP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ pop - POP channel/mailer
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/mmdf/chans/pop fd1 fd2 [y]
+
+ /usr/local/lib/mh/spop POP-subscriber ...
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ For _\bM_\bM_\bD_\bF-_\bI_\bI, the POP channel delivers mail to the POP spool area
+ for later retrieval by POP subscribers. For _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl, the SPOP
+ mailer performs this task.
+
+ For each address given, these programs consult the _\bp_\bo_\bp (5) file to
+ obtain information about the POP-subscriber named by the address.
+ The programs then deliver the message to the spool area for the
+ POP-subscriber.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/spool/pop/POP POP database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bboards(5), bbaka(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POPAKA(8) -26- POPAKA(8)
+
+
+ _\bN_\bA_\bM_\bE
+ popaka - generate POP entries for SendMail or MMDF-II alias file
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/popaka
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bp_\bo_\bp_\ba_\bk_\ba program reads the POP database and produces on its stan-
+ dard output a file suitable for inclusion in the SendMail or
+ _\bM_\bM_\bD_\bF-_\bI_\bI aliases file. The contents of this file divert mail for
+ POP subscribers to the POP channel.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/pop/POP POP database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ pop(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POPAUTH(8) -27- POPAUTH(8)
+
+
+ _\bN_\bA_\bM_\bE
+ popauth - manipulate POP authorization DB
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ popauth [-init] [-list] [-user name] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bp_\bo_\bp_\ba_\bu_\bt_\bh program allows a POP-subscriber to change the secret
+ value used to generate their authentication credentials. In addi-
+ tion, the super-user or master POP user may use this program to
+ either initialize the database or to print public information from
+ it. _\bp_\bo_\bp_\ba_\bu_\bt_\bh is useful only when the APOP configuration option is
+ defined. (This configuration option defines the name of the POP
+ authorization DB.)
+
+ Under normal usage, _\bp_\bo_\bp_\ba_\bu_\bt_\bh prompts for a new secret, just like the
+ _\bp_\ba_\bs_\bs_\bw_\bd program. It then updates the POP authorization DB accord-
+ ingly.
+
+ With the `-init' switch, the super-user or master POP user can
+ create a new (or zero the existing) POP authorization DB.
+
+ With the `-list' switch, the super-user or master POP user can
+ print out public information about the named subscriber (or all
+ subscribers).
+
+ _\bF_\bi_\bl_\be_\bs
+ /etc/pop.auth.* POP authorization DB
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ popd(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POPD(8) -28- POPD(8)
+
+
+ _\bN_\bA_\bM_\bE
+ popd - the POP server
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/etc/popd [-p portno] (under /etc/rc.local)
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bp_\bo_\bp_\bd server implements the Post Office Protocol (version 3), as
+ described in RFC1081 and RFC1082. Basically, the server listens on
+ the TCP port named "pop" for connections and enters the POP upon
+ establishing a connection. The `-p' option overrides the default
+ TCP port. If the POP2 configuration option is defined, then the
+ server also implements version 2 of the protocol. If the APOP con-
+ figuration option is defined, then the server supports a non-
+ standard mechanism for identity-establishment in which authentica-
+ tion credentials are used to provide for origin authentication and
+ reply protection, but which do not involve sending a password in
+ the clear over the network. See _\bp_\bo_\bp_\ba_\bu_\bt_\bh(8) for more details.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/pop/POP POP database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl - _\bv_\be_\br_\bs_\bi_\bo_\bn _\b3 (aka RFC-1081),
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl - _\bv_\be_\br_\bs_\bi_\bo_\bn _\b3: _\bE_\bx_\bt_\be_\bn_\bd_\be_\bd _\bs_\be_\br_\bv_\bi_\bc_\be _\bo_\bf_\bf_\be_\br_\bi_\bn_\bg_\bs
+ (RFC-1082),
+ pop(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POPD(8) -29- POPD(8)
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ For historical reasons, the _\bM_\bH POP defaults to using the port named
+ "pop" (109) instead of its newly assigned port named "pop3" (110).
+ See the POPSERVICE configuration option for more details.
+
+ Previous versions of the server (10/28/84) had the restriction that
+ the POP client may retrieve messages for login users only. This
+ restriction has been lifted, and true POB support is available
+ (sending mail to a mailbox on the POP service host which does not
+ map to a user-id in the password file).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POPWRD(8) -30- POPWRD(8)
+
+
+ _\bN_\bA_\bM_\bE
+ popwrd - set password for a POP subscriber
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/popwrd POP-subscriber
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bp_\bo_\bp_\bw_\br_\bd program lets the super-user or the master POP user or a
+ "leader" of a POP subscriber change the password field for the POP
+ subscriber in the POP database. This program is very similar to
+ the _\bp_\ba_\bs_\bs_\bw_\bd (1) program.
+
+ Since only the super-user and the master POP user may change any
+ other fields of the POP database (using an ordinary editor), it is
+ possible for the system administrator to delegate responsibility to
+ others to manage groups of POP subscribers.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/pop/POP POP database
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ pop(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ Although _\bp_\bo_\bp_\bw_\br_\bd does locking against other invocations of _\bp_\bo_\bp_\bw_\br_\bd,
+ editor locking for the POP database in general is not implemented.
+ A _\bv_\bi_\bp_\bo_\bp program is needed.
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b5. _\bM_\bA_\bI_\bL _\bF_\bI_\bL_\bT_\bE_\bR_\bI_\bN_\bG
+
+
+
+
+
+ There was a time when users on a UNIX host might have had two mail-
+ drops: one from _\bM_\bM_\bD_\bF and the other from _\bU_\bU_\bC_\bP. This was really a bad
+ problem since it prevented using a single user-interface on all of your
+ mail. Furthermore, if you wanted to send a message to addresses on dif-
+ ferent mailsystems, you couldn't send just one message. To solve all
+ these problems, the notion of _\bm_\ba_\bi_\bl _\bf_\bi_\bl_\bt_\be_\br_\bi_\bn_\bg was developed that allowed
+ sophisticated munging and relaying between the two pseudo-domains.
+
+ _\bM_\bH will perform mail filtering, transparently, if given the MF con-
+ figuration option. However, with the advent of _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl and further
+ maturation of _\bM_\bM_\bD_\bF, _\bM_\bH doesn't really need to do this anymore, since
+ these message transport agents handle it.
+
+ The mail-filtering stuff is too complicated. It should be simpler,
+ but, protocol translation really _\bi_\bs difficult.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -31-
+
+
+
+
+
+
+
+
+
+ MF(1) -32- MF(1)
+
+
+ _\bN_\bA_\bM_\bE
+ muinc, musift, uminc, umsift - mail filters
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/muinc
+
+ /usr/local/lib/mh/musift [files ...]
+
+ /usr/local/lib/mh/uminc
+
+ /usr/local/lib/mh/umsift [files ...]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The mail filters are a set of programs that filter mail from one
+ format to another. In particular, _\bU_\bU_\bC_\bP- and _\bM_\bM_\bD_\bF-style mail files
+ are handled.
+
+ _\bm_\bu_\bi_\bn_\bc filters mail from the user's _\bM_\bM_\bD_\bF maildrop into the user's
+ _\bU_\bU_\bC_\bP maildrop; similarly, _\bu_\bm_\bi_\bn_\bc filters mail from the user's _\bU_\bU_\bC_\bP
+ maildrop into the user's _\bM_\bM_\bD_\bF maildrop. These two programs respect
+ each system's maildrop locking protocols.
+
+ _\bm_\bu_\bs_\bi_\bf_\bt filters each file on the command line (or the standard input
+ if no arguments are given), and places the result on the standard
+ output in _\bU_\bU_\bC_\bP format. The files (or standard input) are expected
+ to be in _\bM_\bM_\bD_\bF format. _\bu_\bm_\bs_\bi_\bf_\bt does the same thing filtering _\bU_\bU_\bC_\bP
+ formatted files (or input), and places the _\bM_\bM_\bD_\bF formatted result on
+ the standard output. No locking protocols are used by these pro-
+ grams.
+
+ If the files aren't in the expected format, the mail filters will
+ try to recover. In really bad cases, you may lose big.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/mail/ UUCP spool area for maildrops
+ /usr/spool/mail/$USER Location of standard maildrop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\be_\ba_\bd_\be_\br _\bM_\bu_\bn_\bg_\bi_\bn_\bg (aka RFC-886),
+ inc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MF(1) -33- MF(1)
+
+
+ _\bB_\bu_\bg_\bs
+ Numerous; protocol translation is very difficult.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RMAIL(8) -34- RMAIL(8)
+
+
+ _\bN_\bA_\bM_\bE
+ rmail - UUCP interface to mail
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ rmail address ...
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bm_\ba_\bi_\bl is intended as a replacement for those systems without _\bS_\be_\bn_\bd_\b-
+ _\bM_\ba_\bi_\bl or _\bM_\bM_\bD_\bF. It is normally invoked by _\bu_\bu_\bx on behalf of the
+ remote _\bU_\bU_\bC_\bP site. For each address, it decides where to send it:
+ either locally, via another _\bU_\bU_\bC_\bP link, or via the Internet.
+
+ _\bR_\bm_\ba_\bi_\bl implements a crude access control facility by consulting the
+ files Rmail.OkHosts and Rmail.OkDests in the /usr/local/lib/mh/
+ directory. Hosts listed in the former file can send messages to
+ anywhere they please. Hosts listed in the latter file can receive
+ messages from anywhere. Note that a host listed in the first file
+ is implicitly listed in the second file.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/local/lib/mh/Rmail.OkHosts list of privileged hosts
+ /usr/local/lib/mh/Rmail.OkDests list of privileged destinations
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mf(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b6. _\bM_\bH _\bH_\bA_\bC_\bK_\bI_\bN_\bG
+
+
+
+
+
+ Finally, here's a little information on modifying the _\bM_\bH sources.
+ A word of advice however:
+
+
+ _\bD_\bO_\bN'_\bT
+
+
+
+ If you really want new _\bM_\bH capabilities, write a shell script instead.
+ After all, that's what UNIX is all about, isn't it?
+
+ Here's the organization of the _\bM_\bH source tree.
+
+ conf/ configurator tree
+ config/ compiled configuration constants
+ dist/ distributor
+ doc/ manual entries
+ h/ include files
+ miscellany/ various sundries
+ mts/ MTS-specific areas
+ mh/ standalone delivery
+ mmdf/ MMDF-I, MMDF-II
+ sendmail/ SendMail, SMTP
+ papers/ papers about _\bM_\bH
+ sbr/ subroutines
+ support/ support programs and files
+ bboards/ UCI BBoards facility
+ general/ templates
+ pop/ POP facility
+ tma/ Trusted Mail Agent (not present in all distributions)
+ uip/ programs
+ zotnet/ MTS-independent areas
+ bboards/ UCI BBoards facility
+ mf/ Mail Filtering
+ mts/ MTS constants
+ tws/ date routines
+
+
+
+
+
+
+
+
+
+
+
+ -35-
+
+
+
+
+
+
+
+
+
+ MH-HACK(8) -36- MH-HACK(8)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-hack - how to hack MH
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ big hack attack
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ This is a description of how one can modify the _\bM_\bH system. The _\bM_\bH
+ distribution has a lot of complex inter-relations, so before you go
+ modifying any code, you should read this and understand what is
+ going on.
+
+ ADDING A NEW PROGRAM
+ Suppose you want to create a new _\bM_\bH command called "pickle".
+ First, create and edit "pickle.c" in the uip/ directory. Next
+ edit conf/makefiles/uip to include "pickle". This file has
+ directions at the end of it which explain how it should be
+ modified. Next, update any documentation (described below).
+ At this point you can re-configure _\bM_\bH. See _\bm_\bh-_\bg_\be_\bn(_\b8) for
+ instructions on how to do this (basically, you want "mhconfig
+ MH").
+
+ ADDING A NEW SUBROUTINE
+ Suppose you want to create a new _\bM_\bH routine called "pickle".
+ First, create and edit "pickle.c" in the sbr/ directory. Next
+ edit conf/makefiles/sbr to include "pickle". This file has
+ directions at the end of it which explain how it should be
+ modified. You should modify config/mh.h to define "pickle
+ ();". Similarly, sbr/llib-lsbr should be modified for _\bl_\bi_\bn_\bt.
+ At this point you can re-configure _\bM_\bH.
+
+ UPDATING DOCUMENTATION
+ Edit whatever files you want in conf/doc/. When documenting a
+ new program, such as "pickle", you should create a manual page
+ with the name "pickle.rf". The file conf/doc/template has a
+ manual page template that you can use. If you are documenting
+ a new program, then you should also update three other files:
+ The file conf/doc/mh.rf should be modified to include the
+ ".NA" section from "pickle.rf". The file conf/doc/mh-chart.rf
+ should be modified to include the ".SY" section from
+ "pickle.rf". Finally, the file conf/doc/MH.rf should be modi-
+ fied to include a ".so pickle.me". Naturally, none of these
+ changes will be reflected in the configuration until you actu-
+ ally run _\bm_\bh_\bc_\bo_\bn_\bf_\bi_\bg.
+
+ _\bF_\bi_\bl_\be_\bs
+ Too numerous to mention. Honest.
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-gen(8)
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-HACK(8) -37- MH-HACK(8)
+
+
+ _\bB_\bu_\bg_\bs
+ Hacking is an art, but most programmers are butchers, not artists.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b7. _\bH_\bI_\bD_\bD_\bE_\bN _\bF_\bE_\bA_\bT_\bU_\bR_\bE_\bS
+
+
+
+
+
+ The capabilities discussed here should not be used on a production
+ basis, as they are either experimental, are useful for debugging _\bM_\bH, or
+ are otherwise not recommended.
+
+
+
+ _\bD_\be_\bb_\bu_\bg _\bF_\ba_\bc_\bi_\bl_\bi_\bt_\bi_\be_\bs
+
+ The _\bm_\ba_\br_\bk command has a `-debug' switch which essentially prints out
+ all the internal _\bM_\bH data structures for the folder you're looking at.
+
+ The _\bp_\bo_\bs_\bt command has a `-debug' switch which does everything but
+ actually post the message for you. Instead of posting the draft, it
+ sends it to the standard output. Similarly, _\bs_\be_\bn_\bd has a `-debug' switch
+ which gets passed to _\bp_\bo_\bs_\bt.
+
+ Some _\bM_\bH commands look at envariables to determine debug-mode opera-
+ tion of certain new facilities. The current list of envariables is:
+
+ MHFDEBUG OVERHEAD facility
+ MHLDEBUG mhl
+ MHPDEBUG pick
+ MHPOPDEBUG POP transactions
+ MHVDEBUG window management transactions
+ MHWDEBUG alternate-mailboxes
+
+
+
+ _\bF_\bo_\br_\bw_\ba_\br_\bd_\bi_\bn_\bg _\bM_\ba_\bi_\bl
+
+ The _\bf_\bo_\br_\bw and _\bm_\bh_\bl commands have two switches, `-dashmunging' and
+ `-nodashmunging' which enable or disable the prepending of `- ' in for-
+ warded messages. To use `-nodashmunging', you must use an _\bm_\bh_\bl filter
+ file.
+
+
+
+ _\bS_\be_\bn_\bd
+
+ The _\bs_\be_\bn_\bd command has two switches, `-unique' and `-nounique', which
+ are useful to certain individuals who, for obscure reasons, do not use
+ draft-folders.
+
+ "Distribution Carbon Copy" addresses may be specified in the _\bD_\bc_\bc:
+ header. This header is removed before posting the message,and a copy of
+ the message is distributed to each listed address. This could be
+
+ -38-
+
+
+
+
+
+
+
+
+
+ -39-
+
+
+ considered a form of Blind Carbon Copy which is best used for sending to
+ an address which would never reply (such as an auto-archiver).
+
+
+
+ _\bP_\bo_\bs_\bt_\bi_\bn_\bg _\bM_\ba_\bi_\bl
+
+ If you're running a version of _\bM_\bH which talks directly to an _\bS_\bM_\bT_\bP
+ server (or perhaps an advanced _\bM_\bM_\bD_\bF submit process), there are lots of
+ interesting switches for your amusement which _\bs_\be_\bn_\bd and _\bp_\bo_\bs_\bt understand:
+ -mail Use the _\bM_\bA_\bI_\bL command (default)
+ -saml Use the _\bS_\bA_\bM_\bL command
+ -send Use the _\bS_\bE_\bN_\bD command
+ -soml Use the _\bS_\bO_\bM_\bL command
+ -snoop Watch the _\bS_\bM_\bT_\bP transaction
+ -client host Claim to be "host" when posting mail
+ -server host Post mail with "host"
+
+ The last switch is to be useful when _\bM_\bH resides on small worksta-
+ tions (or PC:s) in a network--they can post their outgoing mail with a
+ local relay, and reduce the load on the local system. On POP client
+ hosts, the `-server host' switch is defaulted appropriately using the
+ SMTP search-list mechanism. The _\bw_\bh_\bo_\bm command understands the last three
+ switches.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b8. _\bC_\bO_\bN_\bF_\bI_\bG_\bU_\bR_\bA_\bT_\bI_\bO_\bN _\bO_\bP_\bT_\bI_\bO_\bN_\bS
+
+
+
+
+
+ This manual was generated with the following configuration options
+ in effect:
+
+
+ ________________________________________________________________________
+
+ Generation Date November 30, 1993
+ Primary Directory /usr/local/
+ Secondary Directory /usr/local/lib/mh/
+ Maildrop Location /usr/spool/mail/$USER
+ Transport System SendMail
+ ________________________________________________________________________
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -40-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bC_\bO_\bN_\bT_\bE_\bN_\bT_\bS
+
+
+
+
+ Section
+
+ 1. INTRODUCTION ............................................... 1
+ Scope of this document ....................................... 1
+ Summary ...................................................... 1
+
+ 2. THE MTS INTERFACE .......................................... 3
+ MH-TAILOR ................................................. 4
+ MH-MTS .................................................... 10
+
+ 3. BBOARDS .................................................... 12
+ BBoard Delivery .............................................. 12
+ BBoards with the POP ......................................... 13
+ BBoards with the NNTP ........................................ 14
+ BBOARDS ................................................... 15
+ BBAKA ..................................................... 16
+ BBEXP ..................................................... 17
+ BBOARDS ................................................... 18
+ BBTAR ..................................................... 19
+
+ 4. POP ........................................................ 20
+ POP ....................................................... 23
+ POP ....................................................... 25
+ POPAKA .................................................... 26
+ POPAUTH ................................................... 27
+ POPD ...................................................... 28
+ POPWRD .................................................... 30
+
+ 5. MAIL FILTERING ............................................. 31
+ MF ........................................................ 32
+ RMAIL ..................................................... 34
+
+ 6. MH HACKING ................................................. 35
+ MH-HACK ................................................... 36
+
+ 7. HIDDEN FEATURES ............................................ 38
+ Debug Facilities ............................................. 38
+ Forwarding Mail .............................................. 38
+ Send ......................................................... 38
+ Posting Mail ................................................. 39
+
+ 8. CONFIGURATION OPTIONS ...................................... 40
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THE RAND MH
+
+
+ MESSAGE HANDLING
+
+
+ SYSTEM:
+
+
+ ADMINISTRATOR'S GUIDE
+
+
+
+
+
+
+ UCI Version
+
+
+
+
+
+ Marshall T. Rose
+
+
+
+
+ _\bF_\bi_\br_\bs_\bt _\bE_\bd_\bi_\bt_\bi_\bo_\bn:
+
+ _\bM_\bH _\bC_\bl_\ba_\bs_\bs_\bi_\bc
+
+ (_\bN_\bo_\bt _\bt_\bo _\bb_\be _\bc_\bo_\bn_\bf_\bu_\bs_\be_\bd _\bw_\bi_\bt_\bh _\ba _\bw_\be_\bl_\bl-_\bk_\bn_\bo_\bw_\bn _\bs_\bo_\bf_\bt _\bd_\br_\bi_\bn_\bk)
+
+
+
+
+
+
+
+ November 30, 1993
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6.8.3 #1[UCI]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null
+
+
+
+
+
+
+
+
+ _\bd_\bi_\bs_\bc_\ba_\br_\bd _\bt_\bh_\bi_\bs _\bp_\ba_\bg_\be
+
+
+
+
+ The RAND _\bM_\bH
+ Message Handling System:
+ User's Manual
+
+ UCI Version
+
+
+ February 1, 1991
+ 6.7.1a #6[UCI]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9\e9
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b1. _\bI_\bN_\bT_\bR_\bO_\bD_\bU_\bC_\bT_\bI_\bO_\bN
+
+
+
+\e9
+ Although people can travel cross-country in hours and can reach
+ others by telephone in seconds, communications still depend heavily upon
+ paper, most of which is distributed through the mails.
+
+ There are several major reasons for this continued dependence on
+ written documents. First, a written document may be proofread and
+ corrected prior to its distribution, giving the author complete control
+ over his words. Thus, a written document is better than a telephone
+ conversation in this respect. Second, a carefully written document is
+ far less likely to be misinterpreted or poorly translated than a phone
+ conversation. Third, a signature offers reasonable verification of
+ authorship, which cannot be provided with media such as telegrams.
+
+ However, the need for fast\b\b\b\b____, accurate, and reproducible document
+ distribution is obvious. One solution in widespread use is the telefax.
+ Another that is rapidly gaining popularity is electronic mail. Elec-
+ tronic mail is similar to telefax in that the data to be sent are digi-
+ tized, transmitted via phone lines, and turned back into a document at
+ the receiver. The advantage of electronic mail is in its compression
+ factor. Whereas a telefax must scan a page in very fine lines and send
+ all of the black and white information, electronic mail assigns charac-
+ ters fixed codes which can be transmitted as a few bits of information.
+ Telefax presently has the advantage of being able to transmit an arbi-
+ trary page, including pictures, but electronic mail is beginning to deal
+ with this problem. Electronic mail also integrates well with current
+ directions in office automation, allowing documents prepared with
+ sophisticated equipment at one site to be quickly transferred and
+ printed at another site.
+
+ Currently, most electronic mail is intraorganizational, with mail
+ transfer remaining within one computer. As computer networking becomes
+ more common, however, it is becoming more feasible to communicate with
+ anyone whose computer can be linked to your own via a network.
+
+ The pioneering efforts on general-purpose electronic mail were by
+ organizations using the DoD ARPAnet[1]. The capability to send messages
+ between computers existed before the ARPAnet was developed, but it was
+ used only in limited ways. With the advent of the ARPAnet, tools began
+ to be developed which made it convenient for individuals or organiza-
+ tions to distribute messages over broad geographic areas, using diverse
+ computer facilities. The interest and activity in message systems has
+ now reached such proportions that steps have been taken within the DoD
+ to coordinate and unify the development of military message systems.
+ The use of electronic mail is expected to increase dramatically in the
+ next few years. The utility of such systems in the command and control
+ and intelligence environments is clear, and applications in these areas
+
+\e9
+
+
+
+
+
+
+
+
+
+ -2-
+
+
+ will probably lead the way. As the costs for sending and handling elec-
+ tronic messages continue their rapid decrease, such uses can be expected
+ to spread rapidly into other areas and, of course, will not be limited
+ to the DoD.
+
+ A message system provides tools that help users (individuals or
+ organizations) deal with messages in various ways. Messages must be
+ composed, sent, received, stored, retrieved, forwarded, and replied to.
+ Today's best interactive computer systems provide a variety of word-
+ processing and information handling capabilities. The message handling
+ facilities should be well integrated with the rest of the system, so as
+ to be a graceful extension of overall system capability.
+
+ The message system described in this report, _\bM_\bH, provides most of
+ the features that can be found in other message systems and also incor-
+ porates some new ones. It has been built on the UNIX time-sharing sys-
+ tem[2], a popular operating system for the DEC PDP-11[1] and VAX-11
+ classes of computers. A "secure" operating system similar to UNIX is
+ currently being developed[3], and that system will also run _\bM_\bH.
+
+ This report provides a complete description of _\bM_\bH and thus may
+ serve as a user's manual, although parts of the report will be of
+ interest to non-users as well. Sections 2 and 3, the Overview and
+ Tutorial, present the key ideas of _\bM_\bH and will give those not familiar
+ with message systems an idea of what such systems are like.
+
+ _\bM_\bH consists of a set of commands which use some special files and
+ conventions. The final section is divided into three parts. The first
+ part covers the information a user needs to know in addition to the com-
+ mands. Then, each of the _\bM_\bH commands is described in detail. Finally,
+ other obscure details are revealed. A summary of the commands is given
+ in Appendix A, and the syntax of message sequences is given in Appendix
+ B.
+
+ A novel approach has been taken in the design of _\bM_\bH. Instead of
+ creating a large subsystem that appears as a single command to the user
+ (such as MS[4]), _\bM_\bH is a collection of separate commands which are run
+ as separate programs. The file and directory system of UNIX are used
+ directly. Messages are stored as individual files (datasets), and col-
+ lections of them are grouped into directories. In contrast, most other
+ message systems store messages in a complicated data structure within a
+ monolithic file. With the _\bM_\bH approach, UNIX commands can be interleaved
+ with commands invoking the functions of the message handler. Con-
+ versely, existing UNIX commands can be used in connection with messages.
+ For example, all the usual UNIX editing, text-formatting, and printing
+ facilities can be applied directly to individual messages. MH, there-
+ fore, consists of a relatively small amount of new code; it makes
+
+
+\e9 [1] PDP and VAX are trademarks of Digital Equipment Corporation.
+
+
+\e9
+
+
+
+
+
+
+
+
+
+ -3-
+
+
+ extensive use of other UNIX software to provide the capabilities found
+ in other message systems.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b2. _\bO_\bV_\bE_\bR_\bV_\bI_\bE_\bW
+
+
+
+\e9
+ There are three main aspects of _\bM_\bH : the way messages are
+ stored (the message database), the user's profile (which directs how
+ certain actions of the message handler take place), and the commands for
+ dealing with messages.
+
+ Under _\bM_\bH, each message is stored as a separate file. A user can
+ take any action with a message that he could with an ordinary file in
+ UNIX. A UNIX directory in which messages are stored is called a folder.
+ Each folder contains some standard entries to support the message-
+ handling functions. The messages in a folder have numerical names.
+ These folders (directories) are entries in a particular directory path,
+ described in the user profile, through which _\bM_\bH can find message fold-
+ ers. Using the UNIX "link" facility, it is possible for one copy of a
+ message to be "filed" in more than one folder, providing a message index
+ facility. Also, using the UNIX tree-structured file system, it is pos-
+ sible to have a folder within a folder, nested arbitrarily deep, and
+ have the full power of the _\bM_\bH commands available.
+
+ Each user of _\bM_\bH has a user profile, a file in his $HOME (initial
+ login) directory called ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be. This profile contains several
+ pieces of information used by the _\bM_\bH commands: a path name to the direc-
+ tory that contains the message folders and parameters that tailor _\bM_\bH
+ commands to the individual user's requirements. There is also another
+ file, called the user context, which contains information concerning
+ which folder the user last referenced (the "current" folder). It also
+ contains most of the necessary state information concerning how the user
+ is dealing with his messages, enabling _\bM_\bH to be implemented as a set of
+ individual UNIX commands, in contrast to the usual approach of a monol-
+ ithic subsystem.
+
+ In _\bM_\bH, incoming mail is appended to the end of a file in a system
+ spooling area for the user. This area is called the mail drop direc-
+ tory, and the file is called the user's mail drop. Normally when the
+ user logins in, s/he is informed of new mail (or the _\bM_\bH program _\bm_\bs_\bg_\bc_\bh_\bk
+ may be run). The user adds the new messages to his/her collection of _\bM_\bH
+ messages by invoking the command _\bi_\bn_\bc. The _\bi_\bn_\bc (incorporate) command
+ adds the new messages to a folder called "inbox", assigning them names
+ which are consecutive integers starting with the next highest integer
+ available in inbox. _\bi_\bn_\bc also produces a _\bs_\bc_\ba_\bn summary of the messages
+ thus incorporated. A folder can be compacted into a single file, for
+ easy storage, by using the _\bp_\ba_\bc_\bk_\bf command. Also, messages within a
+ folder can be sorted by date and time with the _\bs_\bo_\br_\bt_\bm command.
+
+
+ There are four commands for examining the messages in a folder:
+ _\bs_\bh_\bo_\bw, _\bp_\br_\be_\bv, _\bn_\be_\bx_\bt, and _\bs_\bc_\ba_\bn. The _\bs_\bh_\bo_\bw command displays a message in a
+
+\e9 -4-
+
+
+
+
+
+
+
+
+
+ -5-
+
+
+ folder, _\bp_\br_\be_\bv displays the message preceding the current message, and
+ _\bn_\be_\bx_\bt displays the message following the current message. _\bM_\bH lets the
+ user choose the program that displays individual messages. A special
+ program, _\bm_\bh_\bl, can be used to display messages according to the user's
+ preferences. The _\bs_\bc_\ba_\bn command summarizes the messages in a folder, nor-
+ mally producing one line per message, showing who the message is from,
+ the date, the subject, etc.
+
+ The user may move a message from one folder to another with the
+ command _\br_\be_\bf_\bi_\bl_\be. Messages may be removed from a folder by means of the
+ command _\br_\bm_\bm. In addition, a user may query what the current folder is
+ and may specify that a new folder become the current folder, through the
+ command _\bf_\bo_\bl_\bd_\be_\br. All folders may be summarized with the _\bf_\bo_\bl_\bd_\be_\br_\bs command.
+ A message folder (or subfolder) may be removed by means of the command
+ _\br_\bm_\bf.
+
+ A set of messages based on content may be selected by use of the
+ command _\bp_\bi_\bc_\bk. This command searches through messages in a folder and
+ selects those that match a given set of criteria. These messages are
+ then bound to a "sequence" name for use with other _\bM_\bH commands. The
+ _\bm_\ba_\br_\bk command manipulates these sequences.
+
+ There are five commands enabling the user to create new messages
+ and send them: _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, _\br_\be_\bp_\bl, and _\bs_\be_\bn_\bd. The _\bc_\bo_\bm_\bp command pro-
+ vides the facility for the user to compose a new message; _\bd_\bi_\bs_\bt redistri-
+ butes mail to additional addressees; _\bf_\bo_\br_\bw enables the user to forward
+ messages; and _\br_\be_\bp_\bl facilitates the generation of a reply to an incoming
+ message. The last three commands may optionally annotate the original
+ message. Messages may be arbitrarily annotated with the _\ba_\bn_\bn_\bo command.
+ Once a draft has been constructed by one of the four above composition
+ programs, a user-specifiable program is run to query the user as to the
+ disposition of the draft prior to sending. _\bM_\bH provides the simple _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw program to start users off. If a message is not sent directly by
+ one of these commands, it may be sent at a later time using the command
+ _\bs_\be_\bn_\bd. _\bM_\bH allows the use of any UNIX editor when composing a message.
+ For rapid entry, a special editor, _\bp_\br_\bo_\bm_\bp_\bt_\be_\br, is provided. For programs,
+ a special mail-sending program, _\bm_\bh_\bm_\ba_\bi_\bl, is provided.
+
+ _\bM_\bH supports a personal aliasing facility which gives users the
+ capability to considerably shorten address typein and use meaningful
+ names for addresses. The _\ba_\bl_\bi program can be used to query _\bM_\bH as to the
+ expansion of a list of aliases. After composing a message, but prior to
+ sending, the _\bw_\bh_\bo_\bm command can be used to determine exactly who a message
+ would go to.
+
+ _\bM_\bH provides a natural interface for telling the user's shell the
+ names of _\bM_\bH messages and folders. The _\bm_\bh_\bp_\ba_\bt_\bh program achieves this
+ capability.
+
+ Finally, _\bM_\bH supports the UCI BBoards facility. _\bb_\bb_\bc can be used to
+ query the status of a group of BBoards, while _\bm_\bs_\bh can be used to read
+ them. The _\bb_\bu_\br_\bs_\bt command can be used to "shred" digests of messages into
+
+
+
+
+
+
+
+
+
+
+
+ -6-
+
+
+ individual messages.
+
+ All of the elements summarized above are described in more detail
+ in the following sections. Many of the normal facilities of UNIX pro-
+ vide additional capabilities for dealing with messages in various ways.
+ For example, it is possible to print messages on the line-printer
+ without requiring any additional code within _\bM_\bH . Using standard UNIX
+ facilities, any terminal output can be redirected to a file for repeated
+ or future viewing. In general, the flexibility and capabilities of the
+ UNIX interface with the user are preserved as a result of the integra-
+ tion of _\bM_\bH into the UNIX structure.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b3. _\bT_\bU_\bT_\bO_\bR_\bI_\bA_\bL
+
+
+
+\e9
+ This tutorial provides a brief introduction to the _\bM_\bH commands. It
+ should be sufficient to allow the user to read his mail, do some simple
+ manipulations of it, and create and send messages.
+
+ A message has two major pieces: the header and the body. The body
+ consists of the text of the message (whatever you care to type in). It
+ follows the header and is separated from it by an empty line. (When you
+ compose a message, the form that appears on your terminal shows a line
+ of dashes after the header. This is for convenience and is replaced by
+ an empty line when the message is sent.) The header is composed of
+ several components, including the subject of the message and the person
+ to whom it is addressed. Each component starts with a name and a colon;
+ components must not start with a blank. The text of the component may
+ take more than one line, but each continuation line must start with a
+ blank. Messages typically have "To:", "cc:", and "Subject:" components.
+ When composing a message, you should include the "To:" and "Subject:"
+ components; the "cc:" (for people you want to send copies to) is not
+ necessary.
+
+ The basic _\bM_\bH commands are _\bi_\bn_\bc, _\bs_\bc_\ba_\bn, _\bs_\bh_\bo_\bw, _\bn_\be_\bx_\bt, _\bp_\br_\be_\bv, _\br_\bm_\bm, _\bc_\bo_\bm_\bp,
+ and _\br_\be_\bp_\bl. These are described below.
+
+ _\bi_\bn_\bc
+
+ When you get the message "You have mail", type the command _\bi_\bn_\bc.
+ You will get a "scan listing" such as:
+
+ 7+ 7/13 Cas revival of measurement work
+ 8 10/ 9 Norm NBS people and publications
+ 9 11/26 To:norm question <<Are there any functions
+
+ This shows the messages you received since the last time you exe-
+ cuted this command (_\bi_\bn_\bc adds these new messages to your inbox folder).
+ You can see this list again, plus a list of any other messages you have,
+ by using the _\bs_\bc_\ba_\bn command.
+
+ _\bs_\bc_\ba_\bn
+
+ The scan listing shows the message number, followed by the date and
+ the sender. (If you are the sender, the addressee in the "To:" com-
+ ponent is displayed. You may send yourself a message by including your
+ name among the "To:" or "cc:" addressees.) It also shows the message's
+ subject; if the subject is short, the first part of the body of the mes-
+ sage is included after the characters <<.
+
+
+
+\e9 -7-
+
+
+
+
+
+
+
+
+
+ -8-
+
+
+ _\bs_\bh_\bo_\bw
+
+ This command shows the current message, that is, the first one of
+ the new messages after an _\bi_\bn_\bc. If the message is not specified by name
+ (number), it is generally the last message referred to by an _\bM_\bH command.
+ For example,
+
+
+ _\bs_\bh_\bo_\bw 5 will show message 5.
+
+
+ You can use the show command to copy a message or print a message.
+
+
+ _\bs_\bh_\bo_\bw > _\bx will copy the message to file x.
+ _\bs_\bh_\bo_\bw | _\bl_\bp_\br will print the message, using the _\bl_\bp_\br command.
+ _\bn_\be_\bx_\bt will show the message that follows the current message.
+ _\bp_\br_\be_\bv will show the message previous to the current message.
+ _\br_\bm_\bm will remove the current message.
+ _\br_\bm_\bm _\b3 will remove message 3.
+
+
+ _\bc_\bo_\bm_\bp
+
+ The _\bc_\bo_\bm_\bp command puts you in the editor to write or edit a message.
+ Fill in or delete the "To:", "cc:", and "Subject:" fields, as appropri-
+ ate, and type the body of the message. Then exit normally from the edi-
+ tor. You will be asked "What now?". Type a carriage return to see the
+ options. Typing send will cause the message to be sent; typing quit
+ will cause an exit from _\bc_\bo_\bm_\bp, with the message draft saved.
+
+ If you quit without sending the message, it will be saved in a file
+ called <name>/Mail/draft (where <name> is your $HOME directory). You
+ can resume editing the message later with "comp -use"; or you can send
+ the message later, using the _\bs_\be_\bn_\bd command.
+
+ _\bc_\bo_\bm_\bp -_\be_\bd_\bi_\bt_\bo_\br _\bp_\br_\bo_\bm_\bp_\bt_\be_\br
+
+ This command uses a different editor and is useful for preparing
+ "quick and dirty" messages. It prompts you for each component of the
+ header. Type the information for that component, or type a carriage
+ return to omit the component. After that, type the body of the message.
+ Backspacing is the only form of editing allowed with this editor. When
+ the body is complete, type a carriage return followed by <EOT> (usually
+ <CTRL-D>). This completes the initial preparation of the message; from
+ then on, use the same procedures as with _\bc_\bo_\bm_\bp (above).
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+ -9-
+
+
+ _\br_\be_\bp_\bl
+ _\br_\be_\bp_\bl n
+
+ This command makes up an initial message form with a header that is
+ appropriate for replying to an existing message. The message being
+ answered is the current message if no message number is mentioned, or n
+ if a number is specified. After the header is completed, you can finish
+ the message as in _\bc_\bo_\bm_\bp (above).
+
+ This is enough information to get you going using _\bM_\bH. There are
+ more commands, and the commands described here have more features. Sub-
+ sequent sections explain _\bM_\bH in complete detail. The system is quite
+ powerful if you want to use its sophisticated features, but the forego-
+ ing commands suffice for sending and receiving messages.
+
+ There are numerous additional capabilities you may wish to explore.
+ For example, the _\bp_\bi_\bc_\bk command will select a subset of messages based on
+ specified criteria such as sender and/or subject. Groups of messages
+ may be designated, as described in Sec. IV, under Message Naming. The
+ file ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be can be used to tailor your use of the message system to
+ your needs and preferences, as described in Sec. IV, under The User Pro-
+ file. In general, you may learn additional features of the system
+ selectively, according to your requirements, by studying the relevant
+ sections of this manual. There is no need to learn all the details of
+ the system at once.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b4. _\bD_\bE_\bT_\bA_\bI_\bL_\bE_\bD _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+
+
+\e9
+ This section describes the _\bM_\bH system in detail, including the com-
+ ponents of the user profile, the conventions for message naming, and
+ some of the other _\bM_\bH conventions. Readers who are generally familiar
+ with computer systems will be able to follow the principal ideas,
+ although some details may be meaningful only to those familiar with
+ UNIX.
+
+
+\e9 _\bT_\bH_\bE _\bU_\bS_\bE_\bR _\bP_\bR_\bO_\bF_\bI_\bL_\bE
+
+ The first time an _\bM_\bH command is issued by a new user, the system
+ prompts for a "Path" and creates an _\bM_\bH "profile".
+
+ Each _\bM_\bH user has a profile which contains tailoring information for
+ each individual program. Other profile entries control the _\bM_\bH path
+ (where folders and special files are kept), folder and message protec-
+ tions, editor selection, and default arguments for each _\bM_\bH program.
+ Each user of _\bM_\bH also has a context file which contains current state
+ information for the _\bM_\bH package (the location of the context file is kept
+ in the user's _\bM_\bH directory, or may be named in the user profile). When
+ a folder becomes the current folder, it is recorded in the user's con-
+ text. (Other state information is kept in the context file, see the
+ manual entry for _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be (5) for more details.) In general, the term
+ "profile entry" refer to entries in either the profile or context file.
+ Users of _\bM_\bH needn't worry about the distinction, _\bM_\bH handles these things
+ automatically.
+
+ The _\bM_\bH profile is stored in the file ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be in the user's
+ $HOME directory[1]. It has the format of a message without any body.
+ That is, each profile entry is on one line, with a keyword followed by a
+ colon (:) followed by text particular to the keyword.
+ => _\bT_\bh_\bi_\bs _\bf_\bi_\bl_\be _\bm_\bu_\bs_\bt _\bn_\bo_\bt _\bh_\ba_\bv_\be _\bb_\bl_\ba_\bn_\bk _\bl_\bi_\bn_\be_\bs.
+ The keywords may have any combination of upper and lower case. (See the
+ information of _\bm_\bh-_\bm_\ba_\bi_\bl later on in this manual for a description of mes-
+ sage formats.)
+
+ For the average _\bM_\bH user, the only profile entry of importance is
+ "Path". Path specifies a directory in which _\bM_\bH folders and certain
+ files such as "draft" are found. The argument to this keyword must be a
+ legal UNIX path that names an existing directory. If this path is not
+
+
+\e9 [1] By defining the envariable $MH, you can specify an alternate pro-
+ file to be used by _\bM_\bH commands.
+
+
+\e9 -10-
+
+
+
+
+
+
+
+
+
+ -11-
+
+
+ absolute (i.e., does not begin with a / ), it will be presumed to start
+ from the user's $HOME directory. All folder and message references
+ within _\bM_\bH will relate to this path unless full path names are used.
+
+ Message protection defaults to 644, and folder protection to 711.
+ These may be changed by profile entries "Msg-Protect" and "Folder-
+ Protect", respectively. The argument to these keywords is an octal
+ number which is used as the UNIX file mode[2].
+
+ When an _\bM_\bH program starts running, it looks through the user's pro-
+ file for an entry with a keyword matching the program's name. For exam-
+ ple, when _\bc_\bo_\bm_\bp is run, it looks for a "comp" profile entry. If one is
+ found, the text of the profile entry is used as the default switch set-
+ ting until all defaults are overridden by explicit switches passed to
+ the program as arguments. Thus the profile entry
+ "comp: -form standard.list" would direct _\bc_\bo_\bm_\bp to use the file
+ "standard.list" as the message skeleton. If an explicit form switch is
+ given to the _\bc_\bo_\bm_\bp command, it will override the switch obtained from the
+ profile.
+
+ In UNIX, a program may exist under several names, either by linking
+ or aliasing. The actual invocation name is used by an _\bM_\bH program when
+ scanning for its profile defaults[3]. Thus, each _\bM_\bH program may have
+ several names by which it can be invoked, and each name may have a dif-
+ ferent set of default switches. For example, if _\bc_\bo_\bm_\bp is invoked by the
+ name _\bi_\bc_\bo_\bm_\bp, the profile entry "icomp" will control the default switches
+ for this invocation of the _\bc_\bo_\bm_\bp program. This provides a powerful
+ definitional facility for commonly used switch settings.
+
+ The default editor for editing within _\bc_\bo_\bm_\bp, _\br_\be_\bp_\bl, _\bf_\bo_\br_\bw, and _\bd_\bi_\bs_\bt,
+ is usually _\bp_\br_\bo_\bm_\bp_\bt_\be_\br, but might be something else at your site, such as
+ /_\bu_\bs_\br/_\bu_\bc_\bb/_\be_\bx or /_\bb_\bi_\bn/_\be. A different editor may be used by specifying the
+ profile entry "Editor: ". The argument to "Editor" is the name of an
+ executable program or shell command file which can be found via the
+ user's $PATH defined search path, excluding the current directory. The
+ "Editor:" profile specification may in turn be overridden by a
+ `-editor <editor>' profile switch associated with _\bc_\bo_\bm_\bp, _\br_\be_\bp_\bl, _\bf_\bo_\br_\bw, or
+ _\bd_\bi_\bs_\bt. Finally, an explicit editor switch specified with any of these
+ four commands will have ultimate precedence.
+
+
+
+\e9 [2] See _\bc_\bh_\bm_\bo_\bd (1) in the _\bU_\bN_\bI_\bX _\bP_\br_\bo_\bg_\br_\ba_\bm_\bm_\be_\br'_\bs _\bM_\ba_\bn_\bu_\ba_\bl [5].
+ [3] Unfortunately, the shell does not preserve aliasing information
+ when calling a program, hence if a program is invoked by an alias dif-
+ ferent than its name, the program will examine the profile entry for
+ it's name, not the alias that the user invoked it as. The correct solu-
+ tion is to create a (soft) link in your $_\bH_\bO_\bM_\bE/_\bb_\bi_\bn directory to the _\bM_\bH
+ program of your choice. By giving this link a different name, you can
+ use an alternate set of defaults for the command.
+
+
+\e9
+
+
+
+
+
+
+
+
+
+ -12-
+
+
+ During message composition, more than one editor may be used. For
+ example, one editor (such as _\bp_\br_\bo_\bm_\bp_\bt_\be_\br ) may be used initially, and a
+ second editor may be invoked later to revise the message being composed
+ (see the discussion of _\bc_\bo_\bm_\bp in Section 5 for details). A profile entry
+ "<lasteditor>-next: <editor>" specifies the name of the editor to be
+ used after a particular editor. Thus "comp: -e prompter" causes the
+ initial text to be collected by _\bp_\br_\bo_\bm_\bp_\bt_\be_\br, and the profile entry
+ "prompter-next: ed" names ed as the editor to be invoked for the next
+ round of editing.
+
+ Some of the _\bM_\bH commands, such as _\bs_\bh_\bo_\bw, can be used on message fold-
+ ers owned by others, if those folders are readable. However, you cannot
+ write in someone else's folder. All the _\bM_\bH command actions not requir-
+ ing write permission may be used with a "read-only" folder.
+
+ Table 1 lists examples of some of the currently defined profile
+ entries, typical arguments, and the programs that reference the entries.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+ -13-
+
+
+ Table 1
+\e9 PROFILE COMPONENTS
+ ______________________________________________________
+
+ _\bM_\bH Programs that
+ Keyword and Argument use Component\e9\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b______________________________________________________
+\e9 Path: Mail All
+ Current-Folder: inbox Most
+ Editor: /usr/ucb/ex _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, _\br_\be_\bp_\bl
+ Msg-Protect: 644 _\bi_\bn_\bc
+ Folder-Protect: 711 _\bi_\bn_\bc, _\bp_\bi_\bc_\bk, _\br_\be_\bf_\bi_\bl_\be
+ <program>: default switches All
+ prompter-next: ed _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, _\br_\be_\bp_\bl
+ ______________________________________________________
+
+
+ Path should\b\b\b\b\b\b______ be present. Current-Folder is maintained automatically
+ by many _\bM_\bH commands (see the Context sections of the individual commands
+ in Sec. IV). All other entries are optional, defaulting to the values
+ described above.
+
+
+\e9 _\bM_\bE_\bS_\bS_\bA_\bG_\bE _\bN_\bA_\bM_\bI_\bN_\bG
+
+ Messages may be referred to explicitly or implicitly when using _\bM_\bH
+ commands. A formal syntax of message names is given in Appendix B, but
+ the following description should be sufficient for most _\bM_\bH users. Some
+ details of message naming that apply only to certain commands are
+ included in the description of those commands.
+
+ Most of the _\bM_\bH commands accept arguments specifying one or more
+ folders, and one or more messages to operate on. The use of the word
+ "msg" as an argument to a command means that exactly one message name
+ may be specified. A message name may be a number, such as 1, 33, or
+ 234, or it may be one of the "reserved" message names: first, last,
+ prev, next, and cur. (As a shorthand, a period (.) is equivalent to
+ cur.) The meanings of these names are straightforward: "first" is the
+ first message in the folder; "last" is the last message in the folder;
+ "prev" is the message numerically previous to the current message;
+ "next" is the message numerically following the current message; "cur"
+ (or ".") is the current message in the folder. In addition, _\bM_\bH supports
+ user-defined-sequences; see the description of the _\bm_\ba_\br_\bk command for more
+ information.
+
+ The default in commands that take a "msg" argument is always "cur".
+
+ The word "msgs" indicates that several messages may be specified.
+ Such a specification consists of several message designations separated
+ by spaces. A message designation is either a message name or a message
+ range. A message range is a specification of the form name1-name2 or
+
+
+
+
+
+
+
+
+
+
+
+ -14-
+
+
+ name1:n, where name1 and name2 are message names and n is an integer.
+ The first form designates all the messages from name1 to name2
+ inclusive; this must be a non-empty range. The second form specifies up
+ to n messages, starting with name1 if name1 is a number, or first, cur,
+ or next, and ending with name1 if name1 is last or prev. This interpre-
+ tation of n is overridden if n is preceded by a plus sign or a minus
+ sign; +n always means up to n messages starting with name1, and -n
+ always means up to n messages ending with name1. Repeated specifica-
+ tions of the same message have the same effect as a single specification
+ of the message. Examples of specifications are:
+
+
+ 1 5 7-11 22
+ first 6 8 next
+ first-10
+ last:5
+
+
+ The message name "all" is a shorthand for "first-last", indicating
+ all of the messages in the folder.
+
+ In commands that accept "msgs" arguments, the default is either cur
+ or all, depending on which makes more sense.
+
+ In all of the _\bM_\bH commands, a plus sign preceding an argument indi-
+ cates a folder name. Thus, "+inbox" is the name of the user's standard
+ inbox. If an explicit folder argument is given to an _\bM_\bH command, it
+ will become the current folder (that is, the "Current-Folder:" entry in
+ the user's profile will be changed to this folder). In the case of the
+ _\br_\be_\bf_\bi_\bl_\be command, which can have multiple output folders, a new source
+ folder (other than the default current folder) is specified by
+ `-src +folder'.
+
+
+\e9 _\bO_\bT_\bH_\bE_\bR _\bM_\bH _\bC_\bO_\bN_\bV_\bE_\bN_\bT_\bI_\bO_\bN_\bS
+
+ One very powerful feature of _\bM_\bH is that the _\bM_\bH commands may be
+ issued from any current directory, and the proper path to the appropri-
+ ate folder(s) will be taken from the user's profile. If the _\bM_\bH path is
+ not appropriate for a specific folder or file, the automatic prepending
+ of the _\bM_\bH path can be avoided by beginning a folder or file name with /,
+ or with ./ or ../ component. Thus any specific absolute path may be
+ specified along with any path relative to the current working directory.
+
+ Arguments to the various programs may be given in any order, with
+ the exception of a few switches whose arguments must follow immediately,
+ such as `-src +folder' for _\br_\be_\bf_\bi_\bl_\be.
+
+ Whenever an _\bM_\bH command prompts the user, the valid options will be
+ listed in response to a <RETURN>. (The first of the listed options is
+ the default if end-of-file is encountered, such as from a command file.)
+
+\e9
+
+
+
+
+
+
+
+
+
+ -15-
+
+
+ A valid response is any _\bu_\bn_\bi_\bq_\bu_\be abbreviation of one of the listed
+ options.
+
+ Standard UNIX documentation conventions are used in this report to
+ describe _\bM_\bH command syntax. Arguments enclosed in brackets ([ ]) are
+ optional; exactly one of the arguments enclosed within braces ({ }) must
+ be specified, and all other arguments are required. The use of ellipsis
+ dots (...) indicates zero or more repetitions of the previous item. For
+ example, "+folder ..." would indicate that one or more "+folder" argu-
+ ments is required and "[+folder ...]" indicates that 0 or more "+folder"
+ arguments may be given.
+
+ _\bM_\bH departs from UNIX standards by using switches that consist of
+ more than one character, e.g. `-header'. To minimize typing, only a
+ unique abbreviation of a switch need be typed; thus, for `-header',
+ `-hea' is probably sufficient, depending on the other switches the com-
+ mand accepts. Each _\bM_\bH program accepts the switch `-help' (which must be
+ spelled out fully) and produces a syntax description and a list of
+ switches. In the list of switches, parentheses indicate required char-
+ acters. For example, all `-help' switches will appear as "-(help)",
+ indicating that no abbreviation is accepted. Furthermore, the `-help'
+ switch tells the version of the _\bM_\bH program you invoked.
+
+ Many _\bM_\bH switches have both on and off forms, such as `-format' and
+ `-noformat'. In many of the descriptions which follow, only one form is
+ defined; the other form, often used to nullify profile switch settings,
+ is assumed to be the opposite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+ -16-
+
+
+ _\bM_\bH _\bC_\bO_\bM_\bM_\bA_\bN_\bD_\bS
+
+ The _\bM_\bH package comprises several programs:
+
+ ali (1) - list mail aliases
+ anno (1) - annotate messages
+ bbc (1) - check on BBoards
+ bboards (1) - the UCI BBoards facility
+ burst (1) - explode digests into messages
+ comp (1) - compose a message
+ dist (1) - redistribute a message to additional addresses
+ folder (1) - set/list current folder/message
+ folders (1) - list all folders
+ forw (1) - forward messages
+ inc (1) - incorporate new mail
+ mark (1) - mark messages
+ mhl (1) - produce formatted listings of MH messages
+ mhmail (1) - send or read mail
+ mhook (1) - MH receive-mail hooks
+ mhpath (1) - print full pathnames of MH messages and folders
+ msgchk (1) - check for messages
+ msh (1) - MH shell (and BBoard reader)
+ next (1) - show the next message
+ packf (1) - compress a folder into a single file
+ pick (1) - select messages by content
+ prev (1) - show the previous message
+ prompter (1) - prompting editor front end
+ rcvstore (1) - incorporate new mail asynchronously
+ refile (1) - file messages in other folders
+ repl (1) - reply to a message
+ rmf (1) - remove folder
+ rmm (1) - remove messages
+ scan (1) - produce a one line per message scan listing
+ send (1) - send a message
+ show (1) - show (list) messages
+ sortm (1) - sort messages
+ vmh (1) - visual front-end to MH
+ whatnow (1) - prompting front-end for send
+ whom (1) - report to whom a message would go
+
+
+ These programs are described below. The form of the descriptions
+ conforms to the standard form for the description of UNIX commands.
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+ ALI(1) -17- ALI(1)
+
+
+ _\bN_\bA_\bM_\bE
+ ali - list mail aliases
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ ali [-alias aliasfile] [-list] [-nolist] [-normalize]
+ [-nonormalize] [-user] [-nouser] aliases ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bA_\bl_\bi searches the named mail alias files for each of the given
+ _\ba_\bl_\bi_\ba_\bs_\be_\bs. It creates a list of addresses for those _\ba_\bl_\bi_\ba_\bs_\be_\bs, and
+ writes that list on standard output. If the `-list' option is
+ specified, each address appears on a separate line; otherwise, the
+ addresses are separated by commas and printed on as few lines as
+ possible.
+
+ The `-user' option directs _\ba_\bl_\bi to perform its processing in an
+ inverted fashion: instead of listing the addresses that each given
+ alias expands to, _\ba_\bl_\bi will list the aliases that expand to each
+ given address. If the `-normalize' switch is given, _\ba_\bl_\bi will try
+ to track down the official hostname of the address.
+
+ The file specified by the profile entry "Aliasfile:" and any addi-
+ tional alias files given by the `-alias aliasfile' switch will be
+ read. Each _\ba_\bl_\bi_\ba_\bs is processed as described in _\bm_\bh-_\ba_\bl_\bi_\ba_\bs (5).
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /etc/passwd List of users
+ /etc/group List of groups
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Aliasfile: For a default alias file
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-alias(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-alias /usr/local/lib/mh/MailAliases'
+ `-nolist'
+ `-nonormalize'
+ `-nouser'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ ALI(1) -18- ALI(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The `-user' option with `-nonormalize' is not entirely accurate, as
+ it does not replace local nicknames for hosts with their official
+ site names.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ ANNO(1) -19- ANNO(1)
+
+
+ _\bN_\bA_\bM_\bE
+ anno - annotate messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ anno [+folder] [msgs] [-component field] [-inplace] [-noinplace]
+ [-date] [-nodate] [-text body] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bA_\bn_\bn_\bo annotates the specified messages in the named folder using the
+ field and body. Annotation is optionally performed by _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw,
+ and _\br_\be_\bp_\bl, to keep track of your distribution of, forwarding of, and
+ replies to a message. By using _\ba_\bn_\bn_\bo, you can perform arbitrary
+ annotations of your own. Each message selected will be annotated
+ with the lines
+
+ field: date
+ field: body
+
+ The `-nodate' switch inhibits the date annotation, leaving only the
+ body annotation. The `-inplace' switch causes annotation to be
+ done in place in order to preserve links to the annotated message.
+
+ The field specified should be a valid 822-style message field name,
+ which means that it should consist of alphanumerics (or dashes)
+ only. The body specified is arbitrary text.
+
+ If a `-component field' is not specified when _\ba_\bn_\bn_\bo is invoked, _\ba_\bn_\bn_\bo
+ will prompt the user for the name of field for the annotation.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ dist (1), forw (1), repl (1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-noinplace'
+ `-date'
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ ANNO(1) -20- ANNO(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The first
+ message annotated will become the current message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BBC(1) -21- BBC(1)
+
+
+ _\bN_\bA_\bM_\bE
+ bbc - check on BBoards
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ bbc [bboards ...] [-topics] [-check] [-read] [-quiet] [-verbose]
+ [-archive] [-noarchive] [-protocol] [-noprotocol]
+ [-mshproc program] [switches for _\bm_\bs_\bh_\bp_\br_\bo_\bc] [-rcfile rcfile]
+ [-norcfile] [-file BBoardsfile] [-user BBoardsuser]
+ [-host host] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bb_\bb_\bc is a BBoard reading/checking program that interfaces to the
+ BBoard channel.
+
+ The _\bb_\bb_\bc program has three action switches which direct its opera-
+ tion:
+
+ The `-read' switch invokes the _\bm_\bs_\bh program on the named _\bB_\bB_\bo_\ba_\br_\bd_\bs.
+ If you also specify the `-archive' switch, then _\bb_\bb_\bc will invoke
+ the _\bm_\bs_\bh program on the archives of the named _\bB_\bB_\bo_\ba_\br_\bd_\bs. If no
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs are given on the command line, and you specified
+ `-archive', _\bb_\bb_\bc will not read your `bboards' profile entry, but
+ will read the archives of the "system" _\bB_\bB_\bo_\ba_\br_\bd instead.
+
+ The `-check' switch types out status information for the named
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs. _\bb_\bb_\bc can print one of several messages depending on the
+ status of both the BBoard and the user's reading habits. As with
+ each of these messages, the number given is the item number of the
+ last item placed in the BBoard. This number (which is marked in
+ the messages as the "BBoard-Id") is ever increasing. Hence, when
+ _\bb_\bb_\bc says "n items", it really means that the highest BBoard-Id is
+ "n". There may, or may not actually be "n" items in the BBoard.
+ Some common messages are:
+
+ BBoard -- n items unseen
+ This message tells how many items the user has not yet
+ seen. When invoked with the `-quiet' switch, this is the
+ only informative line that _\bb_\bb_\bc will possibly print out.
+
+ BBoard -- empty
+ The BBoard is empty.
+
+ BBoard -- n items (none seen)
+ The BBoard has items in it, but the user hasn't seen any.
+
+ BBoard -- n items (all seen)
+ The BBoard is non-empty, and the user has seen everything
+ in it.
+
+ BBoard -- n items seen out of m
+ The BBoard has at most m-n items that the user has not
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BBC(1) -22- BBC(1)
+
+
+ seen.
+
+ The `-topics' switch directs _\bb_\bb_\bc to print three items about the
+ named _\bB_\bB_\bo_\ba_\br_\bd_\bs: it's official name, the number of items present, and
+ the date and time of the last update. If no _\bB_\bB_\bo_\ba_\br_\bd_\bs are named,
+ then all BBoards are listed. If the `-verbose' switch is given,
+ more information is output.
+
+ The `-quiet' switch specifies that _\bb_\bb_\bc should be silent if no
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs are found with new information. The `-verbose' switch
+ specifies that _\bb_\bb_\bc is to consider you to be interested in _\bB_\bB_\bo_\ba_\br_\bd_\bs
+ that you've already seen everything in.
+
+ To override the default _\bm_\bs_\bh_\bp_\br_\bo_\bc and the profile entry, use the
+ `-mshproc program' switch. Any arguments not understood by _\bb_\bb_\bc are
+ passed to this program. The `-protocol' switch tells _\bb_\bb_\bc that your
+ _\bm_\bs_\bh_\bp_\br_\bo_\bc knows about the special _\bb_\bb_\bc protocol for reporting back
+ information. _\bm_\bs_\bh (1), the default _\bm_\bs_\bh_\bp_\br_\bo_\bc, knows all about this.
+
+ The `-file BBoardsfile' switch tells _\bb_\bb_\bc to use a non-standard
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs file when performing its calculations. Similarly, the
+ `-user BBoardsuser' switch tells _\bb_\bb_\bc to use a non-standard user-
+ name. Both of these switches are useful for debugging a new
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs or _\bP_\bO_\bP file.
+
+ If the local host is configured as an NNTP BBoards client, or if
+ the `-host host' switch is given, then _\bb_\bb_\bc will query the NNTP ser-
+ vice host as to the status of the BBoards. For NNTP BBoards
+ clients, the `-user user' and the `-rpop' switches are ignored.
+
+ The `-rcfile rcfile' switch overrides the use of ._\bb_\bb_\br_\bc for
+ user-specific BBoards information. If the value given to the
+ switch is not absolute, (i.e., does not begin with a / ), it will
+ be presumed to start from the current working directory. If this
+ switch is not given (or the `-norcfile' switch is given), then _\bb_\bb_\bc
+ consults the envariable $MHBBRC, and honors it similarly. If this
+ envariable is not set, then the file ._\bb_\bb_\br_\bc in the user's $HOME
+ directory is used.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ $HOME/.bbrc BBoard information
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ bboards: To specify interesting BBoards
+ mshproc: Program to read a given BBoard
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BBC(1) -23- BBC(1)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbl(1), bboards(1), msh(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-read'
+ `-noarchive'
+ `-protocol'
+ `bboards' defaults to "system"
+ `-file /usr/bboards/BBoards'
+ `-user bboards'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The `-user' switch takes effect only if followed by the `-file'
+ switch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BBOARDS(1) -24- BBOARDS(1)
+
+
+ _\bN_\bA_\bM_\bE
+ bboards - the UCI BBoards facility
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ bbc [-check] [-read] bboards ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The home directory of _\bb_\bb_\bo_\ba_\br_\bd_\bs is where the BBoard system is kept.
+ This documentation describes some of the nuances of the BBoard sys-
+ tem.
+
+ BBoards, BBoard-IDs
+ A BBoard is just a file containing a group of messages relat-
+ ing to the same topic. These files live in the ~bboards home
+ directory. Each message in a BBoard file has in its header
+ the line "BBoard-Id: n", where "n" is an ascending decimal
+ number. This id-number is unique for each message in a
+ BBoards file. It should NOT be confused with the message
+ number of a message, which can change as messages are removed
+ from the BBoard.
+
+ BBoard Handling
+ To read BBoards, use the _\bb_\bb_\bc and _\bm_\bs_\bh programs. The _\bm_\bs_\bh com-
+ mand is a monolithic program which contains all the func-
+ tionality of _\bM_\bH in a single program. The `-check' switch to
+ _\bb_\bb_\bc lets you check on the status of BBoards, and the `-read'
+ switch tells _\bb_\bb_\bc to invoke _\bm_\bs_\bh to read those BBoards.
+
+ Creating a BBoard
+ Both public, and private BBoards are supported. Contact the
+ mail address _\bP_\bo_\bs_\bt_\bM_\ba_\bs_\bt_\be_\br if you'd like to have a BBoard
+ created.
+
+ BBoard addresses
+ Each BBoard has associated with it 4 addresses, these are (for
+ the ficticious BBoard called ``hacks''):
+ hacks : The Internet wide distribution list.
+ dist-hacks : The local BBoard.
+ hacks-request : The people responsible for the BBoard at the
+ Internet level.
+ local-hacks-request : The people responsible for the BBoard
+ locally.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ $HOME/.bbrc BBoard information
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BBOARDS(1) -25- BBOARDS(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ bboards: To specify interesting BBoards
+ mshproc: Program to read a given BBoard
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbc(1), bbl(1), bbleader(1), msh(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ The default bboard is "system"
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BURST(1) -26- BURST(1)
+
+
+ _\bN_\bA_\bM_\bE
+ burst - explode digests into messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ burst [+folder] [msgs] [-inplace] [-noinplace] [-quiet] [-noquiet]
+ [-verbose] [-noverbose] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bB_\bu_\br_\bs_\bt considers the specified messages in the named folder to be
+ Internet digests, and explodes them in that folder.
+
+ If `-inplace' is given, each digest is replaced by the "table of
+ contents" for the digest (the original digest is removed). _\bB_\bu_\br_\bs_\bt
+ then renumbers all of the messages following the digest in the
+ folder to make room for each of the messages contained within the
+ digest. These messages are placed immediately after the digest.
+
+ If `-noinplace' is given, each digest is preserved, no table of
+ contents is produced, and the messages contained within the digest
+ are placed at the end of the folder. Other messages are not tam-
+ pered with in any way.
+
+ The `-quiet' switch directs _\bb_\bu_\br_\bs_\bt to be silent about reporting mes-
+ sages that are not in digest format.
+
+ The `-verbose' switch directs _\bb_\bu_\br_\bs_\bt to tell the user the general
+ actions that it is taking to explode the digest.
+
+ It turns out that _\bb_\bu_\br_\bs_\bt works equally well on forwarded messages
+ and blind-carbon-copies as on Internet digests, provided that the
+ former two were generated by _\bf_\bo_\br_\bw or _\bs_\be_\bn_\bd.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Msg-Protect: To set mode when creating a new message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bE_\bn_\bc_\ba_\bp_\bs_\bu_\bl_\ba_\bt_\bi_\bo_\bn (aka RFC-934),
+ inc(1), msh(1), pack(1)
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ BURST(1) -27- BURST(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-noinplace'
+ `-noquiet'
+ `-noverbose'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. If `-in-
+ place' is given, then the first message burst becomes the current
+ message. This leaves the context ready for a _\bs_\bh_\bo_\bw of the table of
+ contents of the digest, and a _\bn_\be_\bx_\bt to see the first message of the
+ digest. If `-noinplace' is given, then the first message extracted
+ from the first digest burst becomes the current message. This
+ leaves the context in a similar, but not identical, state to the
+ context achieved when using `-inplace'.
+
+
+ _\bB_\bu_\bg_\bs
+ The _\bb_\bu_\br_\bs_\bt program enforces a limit on the number of messages which
+ may be _\bb_\bu_\br_\bs_\bt from a single message. This number is on the order of
+ 1000 messages. There is usually no limit on the number of messages
+ which may reside in the folder after the _\bb_\bu_\br_\bs_\bting.
+
+ Although _\bb_\bu_\br_\bs_\bt uses a sophisticated algorithm to determine where
+ one encapsulated message ends and another begins, not all digesti-
+ fying programs use an encapsulation algorithm. In degenerate
+ cases, this usually results in _\bb_\bu_\br_\bs_\bt finding an encapsulation boun-
+ dary prematurely and splitting a single encapsulated message into
+ two or more messages. These erroneous digestifying programs should
+ be fixed.
+
+ Furthermore, any text which appears after the last encapsulated
+ message is not placed in a seperate message by _\bb_\bu_\br_\bs_\bt. In the case
+ of digestified messages, this text is usally an "End of digest"
+ string. As a result of this possibly un-friendly behavior on the
+ part of _\bb_\bu_\br_\bs_\bt, note that when the `-inplace' option is used, this
+ trailing information is lost. In practice, this is not a problem
+ since correspondents usually place remarks in text prior to the
+ first encapsulated message, and this information is not lost.
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ COMP(1) -28- COMP(1)
+
+
+ _\bN_\bA_\bM_\bE
+ comp - compose a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ comp [+folder] [msg] [-draftfolder +folder] [-draftmessage msg]
+ [-nodraftfolder] [-editor editor] [-noedit] [-file file]
+ [-form formfile] [-use] [-nouse] [-whatnowproc program]
+ [-nowhatnowproc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bC_\bo_\bm_\bp is used to create a new message to be mailed. It copies a
+ message form to the draft being composed and then invokes an editor
+ on the draft (unless `-noedit' is given, in which case the initial
+ edit is suppressed).
+
+ The default message form contains the following elements:
+
+ To:
+ cc:
+ Subject:
+ --------
+
+ If the file named "components" exists in the user's MH directory,
+ it will be used instead of this form. The file specified by
+ `-form formfile' will be used if given. You may also start _\bc_\bo_\bm_\bp
+ using the contents of an existing message as the form. If you sup-
+ ply either a `+folder' or `msg' argument, that message will be used
+ as the form. You may not supply both a `-form formfile' and a
+ `+folder' or `msg' argument. The line of dashes or a blank line
+ must be left between the header and the body of the message for the
+ message to be identified properly when it is sent (see _\bs_\be_\bn_\bd (1)).
+ The switch `-use' directs _\bc_\bo_\bm_\bp to continue editing an already
+ started message. That is, if a _\bc_\bo_\bm_\bp (or _\bd_\bi_\bs_\bt, _\br_\be_\bp_\bl, or _\bf_\bo_\br_\bw ) is
+ terminated without sending the draft, the draft can be edited again
+ via "comp -use".
+
+ If the draft already exists, _\bc_\bo_\bm_\bp will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\bc_\bo_\bm_\bp, leaving the
+ draft intact; replace will replace the existing draft with the
+ appropriate form; list will display the draft; use will use the
+ draft for further composition; and refile +folder will file the
+ draft in the given folder, and give you a new draft with the
+ appropriate form. (The `+folder' argument to refile is required.)
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ The `-file file' switch says to use the named file as the message
+ draft.
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ COMP(1) -29- COMP(1)
+
+
+ The `-editor editor' switch indicates the editor to use for the
+ initial edit. Upon exiting from the editor, _\bc_\bo_\bm_\bp will invoke the
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available
+ options. The invocation of this program can be inhibited by using
+ the `-nowhatnowproc' switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw
+ program which starts the initial edit. Hence, `-nowhatnowproc'
+ will prevent any edit from occurring.)
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/components The message skeleton
+ or <mh-dir>/components Rather than the standard skeleton
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ Msg-Protect: To set mode when creating a new message
+ (draft)
+ fileproc: Program to refile the message
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ dist(1), forw(1), repl(1), send(1), whatnow(1), mh-profile(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to the current message
+ `-nodraftfolder'
+ `-nouse'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bc_\bo_\bm_\bp uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\bc_\bo_\bm_\bp won't run
+ it.
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ DIST(1) -30- DIST(1)
+
+
+ _\bN_\bA_\bM_\bE
+ dist - redistribute a message to additional addresses
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ dist [+folder] [msg] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-form formfile] [-inplace]
+ [-noinplace] [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bD_\bi_\bs_\bt is similar to _\bf_\bo_\br_\bw. It prepares the specified message for
+ redistribution to addresses that (presumably) are not on the origi-
+ nal address list.
+
+ The default message form contains the following elements:
+
+ Resent-To:
+ Resent-cc:
+
+ If the file named "distcomps" exists in the user's MH directory, it
+ will be used instead of this form. In either case, the file speci-
+ fied by `-form formfile' will be used if given. The form used will
+ be prepended to the message being resent.
+
+ If the draft already exists, _\bd_\bi_\bs_\bt will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\bd_\bi_\bs_\bt, leaving the
+ draft intact; replace will replace the existing draft with a blank
+ skeleton; and list will display the draft.
+
+ Only those addresses in "Resent-To:", "Resent-cc:", and
+ "Resent-Bcc:" will be sent. Also, a "Resent-Fcc: folder" will be
+ honored (see _\bs_\be_\bn_\bd (1)). Note that with _\bd_\bi_\bs_\bt, the draft should con-
+ tain only "Resent-xxx:" fields and no body. The headers and the
+ body of the original message are copied to the draft when the mes-
+ sage is sent. Use care in constructing the headers for the redis-
+ tribution.
+
+ If the `-annotate' switch is given, the message being distributed
+ will be annotated with the lines:
+
+ Resent: date
+ Resent: addrs
+
+ where each address list contains as many lines as required. This
+ annotation will be done only if the message is sent directly from
+ _\bd_\bi_\bs_\bt. If the message is not sent immediately from _\bd_\bi_\bs_\bt, "comp
+ -use" may be used to re-edit and send the constructed message, but
+ the annotations won't take place. The '-inplace' switch causes
+ annotation to be done in place in order to preserve links to the
+ annotated message.
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ DIST(1) -31- DIST(1)
+
+
+ See _\bc_\bo_\bm_\bp (1) for a description of the `-editor' and `-noedit'
+ switches. Note that while in the editor, the message being resent
+ is available through a link named "@" (assuming the default _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw_\bp_\br_\bo_\bc ). In addition, the actual pathname of the message is
+ stored in the envariable $editalt, and the pathname of the folder
+ containing the message is stored in the envariable $mhfolder.
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ Upon exiting from the editor, _\bd_\bi_\bs_\bt will invoke the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available options. The invoca-
+ tion of this program can be inhibited by using the `-nowhatnowproc'
+ switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program which starts
+ the initial edit. Hence, `-nowhatnowproc' will prevent any edit
+ from occurring.)
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/distcomps The message skeleton
+ or <mh-dir>/distcomps Rather than the standard skeleton
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ fileproc: Program to refile the message
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), forw(1), repl(1), send(1), whatnow(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to cur
+ `-noannotate'
+ `-nodraftfolder'
+ `-noinplace'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The mes-
+ sage distributed will become the current message.
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ DIST(1) -32- DIST(1)
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ _\bD_\bi_\bs_\bt originally used headers of the form "Distribute-xxx:" instead
+ of "Resent-xxx:". In order to conform with the ARPA Internet stan-
+ dard, RFC-822, the "Resent-xxx:" form is now used. _\bD_\bi_\bs_\bt will
+ recognize "Distribute-xxx:" type headers and automatically convert
+ them to "Resent-xxx:".
+
+
+ _\bB_\bu_\bg_\bs
+ _\bD_\bi_\bs_\bt does not _\br_\bi_\bg_\bo_\br_\bo_\bu_\bs_\bl_\by check the message being distributed for
+ adherence to the transport standard, but _\bp_\bo_\bs_\bt called by _\bs_\be_\bn_\bd does.
+ The _\bp_\bo_\bs_\bt program will balk (and rightly so) at poorly formatted
+ messages, and _\bd_\bi_\bs_\bt won't correct things for you.
+
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bd_\bi_\bs_\bt uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\bd_\bi_\bs_\bt won't run
+ it.
+
+ If your current working directory is not writable, the link named
+ "@" is not available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -33- FOLDER(1)
+
+
+ _\bN_\bA_\bM_\bE
+ folder, folders - set/list current folder/message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ folder [+folder] [msg] [-all] [-fast] [-nofast] [-header]
+ [-noheader] [-pack] [-nopack] [-recurse] [-norecurse] [-total]
+ [-nototal] [-print] [-noprint] [-list] [-nolist] [-push]
+ [-pop] [-help]
+
+ folders
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Since the _\bM_\bH environment is the shell, it is easy to lose track of
+ the current folder from day to day.
+
+ When _\bf_\bo_\bl_\bd_\be_\br is given the `-print' switch (the default), the current
+ folder and/or message may be set, or all folders may be listed.
+ When a `+folder' argument is given, this corresponds to a "cd"
+ operation in the _\bC_\bS_\bh_\be_\bl_\bl; when no `+folder' argument is given, this
+ corresponds roughly to a "pwd" operation in the _\bC_\bS_\bh_\be_\bl_\bl.
+
+ _\bF_\bo_\bl_\bd_\be_\br will list the current folder, the number of messages in it,
+ the range of the messages (low-high), and the current message
+ within the folder, and will flag extra files if they exist. An
+ example of the output is:
+
+ inbox+ has 16 messages ( 3- 22); cur= 5.
+
+ If a `+folder' and/or `msg' are specified, they will become the
+ current folder and/or message. Specifying `-all' will produce a
+ line for each folder in the user's MH directory, sorted alphabeti-
+ cally. These folders are preceded by the read-only folders, which
+ occur as "atr-cur-" entries in the user's _\bM_\bH context. For example,
+
+ Folder # of messages ( range ) cur msg (other files)
+ /fsd/rs/m/tacc has 35 messages ( 1- 35); cur= 23.
+ /rnd/phyl/Mail/EP has 82 messages ( 1-108); cur= 82.
+ ff has no messages.
+ inbox+ has 16 messages ( 3- 22); cur= 5.
+ mh has 76 messages ( 1- 76); cur= 70.
+ notes has 2 messages ( 1- 2); cur= 1.
+ ucom has 124 messages ( 1-124); cur= 6; (others).
+ TOTAL= 339 messages in 7 folders
+
+ The "+" after inbox indicates that it is the current folder. The
+ "(others)" indicates that the folder `ucom' has files which aren't
+ messages. These files may either be sub-folders, or files that
+ don't belong under the MH file naming scheme.
+
+ The header is output if either an `-all' or a `-header' switch is
+ specified; it is suppressed by `-noheader'. Also, if _\bf_\bo_\bl_\bd_\be_\br is
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -34- FOLDER(1)
+
+
+ invoked by a name ending with "s" (e.g., _\bf_\bo_\bl_\bd_\be_\br_\bs ), `-all' is
+ assumed. A `-total' switch will produce only the summary line.
+
+ If a `+folder' and/or `msg' is given along with the `-all' switch,
+ _\bf_\bo_\bl_\bd_\be_\br will, in addition to setting the current folder and/or mes-
+ sage, list the top-level folders for the current folder (with
+ `-norecurse') or list all folders under the current folder recur-
+ sively (with `-recurse').
+
+ If `-fast' is given, only the folder name (or names in the case of
+ `-all') will be listed. (This is faster because the folders need
+ not be read.)
+
+ The `-pack' switch will compress the message names in a folder,
+ removing holes in message numbering.
+
+ The `-recurse' switch will list each folder recursively. Use of
+ this option effectively defeats the speed enhancement of the
+ `-fast' option, since each folder must be searched for subfolders.
+ Nevertheless, the combination of these options is useful.
+
+ If the specified (or default) folder doesn't exist, the user will
+ be queried as to whether the folder should be created. When stan-
+ dard input is not a tty, the folder is created without any query.
+ (This is the easy way to create an empty folder for use later.)
+
+ The `-push' switch directs _\bf_\bo_\bl_\bd_\be_\br to push the current folder onto
+ the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk, and make the `+folder' argument the current
+ folder. If `+folder' is not given, the current folder and the top
+ of the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk are exchanged. This corresponds to the "pushd"
+ operation in the _\bC_\bS_\bh_\be_\bl_\bl.
+
+ The `-pop' switch directs _\bf_\bo_\bl_\bd_\be_\br to discard the top of the
+ _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk, after setting the current folder to that value. No
+ `+folder' argument is allowed. This corresponds to the "popd"
+ operation in the _\bC_\bS_\bh_\be_\bl_\bl. The `-push' switch and the `-pop' switch
+ are mutually exclusive: the last occurrence of either one overrides
+ any previous occurrence of the other.
+
+ The `-list' switch directs _\bf_\bo_\bl_\bd_\be_\br to list the contents of the
+ _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk. No `+folder' argument is allowed. After a success-
+ ful `-push' or `-pop', the `-list' action is taken. This
+ corresponds to the "dirs" operation in the _\bC_\bS_\bh_\be_\bl_\bl.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -35- FOLDER(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Folder-Protect: To set mode when creating a new folder
+ Folder-Stack: To determine the folder stack
+ lsproc: Program to list the contents of a folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ refile(1), mhpath(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to none
+ `-nofast'
+ `-noheader'
+ `-nototal'
+ `-nopack'
+ `-norecurse'
+ `-print' is the default if no `-list', `-push', or `-pop' is specified
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If `+folder' and/or `msg' are given, they will become the current
+ folder and/or message.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous versions of _\bM_\bH, the `-fast' switch prevented context
+ changes from occurring for the current folder. This is no longer
+ the case: if `+folder' is given, then _\bf_\bo_\bl_\bd_\be_\br will always change the
+ current folder to that.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -36- FORW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ forw - forward messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ forw [+folder] [msgs] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-filter filterfile]
+ [-form formfile] [-format] [-noformat] [-inplace] [-noinplace]
+ [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ forw [+folder] [msgs] [-digest list] [-issue number]
+ [-volume number] [other switches for _\bf_\bo_\br_\bw] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bF_\bo_\br_\bw may be used to prepare a message containing other messages.
+ It constructs the new message from the components file or
+ `-form formfile' (see _\bc_\bo_\bm_\bp ), with a body composed of the
+ message(s) to be forwarded. An editor is invoked as in _\bc_\bo_\bm_\bp, and
+ after editing is complete, the user is prompted before the message
+ is sent.
+
+ The default message form contains the following elements:
+
+ To:
+ cc:
+ Subject:
+ --------
+
+ If the file named "forwcomps" exists in the user's MH directory, it
+ will be used instead of this form. In either case, the file speci-
+ fied by `-form formfile' will be used if given.
+
+ If the draft already exists, _\bf_\bo_\br_\bw will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\bf_\bo_\br_\bw, leaving the
+ draft intact; replace will replace the existing draft with a blank
+ skeleton; and list will display the draft.
+
+ If the `-annotate' switch is given, each message being forwarded
+ will be annotated with the lines
+
+ Forwarded: date
+ Forwarded: addrs
+
+ where each address list contains as many lines as required. This
+ annotation will be done only if the message is sent directly from
+ _\bf_\bo_\br_\bw. If the message is not sent immediately from _\bf_\bo_\br_\bw,
+ "comp -use" may be used to re-edit and send the constructed mes-
+ sage, but the annotations won't take place. The '-inplace' switch
+ causes annotation to be done in place in order to preserve links to
+ the annotated message.
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -37- FORW(1)
+
+
+ See _\bc_\bo_\bm_\bp (1) for a description of the `-editor' and `-noedit'
+ switches.
+
+ Although _\bf_\bo_\br_\bw uses the `-form formfile' switch to direct it how to
+ construct the beginning of the draft, the `-filter filterfile',
+ `-format', and `-noformat' switches direct _\bf_\bo_\br_\bw as to how each for-
+ warded message should be formatted in the body of the draft. If
+ `-noformat' is specified, then each forwarded message is output
+ exactly as it appears. If `-format' or `-filter filterfile' is
+ specified, then each forwarded message is filtered (re-formatted)
+ prior to being output to the body of the draft. The filter file
+ for _\bf_\bo_\br_\bw should be a standard form file for _\bm_\bh_\bl, as _\bf_\bo_\br_\bw will
+ invoke _\bm_\bh_\bl to format the forwarded messages. The default message
+ filter (what you get with `-format') is:
+
+ width=80,overflowtext=,overflowoffset=10
+ leftadjust,compress,compwidth=9
+ Date:formatfield="%<(nodate{text})%{text}%|%(tws{text})%>"
+ From:
+ To:
+ cc:
+ Subject:
+ :
+ body:nocomponent,overflowoffset=0,noleftadjust,nocompress
+
+ If the file named "mhl.forward" exists in the user's MH directory,
+ it will be used instead of this form. In either case, the file
+ specified by `-filter filterfile' will be used if given. To sum-
+ marize: `-noformat' will reproduce each forwarded message exactly,
+ `-format' will use _\bm_\bh_\bl and a default filterfile, "mhl.forward", to
+ format each forwarded message, and `-filter filterfile' will use
+ the named filterfile to format each forwarded message with _\bm_\bh_\bl.
+
+ Each forwarded message is separated with an encapsulation delimiter
+ and dashes in the first column of the forwarded messages will be
+ prepended with `- ' so that when received, the message is suitable
+ for bursting by _\bb_\bu_\br_\bs_\bt (1). This follows the Internet RFC-934
+ guidelines.
+
+ For users of _\bp_\br_\bo_\bm_\bp_\bt_\be_\br (1), by specifying prompter's `-prepend'
+ switch in the .mh_profile file, any commentary text is entered
+ before the forwarded messages. (A major win!)
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ Upon exiting from the editor, _\bf_\bo_\br_\bw will invoke the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available options. The invoca-
+ tion of this program can be inhibited by using the `-nowhatnowproc'
+ switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program which starts
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -38- FORW(1)
+
+
+ the initial edit. Hence, `-nowhatnowproc' will prevent any edit
+ from occurring.)
+
+ The `-digest list', `-issue number', and `-volume number' switches
+ implement a digest facility for _\bM_\bH. Specifying these switches
+ enables and/or overloads the following escapes:
+
+ _\bT_\by_\bp_\be _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt _\bd_\bi_\bg_\be_\bs_\bt string Argument to `-digest'
+ _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bc_\bu_\br integer Argument to `-volume'
+ _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bm_\bs_\bg integer Argument to `-issue'
+
+ Consult the Advanced Features section of the _\bM_\bH User's Manual for
+ more information on making digests.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/forwcomps The message skeleton
+ or <mh-dir>/forwcomps Rather than the standard skeleton
+ /usr/local/lib/mh/digestcomps The message skeleton if `-digest' is given
+ or <mh-dir>/digestcomps Rather than the standard skeleton
+ /usr/local/lib/mh/mhl.forward The message filter
+ or <mh-dir>/mhl.forward Rather than the standard filter
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ Msg-Protect: To set mode when creating a new message
+ (draft)
+ fileproc: Program to refile the message
+ mhlproc: Program to filter messages being forwarded
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bE_\bn_\bc_\ba_\bp_\bs_\bu_\bl_\ba_\bt_\bi_\bo_\bn (aka RFC-934),
+ comp(1), dist(1), repl(1), send(1), whatnow(1), mh-format(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-noannotate'
+ `-nodraftfolder'
+ `-noformat'
+ `-noinplace'
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -39- FORW(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The first
+ message forwarded will become the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bf_\bo_\br_\bw uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\bf_\bo_\br_\bw won't run
+ it.
+
+ When _\bf_\bo_\br_\bw is told to annotate the messages it forwards, it doesn't
+ actually annotate them until the draft is successfully sent. If
+ from the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, you _\bp_\bu_\bs_\bh instead of _\bs_\be_\bn_\bd, it's possible to
+ confuse _\bf_\bo_\br_\bw by re-ordering the file (e.g., by using
+ `folder -pack') before the message is successfully sent. _\bD_\bi_\bs_\bt and
+ _\br_\be_\bp_\bl don't have this problem.
+
+ To avoid prepending the leading dash characters in forwarded mes-
+ sages, there is a `-nodashmunging' option. See the "Hidden
+ Features" section of the _\bM_\bH _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be for more details.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ INC(1) -40- INC(1)
+
+
+ _\bN_\bA_\bM_\bE
+ inc - incorporate new mail
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ inc [+folder] [-audit audit-file] [-noaudit] [-changecur]
+ [-nochangecur] [-form formatfile] [-format string]
+ [-file name] [-silent] [-nosilent] [-truncate] [-notruncate]
+ [-width columns] [-host host] [-user user] [-pack file]
+ [-nopack] [-rpop] [-norpop] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bI_\bn_\bc incorporates mail from the user's incoming mail drop into an _\bM_\bH
+ folder. If `+folder' isn't specified, the folder named "inbox" in
+ the user's _\bM_\bH directory will be used. The new messages being
+ incorporated are assigned numbers starting with the next highest
+ number in the folder. If the specified (or default) folder doesn't
+ exist, the user will be queried prior to its creation. As the mes-
+ sages are processed, a _\bs_\bc_\ba_\bn listing of the new mail is produced.
+
+ If the user's profile contains a "Msg-Protect: nnn" entry, it will
+ be used as the protection on the newly created messages, otherwise
+ the _\bM_\bH default of 0644 will be used. During all operations on mes-
+ sages, this initially assigned protection will be preserved for
+ each message, so _\bc_\bh_\bm_\bo_\bd(1) may be used to set a protection on an
+ individual message, and its protection will be preserved
+ thereafter.
+
+ If the switch `-audit audit-file' is specified (usually as a
+ default switch in the profile), then _\bi_\bn_\bc will append a header line
+ and a line per message to the end of the specified audit-file with
+ the format:
+
+ <<inc>> date
+ <scan line for first message>
+ <scan line for second message>
+ <etc.>
+
+ This is useful for keeping track of volume and source of incoming
+ mail. Eventually, _\br_\be_\bp_\bl, _\bf_\bo_\br_\bw, _\bc_\bo_\bm_\bp, and _\bd_\bi_\bs_\bt may also produce
+ audits to this (or another) file, perhaps with "Message-Id:" infor-
+ mation to keep an exact correspondence history. "Audit-file" will
+ be in the user's MH directory unless a full path is specified.
+
+ _\bI_\bn_\bc will incorporate even improperly formatted messages into the
+ user's MH folder, inserting a blank line prior to the offending
+ component and printing a comment identifying the bad message.
+
+ In all cases, the user's mail drop will be zeroed, unless the
+ `-notruncate' switch is given.
+
+ If the profile entry "Unseen-Sequence" is present and non-empty,
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ INC(1) -41- INC(1)
+
+
+ then _\bi_\bn_\bc will add each of the newly incorporated messages to each
+ sequence named by the profile entry. This is similar to the
+ "Previous-Sequence" profile entry supported by all _\bM_\bH commands
+ which take `msgs' or `msg' arguments. Note that _\bi_\bn_\bc will not zero
+ each sequence prior to adding messages.
+
+ The interpretation of the `-form formatfile', `-format string', and
+ `-width columns' switches is the same as in _\bs_\bc_\ba_\bn (1).
+
+ By using the `-file name' switch, one can direct _\bi_\bn_\bc to incorporate
+ messages from a file other than the user's maildrop. Note that the
+ name file will NOT be zeroed, unless the `-truncate' switch is
+ given.
+
+ If the envariable $MAILDROP is set, then _\bi_\bn_\bc uses it as the loca-
+ tion of the user's maildrop instead of the default (the `-
+ file name' switch still overrides this, however). If this envari-
+ able is not set, then _\bi_\bn_\bc will consult the profile entry "MailDrop"
+ for this information. If the value found is not absolute, then it
+ is interpreted relative to the user's _\bM_\bH directory. If the value
+ is not found, then _\bi_\bn_\bc will look in the standard system location
+ for the user's maildrop.
+
+ The `-silent' switch directs _\bi_\bn_\bc to be quiet and not ask any ques-
+ tions at all. This is useful for putting _\bi_\bn_\bc in the background and
+ going on to other things.
+
+ If the local host is configured as a POP client, or if the
+ `-host host' switch is given, then _\bi_\bn_\bc will query the POP service
+ host as to the status of mail waiting. The `-user user' switch may
+ be given to specify the name of the POP subscriber you wish to
+ check mail for on the POP service host. The `-rpop' switch uses
+ the UNIX _\br_\bP_\bO_\bP (authentication done via trusted connections). In
+ contrast, the `-norpop' switch uses the ARPA _\bP_\bO_\bP (in which case _\bi_\bn_\bc
+ will prompt for a password).
+
+ If _\bi_\bn_\bc uses POP, then the `-pack file' switch is considered. If
+ given, then _\bi_\bn_\bc simply uses the POP to _\bp_\ba_\bc_\bk_\bf (1) the user's mail-
+ drop from the POP service host to the named file. This switch is
+ provided for those users who prefer to use _\bm_\bs_\bh to read their mail-
+ drops.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/spool/mail/$USER Location of mail drop
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ INC(1) -42- INC(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Alternate-Mailboxes: To determine the user's mailboxes
+ Folder-Protect: To set mode when creating a new folder
+ Msg-Protect: To set mode when creating a new message and
+ audit-file
+ Unseen-Sequence: To name sequences denoting unseen messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl - _\bv_\be_\br_\bs_\bi_\bo_\bn _\b3 (aka RFC-1081),
+ mhmail(1), scan(1), mh-mail(5), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to "inbox"
+ `-noaudit'
+ `-changecur'
+ `-format' defaulted as described above
+ `-nosilent'
+ `-truncate' if `-file name' not given, `-notruncate' otherwise
+ `-width' defaulted to the width of the terminal
+ `-nopack'
+ `-rpop'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ The folder into which messages are being incorporated will become
+ the current folder. The first message incorporated will become the
+ current message, unless the `-nochangecur' option is specified.
+ This leaves the context ready for a _\bs_\bh_\bo_\bw of the first new message.
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bi_\bn_\bc. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MARK(1) -43- MARK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mark - mark messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mark [+folder] [msgs] [-sequence name ...] [-add] [-delete] [-list]
+ [-public] [-nopublic] [-zero] [-nozero] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bm_\ba_\br_\bk command manipulates message sequences by adding or delet-
+ ing message numbers from folder-specific message sequences, or by
+ listing those sequences and messages. A message sequence is a key-
+ word, just like one of the "reserved" message names, such as
+ "first" or "next". Unlike the "reserved" message names, which have
+ a fixed semantics on a per-folder basis, the semantics of a message
+ sequence may be defined, modified, and removed by the user. Mes-
+ sage sequences are folder-specific, e.g., the sequence name "seen"
+ in the context of folder "+inbox" need not have any relation what-
+ soever to the sequence of the same name in a folder of a different
+ name.
+
+ Three action switches direct the operation of _\bm_\ba_\br_\bk. These switches
+ are mutually exclusive: the last occurrence of any of them over-
+ rides any previous occurrence of the other two.
+
+ The `-add' switch tells _\bm_\ba_\br_\bk to add messages to sequences or to
+ create a new sequence. For each sequence named via the
+ `-sequence name' argument (which must occur at least once) the mes-
+ sages named via `msgs' (which defaults to "cur" if no `msgs' are
+ given), are added to the sequence. The messages to be added need
+ not be absent from the sequence. If the `-zero' switch is speci-
+ fied, the sequence will be emptied prior to adding the messages.
+ Hence, `-add -zero' means that each sequence should be initialized
+ to the indicated messages, while `-add -nozero' means that each
+ sequence should be appended to by the indicated messages.
+
+ The `-delete' switch tells _\bm_\ba_\br_\bk to delete messages from sequences,
+ and is the dual of `-add'. For each of the named sequences, the
+ named messages are removed from the sequence. These messages need
+ not be already present in the sequence. If the `-zero' switch is
+ specified, then all messages in the folder are appended to the
+ sequence prior to removing the messages. Hence, `-delete -zero'
+ means that each sequence should contain all messages except those
+ indicated, while `-delete -nozero' means that only the indicated
+ messages should be removed from each sequence. As expected, the
+ command `mark -sequence seen -delete all' deletes the sequence
+ "seen" from the current folder.
+
+ When creating (or modifying) a sequence, the `-public' switch indi-
+ cates that the sequence should be made readable for other _\bM_\bH users.
+ In contrast, the `-nopublic' switch indicates that the sequence
+ should be private to the user's _\bM_\bH environment.
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MARK(1) -44- MARK(1)
+
+
+ The `-list' switch tells _\bm_\ba_\br_\bk to list both the sequences defined
+ for the folder and the messages associated with those sequences.
+ _\bM_\ba_\br_\bk will list each sequence named via `-sequence name' (or all of
+ them if `-sequence' isn't used), and the messages associated with
+ that sequence. The `-zero' switch does not affect the operation of
+ `-list'.
+
+ The current restrictions on sequences are:
+
+ The name used to denote a message sequence must consist of an
+ alphabetic character followed by zero or more alphanumeric char-
+ acters, and can not be one of the "reserved" message names (e.g.,
+ "first", "cur", and so forth).
+
+ Only a certain number of sequences may be defined for a given
+ folder. This number is usually limited to 10.
+
+ Message ranges with user-defined sequence names are restricted to
+ the form "name:n" or "name:-n", and refer to the first or last
+ `n' messages of the sequence `name', respectively. Constructs of
+ the form "name1-name2" are forbidden.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ pick (1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `-add' if `-sequence' is specified, `-list' otherwise
+ `msgs' defaults to cur (or all if `-list' is specified)
+ `-nopublic' if the folder is read-only, `-public' otherwise
+ `-nozero'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -45- MHL(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhl - produce formatted listings of MH messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/mhl [-bell] [-nobell] [-clear] [-noclear]
+ [-folder +folder] [-form formfile] [-length lines]
+ [-width columns] [-moreproc program] [-nomoreproc] [files ...]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bh_\bl is a formatted message listing program. It can be used as a
+ replacement for _\bm_\bo_\br_\be (1) (the default _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc ). As with _\bm_\bo_\br_\be,
+ each of the messages specified as arguments (or the standard input)
+ will be output. If more than one message file is specified, the
+ user will be prompted prior to each one, and a <RETURN> or <EOT>
+ will begin the output, with <RETURN> clearing the screen (if
+ appropriate), and <EOT> (usually CTRL-D) suppressing the screen
+ clear. An <INTERRUPT> (usually CTRL-C) will abort the current mes-
+ sage output, prompting for the next message (if there is one), and
+ a <QUIT> (usually CTRL-\) will terminate the program (without core
+ dump).
+
+ The `-bell' option tells _\bm_\bh_\bl to ring the terminal's bell at the end
+ of each page, while the `-clear' option tells _\bm_\bh_\bl to clear the
+ scree at the end of each page (or output a formfeed after each mes-
+ sage). Both of these switches (and their inverse counterparts)
+ take effect only if the profile entry _\bm_\bo_\br_\be_\bp_\br_\bo_\bc is defined but
+ empty, and _\bm_\bh_\bl is outputting to a terminal. If the _\bm_\bo_\br_\be_\bp_\br_\bo_\bc entry
+ is defined and non-empty, and _\bm_\bh_\bl is outputting to a terminal, then
+ _\bm_\bh_\bl will cause the _\bm_\bo_\br_\be_\bp_\br_\bo_\bc to be placed between the terminal and
+ _\bm_\bh_\bl and the switches are ignored. Furthermore, if the `-clear'
+ switch is used and _\bm_\bh_\bl'_\bs output is directed to a terminal, then _\bm_\bh_\bl
+ will consult the $TERM and $TERMCAP envariables to determine the
+ user's terminal type in order to find out how to clear the screen.
+ If the `-clear' switch is used and _\bm_\bh_\bl'_\bs output is not directed to
+ a terminal (e.g., a pipe or a file), then _\bm_\bh_\bl will send a formfeed
+ after each message.
+
+ To override the default _\bm_\bo_\br_\be_\bp_\br_\bo_\bc and the profile entry, use the
+ `-moreproc program' switch. Note that _\bm_\bh_\bl will never start a
+ _\bm_\bo_\br_\be_\bp_\br_\bo_\bc if invoked on a hardcopy terminal.
+
+ The `-length length' and `-width width' switches set the screen
+ length and width, respectively. These default to the values indi-
+ cated by $TERMCAP, if appropriate, otherwise they default to 40 and
+ 80, respectively.
+
+ The default format file used by _\bm_\bh_\bl is called _\bm_\bh_\bl._\bf_\bo_\br_\bm_\ba_\bt (which is
+ first searched for in the user's _\bM_\bH directory, and then sought in
+ the /_\bu_\bs_\br/_\bl_\bo_\bc_\ba_\bl/_\bl_\bi_\bb/_\bm_\bh directory), this can be changed by using the
+ `-form formatfile' switch.
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -46- MHL(1)
+
+
+ Finally, the `-folder +folder' switch sets the _\bM_\bH folder name,
+ which is used for the "messagename:" field described below. The
+ envariable $mhfolder is consulted for the default value, which
+ _\bs_\bh_\bo_\bw, _\bn_\be_\bx_\bt, and _\bp_\br_\be_\bv initialize appropriately.
+
+ _\bM_\bh_\bl operates in two phases: 1) read and parse the format file, and
+ 2) process each message (file). During phase 1, an internal
+ description of the format is produced as a structured list. In
+ phase 2, this list is walked for each message, outputting message
+ information under the format constraints from the format file.
+
+ The "mhl.format" form file contains information controlling screen
+ clearing, screen size, wrap-around control, transparent text, com-
+ ponent ordering, and component formatting. Also, a list of com-
+ ponents to ignore may be specified, and a couple of "special" com-
+ ponents are defined to provide added functionality. Message output
+ will be in the order specified by the order in the format file.
+
+ Each line of mhl.format has one of the formats:
+
+ ;comment
+ :cleartext
+ variable[,variable...]
+ component:[variable,...]
+
+ A line beginning with a `;' is a comment, and is ignored. A line
+ beginning with a `:' is clear text, and is output exactly as is. A
+ line containing only a `:' produces a blank line in the output. A
+ line beginning with "component:" defines the format for the speci-
+ fied component, and finally, remaining lines define the global
+ environment.
+
+ For example, the line:
+
+ width=80,length=40,clearscreen,overflowtext="***",overflowoffset=5
+
+ defines the screen size to be 80 columns by 40 rows, specifies that
+ the screen should be cleared prior to each page, that the overflow
+ indentation is 5, and that overflow text should be flagged with
+ "***".
+
+ Following are all of the current variables and their arguments. If
+ they follow a component, they apply only to that component, other-
+ wise, their affect is global. Since the whole format is parsed
+ before any output processing, the last global switch setting for a
+ variable applies to the whole message if that variable is used in a
+ global context (i.e., bell, clearscreen, width, length).
+
+ _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be _\bt_\by_\bp_\be _\bs_\be_\bm_\ba_\bn_\bt_\bi_\bc_\bs
+ width integer screen width or component width
+ length integer screen length or component length
+ offset integer positions to indent "component: "
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -47- MHL(1)
+
+
+ overflowtext string text to use at the beginning of an
+ overflow line
+ overflowoffset integer positions to indent overflow lines
+ compwidth integer positions to indent component text
+ after the first line is output
+ uppercase flag output text of this component in all
+ upper case
+ nouppercase flag don't uppercase
+ clearscreen flag/G clear the screen prior to each page
+ noclearscreen flag/G don't clearscreen
+ bell flag/G ring the bell at the end of each page
+ nobell flag/G don't bell
+ component string/L name to use instead of "component" for
+ this component
+ nocomponent flag don't output "component: " for this
+ component
+ center flag center component on line (works for
+ one-line components only)
+ nocenter flag don't center
+ leftadjust flag strip off leading whitespace on each
+ line of text
+ noleftadjust flag don't leftadjust
+ compress flag change newlines in text to spaces
+ nocompress flag don't compress
+ split flag don't combine multiple fields into a single field
+ nosplit flag combine multiple fields into a single field
+ formatfield string format string for this component (see below)
+ addrfield flag field contains addresses
+ datefield flag field contains dates
+
+ To specify the value of integer-valued and string-valued variables,
+ follow their name with an equals-sign and the value.
+ Integer-valued variables are given decimal values, while
+ string-valued variables are given arbirtray text bracketed by
+ double-quotes. If a value is suffixed by "/G" or "/L", then its
+ value is useful in a global-only or local-only context (respec-
+ tively).
+
+ A line of the form:
+
+ ignores=component,...
+
+ specifies a list of components which are never output.
+
+ The component "MessageName" (case-insensitive) will output the
+ actual message name (file name) preceded by the folder name if one
+ is specified or found in the environment. The format is identical
+ to that produced by the `-header' option to _\bs_\bh_\bo_\bw.
+
+ The component "Extras" will output all of the components of the
+ message which were not matched by explicit components, or included
+ in the ignore list. If this component is not specified, an ignore
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -48- MHL(1)
+
+
+ list is not needed since all non-specified components will be
+ ignored.
+
+ If "nocomponent" is NOT specified, then the component name will be
+ output as it appears in the format file.
+
+ The default format is:
+
+ : -- using template mhl.format --
+ overflowtext="***",overflowoffset=5
+ leftadjust,compwidth=9
+ ignores=msgid,message-id,received
+ Date:formatfield="%<(nodate{text})%{text}%|%(pretty{text})%>"
+ To:
+ cc:
+ :
+ From:
+ Subject:
+ :
+ extras:nocomponent
+ :
+ body:nocomponent,overflowtext=,overflowoffset=0,noleftadjust
+
+ The variable "formatfield" specifies a format string (see
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5)). The flag variables "addrfield" and "datefield"
+ (which are mutually exclusive), tell _\bm_\bh_\bl to interpret the escapes
+ in the format string as either addresses or dates, respectively.
+
+ By default, _\bm_\bh_\bl does not apply any formatting string to fields con-
+ taining address or dates (see _\bm_\bh-_\bm_\ba_\bi_\bl (5) for a list of these
+ fields). Note that this results in faster operation since _\bm_\bh_\bl must
+ parse both addresses and dates in order to apply a format string to
+ them. If desired, _\bm_\bh_\bl can be given a default format string for
+ either address or date fields (but not both). To do this, on a
+ global line specify: either the flag addrfield or datefield, along
+ with the apropriate formatfield variable string.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mhl.format The message template
+ or <mh-dir>/mhl.format Rather than the standard template
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ moreproc: Program to use as interactive front-end
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ show(1), ap(8), dp(8)
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -49- MHL(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-bell'
+ `-noclear'
+ `-length 40'
+ `-width 80'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ There should be some way to pass `bell' and `clear' information to
+ the front-end.
+
+ On hosts where _\bM_\bH was configured with the BERK option, address
+ parsing is not enabled.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHMAIL(1) -50- MHMAIL(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhmail - send or read mail
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mhmail [ addrs ... [-body text] [-cc addrs ...] [-from addr]
+ [-subject subject]] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bH_\bm_\ba_\bi_\bl is intended as a replacement for the standard Bell mail pro-
+ gram (_\bb_\be_\bl_\bl_\bm_\ba_\bi_\bl (1)), compatible with _\bM_\bH. When invoked without
+ arguments, it simply invokes _\bi_\bn_\bc (1) to incorporate new messages
+ from the user's maildrop. When one or more users is specified, a
+ message is read from the standard input and spooled to a temporary
+ file. _\bM_\bH_\bm_\ba_\bi_\bl then invokes _\bp_\bo_\bs_\bt (8) with the name of the temporary
+ file as its argument to deliver the message to the specified user.
+
+ The `-subject subject' switch can be used to specify the "Subject:"
+ field of the message. The `-body text' switch can be used to
+ specify the text of the message; if it is specified, then the stan-
+ dard input is not read. Normally, addresses appearing as arguments
+ are put in the "To:" field. If the `-cc' switch is used, all
+ addresses following it are placed in the "cc:" field.
+
+ By using `-from addr', you can specify the "From:" header of the
+ draft. Naturally, _\bp_\bo_\bs_\bt will fill-in the "Sender:" header
+ correctly.
+
+ This program is intended for the use of programs such as _\ba_\bt (1),
+ which expect to send mail automatically to various users. Nor-
+ mally, real people (as opposed to the "unreal" ones) will prefer to
+ use _\bc_\bo_\bm_\bp (1) and _\bs_\be_\bn_\bd (1) to send messages.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/inc Program to incorporate a maildrop into a folder
+ /usr/local/lib/mh/post Program to deliver a message
+ /tmp/mhmail* Temporary copy of message
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHMAIL(1) -51- MHMAIL(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If _\bi_\bn_\bc is invoked, then _\bi_\bn_\bc's context changes occur.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHOOK(1) -52- MHOOK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhook - MH receive-mail hooks
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ $HOME/.maildelivery
+
+ /usr/local/lib/mh/rcvdist [-form formfile] [switches for _\bp_\bo_\bs_\bt_\bp_\br_\bo_\bc]
+ address ... [-help]
+
+ /usr/local/lib/mh/rcvpack file [-help]
+
+ /usr/local/lib/mh/rcvtty [command] [-form formatfile]
+ [-format string] [-bell] [-nobell] [-newline] [-nonewline]
+ [-biff] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ A receive-mail hook is a program that is run whenever you receive a
+ mail message. You do NOT invoke the hook yourself, rather the hook
+ is invoked on your behalf by _\bM_\bM_\bD_\bF.
+
+ The ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file, which is an ordinary ASCII file, controls
+ how local delivery is performed. This file is read by the local
+ channel. See _\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by (5) for the details.
+
+ Four programs are currently standardly available, _\br_\bc_\bv_\bd_\bi_\bs_\bt (redis-
+ tribute incoming messages to additional recipients), _\br_\bc_\bv_\bp_\ba_\bc_\bk (save
+ incoming messages in a _\bp_\ba_\bc_\bk_\bf'd file), and _\br_\bc_\bv_\bt_\bt_\by (notify user of
+ incoming messages). The fourth program, _\br_\bc_\bv_\bs_\bt_\bo_\br_\be (1) is described
+ separately. They all reside in the /_\bu_\bs_\br/_\bl_\bo_\bc_\ba_\bl/_\bl_\bi_\bb/_\bm_\bh/ directory.
+
+ The _\br_\bc_\bv_\bd_\bi_\bs_\bt program will resend a copy of the message to all of the
+ addresses listed on its command line. It uses the format string
+ facility described in _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5).
+
+ The _\br_\bc_\bv_\bp_\ba_\bc_\bk program will append a copy of the message to the file
+ listed on its command line. Its use is obsoleted by the ._\bm_\ba_\bi_\bl_\b-
+ _\bd_\be_\bl_\bi_\bv_\be_\br_\by.
+
+ The _\br_\bc_\bv_\bt_\bt_\by program executes the named file with the message as its
+ standard input, and writes the resulting output on your terminal.
+
+ If no file is specified, or is bogus, etc., then _\br_\bc_\bv_\bt_\bt_\by will
+ instead write a one-line scan listing. Either the
+ `-form formatfile' or `-format string' option may be used to over-
+ ride the default output format (see _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5)). A newline is
+ output before the message output, and the terminal bell is rung
+ after the output. The `-nonewline' and `-nobell' options will
+ inhibit these functions.
+
+ Normally, _\br_\bc_\bv_\bt_\bt_\by obeys write permission as granted by _\bm_\be_\bs_\bg (1).
+ With the `-biff' option, _\br_\bc_\bv_\bt_\bt_\by will obey the notification status
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHOOK(1) -53- MHOOK(1)
+
+
+ set by _\bb_\bi_\bf_\bf (1). If the terminal access daemon (TTYD) is available
+ on your system, then _\br_\bc_\bv_\bt_\bt_\by will give its output to the daemon for
+ output instead of writing on the user's terminal.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ $HOME/.maildelivery The file controlling local delivery
+ /usr/local/lib/mh/maildelivery Rather than the standard file
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rcvstore (1), maildelivery(5), mh-format(5)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ Only two return codes are meaningful, others should be.
+
+ Versions of _\bM_\bM_\bD_\bF with the _\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by mechanism aren't entirely
+ backwards-compatible with earlier versions. If you have an
+ old-style hook, the best you can do is to have a one-line ._\bm_\ba_\bi_\bl-
+ _\bd_\be_\bl_\bi_\bv_\be_\br_\by file:
+
+ default - pipe A "bin/rcvmail $(address) $(info) $(sender)"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHPATH(1) -54- MHPATH(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhpath - print full pathnames of MH messages and folders
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mhpath [+folder] [msgs] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bh_\bp_\ba_\bt_\bh expands and sorts the message list `msgs' and writes the
+ full pathnames of the messages to the standard output separated by
+ newlines. If no `msgs' are specified, _\bm_\bh_\bp_\ba_\bt_\bh outputs the folder
+ pathname instead. If the only argument is `+', your MH _\bP_\ba_\bt_\bh is
+ output; this can be useful is shell scripts.
+
+ Contrasted with other MH commands, a message argument to _\bm_\bh_\bp_\ba_\bt_\bh may
+ often be intended for _\bw_\br_\bi_\bt_\bi_\bn_\bg. Because of this: 1) the name "new"
+ has been added to _\bm_\bh_\bp_\ba_\bt_\bh's list of reserved message names (the oth-
+ ers are "first", "last", "prev", "next", "cur", and "all"). The
+ new message is equivalent to the message after the last message in
+ a folder (and equivalent to 1 in a folder without messages). The
+ "new" message may not be used as part of a message range. 2)
+ Within a message list, the following designations may refer to mes-
+ sages that do not exist: a single numeric message name, the single
+ message name "cur", and (obviously) the single message name "new".
+ All other message designations must refer to at least one existing
+ message. 3) An empty folder is not in itself an error.
+
+ Message numbers greater than the highest existing message in a
+ folder as part of a range designation are replaced with the next
+ free message number.
+
+ Examples: The current folder foo contains messages 3 5 6. Cur is
+ 4.
+
+ % mhpath
+ /r/phyl/Mail/foo
+
+ % mhpath all
+ /r/phyl/Mail/foo/3
+ /r/phyl/Mail/foo/5
+ /r/phyl/Mail/foo/6
+
+ % mhpath 2001
+ /r/phyl/Mail/foo/7
+
+ % mhpath 1-2001
+ /r/phyl/Mail/foo/3
+ /r/phyl/Mail/foo/5
+ /r/phyl/Mail/foo/6
+
+ % mhpath new
+ /r/phyl/Mail/foo/7
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHPATH(1) -55- MHPATH(1)
+
+
+ % mhpath last new
+ /r/phyl/Mail/foo/6
+ /r/phyl/Mail/foo/7
+
+ % mhpath last-new
+ bad message list "last-new".
+
+ % mhpath cur
+ /r/phyl/Mail/foo/4
+
+ % mhpath 1-2
+ no messages in range "1-2".
+
+ % mhpath first:2
+ /r/phyl/Mail/foo/3
+ /r/phyl/Mail/foo/5
+
+ % mhpath 1 2
+ /r/phyl/Mail/foo/1
+ /r/phyl/Mail/foo/2
+
+ _\bM_\bH_\bp_\ba_\bt_\bh is also useful in back-quoted operations:
+
+ % cd `mhpath +inbox`
+
+ % echo `mhpath +`
+ /r/phyl/Mail
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ folder(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to none
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MHPATH(1) -56- MHPATH(1)
+
+
+ _\bB_\bu_\bg_\bs
+ Like all MH commands, _\bm_\bh_\bp_\ba_\bt_\bh expands and sorts [msgs]. So don't
+ expect
+
+ mv `mhpath 501 500`
+
+ to move 501 to 500. Quite the reverse. But
+
+ mv `mhpath 501` `mhpath 500`
+
+ will do the trick.
+
+ Out of range message 0 is treated far more severely than large out
+ of range message numbers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MSGCHK(1) -57- MSGCHK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ msgchk - check for messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ msgchk [-date] [-nodate] [-notify all/mail/nomail]
+ [-nonotify all/mail/nomail] [-host host] [-user user] [-rpop]
+ [-norpop] [users ...] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bm_\bs_\bg_\bc_\bh_\bk program checks all known mail drops for mail waiting for
+ you. For those drops which have mail for you, _\bm_\bs_\bg_\bc_\bh_\bk will indicate
+ if it believes that you have seen the mail in question before.
+
+ The `-notify type' switch indicates under what circumstances _\bm_\bs_\bg_\bc_\bh_\bk
+ should produce a message. The default is `-notify all' which says
+ that _\bm_\bs_\bg_\bc_\bh_\bk should always report the status of the users maildrop.
+ Other values for `type' include `mail' which says that _\bm_\bs_\bg_\bc_\bh_\bk
+ should report the status of waiting mail; and, `nomail' which says
+ that _\bm_\bs_\bg_\bc_\bh_\bk should report the status of empty maildrops. The
+ `-nonotify type' switch has the inverted sense, so `-nonotify all'
+ directs _\bm_\bs_\bg_\bc_\bh_\bk to never report the status of maildrops. This is
+ useful if the user wishes to check _\bm_\bs_\bg_\bc_\bh_\bk's exit status. A
+ non-zero exit status indicates that mail was not waiting for at
+ least one of the indicated users.
+
+ If _\bm_\bs_\bg_\bc_\bh_\bk produces output, then the `-date' switch directs _\bm_\bs_\bg_\bc_\bh_\bk
+ to print out the last date mail was read, if this can be deter-
+ mined.
+
+ If the local host is configured as a POP client, or if the
+ `-host host' switch is given, _\bm_\bs_\bg_\bc_\bh_\bk will query the POP service
+ host as to the status of mail waiting. The `-user user' switch may
+ be given to specify the name of the POP subscriber you wish to
+ check mail for on the POP service host. The `-rpop' switch uses
+ the UNIX _\br_\bP_\bO_\bP (authentication done via trusted connections). In
+ contrast, the `-norpop' switch uses the ARPA _\bP_\bO_\bP (in which case
+ _\bm_\bs_\bg_\bc_\bh_\bk will prompt for a password).
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/spool/mail/$USER Location of mail drop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MSGCHK(1) -58- MSGCHK(1)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl - _\bv_\be_\br_\bs_\bi_\bo_\bn _\b3 (aka RFC-1081),
+ inc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `user' defaults to the current user
+ `-date'
+ `-notify all'
+ `-rpop'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -59- MSH(1)
+
+
+ _\bN_\bA_\bM_\bE
+ msh - MH shell (and BBoard reader)
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ msh [-prompt string] [-scan] [-noscan] [-topcur] [-notopcur] [file]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bm_\bs_\bh is an interactive program that implements a subset of the nor-
+ mal _\bM_\bH commands operating on a single file in _\bp_\ba_\bc_\bk_\bf'd format. That
+ is, _\bm_\bs_\bh is used to read a file that contains a number of messages,
+ as opposed to the standard _\bM_\bH style of reading a number of files,
+ each file being a separate message in a folder. _\bm_\bs_\bh's chief advan-
+ tage is that the normal _\bM_\bH style does not allow a file to have more
+ than one message in it. Hence, _\bm_\bs_\bh is ideal for reading _\bB_\bB_\bo_\ba_\br_\bd_\bs,
+ as these files are delivered by the transport system in this for-
+ mat. In addition, _\bm_\bs_\bh can be used on other files, such as message
+ archives which have been _\bp_\ba_\bc_\bked (see _\bp_\ba_\bc_\bk_\bf (1)). Finally, _\bm_\bs_\bh is
+ an excellent _\bM_\bH tutor. As the only commands available to the user
+ are _\bM_\bH commands, this allows _\bM_\bH beginners to concentrate on how
+ commands to _\bM_\bH are formed and (more or less) what they mean.
+
+ When invoked, _\bm_\bs_\bh reads the named file, and enters a command loop.
+ The user may type most of the normal _\bM_\bH commands. The syntax and
+ semantics of these commands typed to _\bm_\bs_\bh are identical to their _\bM_\bH
+ counterparts. In cases where the nature of _\bm_\bs_\bh would be incon-
+ sistent (e.g., specifying a `+folder' with some commands), _\bm_\bs_\bh will
+ duly inform the user. The commands that _\bm_\bs_\bh currently supports (in
+ some slightly modified or restricted forms) are:
+
+ ali
+ burst
+ comp
+ dist
+ folder
+ forw
+ inc
+ mark
+ mhmail
+ msgchk
+ next
+ packf
+ pick
+ prev
+ refile
+ repl
+ rmm
+ scan
+ send
+ show
+ sortm
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -60- MSH(1)
+
+
+ whatnow
+ whom
+
+ In addition, _\bm_\bs_\bh has a "help" command which gives a brief overview.
+ To terminate _\bm_\bs_\bh, type CTRL-D, or use the "quit" command. If _\bm_\bs_\bh
+ is being invoked from _\bb_\bb_\bc, then typing CTRL-D will also tell _\bb_\bb_\bc to
+ exit as well, while using the "quit" command will return control to
+ _\bb_\bb_\bc, and _\bb_\bb_\bc will continue examining the list of BBoards that it is
+ scanning.
+
+ If the file is writable and has been modified, then using "quit"
+ will query the user if the file should be updated.
+
+ The `-prompt string' switch sets the prompting string for _\bm_\bs_\bh.
+
+ You may wish to use an alternate _\bM_\bH profile for the commands that
+ _\bm_\bs_\bh executes; see _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be (5) for details about the $MH envari-
+ able.
+
+ When invoked from _\bb_\bb_\bc, two special features are enabled: First, the
+ `-scan' switch directs _\bm_\bs_\bh to do a `scan unseen' on start-up if new
+ items are present in the BBoard. This feature is best used from
+ _\bb_\bb_\bc, which correctly sets the stage. Second, the _\bm_\ba_\br_\bk command in
+ _\bm_\bs_\bh acts specially when you are reading a BBoard, since _\bm_\bs_\bh will
+ consult the sequence "unseen" in determining what messages you have
+ actually read. When _\bm_\bs_\bh exits, it reports this information to _\bb_\bb_\bc.
+ In addition, if you give the _\bm_\ba_\br_\bk command with no arguments, _\bm_\bs_\bh
+ will interpret it as `mark -sequence unseen -delete -nozero all'
+ Hence, to discard all of the messages in the current BBoard you're
+ reading, just use the _\bm_\ba_\br_\bk command with no arguments.
+
+ Normally, the "exit" command is identical to the "quit" command in
+ _\bm_\bs_\bh. When run under _\bb_\bb_\bc however, "exit" directs _\bm_\bs_\bh to mark all
+ messages as seen and then "quit". For speedy type-in, this command
+ is often abbreviated as just "e".
+
+ When invoked from _\bv_\bm_\bh, another special feature is enabled: The
+ `topcur' switch directs _\bm_\bs_\bh to have the current message "track" the
+ top line of the _\bv_\bm_\bh scan window. Normally, _\bm_\bs_\bh has the current
+ message "track" the center of the window (under `-notopcur', which
+ is the default).
+
+ _\bm_\bs_\bh supports an output redirection facility. Commands may be fol-
+ lowed by one of
+
+ > _\bf_\bi_\bl_\be write output to _\bf_\bi_\bl_\be
+ >> _\bf_\bi_\bl_\be append output to _\bf_\bi_\bl_\be
+ | _\bc_\bo_\bm_\bm_\ba_\bn_\bd pipe output to UNIX _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+
+ If _\bf_\bi_\bl_\be starts with a `~' (tilde), then a _\bc_\bs_\bh-like expansion takes
+ place. Note that _\bc_\bo_\bm_\bm_\ba_\bn_\bd is interpreted by _\bs_\bh (1). Also note that
+ _\bm_\bs_\bh does NOT support history substitutions, variable substitutions,
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -61- MSH(1)
+
+
+ or alias substitutions.
+
+ When parsing commands to the left of any redirection symbol, _\bm_\bs_\bh
+ will honor `\' (back-slash) as the quote next-character symbol, and
+ `"' (double-quote) as quote-word delimiters. All other input
+ tokens are separated by whitespace (spaces and tabs).
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/local/lib/mh/mtstailor tailor file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Msg-Protect: To set mode when creating a new `file'
+ fileproc: Program to file messages
+ showproc: Program to show messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `file' defaults to "./msgbox"
+ `-prompt (msh) '
+ `-noscan'
+ `-notopcur'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -62- MSH(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-prompt' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bm_\bs_\bh. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+
+ There is a strict limit of messages per file in _\bp_\ba_\bc_\bk_\bf'd format
+ which _\bm_\bs_\bh can handle. Usually, this limit is 1000 messages.
+
+ Please remember that _\bm_\bs_\bh is not the _\bC_\bS_\bh_\be_\bl_\bl, and that a lot of the
+ nice facilities provided by the latter are not present in the form-
+ er.
+
+ In particular, _\bm_\bs_\bh does not understand back-quoting, so the only
+ effective way to use _\bp_\bi_\bc_\bk inside _\bm_\bs_\bh is to always use the
+ `-seq select' switch. Clever users of _\bM_\bH will put the line
+
+ pick: -seq select -list
+
+ in their .mh_profile file so that _\bp_\bi_\bc_\bk works equally well from both
+ the shell and _\bm_\bs_\bh.
+
+ _\bs_\bo_\br_\bt_\bm always uses "-noverbose" and if "-textfield field" is used,
+ "-limit 0".
+
+ The _\bm_\bs_\bh program inherits most (if not all) of the bugs from the _\bM_\bH
+ commands it implements.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ NEXT(1) -63- NEXT(1)
+
+
+ _\bN_\bA_\bM_\bE
+ next - show the next message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ next [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bN_\be_\bx_\bt performs a _\bs_\bh_\bo_\bw on the next message in the specified (or
+ current) folder. Like _\bs_\bh_\bo_\bw, it passes any switches on to the pro-
+ gram _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc, which is called to list the message. This command
+ is almost exactly equivalent to "show next". Consult the manual
+ entry for _\bs_\bh_\bo_\bw (1) for all the details.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ showproc: Program to show the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ show(1), prev(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `-header'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is specified, it will become the current folder. The
+ message that is shown (i.e., the next message in sequence) will be-
+ come the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ _\bn_\be_\bx_\bt is really a link to the _\bs_\bh_\bo_\bw program. As a result, if you
+ make a link to _\bn_\be_\bx_\bt and that link is not called _\bn_\be_\bx_\bt, your link
+ will act like _\bs_\bh_\bo_\bw instead. To circumvent this, add a
+ profile-entry for the link to your _\bM_\bH profile and add the argument
+ _\bn_\be_\bx_\bt to the entry.
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ PACKF(1) -64- PACKF(1)
+
+
+ _\bN_\bA_\bM_\bE
+ packf - compress a folder into a single file
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ packf [+folder] [msgs] [-file name] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\ba_\bc_\bk_\bf takes messages from a folder and copies them to a single
+ file. Each message in the file is separated by four CTRL-A's and a
+ newline (identical to the way messages are stored in your receiving
+ mail drop). Messages packed can be unpacked using _\bi_\bn_\bc.
+
+ If the _\bn_\ba_\bm_\be given to the `-file name' switch exists, then the mes-
+ sages specified will be appended to the end of the file, otherwise
+ the file will be created and the messages appended.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Msg-Protect: To set mode when creating a new `file'
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to all
+ `-file ./msgbox'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The first
+ message packed will become the current message.
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -65- PICK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ pick - select messages by content
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ pick [+folder] [msgs] [-and ...] [-or ...] [-not ...]
+ [-lbrace ... -rbrace] [--component pattern] [-after date]
+ [-before date] [-datefield field] [-sequence name ...]
+ [-public] [-nopublic] [-zero] [-nozero] [-list] [-nolist]
+ [-help]
+
+ typically:
+ scan `pick -from jones`
+ pick -to holloway -sequence select
+ show `pick -before friday`
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\bi_\bc_\bk searches messages within a folder for the specified contents,
+ and then identifies those messages. Two types of search primitives
+ are available: pattern matching and date constraint operations.
+
+ A modified _\bg_\br_\be_\bp(1) is used to perform the matching, so the full
+ regular expression (see _\be_\bd(1)) facility is available within `pat-
+ tern'. With `-search', `pattern' is used directly, and with the
+ others, the grep pattern constructed is:
+
+ "component[ \t]*:.*pattern"
+
+ This means that the pattern specified for a `-search' will be found
+ everywhere in the message, including the header and the body, while
+ the other pattern matching requests are limited to the single
+ specified component. The expression
+
+ `--component pattern'
+
+ is a shorthand for specifying
+
+ `-search "component[ \t]*:.*pattern" '
+
+ It is used to pick a component which is not one of "To:", "cc:",
+ "Date:", "From:", or "Subject:". An example is
+ `pick --reply-to pooh'.
+
+ Pattern matching is performed on a per-line basis. Within the
+ header of the message, each component is treated as one long line,
+ but in the body, each line is separate. Lower-case letters in the
+ search pattern will match either lower or upper case in the mes-
+ sage, while upper case will match only upper case.
+
+ Note that since the `-date' switch is a pattern matching operation
+ (as described above), to find messages sent on a certain date the
+ pattern string must match the text of the "Date:" field of the
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -66- PICK(1)
+
+
+ message.
+
+ Independent of any pattern matching operations requested, the
+ switches `-after date' or `-before date' may also be used to intro-
+ duce date/time contraints on all of the messages. By default, the
+ "Date:" field is consulted, but if another date yielding field
+ (such as "BB-Posted:" or "Delivery-Date:") should be used, the
+ `-datefield field' switch may be used.
+
+ With `-before' and `-after', _\bp_\bi_\bc_\bk will actually parse the date
+ fields in each of the messages specified in `msgs' and compare them
+ to the date/time specified. If `-after' is given, then only those
+ messages whose "Date:" field value is chronologically after the
+ date specified will be considered. The `-before' switch specifies
+ the complimentary action.
+
+ Both the `-after' and `-before' switches take legal 822-style date
+ specifications as arguments. _\bP_\bi_\bc_\bk will default certain missing
+ fields so that the entire date need not be specified. These fields
+ are (in order of defaulting): timezone, time and timezone, date,
+ date and timezone. All defaults are taken from the current date,
+ time, and timezone.
+
+ In addition to 822-style dates, _\bp_\bi_\bc_\bk will also recognize any of the
+ days of the week ("sunday", "monday", and so on), and the special
+ dates "today", "yesterday" (24 hours ago), and "tomorrow" (24 hours
+ from now). All days of the week are judged to refer to a day in
+ the past (e.g., telling _\bp_\bi_\bc_\bk "saturday" on a "tuesday" means
+ "last saturday" not "this saturday").
+
+ Finally, in addition to these special specifications, _\bp_\bi_\bc_\bk will
+ also honor a specification of the form "-dd", which means "dd days
+ ago".
+
+ _\bP_\bi_\bc_\bk supports complex boolean operations on the searching primi-
+ tives with the `-and', `-or', `-not', and `-lbrace ... -rbrace'
+ switches. For example,
+
+ pick -after yesterday -and -lbrace -from freida -or -from fear -rbrace
+
+ identifies messages recently sent by "frieda" or "fear".
+
+ The matching primitives take precedence over the `-not' switch,
+ which in turn takes precedence over `-and' which in turn takes pre-
+ cedence over `-or'. To override the default precedence, the
+ `-lbrace' and `-rbrace' switches are provided, which act just like
+ opening and closing parentheses in logical expressions.
+
+ Once the search has been performed, if the `-list' switch is given,
+ the message numbers of the selected messages are written to the
+ standard output separated by newlines. This is _\be_\bx_\bt_\br_\be_\bm_\be_\bl_\by useful
+ for quickly generating arguments for other _\bM_\bH programs by using the
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -67- PICK(1)
+
+
+ "backquoting" syntax of the shell. For example, the command
+
+ scan `pick +todo -after "31 Mar 83 0123 PST"`
+
+ says to _\bs_\bc_\ba_\bn those messages in the indicated folder which meet the
+ appropriate criterion. Note that since _\bp_\bi_\bc_\bk 's context changes are
+ written out prior to _\bs_\bc_\ba_\bn 's invocation, you need not give the
+ folder argument to _\bs_\bc_\ba_\bn as well.
+
+ Regardless of the operation of the `-list' switch, the `-sequence
+ name' switch may be given once for each sequence the user wishes to
+ define. For each sequence named, that sequence will be defined to
+ mean exactly those messages selected by _\bp_\bi_\bc_\bk. For example,
+
+ pick -from frated -seq fred
+
+ defines a new message sequence for the current folder called "fred"
+ which contains exactly those messages that were selected.
+
+ Note that whenever _\bp_\bi_\bc_\bk processes a `-sequence name' switch, it
+ sets `-nolist'.
+
+ By default, _\bp_\bi_\bc_\bk will zero the sequence before adding it. This
+ action can be disabled with the `-nozero' switch, which means that
+ the messages selected by _\bp_\bi_\bc_\bk will be added to the sequence, if it
+ already exists, and any messages already a part of that sequence
+ will remain so.
+
+ The `-public' and `-nopublic' switches are used by _\bp_\bi_\bc_\bk in the same
+ way _\bm_\ba_\br_\bk uses them.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mark(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to all
+ `-datefield date'
+ `-nopublic' if the folder is read-only, `-public' otherwise
+ `-zero'
+ `-list' is the default if no `-sequence', `-nolist' otherwise
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -68- PICK(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous versions of _\bM_\bH, the _\bp_\bi_\bc_\bk command would _\bs_\bh_\bo_\bw, _\bs_\bc_\ba_\bn, or
+ _\br_\be_\bf_\bi_\bl_\be the selected messages. This was rather "inverted logic"
+ from the UNIX point of view, so _\bp_\bi_\bc_\bk was changed to define se-
+ quences and output those sequences. Hence, _\bp_\bi_\bc_\bk can be used to
+ generate the arguments for all other _\bM_\bH commands, instead of giving
+ _\bp_\bi_\bc_\bk endless switches for invoking those commands itself.
+
+ Also, previous versions of _\bp_\bi_\bc_\bk balked if you didn't specify a
+ search string or a date/time constraint. The current version does
+ not, and merely matches the messages you specify. This lets you
+ type something like:
+
+ show `pick last:20 -seq fear`
+
+ instead of typing
+
+ mark -add -nozero -seq fear last:20
+ show fear
+
+ Finally, timezones used to be ignored when comparing dates: they
+ aren't any more.
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-after' and `-before' switches must be inter-
+ preted as a single token by the shell that invokes _\bp_\bi_\bc_\bk. There-
+ fore, one must usually place the argument to this switch inside
+ double-quotes. Furthermore, any occurance of `-datefield' must oc-
+ cur prior to the `-after' or `-before' switch it applies to.
+
+ If _\bp_\bi_\bc_\bk is used in a back-quoted operation, such as
+
+ scan `pick -from jones`
+
+ and _\bp_\bi_\bc_\bk fails (e.g., no messages are from "jones"), then the shell
+ will still run the outer command (e.g., "scan"). Since no messages
+ were matched, _\bp_\bi_\bc_\bk produced no output, and the argument given to
+ the outer command as a result of backquoting _\bp_\bi_\bc_\bk is empty. In the
+ case of _\bM_\bH programs, the outer command now acts as if the default
+ `msg' or `msgs' should be used (e.g., "all" in the case of _\bs_\bc_\ba_\bn ).
+ To prevent this unexpected behavior, if `-list' was given, and if
+ its standard output is not a tty, then _\bp_\bi_\bc_\bk outputs the illegal
+ message number "0" when it fails. This lets the outer command fail
+ gracefully as well.
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ PREV(1) -69- PREV(1)
+
+
+ _\bN_\bA_\bM_\bE
+ prev - show the previous message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ prev [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [-switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\br_\be_\bv performs a _\bs_\bh_\bo_\bw on the previous message in the specified (or
+ current) folder. Like _\bs_\bh_\bo_\bw, it passes any switches on to the pro-
+ gram named by _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc, which is called to list the message. This
+ command is almost exactly equivalent to "show prev". Consult the
+ manual entry for _\bs_\bh_\bo_\bw (1) for all the details.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ showproc: Program to show the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ show(1), next(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `-header'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is specified, it will become the current folder. The
+ message that is shown (i.e., the previous message in sequence) will
+ become the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ _\bp_\br_\be_\bv is really a link to the _\bs_\bh_\bo_\bw program. As a result, if you
+ make a link to _\bp_\br_\be_\bv and that link is not called _\bp_\br_\be_\bv, your link
+ will act like _\bs_\bh_\bo_\bw instead. To circumvent this, add a
+ profile-entry for the link to your _\bM_\bH profile and add the argument
+ _\bp_\br_\be_\bv to the entry.
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ PROMPTER(1) -70- PROMPTER(1)
+
+
+ _\bN_\bA_\bM_\bE
+ prompter - prompting editor front-end
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ prompter [-erase chr] [-kill chr] [-prepend] [-noprepend] [-rapid]
+ [-norapid] [-doteof] [-nodoteof] file [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ This program is normally not invoked directly by users but takes
+ the place of an editor and acts as an editor front-end. It
+ operates on an 822-style message draft skeleton specified by file,
+ normally provided by _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, or _\br_\be_\bp_\bl.
+
+ _\bP_\br_\bo_\bm_\bp_\bt_\be_\br is an editor which allows rapid composition of messages.
+ It is particularly useful to network and low-speed (less than 2400
+ baud) users of _\bM_\bH. It is an _\bM_\bH program in that it can have its own
+ profile entry with switches, but it is not invoked directly by the
+ user. The commands _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl invoke _\bp_\br_\bo_\bm_\bp_\bt_\be_\br as
+ an editor, either when invoked with `-editor prompter', or by the
+ profile entry "Editor: prompter", or when given the command
+ `edit prompter' at "What now?" level.
+
+ For each empty component _\bp_\br_\bo_\bm_\bp_\bt_\be_\br finds in the draft, the user is
+ prompted for a response; A <RETURN> will cause the whole component
+ to be left out. Otherwise, a `\' preceding a <RETURN> will con-
+ tinue the response on the next line, allowing for multiline com-
+ ponents. Continuation lines must begin with a space or tab.
+
+ Each non-empty component is copied to the draft and displayed on
+ the terminal.
+
+ The start of the message body is denoted by a blank line or a line
+ of dashes. If the body is non-empty, the prompt, which isn't writ-
+ ten to the file, is
+
+ "--------Enter additional text",
+
+ or (if `-prepend' was given)
+
+ "--------Enter initial text".
+
+ Message-body typing is terminated with an end-of-file (usually
+ CTRL-D). With the `-doteof' switch, a period on a line all by
+ itself also signifies end-of-file. At this point control is
+ returned to the calling program, where the user is asked "What
+ now?". See _\bw_\bh_\ba_\bt_\bn_\bo_\bw for the valid options to this query.
+
+ By using the `-prepend' switch, the user can add type-in to the
+ beginning of the message body and have the rest of the body follow.
+ This is useful for the _\bf_\bo_\br_\bw command.
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ PROMPTER(1) -71- PROMPTER(1)
+
+
+ By using the `-rapid' switch, if the draft already contains text in
+ the message-body, it is not displayed on the user's terminal. This
+ is useful for low-speed terminals.
+
+ The line editing characters for kill and erase may be specified by
+ the user via the arguments `-kill chr' and `-erase chr', where chr
+ may be a character; or `\nnn', where "nnn" is the octal value for
+ the character.
+
+ An interrupt (usually CTRL-C) during component typing will abort
+ _\bp_\br_\bo_\bm_\bp_\bt_\be_\br and the _\bM_\bH command that invoked it. An interrupt during
+ message-body typing is equivalent to CTRL-D, for historical rea-
+ sons. This means that _\bp_\br_\bo_\bm_\bp_\bt_\be_\br should finish up and exit.
+
+ The first non-flag argument to _\bp_\br_\bo_\bm_\bp_\bt_\be_\br is taken as the name of the
+ draft file, and subsequent non-flag arguments are ignored.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /tmp/prompter* Temporary copy of message
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ prompter-next: To name the editor to be used on exit from
+ _\bp_\br_\bo_\bm_\bp_\bt_\be_\br
+ Msg-Protect: To set mode when creating a new draft
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), dist(1), forw(1), repl(1), whatnow(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-prepend'
+ `-norapid'
+ `-nodoteof'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ The `-rapid' option is particularly useful with _\bf_\bo_\br_\bw, and
+ `-noprepend' is useful with _\bc_\bo_\bm_\bp -_\bu_\bs_\be.
+
+ The user may wish to link _\bp_\br_\bo_\bm_\bp_\bt_\be_\br under several names (e.g., "ra-
+ pid") and give appropriate switches in the profile entries under
+ these names (e.g., "rapid: -rapid"). This facilitates invoking
+ prompter differently for different _\bM_\bH commands (e.g., "forw: -edi-
+ tor rapid").
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ PROMPTER(1) -72- PROMPTER(1)
+
+
+ _\bB_\bu_\bg_\bs
+ _\bP_\br_\bo_\bm_\bp_\bt_\be_\br uses _\bs_\bt_\bd_\bi_\bo (3), so it will lose if you edit files with
+ nulls in them.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ RCVSTORE(1) -73- RCVSTORE(1)
+
+
+ _\bN_\bA_\bM_\bE
+ rcvstore - incorporate new mail asynchronously
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/rcvstore [+folder] [-create] [-nocreate]
+ [-sequence name ...] [-public] [-nopublic] [-zero] [-nozero]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bc_\bv_\bs_\bt_\bo_\br_\be incorporates a message from the standard input into an _\bM_\bH
+ folder. If `+folder' isn't specified, the folder named "inbox" in
+ the user's _\bM_\bH directory will be used instead. The new message
+ being incorporated is assigned the next highest number in the
+ folder. If the specified (or default) folder doesn't exist, then
+ it will be created if the `-create' option is specified, otherwise
+ _\br_\bc_\bv_\bs_\bt_\bo_\br_\be will exit.
+
+ If the user's profile contains a "Msg-Protect: nnn" entry, it will
+ be used as the protection on the newly created messages, otherwise
+ the _\bM_\bH default of 0644 will be used. During all operations on mes-
+ sages, this initially assigned protection will be preserved for
+ each message, so _\bc_\bh_\bm_\bo_\bd(1) may be used to set a protection on an
+ individual message, and its protection will be preserved
+ thereafter.
+
+ _\bR_\bc_\bv_\bs_\bt_\bo_\br_\be will incorporate anything except zero length messages into
+ the user's MH folder.
+
+ If the profile entry "Unseen-Sequence" is present and non-empty,
+ then _\br_\bc_\bv_\bs_\bt_\bo_\br_\be will add the newly incorporated message to each
+ sequence named by the profile entry. This is similar to the
+ "Previous-Sequence" profile entry supported by all _\bM_\bH commands
+ which take `msgs' or `msg' arguments. Note that _\br_\bc_\bv_\bs_\bt_\bo_\br_\be will not
+ zero each sequence prior to adding messages.
+
+ Furthermore, the incoming messages may be added to user-defined
+ sequences as they arrive by appropriate use of the `-sequence'
+ option. As with _\bp_\bi_\bc_\bk, use of the `-zero' and `-nozero' switches
+ can also be used to zero old sequences or not. Similarly, use of
+ the `-public' and `-nopublic switches may be used to force addi-
+ tions to public and private sequences.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ RCVSTORE(1) -74- RCVSTORE(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Folder-Protect: To set mode when creating a new folder
+ Msg-Protect: To set mode when creating a new message
+ Unseen-Sequence: To name sequences denoting unseen messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1), pick(1), mh-mail(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to "inbox"
+ `-create'
+ `-nopublic' if the folder is read-only, `-public' otherwise
+ `-nozero'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ No context changes will be attempted, with the exception of se-
+ quence manipulation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ REFILE(1) -75- REFILE(1)
+
+
+ _\bN_\bA_\bM_\bE
+ refile - file message in other folders
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ refile [msgs] [-draft] [-link] [-nolink] [-preserve] [-nopreserve]
+ [-src +folder] [-file file] [-rmmproc program] [-normmproc]
+ +folder ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\be_\bf_\bi_\bl_\be moves (_\bm_\bv (1)) or links (_\bl_\bn (1)) messages from a source
+ folder into one or more destination folders. If you think of a
+ message as a sheet of paper, this operation is not unlike filing
+ the sheet of paper (or copies) in file cabinet folders. When a
+ message is filed, it is linked into the destination folder(s) if
+ possible, and is copied otherwise. As long as the destination
+ folders are all on the same file system, multiple filing causes
+ little storage overhead. This facility provides a good way to
+ cross-file or multiply-index messages. For example, if a message
+ is received from Jones about the ARPA Map Project, the command
+
+ refile cur +jones +Map
+
+ would allow the message to be found in either of the two folders
+ `jones' or `Map'.
+
+ The option `-file file' directs _\br_\be_\bf_\bi_\bl_\be to use the specified file as
+ the source message to be filed, rather than a message from a
+ folder. Note that the file should be a validly formatted message,
+ just like any other _\bM_\bH message. It should NOT be in mail drop for-
+ mat (to convert a file in mail drop format to a folder of _\bM_\bH mes-
+ sages, see _\bi_\bn_\bc (1)).
+
+ If a destination folder doesn't exist, _\br_\be_\bf_\bi_\bl_\be will ask if you want
+ to create it. A negative response will abort the file operation.
+
+ The option `-link' preserves the source folder copy of the message
+ (i.e., it does a _\bl_\bn(1) rather than a _\bm_\bv(1)), whereas, `-nolink'
+ deletes the filed messages from the source folder. Normally, when
+ a message is filed, it is assigned the next highest number avail-
+ able in each of the destination folders. Use of the `-preserve'
+ switch will override this message renaming, but name conflicts may
+ occur, so use this switch cautiously.
+
+ If `-link' is not specified (or `-nolink' is specified), the filed
+ messages will be removed from the source folder, by renaming them
+ with a site-dependent prefix (usually a comma).
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ REFILE(1) -76- REFILE(1)
+
+
+ If the user has a profile component such as
+
+ rmmproc: /bin/rm
+
+ then _\br_\be_\bf_\bi_\bl_\be will instead call the named program to delete the mes-
+ sage files. The user may specify `-rmmproc program' on the command
+ line to override this profile specification. The `-normmproc'
+ option forces the message files to be deleted by renaming them as
+ described above.
+
+ The `-draft' switch tells _\br_\be_\bf_\bi_\bl_\be to file the <mh-dir>/draft.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Folder-Protect: To set mode when creating a new folder
+ rmmproc: Program to delete the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ folder(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-src +folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-nolink'
+ `-nopreserve'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If `-src +folder' is given, it will become the current folder. If
+ neither `-link' nor `all' is specified, the current message in the
+ source folder will be set to the last message specified; otherwise,
+ the current message won't be changed.
+
+ If the Previous-Sequence profile entry is set, in addition to de-
+ fining the named sequences from the source folder, _\br_\be_\bf_\bi_\bl_\be will also
+ define those sequences for the destination folders. See
+ _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be (1) for information concerning the previous sequence.
+
+
+ _\bB_\bu_\bg_\bs
+ Since _\br_\be_\bf_\bi_\bl_\be uses your _\br_\bm_\bm_\bp_\br_\bo_\bc to delete the message, the _\br_\bm_\bm_\bp_\br_\bo_\bc
+ must NOT call _\br_\be_\bf_\bi_\bl_\be without specifying `-normmproc', or you will
+ create an infinte loop.
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -77- REPL(1)
+
+
+ _\bN_\bA_\bM_\bE
+ repl - reply to a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ repl [+folder] [msg] [-annotate] [-noannotate] [-cc all/to/cc/me]
+ [-nocc all/to/cc/me] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-editor editor]
+ [-noedit] [-fcc +folder] [-filter filterfile] [-form formfile]
+ [-inplace] [-noinplace] [-query] [-noquery] [-width columns]
+ [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\be_\bp_\bl aids a user in producing a reply to an existing message. _\bR_\be_\bp_\bl
+ uses a reply template to guide its actions when constructing the
+ message draft of the reply. In its simplest form (with no argu-
+ ments), it will set up a message-form skeleton in reply to the
+ current message in the current folder, and invoke the whatnow
+ shell. The default reply template will direct _\br_\be_\bp_\bl to construct
+ the composed message as follows:
+
+ To: <Reply-To> or <From>
+ cc: <cc>, <To>, and yourself
+ Subject: Re: <Subject>
+ In-reply-to: Your message of <Date>.
+ <Message-Id>
+
+ where field names enclosed in angle brackets (< >) indicate the
+ contents of the named field from the message to which the reply is
+ being made. A reply template is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ The `-cc type' switch takes an argument which specifies who gets
+ placed on the "cc:" list of the reply. The `-query' switch modi-
+ fies the action of `-cc type' switch by interactively asking you if
+ each address that normally would be placed in the "To:" and "cc:"
+ list should actually be sent a copy. (This is useful for
+ special-purpose replies.) Note that the position of the `-cc' and
+ `-nocc' switches, like all other switches which take a positive and
+ negative form, is important.
+
+ Lines beginning with the fields "To:", "cc:", and "Bcc:" will be
+ standardized and have duplicate addresses removed. In addition,
+ the `-width columns' switch will guide _\br_\be_\bp_\bl's formatting of these
+ fields.
+
+ If the file named "replcomps" exists in the user's MH directory, it
+ will be used instead of the default form. In either case, the file
+ specified by `-form formfile' will be used if given.
+
+ If the draft already exists, _\br_\be_\bp_\bl will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\br_\be_\bp_\bl, leaving the
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -78- REPL(1)
+
+
+ draft intact; replace will replace the existing draft with a blank
+ skeleton; and list will display the draft.
+
+ See _\bc_\bo_\bm_\bp (1) for a description of the `-editor' and `-noedit'
+ switches. Note that while in the editor, the message being replied
+ to is available through a link named "@" (assuming the default
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc ). In addition, the actual pathname of the message is
+ stored in the envariable $editalt, and the pathname of the folder
+ containing the message is stored in the envariable $mhfolder.
+
+ Although _\br_\be_\bp_\bl uses the `-form formfile' switch to direct it how to
+ construct the beginning of the draft, the `-filter filterfile'
+ switch directs _\br_\be_\bp_\bl as to how the message being replied-to should
+ be formatted in the body of the draft. If `-filter' is not speci-
+ fied, then the message being replied-to is not included in the body
+ of the draft. If `-filter filterfile' is specified, then the mes-
+ sage being replied-to is filtered (re-formatted) prior to being
+ output to the body of the draft. The filter file for _\br_\be_\bp_\bl should
+ be a standard form file for _\bm_\bh_\bl, as _\br_\be_\bp_\bl will invoke _\bm_\bh_\bl to format
+ the message being replied-to. There is no default message filter
+ (`-filter' must be followed by a file name). A filter file that is
+ commonly used is:
+
+ :
+ body:nocomponent,compwidth=9,offset=9
+
+ which says to output a blank line and then the body of the message
+ being replied-to, indented by one tab-stop. Another format popular
+ on USENET is:
+
+ message-id:nocomponent,formatfield=\
+ "In message %{text}you write:"
+ body:component=">",overflowtext=">",overflowoffset=0
+
+ Which cites the Message-ID of the message being replied-to, and
+ then outputs each line of the body prefaced with the ">" character.
+
+ If the `-annotate' switch is given, the message being replied-to
+ will be annotated with the lines
+
+ Replied: date
+ Replied: addrs
+
+ where the address list contains one line for each addressee. The
+ annotation will be done only if the message is sent directly from
+ _\br_\be_\bp_\bl. If the message is not sent immediately from _\br_\be_\bp_\bl,
+ "comp -use" may be used to re-edit and send the constructed mes-
+ sage, but the annotations won't take place. The `-inplace' switch
+ causes annotation to be done in place in order to preserve links to
+ the annotated message.
+
+ The `-fcc +folder' switch can be used to automatically specify a
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -79- REPL(1)
+
+
+ folder to receive Fcc:s. More than one folder, each preceeded by
+ `-fcc' can be named.
+
+ In addition to the standard _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) escapes, _\br_\be_\bp_\bl also recog-
+ nizes the following additional _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escape:
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ _\bf_\bc_\bc string Any folders specified with `-fcc folder'
+
+ To avoid reiteration, _\br_\be_\bp_\bl strips any leading `Re: ' strings from
+ the _\bs_\bu_\bb_\bj_\be_\bc_\bt component.
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ Upon exiting from the editor, _\br_\be_\bp_\bl will invoke the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available options. The invoca-
+ tion of this program can be inhibited by using the `-nowhatnowproc'
+ switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program which starts
+ the initial edit. Hence, `-nowhatnowproc' will prevent any edit
+ from occurring.)
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/replcomps The reply template
+ or <mh-dir>/replcomps Rather than the standard template
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Alternate-Mailboxes: To determine the user's mailboxes
+ Current-Folder: To find the default current folder
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ Msg-Protect: To set mode when creating a new message
+ (draft)
+ fileproc: Program to refile the message
+ mhlproc: Program to filter message being replied-to
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), dist(1), forw(1), send(1), whatnow(1), mh-format(5)
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -80- REPL(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to cur
+ `-nocc all' at ATHENA sites, `-cc all' otherwise
+ `-noannotate'
+ `-nodraftfolder'
+ `-noinplace'
+ `-noquery'
+ `-width 72'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The mes-
+ sage replied-to will become the current message.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ Prior to using the format string mechanism, `-noformat' used to
+ cause address headers to be output as-is. Now all address fields
+ are formatted using Internet standard guidelines.
+
+
+ _\bB_\bu_\bg_\bs
+ If any addresses occur in the reply template, addresses in the tem-
+ plate that do not contain hosts are defaulted incorrectly. Instead
+ of using the localhost for the default, _\br_\be_\bp_\bl uses the sender's
+ host. Moral of the story: if you're going to include addresses in
+ a reply template, include the host portion of the address.
+
+ The `-width columns' switch is only used to do address-folding;
+ other headers are not line-wrapped.
+
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\br_\be_\bp_\bl uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\br_\be_\bp_\bl won't run
+ it.
+
+ If your current working directory is not writable, the link named
+ "@" is not available.
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ RMF(1) -81- RMF(1)
+
+
+ _\bN_\bA_\bM_\bE
+ rmf - remove folder
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ rmf [+folder] [-interactive] [-nointeractive] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bm_\bf removes all of the messages (files) within the specified (or
+ default) folder, and then removes the folder (directory) itself.
+ If there are any files within the folder which are not a part of
+ _\bM_\bH, they will _\bn_\bo_\bt be removed, and an error will be produced. If
+ the folder is given explicitly or the `-nointeractive' option is
+ given, then the folder will be removed without confirmation. Oth-
+ erwise, the user will be asked for confirmation. If _\br_\bm_\bf can't find
+ the current folder, for some reason, the folder to be removed
+ defaults to `+inbox' with confirmation.
+
+ _\bR_\bm_\bf irreversibly deletes messages that don't have other links, so
+ use it with caution.
+
+ If the folder being removed is a subfolder, the parent folder will
+ become the new current folder, and _\br_\bm_\bf will produce a message tel-
+ ling the user this has happened. This provides an easy mechanism
+ for selecting a set of messages, operating on the list, then remov-
+ ing the list and returning to the current folder from which the
+ list was extracted.
+
+ _\bR_\bm_\bf of a read-only folder will delete the private sequence and cur
+ information (i.e., "atr-_\bs_\be_\bq-_\bf_\bo_\bl_\bd_\be_\br" entries) from the profile
+ without affecting the folder itself.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rmm(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder, usually with confirmation
+ `-interactive' if +folder' not given, `-nointeractive' otherwise
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ RMF(1) -82- RMF(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ _\bR_\bm_\bf will set the current folder to the parent folder if a subfolder
+ is removed; or if the current folder is removed, it will make "in-
+ box" current. Otherwise, it doesn't change the current folder or
+ message.
+
+
+ _\bB_\bu_\bg_\bs
+ Although intuitively one would suspect that _\br_\bm_\bf works recursively,
+ it does not. Hence if you have a sub-folder within a folder, in
+ order to _\br_\bm_\bf the parent, you must first _\br_\bm_\bf each of the children.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ RMM(1) -83- RMM(1)
+
+
+ _\bN_\bA_\bM_\bE
+ rmm - remove messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ rmm [+folder] [msgs] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bm_\bm removes the specified messages by renaming the message files
+ with preceding commas. Many sites consider files that start with a
+ comma to be a temporary backup, and arrange for _\bc_\br_\bo_\bn (8) to remove
+ such files once a day.
+
+ If the user has a profile component such as
+
+ rmmproc: /bin/rm
+
+ then instead of simply renaming the message file, _\br_\bm_\bm will call the
+ named program to delete the file. Note that at most installations,
+ _\bc_\br_\bo_\bn (8) is told to remove files that begin with a comma once a
+ night.
+
+ Some users of csh prefer the following:
+
+ alias rmm 'refile +d'
+
+ where folder +d is a folder for deleted messages, and
+
+ alias mexp 'rm `mhpath +d all`'
+
+ is used to "expunge" deleted messages.
+
+ The current message is not changed by _\br_\bm_\bm, so a _\bn_\be_\bx_\bt will advance
+ to the next message in the folder as expected.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ rmmproc: Program to delete the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rmf(1)
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ RMM(1) -84- RMM(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ If you're not a csh user, and you have an _\br_\bm_\bm_\bp_\br_\bo_\bc script which
+ _\br_\be_\bf_\bi_\bl_\bes messages, be sure you use something like:
+
+ mv `mhpath msgs` `mhpath new +folder`
+
+ Other work-arounds are possible, such as:
+
+ cd `mhpath +`
+ MH=/dev/null MHCONTEXT=/dev/null refile $* +folder
+
+
+ _\bB_\bu_\bg_\bs
+ Since _\br_\be_\bf_\bi_\bl_\be uses your _\br_\bm_\bm_\bp_\br_\bo_\bc to delete the message, the _\br_\bm_\bm_\bp_\br_\bo_\bc
+ must NOT call _\br_\be_\bf_\bi_\bl_\be without specifying `-normmproc', or you will
+ create an infinte loop.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SCAN(1) -85- SCAN(1)
+
+
+ _\bN_\bA_\bM_\bE
+ scan - produce a one line per message scan listing
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ scan [+folder] [msgs] [-clear] [-noclear] [-form formatfile]
+ [-format string] [-header] [-noheader] [-width columns]
+ [-reverse] [-noreverse] [-file filename] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bc_\ba_\bn produces a one-line-per-message listing of the specified mes-
+ sages. Each _\bs_\bc_\ba_\bn line contains the message number (name), the
+ date, the "From:" field, the "Subject" field, and, if room allows,
+ some of the body of the message. For example:
+
+ 15+ 7/ 5 Dcrocker nned <<Last week I asked some of
+ 16 - 7/ 5 dcrocker message id format <<I recommend
+ 18 7/ 6 Obrien Re: Exit status from mkdir
+ 19 7/ 7 Obrien "scan" listing format in MH
+
+ The `+' on message 15 indicates that it is the current message.
+ The `-' on message 16 indicates that it has been replied to, as
+ indicated by a "Replied:" component produced by an `-annotate'
+ switch to the _\br_\be_\bp_\bl command.
+
+ If there is sufficient room left on the _\bs_\bc_\ba_\bn line after the sub-
+ ject, the line will be filled with text from the body, preceded by
+ <<, and terminated by >> if the body is sufficiently short. _\bS_\bc_\ba_\bn
+ actually reads each of the specified messages and parses them to
+ extract the desired fields. During parsing, appropriate error mes-
+ sages will be produced if there are format errors in any of the
+ messages.
+
+ The `-header' switch produces a header line prior to the _\bs_\bc_\ba_\bn list-
+ ing. Currently, the name of the folder and the current date and
+ time are output (see the HISTORY section for more information).
+
+ If the `-clear' switch is used and _\bs_\bc_\ba_\bn'_\bs output is directed to a
+ terminal, then _\bs_\bc_\ba_\bn will consult the $TERM and $TERMCAP envariables
+ to determine your terminal type in order to find out how to clear
+ the screen prior to exiting. If the `-clear' switch is used and
+ _\bs_\bc_\ba_\bn'_\bs output is not directed to a terminal (e.g., a pipe or a
+ file), then _\bs_\bc_\ba_\bn will send a formfeed prior to exiting.
+
+ For example, the command:
+
+ (scan -clear -header; show all -show pr -f) | lpr
+
+ produces a scan listing of the current folder, followed by a
+ formfeed, followed by a formatted listing of all messages in the
+ folder, one per page. Omitting `-show pr -f' will cause the mes-
+ sages to be concatenated, separated by a one-line header and two
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SCAN(1) -86- SCAN(1)
+
+
+ blank lines.
+
+ If _\bs_\bc_\ba_\bn encounters a message without a "Date:" field, rather than
+ leaving that portion of the scan listing blank, the date is
+ filled-in with the last write date of the message, and post-fixed
+ with a `*'. This is particularly handy for scanning a _\bd_\br_\ba_\bf_\bt
+ _\bf_\bo_\bl_\bd_\be_\br, as message drafts usually aren't allowed to have dates in
+ them.
+
+ To override the output format used by _\bs_\bc_\ba_\bn, the `-format string' or
+ `-format file' switches are used. This permits individual fields
+ of the scan listing to be extracted with ease. The string is sim-
+ ply a format string and the file is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ In addition to the standard _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) escapes, _\bs_\bc_\ba_\bn also recog-
+ nizes the following additional _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escape:
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ body string the (compressed) first part of the body
+
+ Also, if no date header was present in the message, the _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
+ escapes which operate on {_\bd_\ba_\bt_\be} will return values for the date of
+ last modification of the message file itself.
+
+
+ _\bs_\bc_\ba_\bn will update the _\bM_\bH context prior to starting the listing, so
+ interrupting a long _\bs_\bc_\ba_\bn listing preserves the new context. _\bM_\bH
+ purists hate this idea.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Alternate-Mailboxes: To determine the user's mailboxes
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1), pick(1), show(1), mh-format(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the folder current
+ `msgs' defaults to all
+ `-format' defaulted as described above
+ `-noheader'
+ `-width' defaulted to the width of the terminal
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SCAN(1) -87- SCAN(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ Prior to using the format string mechanism, `-header' used to gen-
+ erate a heading saying what each column in the listing was. Format
+ strings prevent this from happening.
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bs_\bc_\ba_\bn. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+ The value of each _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escape is set by _\bs_\bc_\ba_\bn to the contents
+ of the first message header _\bs_\bc_\ba_\bn encounters with the corresponding
+ component name; any following headers with the same component name
+ are ignored.
+
+ The switch `-reverse', makes _\bs_\bc_\ba_\bn list the messages in reverse ord-
+ er; this should be considered a bug.
+
+ The `-file filename' switch allows the user to obtain a _\bs_\bc_\ba_\bn list-
+ ing of a maildrop file as produced by _\bp_\ba_\bc_\bk_\bf. This listing includes
+ every message in the file. The user should use _\bm_\bs_\bh for more selec-
+ tive processing of the file. `-reverse' is ignored with this op-
+ tion.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SEND(1) -88- SEND(1)
+
+
+ _\bN_\bA_\bM_\bE
+ send - send a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ send [-alias aliasfile] [-draft] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-forward] [-noforward]
+ [-msgid] [-nomsgid] [-push] [-nopush] [-verbose] [-noverbose]
+ [-watch] [-nowatch] [-width columns] [file ...] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\be_\bn_\bd will cause each of the specified files to be delivered (via
+ _\bp_\bo_\bs_\bt (8)) to each of the destinations in the "To:", "cc:", "Bcc:",
+ and "Fcc:" fields of the message. If _\bs_\be_\bn_\bd is re-distributing a
+ message, as invoked from _\bd_\bi_\bs_\bt, then the corresponding "Resent-xxx"
+ fields are examined instead.
+
+ If `-push' is specified, _\bs_\be_\bn_\bd will detach itself from the user's
+ terminal and perform its actions in the background. If _\bp_\bu_\bs_\bh 'd and
+ the draft can't be sent, then the `-forward' switch says that draft
+ should be forwarded with the failure notice sent to the user. This
+ differs from putting _\bs_\be_\bn_\bd in the background because the output is
+ trapped and analyzed by _\bM_\bH.
+
+ If `-verbose' is specified, _\bs_\be_\bn_\bd will indicate the interactions
+ occurring with the transport system, prior to actual delivery. If
+ `-watch' is specified _\bs_\be_\bn_\bd will monitor the delivery of local and
+ network mail. Hence, by specifying both switches, a large detail
+ of information can be gathered about each step of the message's
+ entry into the transport system.
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ _\bS_\be_\bn_\bd with no _\bf_\bi_\bl_\be argument will query whether the draft is the
+ intended file, whereas `-draft' will suppress this question. Once
+ the transport system has successfully accepted custody of the mes-
+ sage, the file will be renamed with a leading comma, which allows
+ it to be retrieved until the next draft message is sent. If there
+ are errors in the formatting of the message, _\bs_\be_\bn_\bd will abort with a
+ (hopefully) helpful error message.
+
+ If a "Bcc:" field is encountered, its addresses will be used for
+ delivery, and the "Bcc:" field will be removed from the message
+ sent to sighted recipients. The blind recipients will receive an
+ entirely new message with a minimal set of headers. Included in
+ the body of the message will be a copy of the message sent to the
+ sighted recipients. If `-filter filterfile' is specified, then
+ this copy is filtered (re-formatted) prior to being sent to the
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SEND(1) -89- SEND(1)
+
+
+ blind recipients.
+
+ Prior to sending the message, the fields "From: user@local", and
+ "Date: now" will be appended to the headers in the message. If the
+ envariable $SIGNATURE is set, then its value is used as your per-
+ sonal name when constructing the "From:" line of the message. If
+ this envariable is not set, then _\bs_\be_\bn_\bd will consult the profile
+ entry "Signature" for this information. On hosts where _\bM_\bH was con-
+ figured with the UCI option, if $SIGNATURE is not set and the "Sig-
+ nature" profile entry is not present, then the file
+ $HOME/.signature is consulted. If `-msgid' is specified, then a
+ "Message-ID:" field will also be added to the message.
+
+ If _\bs_\be_\bn_\bd is re-distributing a message (when invoked by _\bd_\bi_\bs_\bt ), then
+ "Resent-" will be prepended to each of these fields: "From:",
+ "Date:", and "Message-ID:". If the message already contains a
+ "From:" field, then a "Sender: user@local" field will be added as
+ well. (An already existing "Sender:" field is an error!)
+
+ By using the `-format' switch, each of the entries in the "To:" and
+ "cc:" fields will be replaced with "standard" format entries. This
+ standard format is designed to be usable by all of the message
+ handlers on the various systems around the Internet. If `-nofor-
+ mat' is given, then headers are output exactly as they appear in
+ the message draft.
+
+ If an "Fcc: folder" is encountered, the message will be copied to
+ the specified folder for the sender in the format in which it will
+ appear to any non-Bcc receivers of the message. That is, it will
+ have the appended fields and field reformatting. The "Fcc:" fields
+ will be removed from all outgoing copies of the message.
+
+ By using the `-width columns' switch, the user can direct _\bs_\be_\bn_\bd as
+ to how long it should make header lines containing addresses.
+
+ The file specified by the profile entry "Aliasfile:" and any addi-
+ tional alias files given by the `-alias aliasfile' switch will be
+ read (more than one file, each preceeded by `-alias', can be
+ named). See _\bm_\bh-_\ba_\bl_\bi_\ba_\bs (5) for more information.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Aliasfile: For a default alias file
+ Signature: To determine the user's mail signature
+ mailproc: Program to post failure notices
+ postproc: Program to post the message
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SEND(1) -90- SEND(1)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), dist(1), forw(1), repl(1), mh-alias(5), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `file' defaults to <mh-dir>/draft
+ `-alias /usr/local/lib/mh/MailAliases'
+ `-nodraftfolder'
+ `-nofilter'
+ `-format'
+ `-forward'
+ `-nomsgid'
+ `-nopush'
+ `-noverbose'
+ `-nowatch'
+ `-width 72'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SHOW(1) -91- SHOW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ show - show (list) messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ show [+folder] [msgs] [-draft] [-header] [-noheader]
+ [-showproc program] [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bh_\bo_\bw lists each of the specified messages to the standard output
+ (typically, the terminal). Typically, the messages are listed
+ exactly as they are, with no reformatting. A program named by the
+ _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc profile component is invoked to do the listing, and any
+ switches not recognized by _\bs_\bh_\bo_\bw are passed along to that program.
+ The default program is known as _\bm_\bo_\br_\be (1). To override the default
+ and the _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc profile component, use the `-showproc program'
+ switch. For example, `-show pr' will cause the _\bp_\br (1) program to
+ list the messages. The _\bM_\bH command _\bm_\bh_\bl can be used as a _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc to
+ show messages in a more uniform format. Normally, this program is
+ specified as the _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc is the user's .mh_profile. See _\bm_\bh_\bl (1)
+ for the details. If the `-noshowproc' option is specified,
+ `/bin/cat' is used instead of _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc.
+
+ The `-header' switch tells _\bs_\bh_\bo_\bw to display a one-line description
+ of the message being shown. This description includes the folder
+ and the message number.
+
+ If no `msgs' are specified, the current message is used. If more
+ than one message is specified, _\bm_\bo_\br_\be will prompt for a <RETURN>
+ prior to listing each message. _\bm_\bo_\br_\be will list each message, a page
+ at a time. When the end of page is reached, _\bm_\bo_\br_\be will ring the
+ bell and wait for a <SPACE> or <RETURN>. If a <RETURN> is entered,
+ _\bm_\bo_\br_\be will print the next line, whereas <SPACE> will print the next
+ screenful. To exit _\bm_\bo_\br_\be, type "q".
+
+ If the standard output is not a terminal, no queries are made, and
+ each file is listed with a one-line header and two lines of separa-
+ tion.
+
+ "show -draft" will list the file <mh-dir>/draft if it exists.
+
+ If the profile entry "Unseen-Sequence" is present and non-empty,
+ then _\bs_\bh_\bo_\bw will remove each of the messages shown from each sequence
+ named by the profile entry. This is similar to the
+ "Previous-Sequence" profile entry supported by all _\bM_\bH commands
+ which take `msgs' or `msg' arguments.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SHOW(1) -92- SHOW(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Unseen-Sequence: To name sequences denoting unseen messages
+ showproc: Program to show messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mhl(1), more(1), next(1), pick(1), prev(1), scan(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-header'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The last
+ message shown will become the current message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SHOW(1) -93- SHOW(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The `-header' switch doesn't work when `msgs' expands to more than
+ one message. If the _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc is _\bm_\bh_\bl, then is problem can be cir-
+ cumvented by referencing the "messagename" field in the _\bm_\bh_\bl format
+ file.
+
+ _\bS_\bh_\bo_\bw updates the user's context before showing the message. Hence
+ _\bs_\bh_\bo_\bw will mark messages as seen prior to the user actually seeing
+ them. This is generally not a problem, unless the user relies on
+ the "unseen" messages mechanism, and interrupts _\bs_\bh_\bo_\bw while it is
+ showing "unseen" messages.
+
+ If _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc is _\bm_\bh_\bl, then _\bs_\bh_\bo_\bw uses a built-in _\bm_\bh_\bl: it does not ac-
+ tually run the _\bm_\bh_\bl program. Hence, if you define your own
+ _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bm_\bh_\bl since _\bs_\bh_\bo_\bw won't run it.
+
+ If _\bm_\bo_\br_\be (1) is your showproc (the default), then avoid running _\bs_\bh_\bo_\bw
+ in the background with only its standard output piped to another
+ process, as in
+
+ show | imprint &
+
+ Due to a bug in _\bm_\bo_\br_\be, show will go into a "tty input" state. To
+ avoid this problem, re-direct _\bs_\bh_\bo_\bw's diagnostic output as well.
+ For users of _\bc_\bs_\bh:
+
+ show |& imprint &
+
+ For users of _\bs_\bh:
+
+ show 2>&1 | imprint &
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SORTM(1) -94- SORTM(1)
+
+
+ _\bN_\bA_\bM_\bE
+ sortm - sort messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ sortm [+folder] [msgs] [-datefield field] [-textfield field]
+ [-notextfield] [-limit days] [-nolimit] [-verbose]
+ [-noverbose] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bo_\br_\bt_\bm sorts the specified messages in the named folder according to
+ the chronological order of the "Date:" field of each message.
+
+ The `-verbose' switch directs _\bs_\bo_\br_\bt_\bm to tell the user the general
+ actions that it is taking to place the folder in sorted order.
+
+ The `-datefield field' switch tells _\bs_\bo_\br_\bt_\bm the name of the field to
+ use when making the date comparison. If the user has a special
+ field in each message, such as "BB-Posted:" or "Delivery-Date:",
+ then the `-datefield' switch can be used to direct _\bs_\bo_\br_\bt_\bm which
+ field to examine.
+
+ The `-textfield field' switch causes _\bs_\bo_\br_\bt_\bm to sort messages by the
+ specified text field. If this field is "subject", any leading
+ "re:" is stripped off. In any case, all characters except letters
+ and numbers are stripped and the resulting strings are sorted
+ datefield-major, textfield-minor, using a case insensitive com-
+ parison.
+
+ With `-textfield field', if `-limit days' is specified, messages
+ with similar textfields that are dated within `days' of each other
+ appear together. Specifying `-nolimit' makes the limit infinity.
+ With `-limit 0', the sort is instead made textfield-major,
+ date-minor.
+
+ For example, to order a folder by date-major, subject-minor, use:
+
+ sortm -textfield subject +folder
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ folder (1)
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ SORTM(1) -95- SORTM(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to all
+ `-datefield date'
+ `-notextfield'
+ `-noverbose'
+ `-nolimit'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. If the
+ current message is moved, _\bs_\bo_\br_\bt_\bm will preserve its status as
+ current.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ Timezones used to be ignored when comparing dates: they aren't any
+ more.
+
+ Messages which were in the folder, but not specified by `msgs',
+ used to be moved to the end of the folder; now such messages are
+ left untouched.
+
+ Previously, _\bs_\bo_\br_\bt_\bm would try to fill any gaps in a folder within the
+ range of messages it sorted. To improve performance, _\bs_\bo_\br_\bt_\bm now
+ minimizes the number of message moves. To pack a folder, use
+ "_\bf_\bo_\bl_\bd_\be_\br -_\bp_\ba_\bc_\bk" instead.
+
+
+ _\bB_\bu_\bg_\bs
+ If _\bs_\bo_\br_\bt_\bm encounters a message without a date-field, or if the mes-
+ sage has a date-field that _\bs_\bo_\br_\bt_\bm cannot parse, then _\bs_\bo_\br_\bt_\bm attempts
+ to keep the message in the same relative position. This does not
+ always work. For instance, if the first message encountered lacks
+ a date which can be parsed, then it will usually be placed at the
+ end of the messages being sorted.
+
+ When _\bs_\bo_\br_\bt_\bm complains about a message which it can't temporally ord-
+ er, it complains about the message number _\bp_\br_\bi_\bo_\br to sorting. It
+ should indicate what the message number will be _\ba_\bf_\bt_\be_\br sorting.
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ VMH(1) -96- VMH(1)
+
+
+ _\bN_\bA_\bM_\bE
+ vmh - visual front-end to MH
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ vmh [-prompt string] [-vmhproc program] [-novmhproc]
+ [switches for _\bv_\bm_\bh_\bp_\br_\bo_\bc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bv_\bm_\bh is a program which implements the server side of the _\bM_\bH window
+ management protocol and uses _\bc_\bu_\br_\bs_\be_\bs (3) routines to maintain a
+ split-screen interface to any program which implements the client
+ side of the protocol. This latter program, called the _\bv_\bm_\bh_\bp_\br_\bo_\bc, is
+ specified using the `-vmhproc program' switch.
+
+ The upshot of all this is that one can run _\bm_\bs_\bh on a display termi-
+ nal and get a nice visual interface. To do this, for example, just
+ add the line
+
+ mshproc: vmh
+
+ to your .mh_profile. (This takes advantage of the fact that _\bm_\bs_\bh is
+ the default _\bv_\bm_\bh_\bp_\br_\bo_\bc for _\bv_\bm_\bh.)
+
+ In order to facilitate things, if the `-novmhproc' switch is given,
+ and _\bv_\bm_\bh can't run on the user's terminal, the _\bv_\bm_\bh_\bp_\br_\bo_\bc is run
+ directly without the window management protocol.
+
+ After initializing the protocol, _\bv_\bm_\bh prompts the user for a command
+ to be given to the client. Usually, this results in output being
+ sent to one or more windows. If a output to a window would cause
+ it to scroll, _\bv_\bm_\bh prompts the user for instructions, roughly per-
+ mitting the capabilities of _\bl_\be_\bs_\bs or _\bm_\bo_\br_\be (e.g., the ability to
+ scroll backwards and forwards):
+
+ SPACE advance to the next windowful
+ RETURN * advance to the next line
+ y * retreat to the previous line
+ d * advance to the next ten lines
+ u * retreat to the previous ten lines
+ g * go to an arbitrary line
+ (preceed g with the line number)
+ G * go to the end of the window
+ (if a line number is given, this acts like `g')
+ CTRL-L refresh the entire screen
+ h print a help message
+ q abort the window
+
+ (A `*' indicates that a numeric prefix is meaningful for this com-
+ mand.)
+
+ Note that if a command resulted in more than one window's worth of
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ VMH(1) -97- VMH(1)
+
+
+ information being displayed, and you allow the command which is
+ generating information for the window to gracefully finish (i.e.,
+ you don't use the `q' command to abort information being sent to
+ the window), then _\bv_\bm_\bh will give you one last change to peruse the
+ window. This is useful for scrolling back and forth. Just type
+ `q' when you're done.
+
+ To abnormally terminate _\bv_\bm_\bh (without core dump), use <QUIT> (usu-
+ ally CTRL-\). For instance, this does the "right" thing with _\bb_\bb_\bc
+ and _\bm_\bs_\bh.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ msh(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-prompt (vmh) '
+ `-vmhproc msh'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-prompt' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bv_\bm_\bh. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+
+ At present, there is no way to pass signals (e.g., interrupt, quit)
+ to the client. However, generating QUIT when _\bv_\bm_\bh is reading a com-
+ mand from the terminal is sufficient to tell the client to go away
+ quickly.
+
+ Acts strangely (loses peer or botches window management protocol
+ with peer) on random occasions.
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ WHATNOW(1) -98- WHATNOW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ whatnow - prompting front-end for send
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ whatnow [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-prompt string] [file] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bW_\bh_\ba_\bt_\bn_\bo_\bw is the default program that queries the user about the
+ disposition of a composed draft. It is normally invoked by one of
+ _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, or _\br_\be_\bp_\bl after the initial edit.
+
+ When started, the editor is started on the draft (unless `-noedit'
+ is given, in which case the initial edit is suppressed). Then,
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw repetitively prompts the user with "What now?" and awaits a
+ response. The valid responses are:
+
+ display to list the message being distributed/replied-to on
+ the terminal
+ edit to re-edit using the same editor that was used on the
+ preceding round unless a profile entry
+ "<lasteditor>-next: <editor>" names an alternate editor
+ edit <editor> to invoke <editor> for further editing
+ list to list the draft on the terminal
+ push to send the message in the background
+ quit to terminate the session and preserve the draft
+ quit -delete to terminate, then delete the draft
+ refile +folder to refile the draft into the given folder
+ send to send the message
+ send -watch to cause the delivery process to be monitored
+ whom to list the addresses that the message will go to
+ whom -check to list the addresses and verify that they are
+ acceptable to the transport service
+
+ For the edit response, any valid switch to the editor is valid.
+ Similarly, for the send and whom responses, any valid switch to
+ _\bs_\be_\bn_\bd (1) and _\bw_\bh_\bo_\bm (1) commands, respectively, are valid. For the
+ push response, any valid switch to _\bs_\be_\bn_\bd (1) is valid (as this
+ merely invokes _\bs_\be_\bn_\bd with the `-push' option). For the _\br_\be_\bf_\bi_\bl_\be
+ response, any valid switch to the _\bf_\bi_\bl_\be_\bp_\br_\bo_\bc is valid. For the
+ display and list responses, any valid argument to the _\bl_\bp_\br_\bo_\bc is
+ valid. If any non-switch arguments are present, then the pathname
+ of the draft will be excluded from the argument list given to the
+ _\bl_\bp_\br_\bo_\bc (this is useful for listing another _\bM_\bH message).
+
+ See _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be (5) for further information about how editors are
+ used by MH. It also discusses how complex envariables can be used
+ to direct _\bw_\bh_\ba_\bt_\bn_\bo_\bw's actions.
+
+ The `-prompt string' switch sets the prompting string for _\bw_\bh_\ba_\bt_\bn_\bo_\bw.
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ WHATNOW(1) -99- WHATNOW(1)
+
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ <lasteditor>-next: To name an editor to be used after exit from
+ <lasteditor>
+ fileproc: Program to refile the message
+ lproc: Program to list the contents of a message
+ sendproc: Program to use to send the message
+ whomproc: Program to determine who a message would go to
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ send(1), whom(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-prompt "What Now? "'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-prompt' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bw_\bh_\ba_\bt_\bn_\bo_\bw. Therefore, one must
+ usually place the argument to this switch inside double-quotes.
+
+ If the initial edit fails, _\bw_\bh_\ba_\bt_\bn_\bo_\bw deletes your draft (by renaming
+ it with a leading comma); failure of a later edit preverves the
+ draft.
+
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl use a
+ built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, and do not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ Hence, if you define your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw
+ since it won't be run.
+
+ If _\bs_\be_\bn_\bd_\bp_\br_\bo_\bc is _\bs_\be_\bn_\bd, then _\bw_\bh_\ba_\bt_\bn_\bo_\bw uses a built-in _\bs_\be_\bn_\bd, it does not
+ actually run the _\bs_\be_\bn_\bd program. Hence, if you define your own
+ _\bs_\be_\bn_\bd_\bp_\br_\bo_\bc, don't call it _\bs_\be_\bn_\bd since _\bw_\bh_\ba_\bt_\bn_\bo_\bw won't run it.
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ WHATNOW(1) -100- WHATNOW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ whom - report to whom a message would go
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ whom [-alias aliasfile] [-check] [-nocheck] [-draft]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [file] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bW_\bh_\bo_\bm is used to expand the headers of a message into a set of
+ addresses and optionally verify that those addresses are deliver-
+ able at that time (if `-check' is given).
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ The file specified by the profile entry "Aliasfile:" and any addi-
+ tional alias files given by the `-alias aliasfile' switch will be
+ read (more than one file, each preceeded by `-alias', can be
+ named). See _\bm_\bh-_\ba_\bl_\bi_\ba_\bs (5) for more information.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Aliasfile: For a default alias file
+ postproc: Program to post the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-alias(5), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `file' defaults to <mh-dir>/draft
+ `-nocheck'
+ `-alias /usr/local/lib/mh/MailAliases'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ WHOM(1) -101- WHOM(1)
+
+
+ _\bB_\bu_\bg_\bs
+ With the `-check' option, _\bw_\bh_\bo_\bm makes no guarantees that the ad-
+ dresses listed as being ok are really deliverable, rather, an ad-
+ dress being listed as ok means that at the time that _\bw_\bh_\bo_\bm was run
+ the address was thought to be deliverable by the transport service.
+ For local addresses, this is absolute; for network addresses, it
+ means that the host is known; for uucp addresses, it (often) means
+ that the _\bU_\bU_\bC_\bP network is available for use.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ -102-
+
+
+ _\bM_\bO_\bR_\bE _\bD_\bE_\bT_\bA_\bI_\bL_\bS
+
+ This section describes some of the more intense points of the _\bM_\bH
+ system, by expanding on topics previously discussed. The format
+ presented conforms to the standard form for the description of UNIX
+ documentation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -103- MH-ALIAS(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-alias - alias file for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ any _\bM_\bH command
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ This describes both _\bM_\bH personal alias files and the (primary) alias
+ file for mail delivery, the file
+
+ /usr/local/lib/mh/MailAliases
+
+ It does not describe aliases files used by the message transport
+ system. Each line of the alias file has the format:
+
+ alias : address-group
+ or
+ alias ; address-group
+ or
+ < alias-file
+ or
+ ; comment
+
+ where:
+
+ address-group := address-list
+ | "<" file
+ | "=" UNIX-group
+ | "+" UNIX-group
+ | "*"
+
+ address-list := address
+ | address-list, address
+
+ Continuation lines in alias files end with `\' followed by the new-
+ line character.
+
+ Alias-file and file are UNIX file names. UNIX-group is a group
+ name (or number) from /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp. An address is a "simple"
+ Internet-style address. Througout this file, case is ignored,
+ except for alias-file names.
+
+ If the line starts with a `<', then the file named after the `<' is
+ read for more alias definitions. The reading is done recursively,
+ so a `<' may occur in the beginning of an alias file with the
+ expected results.
+
+ If the address-group starts with a `<', then the file named after
+ the `<' is read and its contents are added to the address-list for
+ the alias.
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -104- MH-ALIAS(5)
+
+
+ If the address-group starts with an `=', then the file /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp
+ is consulted for the UNIX-group named after the `='. Each login
+ name occurring as a member of the group is added to the
+ address-list for the alias.
+
+ In contrast, if the address-group starts with a `+', then the file
+ /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp is consulted to determine the group-id of the UNIX-group
+ named after the `+'. Each login name occurring in the /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd
+ file whose group-id is indicated by this group is added to the
+ address-list for the alias.
+
+ If the address-group is simply `*', then the file /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd is
+ consulted and all login names with a userid greater than some magic
+ number (usually 200) are added to the address-list for the alias.
+
+ In match, a trailing * on an alias will match just about anything
+ appropriate. (See example below.)
+
+ An approximation of the way aliases are resolved at posting time is
+ (it's not really done this way):
+
+ 1) Build a list of all addresses from the message to be
+ delivered, eliminating duplicate addresses.
+
+ 2) If this draft originated on the local host, then for those
+ addresses in the message that have no host specified, perform
+ alias resolution.
+
+ 3) For each line in the alias file, compare "alias" against
+ all of the existing addresses. If a match, remove the matched
+ "alias" from the address list, and add each new address in the
+ address-group to the address list if it is not already on the
+ list. The alias itself is not usually output, rather the
+ address-group that the alias maps to is output instead. If
+ "alias" is terminated with a `;' instead of a `:', then both
+ the "alias" and the address are output in the correct format.
+ (This makes replies possible since _\bM_\bH aliases and personal
+ aliases are unknown to the mail transport system.)
+
+ Since the alias file is read line by line, forward references work,
+ but backward references are not recognized, thus, there is no
+ recursion.
+
+ Example:
+ </usr/local/lib/mh/BBoardAliases
+ sgroup: fred, fear, freida
+ fred: frated@UCI
+ UNIX-committee: <unix.aliases
+ staff: =staff
+ wheels: +wheel
+ everyone: *
+ news.*: news
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -105- MH-ALIAS(5)
+
+
+ The first line says that more aliases should immediately be read
+ from the file /_\bu_\bs_\br/_\bl_\bo_\bc_\ba_\bl/_\bl_\bi_\bb/_\bm_\bh/_\bB_\bB_\bo_\ba_\br_\bd_\bA_\bl_\bi_\ba_\bs_\be_\bs. Following this,
+ "fred" is defined as an alias for "frated@UCI", and "sgroup" is
+ defined as an alias for the three names "frated@UCI", "fear", and
+ "freida". Next, the definition of "UNIX-committee" is given by
+ reading the file _\bu_\bn_\bi_\bx._\ba_\bl_\bi_\ba_\bs_\be_\bs in the users _\bM_\bH directory, "staff" is
+ defined as all users who are listed as members of the group "staff"
+ in the /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp file, and "wheels" is defined as all users whose
+ group-id in /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd is equivalent to the "wheel" group.
+ Finally, "everyone" is defined as all users with a user-id in
+ /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd greater than 200, and all aliases of the form
+ "news.<anything>" are defined to be "news".
+
+ The key thing to understand about aliasing in _\bM_\bH is that aliases in
+ _\bM_\bH alias files are expanded into the headers of messages posted.
+ This aliasing occurs first, at posting time, without the knowledge
+ of the message transport system. In contrast, once the message
+ transport system is given a message to deliver to a list of
+ addresses, for each address that appears to be local, a system-wide
+ alias file is consulted. These aliases are NOT expanded into the
+ headers of messages delivered.
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ To use aliasing in _\bM_\bH quickly, do the following:
+
+ First, in your ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be, choose a name for your primary
+ alias file, say "aliases", and add the line:
+
+ Aliasfile: aliases
+
+ Second, create the file "aliases" in your _\bM_\bH directory.
+
+ Third, start adding aliases to your "aliases" file as
+ appropriate.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/MailAliases Primary alias file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Aliasfile: For a default alias file
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -106- MH-ALIAS(5)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous releases of _\bM_\bH, only a single, system-wide mh-alias
+ file was supported. Now that _\bM_\bH uses _\bM_\bM_\bD_\bF as a transport system,
+ the system-wide aliasing facility can be more consistently con-
+ trolled by the latter. This means that at most sites, the
+ system-wide mh-alias file will be empty (or trivial at best).
+ Hence, the semantics of mh-alias were extended to support personal
+ alias files. Users of _\bM_\bH no longer need to bother mail-system ad-
+ ministrators for keeping information in the system-wide alias file,
+ as each _\bM_\bH user can create/modify/remove aliases at will from any
+ number of personal files.
+
+
+ _\bB_\bu_\bg_\bs
+ Although the forward-referencing semantics of _\bm_\bh-_\ba_\bl_\bi_\ba_\bs files
+ prevent recursion, the "< alias-file" command may defeat this.
+ Since the number of file descriptors is finite (and very limited),
+ such infinite recursion will terminate with a meaningless diagnos-
+ tic when all the fds are used up.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -107- MH-FORMAT(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-format - format file for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ some _\bM_\bH commands
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Several _\bM_\bH commands utilize either a _\bf_\bo_\br_\bm_\ba_\bt string or a _\bf_\bo_\br_\bm_\ba_\bt file
+ during their execution. For example, _\bs_\bc_\ba_\bn (1) uses a format string
+ which directs it how to generate the scan listing for each message;
+ _\br_\be_\bp_\bl (1) uses a format file which directs it how to generate the
+ reply to a message, and so on.
+
+ Format strings are designed to be efficiently parsed by _\bM_\bH which
+ means they are not necessarily simple to write and understand.
+ This means that novice, casual, or even advanced users of _\bM_\bH should
+ not have to deal with them. Some canned scan listing formats are
+ in /usr/local/lib/mh/scan.time, /usr/local/lib/mh/scan.size, and
+ /usr/local/lib/mh/scan.timely. Look in /usr/local/lib/mh for other
+ _\bs_\bc_\ba_\bn and _\br_\be_\bp_\bl format files which may have been written at your
+ site.
+
+ It suffices to have your local _\bM_\bH expert actually write new format
+ commands or modify existing ones. This manual section explains how
+ to do that. Note: familiarity with the C _\bp_\br_\bi_\bn_\bt_\bf routine is
+ assumed.
+
+ A format string consists of ordinary text, and special multi-
+ character _\be_\bs_\bc_\ba_\bp_\be sequences which begin with `%'. When specifying a
+ format string, the usual C backslash characters are honored: `\b',
+ `\f', `\n', `\r', and `\t'. Continuation lines in format files end
+ with `\' followed by the newline character. There are three types
+ of _\be_\bs_\bc_\ba_\bp_\be sequences: header _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs, built-in _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs, and,
+ flow _\bc_\bo_\bn_\bt_\br_\bo_\bl.
+
+ A _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escape is specified as `%{_\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt}', and exists for
+ each header found in the message being processed. For example
+ `%{date}' refers to the "Date:" field of the appropriate message.
+ All component escapes have a string value. Normally, component
+ values are compressed by converting any control characters (tab and
+ newline included) to spaces, then eliding any leading or multiple
+ spaces. However, commands may give different interpretations to
+ some component escapes; be sure to refer to each command's manual
+ entry for complete details.
+
+ A _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn escape is specified as `%(_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn)'. All functions are
+ built-in, and most have a string or numeric value.
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -108- MH-FORMAT(5)
+
+
+ _\bC_\bo_\bn_\bt_\br_\bo_\bl-_\bf_\bl_\bo_\bw _\be_\bs_\bc_\ba_\bp_\be_\bs
+
+ A _\bc_\bo_\bn_\bt_\br_\bo_\bl escape is one of: `%<', `%?', `%|', or `%>'. These are
+ combined into the conditional execution construct:
+
+ %<condition
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\b1
+ %?condition2
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\b2
+ %?condition3
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\b3
+ ...
+ %|
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\bN
+ %>
+
+ Extra white space is shown here only for clarity. These constructs
+ may be nested without ambiguity. They form a general
+ if-elseif-else-endif block where only one of the _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt seg-
+ ments is interpreted.
+
+ The `%<' and `%?' control escapes causes a condition to be
+ evaluated. This condition may be either a _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt or a _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn.
+ The four constructs have the following syntax:
+
+ %<{component}
+ %<(function)
+ %?{component}
+ %?(function)
+
+ These control escapes test whether the function or component value
+ is non-zero (for integer-valued escapes), or non-empty (for
+ string-valued escapes).
+
+ If this test evaulates true, then the format text up to the next
+ corresponding control escape (one of `%|', `%?', or `%>') is inter-
+ preted normally. Next, all format text up to the corresponding
+ `%>' control escape (if any) is skipped. The `%>' control escape
+ is not interpreted; normal interpretation resumes after the `%>'
+ escape.
+
+ If the test evaluates false, however, then the format text up to
+ the next corresponding control escape (again, one of `%|', `%?', or
+ `%>') is skipped, instead of being interpreted. If the control
+ escape encountered was `%?', then the condition associated with
+ that control escape is evaluated, and interpretation proceeds after
+ that test as described in the previous paragraph. If the control
+ escape encountered was `%|', then the format text up to the
+ corresponding `%>' escape is interpreted normally. As above, the
+ `%>' escape is not interpreted and normal interpretation resumes
+ after the `%>' escape.
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -109- MH-FORMAT(5)
+
+
+ The `%?' control escape and its following format text is optional,
+ and may be included zero or more times. The `%|' control escape
+ and its following format text is also optional, and may be included
+ zero or one times.
+
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\be_\bs_\bc_\ba_\bp_\be_\bs
+
+ Most functions expect an argument of a particular type:
+
+ _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn _\bE_\bx_\ba_\bm_\bp_\bl_\be _\bS_\by_\bn_\bt_\ba_\bx
+ literal A literal number, %(_\bf_\bu_\bn_\bc 1234)
+ or string %(_\bf_\bu_\bn_\bc text string)
+ comp Any header component %(_\bf_\bu_\bn_\bc{_\bi_\bn-_\br_\be_\bp_\bl_\by-_\bt_\bo})
+ date A date component %(_\bf_\bu_\bn_\bc{_\bd_\ba_\bt_\be})
+ addr An address component %(_\bf_\bu_\bn_\bc{_\bf_\br_\bo_\bm})
+ expr An optional component, %(_\bf_\bu_\bn_\bc(_\bf_\bu_\bn_\bc_\b2))
+ function or control, %(_\bf_\bu_\bn_\bc %<{_\br_\be_\bp_\bl_\by-_\bt_\bo}%|%{_\bf_\br_\bo_\bm}%>)
+ perhaps nested %(_\bf_\bu_\bn_\bc(_\bf_\bu_\bn_\bc_\b2{_\bc_\bo_\bm_\bp}))
+
+ The types _\bd_\ba_\bt_\be and _\ba_\bd_\bd_\br have the same syntax as _\bc_\bo_\bm_\bp, but require
+ that the header component be a date string, or address string,
+ respectively.
+
+ All arguments except those of type _\be_\bx_\bp_\br are required. For the _\be_\bx_\bp_\br
+ argument type, the leading `%' must be omitted for component and
+ function escape arguments, and must be present (with a leading
+ space) for control escape arguments.
+
+ The evaluation of format strings is based on a simple machine with
+ an integer register _\bn_\bu_\bm, and a text string register _\bs_\bt_\br. When a
+ function escape is processed, if it accepts an optional _\be_\bx_\bp_\br argu-
+ ment which is not present, it reads the current value of either _\bn_\bu_\bm
+ or _\bs_\bt_\br as appropriate.
+
+
+ _\bR_\be_\bt_\bu_\br_\bn _\bv_\ba_\bl_\bu_\be_\bs
+
+ Component escapes write the value of their message header in _\bs_\bt_\br.
+ Function escapes write their return value in _\bn_\bu_\bm for functions
+ returning _\bi_\bn_\bt_\be_\bg_\be_\br or _\bb_\bo_\bo_\bl_\be_\ba_\bn values, and in _\bs_\bt_\br for functions
+ returning string values. (The _\bb_\bo_\bo_\bl_\be_\ba_\bn type is a subset of integers
+ with usual values 0=false and 1=true.)
+
+ All component escapes, and those function escapes which return an
+ _\bi_\bn_\bt_\be_\bg_\be_\br or _\bs_\bt_\br_\bi_\bn_\bg value, pass this value back to their caller in
+ addition to setting _\bs_\bt_\br or _\bn_\bu_\bm. These escapes will print out this
+ value unless called as part of an argument to another escape
+ sequence. Function escapes which return a _\bb_\bo_\bo_\bl_\be_\ba_\bn value do pass
+ this value back to their caller, but will never print out the
+ value.
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -110- MH-FORMAT(5)
+
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bR_\be_\bt_\bu_\br_\bn _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ msg integer message number
+ cur integer message is current
+ size integer size of message
+ strlen integer length of _\bs_\bt_\br
+ width integer output buffer size in bytes
+ charleft integer bytes left in output buffer
+ timenow integer seconds since the UNIX epoch
+ me string the user's mailbox
+ eq literal boolean _\bn_\bu_\bm == _\ba_\br_\bg
+ ne literal boolean _\bn_\bu_\bm != _\ba_\br_\bg
+ gt literal boolean _\bn_\bu_\bm > _\ba_\br_\bg
+ match literal boolean _\bs_\bt_\br contains _\ba_\br_\bg
+ amatch literal boolean _\bs_\bt_\br starts with _\ba_\br_\bg
+ plus literal integer _\ba_\br_\bg plus _\bn_\bu_\bm
+ minus literal integer _\ba_\br_\bg minus _\bn_\bu_\bm
+ divide literal integer _\bn_\bu_\bm divided by _\ba_\br_\bg
+ num literal integer Set _\bn_\bu_\bm to _\ba_\br_\bg
+ lit literal string Set _\bs_\bt_\br to _\ba_\br_\bg
+ nonzero expr boolean _\bn_\bu_\bm is non-zero
+ zero expr boolean _\bn_\bu_\bm is zero
+ null expr boolean _\bs_\bt_\br is empty
+ nonnull expr boolean _\bs_\bt_\br is non-empty
+ void expr Set _\bs_\bt_\br or _\bn_\bu_\bm
+ comp comp string Set _\bs_\bt_\br to component text
+ compval comp integer _\bn_\bu_\bm set to "atoi(_\bs_\bt_\br)"
+ trim expr trim trailing white-space from _\bs_\bt_\br
+ putstr expr print _\bs_\bt_\br
+ putstrf expr print _\bs_\bt_\br in a fixed width
+ putnum expr print _\bn_\bu_\bm
+ putnumf expr print _\bn_\bu_\bm in a fixed width
+
+ These functions require a date component as an argument:
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bR_\be_\bt_\bu_\br_\bn _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ sec date integer seconds of the minute
+ min date integer minutes of the hour
+ hour date integer hours of the day (0-23)
+ wday date integer day of the week (Sun=0)
+ day date string day of the week (abbrev.)
+ weekday date string day of the week
+ sday date integer day of the week known?
+ (0=implicit,-1=unknown)
+ mday date integer day of the month
+ yday date integer day of the year
+ mon date integer month of the year
+ month date string month of the year (abbrev.)
+ lmonth date string month of the year
+ year date integer year of the century
+ zone date integer timezone in hours
+ tzone date string timezone string
+ szone date integer timezone explicit?
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -111- MH-FORMAT(5)
+
+
+ (0=implicit,-1=unknown)
+ date2local date coerce date to local timezone
+ date2gmt date coerce date to GMT
+ dst date integer daylight savings in effect?
+ clock date integer seconds since the UNIX epoch
+ rclock date integer seconds prior to current time
+ tws date string official 822 rendering
+ pretty date string user-friendly rendering
+ nodate date integer _\bs_\bt_\br not a date string
+
+ These functions require an address component as an argument. The
+ return value of functions noted with `*' pertain only to the first
+ address present in the header component.
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bR_\be_\bt_\bu_\br_\bn _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ proper addr string official 822 rendering
+ friendly addr string user-friendly rendering
+ addr addr string mbox@host or host!mbox rendering*
+ pers addr string the personal name*
+ note addr string commentary text*
+ mbox addr string the local mailbox*
+ mymbox addr integer the user's addresses? (0=no,1=yes)
+ host addr string the host domain*
+ nohost addr integer no host was present*
+ type addr integer host type* (0=local,1=network,
+ -1=uucp,2=unknown)
+ path addr string any leading host route*
+ ingrp addr integer address was inside a group*
+ gname addr string name of group*
+ formataddr expr append _\ba_\br_\bg to _\bs_\bt_\br as a
+ (comma separated) address list
+ putaddr literal print _\bs_\bt_\br address list with
+ _\ba_\br_\bg as optional label;
+ get line width from _\bn_\bu_\bm
+
+ When escapes are nested, evaluation is done from inner-most to
+ outer-most. The outer-most escape must begin with `%'; the inner
+ escapes must not. For example,
+
+ %<(mymbox{from}) To: %{to}%>
+
+ writes the value of the header component "From:" to _\bs_\bt_\br; then (_\bm_\by_\bm_\b-
+ _\bb_\bo_\bx) reads _\bs_\bt_\br and writes its result to _\bn_\bu_\bm; then the control
+ escape evaluates _\bn_\bu_\bm. If _\bn_\bu_\bm is non-zero, the string "To: " is
+ printed followed by the value of the header component "To:".
+
+ A minor explanation of (_\bm_\by_\bm_\bb_\bo_\bx{_\bc_\bo_\bm_\bp}) is in order. In general, it
+ checks each of the addresses in the header component "_\bc_\bo_\bm_\bp" against
+ the user's mailbox name and any _\bA_\bl_\bt_\be_\br_\bn_\ba_\bt_\be-_\bM_\ba_\bi_\bl_\bb_\bo_\bx_\be_\bs. It returns
+ true if any address matches, however, it also returns true if the
+ "_\bc_\bo_\bm_\bp" header is not present in the message. If needed, the (_\bn_\bu_\bl_\bl)
+ function can be used to explicitly test for this condition.
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -112- MH-FORMAT(5)
+
+
+ When a function or component escape is interpreted and the result
+ will be immediately printed, an optional field width can be speci-
+ fied to print the field in exactly a given number of characters.
+ For example, a numeric escape like %4(_\bs_\bi_\bz_\be) will print at most 4
+ digits of the message size; overflow will be indicated by a `?' in
+ the first position (like `?234'). A string escape like %4(_\bm_\be) will
+ print the first 4 characters and truncate at the end. Short fields
+ are padded at the right with the fill character (normally, a
+ blank). If the field width argument begins with a leading zero,
+ then the fill character is set to a zero.
+
+ As above, the functions (_\bp_\bu_\bt_\bn_\bu_\bm_\bf) and (_\bp_\bu_\bt_\bs_\bt_\br_\bf) print their result
+ in exactly the number of characters specified by their leading
+ field width argument. For example, %06(_\bp_\bu_\bt_\bn_\bu_\bm_\bf(_\bs_\bi_\bz_\be)) will print
+ the message size in a field six characters wide filled with leading
+ zeros; %14(_\bp_\bu_\bt_\bs_\bt_\br_\bf{_\bf_\br_\bo_\bm}) will print the "From:" header component
+ in fourteen characters with trailing spaces added as needed. For
+ _\bp_\bu_\bt_\bs_\bt_\br_\bf, using a negative value for the field width causes right-
+ justification of the string within the field, with padding on the
+ left up to the field width. The functions (_\bp_\bu_\bt_\bn_\bu_\bm) and (_\bp_\bu_\bt_\bs_\bt_\br)
+ print their result in the minimum number of characters required,
+ and ignore any leading field width argument.
+
+ The available output width is kept in an internal register; any
+ output past this width will be truncated.
+
+ With all this in mind, here's the default format string for _\bs_\bc_\ba_\bn.
+ It's been divided into several pieces for readability. The first
+ part is:
+
+ %4(putnumf(msg))%<(cur)+%| %>%<{replied}-%| %>
+
+ which says that the message number should be printed in four
+ digits, if the message is the current message then a `+' else a
+ space should be printed, and if a "Replied:" field is present then
+ a `-' else a space should be printed. Next:
+
+ %02(putnumf(mon{date}))/%02(putnumf(mday{date}))
+
+ the month and date are printed in two digits (zero filled)
+ separated by a slash. Next,
+
+ %<{date} %|*>
+
+ If a "Date:" field was present, then a space is printed, otherwise
+ a `*'. Next,
+
+ %<(mymbox{from})To:%14(putstrf(friendly{to}))
+
+ if the message is from me, print `To:' followed by a "user-
+ friendly" rendering of the first address in the "To:" field. Con-
+ tinuing,
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -113- MH-FORMAT(5)
+
+
+ %|%17(putstrf(friendly{from}))%>
+
+ if the message isn't from me, then the print the "From:" address is
+ printed. And finally,
+
+ %{subject}%<{body}<<%{body}%>
+
+ the subject and initial body (if any) are printed.
+
+ For a more complicated example, next consider the default _\br_\be_\bp_\bl_\bc_\bo_\bm_\bp_\bs
+ format file.
+
+ %(lit)%(formataddr %<{reply-to}%|
+
+ This clears _\bs_\bt_\br and formats the "Reply-To:" header if present. If
+ not present, the else clause is executed:
+
+ %<{from}%|%<{sender}%|%<{return-path}%>%>%>%>)\
+
+ This formats the "From:", "Sender:" and "Return-Path:" headers,
+ stopping as soon as one of them is present. Next:
+
+ %<(nonnull)%(void(width))%(putaddr To: )\n%>\
+
+ If the _\bf_\bo_\br_\bm_\ba_\bt_\ba_\bd_\bd_\br result is non-null, it is printed as an address
+ (with line folding if needed) in a field _\bw_\bi_\bd_\bt_\bh wide with a leading
+ label of "To: ".
+
+ %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
+
+ _\bs_\bt_\br is cleared, and the "To:" and "Cc:" headers, along with the
+ user's address (depending on what was specified with the "-cc"
+ switch to _\br_\be_\bp_\bl) are formatted.
+
+ %<(nonnull)%(void(width))%(putaddr cc: )\n%>\
+
+ If the result is non-null, it is printed as above with a leading
+ label of "cc: ".
+
+ %<{fcc}Fcc: %{fcc}\n%>\
+
+ If a "-fcc folder" switch was given to _\br_\be_\bp_\bl (see _\br_\be_\bp_\bl (1) for more
+ details about %{_\bf_\bc_\bc}), an "Fcc:" header is output.
+
+ %<{subject}Subject: Re: %{subject}\n%>\
+
+ If a subject component was present, a suitable reply subject is
+ output.
+
+ %<{date}In-reply-to: Your message of "\
+ %<(nodate{date})%{date}%|%(tws{date})%>."%<{message-id}
+ %{message-id}%>\n%>\
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -114- MH-FORMAT(5)
+
+
+ --------
+
+ If a date component was present, an "In-Reply-To:" header is output
+ with the preface "Your message of ". If the date was parseable, it
+ is output in official format, otherwise it is output as-is. The
+ message-id is included if present. As with all plain-text, the row
+ of dashes are output as-is.
+
+ This last part is a good example for a little more elaboration.
+ Here's that part again in pseudo-code:
+
+ if (comp_exists(date)) then
+ print ("In-reply-to: Your message of \"")
+ if (not_date_string(date.value) then
+ print (date.value)
+ else
+ print (rfc822(date.value))
+ endif
+ print ("\"")
+ if (comp_exists(message-id)) then
+ print ("\n\t")
+ print (message-id.value)
+ endif
+ print ("\n")
+ endif
+
+ Although this seems complicated, in point of fact, this method is
+ flexible enough to extract individual fields and print them in any
+ format the user desires.
+
+ _\bF_\bi_\bl_\be_\bs
+ None
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ scan(1), repl(1), ap(8), dp(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -115- MH-FORMAT(5)
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ This software was contributed for MH 6.3. Prior to this, output
+ format specifications were much easier to write, but considerably
+ less flexible.
+
+
+ _\bB_\bu_\bg_\bs
+ On hosts where _\bM_\bH was configured with the BERK option, address
+ parsing is not enabled.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -116- MH-MAIL(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-mail - message format for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ any _\bM_\bH command
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bH processes messages in a particular format. It should be noted
+ that although neither Bell nor Berkeley mailers produce message
+ files in the format that _\bM_\bH prefers, _\bM_\bH can read message files in
+ that antiquated format.
+
+ Each user possesses a mail drop box which initially receives all
+ messages processed by _\bp_\bo_\bs_\bt (8). _\bI_\bn_\bc (1) will read from that drop
+ box and incorporate the new messages found there into the user's
+ own mail folders (typically `+inbox'). The mail drop box consists
+ of one or more messages. To facilitate the separation of messages,
+ each message begins and ends with a line consisting of nothing but
+ four CTRL-A (octal 001) characters.
+
+ Messages are expected to consist of lines of text. Graphics and
+ binary data are not handled. No data compression is accepted. All
+ text is clear ASCII 7-bit data.
+
+ The general "memo" framework of RFC-822 is used. A message con-
+ sists of a block of information in a rigid format, followed by gen-
+ eral text with no specified format. The rigidly formatted first
+ part of a message is called the header, and the free-format portion
+ is called the body. The header must always exist, but the body is
+ optional. These parts are separated by an empty line, i.e., two
+ consecutive newline characters. Within _\bM_\bH, the header and body may
+ be separated by a line consisting of dashes:
+
+ To:
+ cc:
+ Subject:
+ --------
+
+ The header is composed of one or more header items. Each header
+ item can be viewed as a single logical line of ASCII characters.
+ If the text of a header item extends across several real lines, the
+ continuation lines are indicated by leading spaces or tabs.
+
+ Each header item is called a component and is composed of a keyword
+ or name, along with associated text. The keyword begins at the
+ left margin, may NOT contain spaces or tabs, may not exceed 63
+ characters (as specified by RFC-822), and is terminated by a colon
+ (`:'). Certain components (as identified by their keywords) must
+ follow rigidly defined formats in their text portions.
+
+ The text for most formatted components (e.g., "Date:" and
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -117- MH-MAIL(5)
+
+
+ "Message-Id:") is produced automatically. The only ones entered by
+ the user are address fields such as "To:", "cc:", etc. Internet
+ addresses are assigned mailbox names and host computer specifica-
+ tions. The rough format is "local@domain", such as "MH@UCI", or
+ "MH@UCI-ICSA.ARPA". Multiple addresses are separated by commas. A
+ missing host/domain is assumed to be the local host/domain.
+
+ As mentioned above, a blank line (or a line of dashes) signals that
+ all following text up to the end of the file is the body. No for-
+ matting is expected or enforced within the body.
+
+ Following is a list of header components that are considered mean-
+ ingful to various MH programs.
+ Date:
+ Added by _\bp_\bo_\bs_\bt (8), contains date and time of the message's
+ entry into the transport system.
+
+ From:
+ Added by _\bp_\bo_\bs_\bt (8), contains the address of the author or
+ authors (may be more than one if a "Sender:" field is
+ present). Replies are typically directed to addresses in the
+ "Reply-To:" or "From:" field (the former has precedence if
+ present).
+
+ Sender:
+ Added by _\bp_\bo_\bs_\bt (8) in the event that the message already has a
+ "From:" line. This line contains the address of the actual
+ sender. Replies are never sent to addresses in the "Sender:"
+ field.
+
+ To:
+ Contains addresses of primary recipients.
+
+ cc:
+ Contains addresses of secondary recipients.
+
+ Bcc:
+ Still more recipients. However, the "Bcc:" line is not copied
+ onto the message as delivered, so these recipients are not
+ listed. _\bM_\bH uses an encapsulation method for blind copies, see
+ _\bs_\be_\bn_\bd (1).
+
+ Fcc:
+ Causes _\bp_\bo_\bs_\bt (8) to copy the message into the specified folder
+ for the sender, if the message was successfully given to the
+ transport system.
+
+ Message-ID:
+ A unique message identifier added by _\bp_\bo_\bs_\bt (8) if the `-msgid'
+ flag is set.
+
+ Subject:
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -118- MH-MAIL(5)
+
+
+ Sender's commentary. It is displayed by _\bs_\bc_\ba_\bn (1).
+
+ In-Reply-To:
+ A commentary line added by _\br_\be_\bp_\bl (1) when replying to a mes-
+ sage.
+
+ Resent-Date:
+ Added when redistributing a message by _\bp_\bo_\bs_\bt (8).
+
+ Resent-From:
+ Added when redistributing a message by _\bp_\bo_\bs_\bt (8).
+
+ Resent-To:
+ New recipients for a message resent by _\bd_\bi_\bs_\bt (1).
+
+ Resent-cc:
+ Still more recipients. See "cc:" and "Resent-To:".
+
+ Resent-Bcc:
+ Even more recipients. See "Bcc:" and "Resent-To:".
+
+ Resent-Fcc:
+ Copy resent message into a folder. See "Fcc:" and
+ "Resent-To:".
+
+ Resent-Message-Id:
+ A unique identifier glued on by _\bp_\bo_\bs_\bt (8) if the `-msgid' flag
+ is set. See "Message-Id:" and "Resent-To:".
+
+ Resent:
+ Annotation for _\bd_\bi_\bs_\bt (1) under the `-annotate' option.
+
+ Forwarded:
+ Annotation for _\bf_\bo_\br_\bw (1) under the `-annotate' option.
+
+ Replied:
+ Annotation for _\br_\be_\bp_\bl (1) under the `-annotate' option.
+
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/mail/$USER Location of mail drop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822)
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -119- MH-MAIL(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -120- MH-PROFILE(5)
+
+
+ _\bN_\bA_\bM_\bE
+ .mh_profile - user customization for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ any _\bM_\bH command
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Each user of _\bM_\bH is expected to have a file named ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be in his
+ or her home directory. This file contains a set of user parameters
+ used by some or all of the _\bM_\bH family of programs. Each line of the
+ file is of the format
+
+ _\bp_\br_\bo_\bf_\bi_\bl_\be-_\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt: _\bv_\ba_\bl_\bu_\be
+
+ The possible profile components are exemplified below. Only
+ `Path:' is mandatory. The others are optional; some have default
+ values if they are not present. In the notation used below, (pro-
+ file, default) indicates whether the information is kept in the
+ user's _\bM_\bH profile or _\bM_\bH context, and indicates what the default
+ value is.
+
+ Path: Mail
+ Locates _\bM_\bH transactions in directory "Mail". (profile,
+ no default)
+
+ context: context
+ Declares the location of the _\bM_\bH context file, see the
+ HISTORY section below. (profile, default:
+ <mh-dir>/context)
+
+ Current-Folder: inbox
+ Keeps track of the current open folder. (context,
+ default: +inbox)
+
+ Previous-Sequence: pseq
+ Names the sequences which should be defined as the `msgs'
+ or `msg' argument given to the program. If not present,
+ or empty, no sequences are defined. Otherwise, for each
+ name given, the sequence is first zero'd and then each
+ message is added to the sequence. (profile, no default)
+
+ Sequence-Negation: not
+ Defines the string which, when prefixed to a sequence
+ name, negates that sequence. Hence, "notseen" means all
+ those messages that are not a member of the sequence
+ "seen". (profile, no default)
+
+ Unseen-Sequence: unseen
+ Names the sequences which should be defined as those mes-
+ sages recently incorporated by _\bi_\bn_\bc. _\bS_\bh_\bo_\bw knows to remove
+ messages from this sequence once it thinks they have been
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -121- MH-PROFILE(5)
+
+
+ seen. If not present, or empty, no sequences are
+ defined. Otherwise, for each name given, the sequence is
+ first zero'd and then each message is added to the
+ sequence. (profile, no default)
+
+ mh-sequences: .mh_sequences
+ The name of the file in each folder which defines public
+ sequences. To disable the use of public sequences, leave
+ the value portion of this entry blank. (profile,
+ default: .mh_sequences)
+
+ atr-_\bs_\be_\bq-_\bf_\bo_\bl_\bd_\be_\br: 172 178-181 212
+ Keeps track of the private sequence called _\bs_\be_\bq in the
+ specified folder. (context, no default)
+
+ Editor: /usr/ucb/ex
+ Defines editor to be used by _\bc_\bo_\bm_\bp (1), _\bd_\bi_\bs_\bt (1),
+ _\bf_\bo_\br_\bw (1), and _\br_\be_\bp_\bl (1). (profile, default: prompter)
+
+ Msg-Protect: 644
+ Defines octal protection bits for message files. See
+ _\bc_\bh_\bm_\bo_\bd (1) for an explanation of the octal number. (pro-
+ file, default: 0644)
+
+ Folder-Protect: 711
+ Defines protection bits for folder directories. (pro-
+ file, default: 0711)
+
+ _\bp_\br_\bo_\bg_\br_\ba_\bm: default switches
+ Sets default switches to be used whenever the mh program
+ _\bp_\br_\bo_\bg_\br_\ba_\bm is invoked. For example, one could override the
+ _\bE_\bd_\bi_\bt_\bo_\br: profile component when replying to messages by
+ adding a component such as:
+ repl: -editor /bin/ed
+ (profile, no defaults)
+
+ _\bl_\ba_\bs_\bt_\be_\bd_\bi_\bt_\bo_\br-next: nexteditor
+ Names "nexteditor" to be the default editor after using
+ "lasteditor". This takes effect at "What now?" level in
+ _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl. After editing the draft with
+ "lasteditor", the default editor is set to be "nextedi-
+ tor". If the user types "edit" without any arguments to
+ "What now?", then "nexteditor" is used. (profile, no
+ default)
+
+ bboards: system
+ Tells _\bb_\bb_\bc which BBoards you are interested in. (profile,
+ default: system)
+
+ Folder-Stack: _\bf_\bo_\bl_\bd_\be_\br_\bs
+ The contents of the folder-stack for the _\bf_\bo_\bl_\bd_\be_\br command.
+ (context, no default)
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -122- MH-PROFILE(5)
+
+
+ mhe:
+ If present, tells _\bi_\bn_\bc to compose an _\bM_\bH_\bE auditfile in
+ addition to its other tasks. _\bM_\bH_\bE is Brian Reid's _\bE_\bm_\ba_\bc_\bs
+ front-end for _\bM_\bH. An early version is supplied with the
+ _\bm_\bh._\b6 distribution. (profile, no default)
+
+ Alternate-Mailboxes: mh@uci-750a, bug-mh*
+ Tells _\br_\be_\bp_\bl and _\bs_\bc_\ba_\bn which addresses are really yours. In
+ this way, _\br_\be_\bp_\bl knows which addresses should be included
+ in the reply, and _\bs_\bc_\ba_\bn knows if the message really ori-
+ ginated from you. Addresses must be separated by a
+ comma, and the hostnames listed should be the "official"
+ hostnames for the mailboxes you indicate, as local nick-
+ names for hosts are not replaced with their official site
+ names. For each address, if a host is not given, then
+ that address on any host is considered to be you. In
+ addition, an asterisk (`*') may appear at either or both
+ ends of the mailbox and host to indicate wild-card match-
+ ing. (profile, default: your user-id)
+
+ Aliasfile: aliases
+ Indicates a default aliases file for _\ba_\bl_\bi, _\bw_\bh_\bo_\bm, and _\bs_\be_\bn_\bd.
+ This may be used instead of the `-alias file' switch.
+ (profile, no default)
+
+ Draft-Folder: drafts
+ Indicates a default draft folder for _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw,
+ and _\br_\be_\bp_\bl. (profile, no default)
+
+ digest-issue-_\bl_\bi_\bs_\bt: 1
+ Tells _\bf_\bo_\br_\bw the last issue of the last volume sent for the
+ digest _\bl_\bi_\bs_\bt. (context, no default)
+
+ digest-volume-_\bl_\bi_\bs_\bt: 1
+ Tells _\bf_\bo_\br_\bw the last volume sent for the digest _\bl_\bi_\bs_\bt.
+ (context, no default)
+
+ MailDrop: .mail
+ Tells _\bi_\bn_\bc your maildrop, if different from the default.
+ This is superceded by the $MAILDROP envariable. (pro-
+ file, default: /usr/spool/mail/$USER)
+
+ Signature: RAND MH System (agent: Marshall Rose)
+ Tells _\bs_\be_\bn_\bd your mail signature. This is superceded by
+ the $SIGNATURE envariable. On hosts where _\bM_\bH was config-
+ ured with the UCI option, if $SIGNATURE is not set and
+ this profile entry is not present, the file
+ $HOME/.signature is consulted. Your signature will be
+ added to the address _\bs_\be_\bn_\bd puts in the "From:" header; do
+ not include an address in the signature text. (profile,
+ no default)
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -123- MH-PROFILE(5)
+
+
+ The following profile elements are used whenever an _\bM_\bH program
+ invokes some other program such as _\bm_\bo_\br_\be (1). The ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be can
+ be used to select alternate programs if the user wishes. The
+ default values are given in the examples.
+
+ fileproc: /usr/local/refile
+ incproc: /usr/local/inc
+ installproc: /usr/local/lib/mh/install-mh
+ lproc: /usr/ucb/more
+ mailproc: /usr/local/mhmail
+ mhlproc: /usr/local/lib/mh/mhl
+ moreproc: /usr/ucb/more
+ mshproc: /usr/local/msh
+ packproc: /usr/local/packf
+ postproc: /usr/local/lib/mh/post
+ rmmproc: none
+ rmfproc: /usr/local/rmf
+ sendproc: /usr/local/send
+ showproc: /usr/ucb/more
+ whatnowproc: /usr/local/whatnow
+ whomproc: /usr/local/whom
+
+ If you define the envariable $MH, you can specify a profile other
+ than ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be to be read by the _\bM_\bH programs that you invoke. If
+ the value of $MH is not absolute, (i.e., does not begin with a / ),
+ it will be presumed to start from the current working directory.
+ This is one of the very few exceptions in _\bM_\bH where non-absolute
+ pathnames are not considered relative to the user's _\bM_\bH directory.
+
+ Similarly, if you define the envariable $MHCONTEXT, you can specify
+ a context other than the normal context file (as specified in the
+ _\bM_\bH profile). As always, unless the value of $MHCONTEXT is abso-
+ lute, it will be presumed to start from your _\bM_\bH directory.
+
+ _\bM_\bH programs also support other envariables:
+
+ $MAILDROP : tells _\bi_\bn_\bc the default maildrop
+ This supercedes the "MailDrop:" profile entry.
+
+ $SIGNATURE : tells _\bs_\be_\bn_\bd and _\bp_\bo_\bs_\bt your mail signature
+ This supercedes the "Signature:" profile entry.
+
+ $HOME : tells all _\bM_\bH programs your home directory
+
+ $SHELL : tells _\bb_\bb_\bl the default shell to run
+
+ $TERM : tells _\bM_\bH your terminal type
+ The $TERMCAP envariable is also consulted. In particular,
+ these tells _\bs_\bc_\ba_\bn and _\bm_\bh_\bl how to clear your terminal, and how
+ many columns wide your terminal is. They also tell _\bm_\bh_\bl how
+ many lines long your terminal screen is.
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -124- MH-PROFILE(5)
+
+
+ $editalt : the alternate message
+ This is set by _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl during edit sessions so you can
+ peruse the message being distributed or replied-to. The mes-
+ sage is also available through a link called "@" in the
+ current directory if your current working directory and the
+ folder the message lives in are on the same UNIX filesystem.
+
+ $mhdraft : the path to the working draft
+ This is set by _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl to tell the _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw_\bp_\br_\bo_\bc which file to ask "What now?" questions about. In
+ addition, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl set $mhfolder if appropriate.
+ Further, _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl set $mhaltmsg to tell the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc
+ about an alternate message associated with the draft (the mes-
+ sage being distributed or replied-to), and _\bd_\bi_\bs_\bt sets $mhdist
+ to tell the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc that message re-distribution is occur-
+ ring. Also, $mheditor is set to tell the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc the
+ user's choice of editor (unless overridden by `-noedit').
+ Similarly, $mhuse may be set by _\bc_\bo_\bm_\bp. Finally, $mhmessages is
+ set by _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl if annotations are to occur (along
+ with $mhannotate, and $mhinplace). It's amazing all the
+ information that has to get passed via envariables to make the
+ "What now?" interface look squeaky clean to the _\bM_\bH user, isn't
+ it? The reason for all this is that the _\bM_\bH user can select
+ _\ba_\bn_\by program as the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, including one of the standard
+ shells. As a result, it's not possible to pass information
+ via an argument list.
+ If the WHATNOW option was set during _\bM_\bH configuration (type
+ `-help' to an _\bM_\bH command to find out), and if this envariable
+ is set, if the commands _\br_\be_\bf_\bi_\bl_\be, _\bs_\be_\bn_\bd, _\bs_\bh_\bo_\bw, or _\bw_\bh_\bo_\bm are not
+ given any `msgs' arguments, then they will default to using
+ the file indicated by $mhdraft. This is useful for getting
+ the default behavior supplied by the default _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc.
+
+ $mhfolder : the folder containing the alternate message
+ This is set by _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl during edit sessions so you can
+ peruse other messages in the current folder besides the one
+ being distributed or replied-to. The $mhfolder envariable is
+ also set by _\bs_\bh_\bo_\bw, _\bp_\br_\be_\bv, and _\bn_\be_\bx_\bt for use by _\bm_\bh_\bl.
+
+ $MHBBRC :
+ If you define the envariable $MHBBRC, you can specify a
+ BBoards information file other than ._\bb_\bb_\br_\bc to be read by _\bb_\bb_\bc.
+ If the value of $MHBBRC is not absolute, (i.e., does not begin
+ with a / ), it will be presumed to start from the current
+ working directory.
+
+ $MHFD :
+ If the OVERHEAD option was set during _\bM_\bH configuration (type
+ `-help' to an _\bM_\bH command to find out), then if this envariable
+ is set, _\bM_\bH considers it to be the number of a file-descriptor
+ which is opened, read-only to the _\bM_\bH profile. Similarly, if
+ the envariable $MHCONTEXTFD is set, this is the number of a
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -125- MH-PROFILE(5)
+
+
+ file-descriptor which is opened read-only to the _\bM_\bH context.
+ This feature of _\bM_\bH is experimental, and is used to examine
+ possible speed improvements for _\bM_\bH startup. Note that these
+ envariables must be set and non-empty to enable this feature.
+ However, if OVERHEAD is enabled during _\bM_\bH configuration, then
+ when _\bM_\bH programs call other _\bM_\bH programs, this scheme is used.
+ These file-descriptors are not closed throughout the execution
+ of the _\bM_\bH program, so children may take advantage of this.
+ This approach is thought to be completely safe and does result
+ in some performance enhancements.
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ or $MH Rather than the standard profile
+ <mh-dir>/context The user context
+ or $CONTEXT Rather than the standard context
+ <folder>/.mh_sequences Public sequences for <folder>
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ All
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh(1), environ(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ All
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -126- MH-PROFILE(5)
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous versions of _\bM_\bH, the current-message value of a writable
+ folder was kept in a file called "cur" in the folder itself. In
+ _\bm_\bh._\b3, the ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be contained the current-message values for all
+ folders, regardless of their writability.
+
+ In all versions of _\bM_\bH since _\bm_\bh._\b4, the ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be contains only
+ static information, which _\bM_\bH programs will NOT update. Changes in
+ context are made to the _\bc_\bo_\bn_\bt_\be_\bx_\bt file kept in the users MH _\bd_\bi_\br_\be_\bc_\bt_\bo-
+ _\br_\by. This includes, but is not limited to: the "Current-Folder" en-
+ try and all private sequence information. Public sequence informa-
+ tion is kept in a file called ._\bm_\bh__\bs_\be_\bq_\bu_\be_\bn_\bc_\be_\bs in each folder.
+
+ To convert from the format used in releases of _\bM_\bH prior to the for-
+ mat used in the _\bm_\bh._\b4 release, _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh should be invoked with the
+ `-compat' switch. This generally happens automatically on _\bM_\bH sys-
+ tems generated with the "COMPAT" option during _\bM_\bH configuration.
+
+ The ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be may override the path of the _\bc_\bo_\bn_\bt_\be_\bx_\bt file, by
+ specifying a "context" entry (this must be in lower-case). If the
+ entry is not absolute (does not start with a / ), then it is inter-
+ preted relative to the user's _\bM_\bH directory. As a result, you can
+ actually have more than one set of private sequences by using dif-
+ ferent context files.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -127- MH-PROFILE(5)
+
+
+ _\bB_\bu_\bg_\bs
+ The shell quoting conventions are not available in the .mh_profile.
+ Each token is separated by whitespace.
+
+ There is some question as to what kind of arguments should be
+ placed in the profile as options. In order to provide a clear
+ answer, recall command line semantics of all _\bM_\bH programs: conflict-
+ ing switches (e.g., `-header and `-noheader') may occur more than
+ one time on the command line, with the last switch taking effect.
+ Other arguments, such as message sequences, filenames and folders,
+ are always remembered on the invocation line and are not superseded
+ by following arguments of the same type. Hence, it is safe to
+ place only switches (and their arguments) in the profile.
+
+ If one finds that an _\bM_\bH program is being invoked again and again
+ with the same arguments, and those arguments aren't switches, then
+ there are a few possible solutions to this problem. The first is
+ to create a (soft) link in your $_\bH_\bO_\bM_\bE/_\bb_\bi_\bn directory to the _\bM_\bH pro-
+ gram of your choice. By giving this link a different name, you can
+ create a new entry in your profile and use an alternate set of de-
+ faults for the _\bM_\bH command. Similarly, you could create a small
+ shell script which called the _\bM_\bH program of your choice with an al-
+ ternate set of invocation line switches (using links and an alter-
+ nate profile entry is preferable to this solution).
+
+ Finally, the _\bc_\bs_\bh user could create an alias for the command of the
+ form:
+
+ alias cmd 'cmd arg1 arg2 ...'
+
+ In this way, the user can avoid lengthy type-in to the shell, and
+ still give _\bM_\bH commands safely. (Recall that some _\bM_\bH commands in-
+ voke others, and that in all cases, the profile is read, meaning
+ that aliases are disregarded beyond an initial command invocation)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -128- MH-SEQUENCE(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-sequence - sequence specification for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ most _\bM_\bH commands
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Most _\bM_\bH commands accept a `msg' or `msgs' specification, where
+ `msg' indicates one message and `msgs' indicates one or more mes-
+ sages. To designate a message, you may use either its number
+ (e.g., 1, 10, 234) or one of these "reserved" message names:
+
+ _\bN_\ba_\bm_\be _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ first the first message in the folder
+ last the last message in the folder
+ cur the most recently accessed message
+ prev the message numerically preceding "cur"
+ next the message numerically following "cur"
+
+ In commands that take a `msg' argument, the default is "cur". As a
+ shorthand, "." is equivalent to "cur".
+
+ For example: In a folder containing five messages numbered 5, 10,
+ 94, 177 and 325, "first" is 5 and "last" is 325. If "cur" is 94,
+ then "prev" is 10 and "next" is 177.
+
+ The word `msgs' indicates that one or more messages may be speci-
+ fied. Such a specification consists of one message designation or
+ of several message designations separated by spaces. A message
+ designation consists either of a message name as defined above, or
+ a message range.
+
+ A message range is specified as "name1-name2" or "name:n", where
+ `name', `name1' and `name2' are message names, and `n' is an
+ integer.
+
+ The specification "name1-name2" designates all currently-existing
+ messages from `name1' to `name2' inclusive. The message name "all"
+ is a shorthand for the message range "first-last".
+
+ The specification "name:n" designates up to `n' messages. These
+ messages start with `name' if `name' is a message number or one of
+ the reserved names "first" "cur", or "next", The messages end with
+ `name' if `name' is "prev" or "last". The interpretation of `n'
+ may be overridden by preceding `n' with a plus or minus sign; `+n'
+ always means up to `n' messages starting with `name', and `-n'
+ always means up to `n' messages ending with `name'.
+
+ In commands which accept a `msgs' argument, the default is either
+ "cur" or "all", depending on which makes more sense. Repeated
+ specifications of the same message have the same effect as a single
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -129- MH-SEQUENCE(5)
+
+
+ specification of the message.
+
+
+ _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bM_\be_\bs_\bs_\ba_\bg_\be _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ In addition to the "reserved" (pre-defined) message names given
+ above, _\bM_\bH supports user-defined sequence names. User-defined
+ sequences allow the _\bM_\bH user a tremendous amount of power in dealing
+ with groups of messages in the same folder by allowing the user to
+ bind a group of messages to a meaningful symbolic name.
+
+ The name used to denote a message sequence must consist of an
+ alphabetic character followed by zero or more alphanumeric charac-
+ ters, and can not be one of the "reserved" message names above.
+ After defining a sequence, it can be used wherever an _\bM_\bH command
+ expects a `msg' or `msgs' argument.
+
+ Some forms of message ranges are allowed with user-defined
+ sequences. The specification "name:n" may be used, and it desig-
+ nates up to the first `n' messages (or last `n' messages for `-n')
+ which are elements of the user-defined sequence `name'.
+
+ The specifications "name:next" and "name:prev" may also be used,
+ and they designate the next or previous message (relative to the
+ current message) which is an element of the user-defined sequence
+ `name'. The specificaitions "name:first" and "name:last" are
+ equivalent to "name:1" and "name:-1", respectively. The specifica-
+ tion "name:cur" is not allowed (use just "cur" instead). The syn-
+ tax of these message range specifcations is subject to change in
+ the future.
+
+ User-defined sequence names are specific to each folder. They are
+ defined using the _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk commands.
+
+
+ _\bP_\bu_\bb_\bl_\bi_\bc _\ba_\bn_\bd _\bP_\br_\bi_\bv_\ba_\bt_\be _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ There are two varieties of sequences: _\bp_\bu_\bb_\bl_\bi_\bc sequences and _\bp_\br_\bi_\bv_\ba_\bt_\be
+ sequences. _\bP_\bu_\bb_\bl_\bi_\bc sequences of a folder are accessible to any _\bM_\bH
+ user that can read that folder and are kept in the .mh_sequences
+ file in the folder. _\bP_\br_\bi_\bv_\ba_\bt_\be sequences are accessible only to the
+ _\bM_\bH user that defined those sequences and are kept in the user's _\bM_\bH
+ context file. By default, _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk create _\bp_\bu_\bb_\bl_\bi_\bc sequences if
+ the folder for which the sequences are being defined is writable by
+ the _\bM_\bH user. Otherwise, _\bp_\br_\bi_\bv_\ba_\bt_\be sequences are created. This can
+ be overridden with the `-public' and `-private' switches to _\bm_\ba_\br_\bk.
+
+
+ _\bS_\be_\bq_\bu_\be_\bn_\bc_\be _\bN_\be_\bg_\ba_\bt_\bi_\bo_\bn
+
+ _\bM_\bH provides the ability to select all messages not elements of a
+ user-defined sequence. To do this, the user should define the
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -130- MH-SEQUENCE(5)
+
+
+ entry "Sequence-Negation" in the _\bM_\bH profile file; its value may be
+ any string. This string is then used to preface an existing user-
+ defined sequence name. This specification then refers to those
+ messages not elements of the specified sequence name. For example,
+ if the profile entry is:
+
+ Sequence-Negation: not
+
+ then anytime an _\bM_\bH command is given "notfoo" as a `msg' or `msgs'
+ argument, it would substitute all messages that are not elements of
+ the sequence "foo".
+
+ Obviously, the user should beware of defining sequences with names
+ that begin with the value of the "Sequence-Negation" profile entry.
+
+
+ _\bT_\bh_\be _\bP_\br_\be_\bv_\bi_\bo_\bu_\bs _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ _\bM_\bH provides the ability to remember the `msgs' or `msg' argument
+ last given to an _\bM_\bH command. The entry "Previous-Sequence" should
+ be defined in the _\bM_\bH profile; its value should be a sequence name
+ or multiple sequence names separated by spaces. If this entry is
+ defined, when when an _\bM_\bH command finishes, it will define the
+ sequence(s) named in the value of this entry to be those messages
+ that were specified to the command. Hence, a profile entry of
+
+ Previous-Sequence: pseq
+
+ directs any _\bM_\bH command that accepts a `msg' or `msgs' argument to
+ define the sequence "pseq" as those messages when it finishes.
+
+ Note: there can be a performance penalty in using the
+ "Previous-Sequence" facility. If it is used, all _\bM_\bH programs have
+ to write the sequence information to the .mh_sequences file for the
+ folder each time they run. If the "Previous-Sequence" profile
+ entry is not included, only _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk will write to the
+ .mh_sequences file.
+
+
+ _\bT_\bh_\be _\bU_\bn_\bs_\be_\be_\bn _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ Finally, some users like to indicate messages which have not been
+ previously seen by them. Both _\bi_\bn_\bc and _\bs_\bh_\bo_\bw honor the profile entry
+ "Unseen-Sequence" to support this activity. This entry in the
+ .mh_profile should be defined as one or more sequence names
+ separated by spaces. If there is a value for "Unseen-Sequence" in
+ the profile, then whenever _\bi_\bn_\bc places new messages in a folder, the
+ new messages will also be added to the sequence(s) named in the
+ value of this entry. Hence, a profile entry of
+
+ Unseen-Sequence: unseen
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -131- MH-SEQUENCE(5)
+
+
+ directs _\bi_\bn_\bc to add new messages to the sequence "unseen". Unlike
+ the behavior of the "Previous-Sequence" entry in the profile, how-
+ ever, the sequence(s) will not be zeroed by _\bi_\bn_\bc.
+
+ Similarly, whenever _\bs_\bh_\bo_\bw (or _\bn_\be_\bx_\bt or _\bp_\br_\be_\bv) displays a message, that
+ message will be removed from any sequences named by the
+ "Unseen-Sequence" entry in the profile.
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ <mh-dir>/context The user context
+ <folder>/.mh_sequences Public sequences for <folder>
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Sequence-Negation: To designate messages not in a sequence
+ Previous-Sequence: The last message specification given
+ Unseen-Sequence: Those messages not yet seen by the user
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh(1), mark(1), pick(1), mh-profile(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ All
+
+
+ _\bB_\bu_\bg_\bs
+ User-defined sequences are stored in the .mh_sequences file as a
+ series of message specifications separated by spaces. If a user-
+ defined sequence contains too many individual message specifica-
+ tions, that line in the file may become too long for _\bM_\bH to handle.
+ This will generate the error message ".mh_sequences is poorly for-
+ matted". You'll have to edit the file by hand to remove the of-
+ fending line.
+
+ This can happen to users who define the "Previous-Sequence" entry
+ in the _\bM_\bH profile and have a folder containing many messages with
+ gaps in the numbering. A workaround for large folders is to minim-
+ ize numbering gaps by using "folder -pack" often.
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ AP(8) -132- AP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ ap - parse addresses 822-style
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/ap [-form formatfile] [-format string]
+ [-normalize] [-nonormalize] [-width columns] addrs ...
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bA_\bp is a program that parses addresses according to the ARPA Inter-
+ net standard. It also understands many non-standard formats. It
+ is useful for seeing how _\bM_\bH will interpret an address.
+
+ The _\ba_\bp program treats each argument as one or more addresses, and
+ prints those addresses out in the official 822-format. Hence, it
+ is usually best to enclose each argument in double-quotes for the
+ shell.
+
+ To override the output format used by _\ba_\bp, the `-format string' or
+ `-format file' switches are used. This permits individual fields
+ of the address to be extracted with ease. The string is simply a
+ format stringand thefile is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ In addition to the standard escapes, _\ba_\bp also recognizes the follow-
+ ing additional escape:
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ error string A diagnostic if the parse failed
+
+ If the `-normalize' switch is given, _\ba_\bp will try to track down the
+ official hostname of the address.
+
+ Here is the default format string used by _\ba_\bp:
+
+ %<{error}%{error}: %{text}%|%(putstr(proper{text}))%>
+
+ which says that if an error was detected, print the error, a `:',
+ and the address in error. Otherwise, output the 822-proper format
+ of the address.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/local/lib/mh/mtstailor tailor file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ AP(8) -133- AP(8)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ dp(8),
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-format' defaults as described above
+ `-normalize'
+ `-width' defaults to the width of the terminal
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\ba_\bp. Therefore, one must usual-
+ ly place the argument to this switch inside double-quotes.
+
+ On hosts where _\bM_\bH was configured with the BERK option, address
+ parsing is not enabled.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ CONFLICT(8) -134- CONFLICT(8)
+
+
+ _\bN_\bA_\bM_\bE
+ conflict - search for alias/password conflicts
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/conflict [-mail name] [-search directory]
+ [aliasfiles...] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bC_\bo_\bn_\bf_\bl_\bi_\bc_\bt is a program that checks to see if the interface between
+ _\bM_\bH and transport system is in good shape
+
+ _\bC_\bo_\bn_\bf_\bl_\bi_\bc_\bt also checks for maildrops in /usr/spool/mail which do not
+ belong to a valid user. It assumes that no user name will start
+ with `.', and thus ignores files in /usr/spool/mail which begin
+ with `.'. It also checks for entries in the _\bg_\br_\bo_\bu_\bp (5) file which
+ do not belong to a valid user, and for users who do not have a
+ valid group number. In addition duplicate users and groups are
+ noted.
+
+ If the `-mail name' switch is used, then the results will be sent
+ to the specified _\bn_\ba_\bm_\be. Otherwise, the results are sent to the
+ standard output.
+
+ The `-search directory' switch can be used to search directories
+ other than /usr/spool/mail and to report anomalies in those direc-
+ tories. The `-search directory' switch can appear more than one
+ time in an invocation to _\bc_\bo_\bn_\bf_\bl_\bi_\bc_\bt.
+
+ _\bC_\bo_\bn_\bf_\bl_\bi_\bc_\bt should be run under _\bc_\br_\bo_\bn (8), or whenever system account-
+ ing takes place.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ /etc/passwd List of users
+ /etc/group List of groups
+ /usr/local/mhmail Program to send mail
+ /usr/spool/mail/ Directory of mail drop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-alias(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `aliasfiles' defaults to /usr/local/lib/mh/MailAliases
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ CONFLICT(8) -135- CONFLICT(8)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ DP(8) -136- DP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ dp - parse dates 822-style
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/dp [-form formatfile] [-format string]
+ [-width columns] dates ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bD_\bp is a program that parses dates according to the ARPA Internet
+ standard. It also understands many non-standard formats, such as
+ those produced by TOPS-20 sites and some UNIX sites using
+ _\bc_\bt_\bi_\bm_\be (3). It is useful for seeing how _\bM_\bH will interpret a date.
+
+ The _\bd_\bp program treats each argument as a single date, and prints
+ the date out in the official 822-format. Hence, it is usually best
+ to enclose each argument in double-quotes for the shell.
+
+ To override the output format used by _\bd_\bp, the `-format string' or
+ `-format file' switches are used. This permits individual fields
+ of the address to be extracted with ease. The string is simply a
+ format stringand thefile is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ Here is the default format string used by _\bd_\bp:
+
+ %<(nodate{text})error: %{text}%|%(putstr(pretty{text}))%>
+
+ which says that if an error was detected, print the error, a `:',
+ and the date in error. Otherwise, output the 822-proper format of
+ the date.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ ap(8)
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-format' default as described above
+ `-width' default to the width of the terminal
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ DP(8) -137- DP(8)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bd_\bp. Therefore, one must usual-
+ ly place the argument to this switch inside double-quotes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ INSTALL-MH(8) -138- INSTALL-MH(8)
+
+
+ _\bN_\bA_\bM_\bE
+ install-mh - initialize the MH environment
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/install-mh [-auto] [-compat]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ When a user runs any _\bM_\bH program for the first time, the program
+ will invoke _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh (with the `-auto' switch) to query the user
+ for the initial _\bM_\bH environment. The user does NOT invoke this pro-
+ gram directly. The user is asked for the name of the directory
+ that will be designated as the user's _\bM_\bH directory. If this direc-
+ tory does not exist, the user is asked if it should be created.
+ Normally, this directory should be under the user's home directory,
+ and has the default name of Mail/. After _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh has written
+ the initial .mh_profile for the user, control returns to the origi-
+ nal _\bM_\bH program.
+
+ As with all _\bM_\bH commands, _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh first consults the $HOME
+ envariable to determine the user's home directory. If $HOME is not
+ set, then the /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd file is consulted.
+
+ When converting from _\bm_\bh._\b3 to _\bm_\bh._\b4, _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh is automatically
+ invoked with the `-compat' switch.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To set the user's MH directory
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ With `-auto', the current folder is changed to "inbox".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ POST(8) -139- POST(8)
+
+
+ _\bN_\bA_\bM_\bE
+ post - deliver a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/post [-alias aliasfile] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-msgid] [-nomsgid]
+ [-verbose] [-noverbose] [-watch] [-nowatch] [-width columns]
+ file [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\bo_\bs_\bt is the program called by _\bs_\be_\bn_\bd (1) to deliver the message in
+ _\bf_\bi_\bl_\be to local and remote users. In fact, all of the functions
+ attributed to _\bs_\be_\bn_\bd on its manual page are performed by _\bp_\bo_\bs_\bt, with
+ _\bs_\be_\bn_\bd acting as a relatively simple preprocessor. Thus, it is _\bp_\bo_\bs_\bt
+ which parses the various header fields, appends From: and Date:
+ lines, and interacts with the _\bM_\bM_\bD_\bF transport system. _\bP_\bo_\bs_\bt will not
+ normally be called directly by the user.
+
+ _\bP_\bo_\bs_\bt searches the "To:", "cc:", "Bcc:", "Fcc:", and "Resent-xxx:"
+ header lines of the specified message for destination addresses,
+ checks these addresses for validity, and formats them so as to con-
+ form to ARPAnet Internet Message Format protocol, unless the
+ `-noformat' flag is set. This will normally cause "@_\bl_\bo_\bc_\ba_\bl-_\bs_\bi_\bt_\be" to
+ be appended to each local destination address, as well as any local
+ return addresses. The `-width columns' switch can be used to indi-
+ cate the preferred length of the header components that contain
+ addresses.
+
+ If a "Bcc:" field is encountered, its addresses will be used for
+ delivery, and the "Bcc:" field will be removed from the message
+ sent to sighted recipients. The blind recipients will receive an
+ entirely new message with a minimal set of headers. Included in
+ the body of the message will be a copy of the message sent to the
+ sighted recipients. If `-filter filterfile' is specified, then
+ this copy is filtered (re-formatted) prior to being sent to the
+ blind recipients.
+
+ The `-alias aliasfile' switch can be used to specify a file that
+ post should take aliases from. More than one file can be speci-
+ fied, each being preceded with `-alias'. In any event, the primary
+ alias file is read first.
+
+ The `-msgid' switch indicates that a "Message-ID:" or
+ "Resent-Message-ID:" field should be added to the header.
+
+ The `-verbose' switch indicates that the user should be informed of
+ each step of the posting/filing process.
+
+ The `-watch' switch indicates that the user would like to watch the
+ transport system's handling of the message (e.g., local and "fast"
+ delivery).
+
+ [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+ POST(8) -140- POST(8)
+
+
+ _\bP_\bo_\bs_\bt consults the envariable $SIGNATURE to determine the sender's
+ personal name in constructing the "From:" line of the message.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/local/refile Program to process Fcc:s
+ /usr/local/lib/mh/mhl Program to process Bcc:s
+ /usr/local/lib/mh/MailAliases Primary alias file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ _\bp_\bo_\bs_\bt does NOT consult the user's .mh_profile
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822),
+ mhmail(1), send(1), mh-mail(5), mh-alias(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-alias /usr/local/lib/mh/MailAliases'
+ `-format'
+ `-nomsgid'
+ `-noverbose'
+ `-width 72'
+ `-nofilter'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ "Reply-To:" fields are allowed to have groups in them according to
+ the 822 specification, but _\bp_\bo_\bs_\bt won't let you use them.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 [mh.6] MH.6.7 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b5. _\bR_\bE_\bP_\bO_\bR_\bT_\bI_\bN_\bG _\bP_\bR_\bO_\bB_\bL_\bE_\bM_\bS
+
+
+
+\e9
+ If problems are encountered with an _\bM_\bH program, the problems should
+ be reported to the local maintainers of _\bM_\bH. When doing this, the name
+ of the program should be reported, along with the version information
+ for the program. To find out what version of an _\bM_\bH program is being
+ run, invoke the program with the `-help' switch. In addition to listing
+ the syntax of the command, the program will list information pertaining
+ to its version. This information includes the version of _\bM_\bH, the host
+ it was generated on, and the date the program was loaded. A second line
+ of information, found on versions of _\bM_\bH after #5.380 include _\bM_\bH confi-
+ guration options. For example,
+
+ version: MH 6.1 #1[UCI] (nrtc-gremlin) of Wed Nov 6 01:13:53 PST
+ 1985
+ options: [BSD42] [MHE] [NETWORK] [SENDMTS] [MMDFII] [SMTP] [POP]
+
+ The `6.1 #1[UCI]' indicates that the program is from the UCI _\bm_\bh._\b6 ver-
+ sion of _\bM_\bH. The program was generated on the host `nrtc-gremlin' on
+ `Wed Nov 6 01:13:53 PST 1985'. It's usually a good idea to send the
+ output of the `-help' switch along with your report.
+
+ If there is no local _\bM_\bH maintainer, try the address Bug-MH. If that
+ fails, use the Internet mailbox Bug-MH@ICS.UCI.EDU.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9 -141-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b6. _\bA_\bD_\bV_\bA_\bN_\bC_\bE_\bD _\bF_\bE_\bA_\bT_\bU_\bR_\bE_\bS
+
+
+
+\e9
+ This section describes some features of _\bM_\bH that were included
+ strictly for advanced _\bM_\bH users. These capabilities permit _\bM_\bH to exhibit
+ more powerful behavior for the seasoned _\bM_\bH users.
+
+
+\e9 _\bU_\bS_\bE_\bR-_\bD_\bE_\bF_\bI_\bN_\bE_\bD _\bS_\bE_\bQ_\bU_\bE_\bN_\bC_\bE_\bS
+
+ User-defined sequences allow the _\bM_\bH user a tremendous amount of
+ power in dealing with groups of messages in the same folder by allowing
+ the user to bind a group of messages to a meaningful symbolic name. The
+ user may choose any name for a message sequence, as long as it consists
+ of alphanumeric characters and does not conflict with the standard _\bM_\bH
+ reserved message names (e.g., "first", etc). After defining a sequence,
+ it can be used wherever an _\bM_\bH command expects a `msg' or `msgs' argu-
+ ment.
+
+ A restricted form of message ranges are allowed with user-defined
+ sequences. The form "name:n", specifies up to the first `n' messages
+ which are part of the user-defined sequence `name'. A leading plus sign
+ is allowed on `n', but is ignored. The interpretation of n is overrid-
+ den if n is preceded by a minus sign; `-n' always means up to the last
+ `n' messages which are part of the sequence `name'.
+
+ Although all _\bM_\bH commands expand user-defined sequences as appropri-
+ ate, there are two commands that allow the user to define and manipulate
+ them: _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk.
+
+ _\bP_\bi_\bc_\bk _\ba_\bn_\bd _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ Most users of _\bM_\bH will use user-defined sequences only with the _\bp_\bi_\bc_\bk
+ command. By giving the `-sequence name' switch to _\bp_\bi_\bc_\bk (which can occur
+ more than once on the command line), each sequence named is defined as
+ those messages which _\bp_\bi_\bc_\bk matched according the the selection criteria
+ it was given. Hence,
+
+ pick -from frated -seq fred
+
+ finds all those messages in the current folder which were from "frated",
+ creates a sequence called "fred", and then adds them to the sequence.
+ The user could then invoke
+
+ scan fred
+
+ to get a _\bs_\bc_\ba_\bn listing of those messages. Note that by default, _\bp_\bi_\bc_\bk
+ creates the named sequences before it adds the selected messages to the
+ sequence. Hence, if the named sequence already existed, the sequence is
+
+ -142-
+
+
+
+
+
+
+
+
+
+ -143-
+
+
+ destroyed prior to being re-defined (nothing happens to the messages
+ that were a part of this sequence, they simply cease to be members of
+ that sequence). By using the `-nozero' switch, this behavior can be
+ inhibited, as in
+
+ pick -from frated -seq sgroup
+ pick -from fear -seq sgroup -nozero
+ pick -from freida -seq sgroup -nozero
+
+ finds all those messages in the current folder which were from "frated",
+ "fear", or "freida", and defines the sequence called "sgroup" as exactly
+ those messages. These operations amounted to an "inclusive-or" of three
+ selection criteria, using _\bp_\bi_\bc_\bk, one can also generate the "and" of some
+ selection criteria as well:
+
+ pick -from frated -seq fred
+ pick -before friday -seq fred fred
+
+ This example defines the sequence called "fred" as exactly those mes-
+ sages from "frated" that were dated prior to "friday".[1]
+
+ _\bP_\bi_\bc_\bk is normally used as a back-quoted command, for example,
+
+ scan `pick -from postmaster`
+
+ Now suppose that the user decides that another command should be issued,
+ using exactly those messages. Since, _\bp_\bi_\bc_\bk wasn't given a
+ `-sequence name' argument in this example, the user would end-up typing
+ the entire back-quoted command again. A simpler way is to add a default
+ sequence name to the .mh_profile. For example,
+
+ pick: -seq select -list
+
+ will tell _\bp_\bi_\bc_\bk to always define the sequence "select" whenever it's run.
+ The `-list' is necessary since the `-sequence name' switch sets `-nol-
+ ist' whenever the former is encountered. Hence, this profile entry
+
+
+\e9 [1] Of course, it is much easier to simply use the built-in boolean
+ operation of _\bp_\bi_\bc_\bk to get the desired results:
+
+ pick -from frated -or -from fear -or -from freida -seq sgroup
+
+ and
+
+ pick -from frated -and -before friday -seq fred
+
+ do exactly the same thing as the five commands listed above. Hence, the
+ `-nozero' option to _\bp_\bi_\bc_\bk is only useful to manipulate existing se-
+ quences.
+
+
+\e9
+
+
+
+
+
+
+
+
+
+ -144-
+
+
+ makes _\bp_\bi_\bc_\bk define the "select" sequence and otherwise behave exactly as
+ if there was no profile entry at all.
+
+ _\bM_\ba_\br_\bk _\ba_\bn_\bd _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ The _\bm_\ba_\br_\bk command lets the user perform low-level manipulation of
+ sequences, and also provides a well-needed debug facility to the
+ implementors/developers/maintainers of _\bM_\bH (the _\bM_\bH-hacks). In the
+ future, a user-friendly "front-end" for _\bm_\ba_\br_\bk will probably be developed
+ to give the _\bM_\bH user a way to take better advantage of the underlying
+ facilities.
+
+ _\bP_\bu_\bb_\bl_\bi_\bc _\ba_\bn_\bd _\bP_\br_\bi_\bv_\ba_\bt_\be _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ There are two kinds of sequences: _\bp_\bu_\bb_\bl_\bi_\bc sequences, and _\bp_\br_\bi_\bv_\ba_\bt_\be
+ sequences. _\bP_\bu_\bb_\bl_\bi_\bc sequences of a folder are accessible to any _\bM_\bH user
+ that can read that folder and are kept in the .mh_sequences file in the
+ folder. _\bP_\br_\bi_\bv_\ba_\bt_\be sequences are accessible only to the _\bM_\bH user that
+ defined those sequences and are kept in the user's _\bM_\bH context file. By
+ default, _\bp_\bi_\bc_\bk (and _\bm_\ba_\br_\bk ) create _\bp_\bu_\bb_\bl_\bi_\bc sequences if the folder for
+ which the sequences are being defined is writable by the _\bM_\bH user. Oth-
+ erwise, _\bp_\br_\bi_\bv_\ba_\bt_\be sequences are created. This can be overridden with the
+ `-public' and `-private' switches.
+
+ _\bS_\be_\bq_\bu_\be_\bn_\bc_\be _\bN_\be_\bg_\ba_\bt_\bi_\bo_\bn
+
+ In addition to telling an _\bM_\bH command to use the messages in the
+ sequence "seen", as in
+
+ refile seen +old
+
+ it would be useful to be easily able to tell an _\bM_\bH command to use all
+ messages _\be_\bx_\bc_\be_\bp_\bt those in the sequence. One way of doing this would be
+ to use _\bm_\ba_\br_\bk and define the sequence explicitly, as in
+
+ mark -delete -zero seen -seq notseen
+
+ which, owing to _\bm_\ba_\br_\bk 's cryptic interpretation of `-delete' and `-zero',
+ defines the sequence "notseen" to be all messages not in the sequence
+ "seen". Naturally, anytime the sequence "seen" is changed, "notseen"
+ will have to be updated. Another way to achieve this is to define the
+ entry "Sequence-Negation:" in the .mh_profile. If the entry was
+
+ Sequence-Negation: not
+
+ then anytime an _\bM_\bH command was given "notseen" as a `msg' or `msgs'
+ argument, it would substitute all messages that are not a member of the
+ sequence "seen". That is,
+
+ refile notseen +new
+
+ does just that. The value of the "Sequence-Negation:" entry in the
+
+
+
+
+
+
+
+
+
+
+
+ -145-
+
+
+ profile can be any string. Hence, experienced users of _\bM_\bH do not use a
+ word, but rather a special character which their shell does not inter-
+ pret (users of the _\bC_\bS_\bh_\be_\bl_\bl use a single caret or circumflex (usually
+ shift-6), while users of the Bourne shell use an exclamation-mark).
+ This is because there is nothing to prevent a user of _\bM_\bH from defining a
+ sequence with this string as its prefix, if the string is nothing by
+ letters and digits. Obviously, this could lead to confusing behavior if
+ the "Sequence-Negation:" entry leads _\bM_\bH to believe that two sequences
+ are opposites by virtue of their names differing by the prefix string.
+
+ _\bT_\bh_\be _\bP_\br_\be_\bv_\bi_\bo_\bu_\bs _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ Many times users find themselves issuing a series of commands on
+ the same sequences of messages. If the user first defined these mes-
+ sages as a sequence, then considerable typing may be saved. If the user
+ doesn't have this foresight, _\bM_\bH provides a handy way of having _\bM_\bH
+ remember the `msgs' or `msg' argument last given to an _\bM_\bH command. If
+ the entry "Previous-Sequence:" is defined in the .mh_profile, then when
+ the command finishes, it will define the sequence(s) named in the value
+ of this entry as being exactly those messages that were specified.
+ Hence, a profile entry of
+
+ Previous-Sequence: pseq
+
+ directs any _\bM_\bH command that accepts a `msg' or `msgs' argument to define
+ the sequence "pseq" as those messages when it finishes. More than one
+ sequence name may be placed in this entry, separated with spaces. The
+ one disadvantage of this approach is that the _\bM_\bH progams have to update
+ the sequence information for the folder each time they run (although
+ most programs read this information, usually only _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk have to
+ write this information out).
+
+ _\bT_\bh_\be _\bU_\bn_\bs_\be_\be_\bn _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ Finally, some users like to distinguish between messages which have
+ been previously seen by them. Both _\bi_\bn_\bc and _\bs_\bh_\bo_\bw honorthe profile entry
+ "Unseen-Sequence" to support this activity. Whenever _\bi_\bn_\bc places new
+ messages in a folder, if the entry "Unseen-Sequence" is defined in the
+ .mh_profile, then when the command finishes, _\bi_\bn_\bc will add the new mes-
+ sages to the sequence(s) named in the value of this entry. Hence, a
+ profile entry of
+
+ Unseen-Sequence: unseen
+
+ directs _\bi_\bn_\bc to add new messages to the sequence "unseen". Unlike the
+ behavior of the "Previous-Sequence" entry in the profile however, the
+ sequence(s) will not be zero'd.
+
+ Similarly, whenever _\bs_\bh_\bo_\bw (or _\bn_\be_\bx_\bt or _\bp_\br_\be_\bv ) displays a message,
+ they remove those messages from any sequences named by the
+ "Unseen-Sequence" entry in the profile.
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+ -146-
+
+
+ _\bC_\bO_\bM_\bP_\bO_\bS_\bI_\bT_\bI_\bO_\bN _\bO_\bF _\bM_\bA_\bI_\bL
+
+ There are a number of interesting advanced facilities for the com-
+ position of outgoing mail.
+
+
+ _\bT_\bh_\be _\bD_\br_\ba_\bf_\bt _\bF_\bo_\bl_\bd_\be_\br
+
+ The _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl commands have two switches,
+ `-draftfolder +folder' and `-draftmessage msg'. If
+ `-draftfolder +folder' is used, these commands are directed to construct
+ a draft message in the indicated folder. (The "Draft-Folder:" profile
+ entry may be used to declare a default draft folder for use with _\bc_\bo_\bm_\bp,
+ _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl) If `-draftmessage msg' is not used, it defaults to
+ `new' (unless the user invokes _\bc_\bo_\bm_\bp with `-use', in which case the
+ default is `cur'). Hence, the user may have several message composi-
+ tions in progress simultaneously. Now, all of the _\bM_\bH tools are avail-
+ able on each of the user's message drafts (e.g., _\bs_\bh_\bo_\bw, _\bs_\bc_\ba_\bn, _\bp_\bi_\bc_\bk, and
+ so on). If the folder does not exist, the user is asked if it should be
+ created (just like with _\br_\be_\bf_\bi_\bl_\be ). Also, the last draft message the user
+ was composing is known as `cur' in the draft folder.
+
+ Furthermore, the _\bs_\be_\bn_\bd command has these switches as well. Hence,
+ from the shell, the user can send off whatever drafts desired using the
+ standard _\bM_\bH `msgs' convention with `-draftmessage msgs'. If no `msgs'
+ are given, it defaults to `cur'.
+
+ In addition, all five programs have a `-nodraftfolder' switch,
+ which undoes the last occurrence of `-draftfolder folder' (useful if the
+ latter occurs in the user's _\bM_\bH profile).
+
+ If the user does not give the `-draftfolder +folder' switch, then
+ all these commands act ``normally''. Note that the `-draft' switch to
+ _\bs_\be_\bn_\bd and _\bs_\bh_\bo_\bw still refers to the file called `draft' in the user's _\bM_\bH
+ directory. In the interests of economy of expression, when using _\bc_\bo_\bm_\bp
+ or _\bs_\be_\bn_\bd, the user needn't prefix the draft `msg' or `msgs' with `-draft-
+ message'. Both of these commands accept a `file' or `files' argument,
+ and they will, if given `-draftfolder +folder' treat these arguments as
+ `msg' or `msgs'.[2] Hence,
+
+ send -draftf +drafts first
+
+ is the same as
+
+ send -draftf +drafts -draftm first
+
+
+
+\e9 [2] This may appear to be inconsistent, at first, but it saves a lot
+ of typing.
+
+
+\e9
+
+
+
+
+
+
+
+
+
+ -147-
+
+
+ To make all this a bit more clear, here are some examples. Let's
+ assume that the following entries are in the _\bM_\bH profile:
+
+ Draft-Folder: +drafts
+ sendf: -draftfolder +drafts
+
+ Furthermore, let's assume that the program _\bs_\be_\bn_\bd_\bf is a (symbolic) link in
+ the user's $HOME/bin/ directory to _\bs_\be_\bn_\bd. Then, any of the commands
+
+ comp
+ dist
+ forw
+ repl
+
+ constructs the message draft in the `draft' folder using the `new' mes-
+ sage number. Furthermore, they each define `cur' in this folder to be
+ that message draft. If the user were to use the _\bq_\bu_\bi_\bt option at `What
+ now?' level, then later on, if no other draft composition was done, the
+ draft could be sent with simply
+
+ sendf
+
+ Or, if more editing was required, the draft could be edited with
+
+ comp -use
+
+ Instead, if other drafts had been composed in the meantime, so that this
+ message draft was no longer known as `cur' in the `draft' folder, then
+ the user could _\bs_\bc_\ba_\bn the folder to see which message draft in the folder
+ should be used for editing or sending. Clever users could even employ a
+ back-quoted _\bp_\bi_\bc_\bk to do the work:
+
+ comp -use `pick +drafts -to bug-mh`
+
+ or
+
+ sendf `pick +drafts -to bug-mh`
+
+ Note that in the _\bc_\bo_\bm_\bp example, the output from _\bp_\bi_\bc_\bk must resolve to a
+ single message draft (it makes no sense to talk about composing two or
+ more drafts with one invocation of _\bc_\bo_\bm_\bp ). In contrast, in the _\bs_\be_\bn_\bd
+ example, as many message drafts as desired can appear, since _\bs_\be_\bn_\bd
+ doesn't mind sending more than one draft at a time.
+
+ Note that the argument `-draftfolder +folder' is not included in
+ the profile entry for _\bs_\be_\bn_\bd, since when _\bc_\bo_\bm_\bp, et. al., invoke _\bs_\be_\bn_\bd
+ directly, they supply _\bs_\be_\bn_\bd with the UNIX pathname of the message draft,
+ and not a `draftmessage msg' argument. As far as _\bs_\be_\bn_\bd is concerned, a
+ _\bd_\br_\ba_\bf_\bt _\bf_\bo_\bl_\bd_\be_\br is not being used.
+
+ It is important to realize that _\bM_\bH treats the draft folder like a
+ standard _\bM_\bH folder in nearly all respects. There are two exceptions:
+
+
+
+
+
+
+
+
+
+
+
+ -148-
+
+
+ first\b\b\b\b\b_____, under no circumstancs will the `-draftfolder folder' switch cause
+ the named folder to become the current folder.[3] Second\b\b\b\b\b\b______, although con-
+ ceptually _\bs_\be_\bn_\bd deletes the `msgs' named in the draft folder, it does not
+ call `delete-prog' to perform the deletion.
+
+
+ _\bW_\bh_\ba_\bt _\bH_\ba_\bp_\bp_\be_\bn_\bs _\bi_\bf _\bt_\bh_\be _\bD_\br_\ba_\bf_\bt _\bE_\bx_\bi_\bs_\bt_\bs
+
+ When the _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl commands are invoked and the
+ draft you indicated already exists, these programs will prompt the user
+ for a reponse directing the program's action. The prompt is
+
+ Draft ``/usr/src/uci/mh/mhbox/draft'' exists (xx bytes).
+ Disposition?
+
+ The appropriate responses and their meanings are: replace\b\b\b\b\b\b\b_______: deletes the
+ draft and starts afresh; list\b\b\b\b____: lists the draft; refile\b\b\b\b\b\b______: files the draft
+ into a folder and starts afresh; and, quit\b\b\b\b____: leaves the draft intact and
+ exits. In addition, if you specified `-draftfolder folder' to the com-
+ mand, then one other response will be accepted: new\b\b\b___: finds a new draft,
+ just as if `-draftmessage new' had been given. Finally, the _\bc_\bo_\bm_\bp com-
+ mand will accept one more response: use\b\b\b___: re-uses the draft, just as if
+ `-use' had been given.
+
+
+ _\bT_\bh_\be _\bP_\bu_\bs_\bh _\bO_\bp_\bt_\bi_\bo_\bn _\ba_\bt _\bW_\bh_\ba_\bt _\bn_\bo_\bw? _\bL_\be_\bv_\be_\bl
+
+ The _\bp_\bu_\bs_\bh option to the "What now?" query in the _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw,
+ and _\br_\be_\bp_\bl commands, directs the command to _\bs_\be_\bn_\bd the draft in a special
+ detached fashion, with all normal output discarded. If _\bp_\bu_\bs_\bh is used and
+ the draft can not be sent, then _\bM_\bH will send the user a message, indi-
+ cating the name of the draft file, and an explanation of the failure.
+
+ The user can also invoke _\bs_\be_\bn_\bd from the shell with the `-push'
+ switch, which makes _\bs_\be_\bn_\bd act like it had been _\bp_\bu_\bs_\bh 'd by one of the com-
+ position commands.
+
+ By using _\bp_\bu_\bs_\bh, the user can free the shell to do other things,
+ because it appears to the shell that the _\bM_\bH command has finished. As a
+ result the shell will immediately prompt for another command, despite
+ the fact that the command is really still running. Note that if the
+
+
+\e9 [3] Obviously, if the folder appeared in the context of a standard
+ `+folder' argument to an _\bM_\bH program, as in
+
+ scan +drafts
+
+ it might become the current folder, depending on the context changes of
+ the _\bM_\bH program in question.
+
+
+\e9
+
+
+
+
+
+
+
+
+
+ -149-
+
+
+ user indicates that annotations are to be performed (with `-annotate' to
+ _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, or _\br_\be_\bp_\bl), the annotations will be performed after the mes-
+ sage has been successfully sent. This action will appear to occur asyn-
+ chronously. Obviously, if one of the messages that is to be annotated
+ is removed before the draft has been successfully sent, then when _\bM_\bH
+ tries to make the annotations, it won't be able to do so. In previous
+ versions of _\bM_\bH, this resulted in an error message mysteriously appearing
+ on the user's terminal. In _\bm_\bh._\b5 and later versions, in this special
+ circumstance, no error will be generated.
+
+ If send is _\bp_\bu_\bs_\bh 'd, then the `-forward' switch is examined if a
+ failure notice is generated. If given, then the draft is forwarded with
+ the failure notice sent to the user. This allows rapid _\bb_\bu_\br_\bs_\bt 'ing of
+ the failure notice to retrieve the unsent draft.
+
+
+ _\bO_\bp_\bt_\bi_\bo_\bn_\bs _\ba_\bt _\bW_\bh_\ba_\bt _\bn_\bo_\bw? _\bL_\be_\bv_\be_\bl
+
+ By default, the message composition programs call a program called
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw before the initial draft composition. The _\bM_\bH user can specify
+ any program for this. Following is some information about the default
+ "What now?" level. More detailed information can be found in the _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw (1) manual entry.
+
+ When using the _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl commands at "What now?"
+ level, the _\be_\bd_\bi_\bt, _\bl_\bi_\bs_\bt, _\bh_\be_\ba_\bd_\be_\br_\bs, _\br_\be_\bf_\bi_\bl_\be, and (for the _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl com-
+ mands) the _\bd_\bi_\bs_\bp_\bl_\ba_\by options will pass on any additional arguments given
+ them to whatever program they invoke.
+
+ In _\bm_\bh._\b1 (the original RAND _\bM_\bH ) and _\bm_\bh._\b2 (the first UCI version of
+ _\bM_\bH ), _\bM_\bH used a complicated heuristic to determine if the draft should
+ be deleted or preserved after an unsuccessful edit. In _\bm_\bh._\b3, _\bM_\bH was
+ changed to preserve the draft always, since _\bc_\bo_\bm_\bp, et. al., could usually
+ look at a draft, apply another set of heuristics, and decide if it was
+ important or not. With the notion of a _\bd_\br_\ba_\bf_\bt _\bf_\bo_\bl_\bd_\be_\br, in which one by
+ default gets a `new' message draft, the edit deletion/preservation algo-
+ rithm was re-implemented, to keep the draft folder from being cluttered
+ with aborted edits.
+
+ Also, note that by default, if the draft cannot be successfully
+ sent, these commands return to "What now?" level. But, when _\bp_\bu_\bs_\bh is
+ used, this does not happen (obviously). Hence, if these commands were
+ expected to annotate any messages, this will have to be done by hand,
+ later on, with the _\ba_\bn_\bn_\bo command.
+
+ Finally, if the `-delete' switch is not given to the _\bq_\bu_\bi_\bt option,
+ then these commands will inform the user of the name of the unsent draft
+ file.
+
+
+ _\bD_\bi_\bg_\be_\bs_\bt_\bs
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+ -150-
+
+
+ The _\bf_\bo_\br_\bw command has the beginnings of a digestifying facility,
+ with the `-digest list', `-issue number', and `-volume number' switches.
+
+ If _\bf_\bo_\br_\bw is given "list" to the `-digest' switch as the name of the dis-
+ cussion group, and the `-issue number' switch is not given, then _\bf_\bo_\br_\bw
+ looks for an entry in the user's _\bM_\bH context called "_\bd_\bi_\bg_\be_\bs_\bt-issue-list"
+ and increments its value to use as the issue number. Similarly, if the
+ `-volume number' switch is not given, then _\bf_\bo_\br_\bw looks for
+ "_\bd_\bi_\bg_\be_\bs_\bt-volume-list" (but does not increment its value) to use as the
+ volume number.
+
+ Having calculated the name of the digest and the volume and issue
+ numbers, _\bf_\bo_\br_\bw will now process the components file using the same format
+ string mechanism used by _\br_\be_\bp_\bl. The current `%'-escapes are:
+
+ _\be_\bs_\bc_\ba_\bp_\be _\bt_\by_\bp_\be _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn
+ digest string digest name
+ msg integer issue number
+ cur integer volume number
+
+ In addition, to capture the current date, any of the escapes valid for
+ _\bd_\bp (8) are also valid for _\bf_\bo_\br_\bw.
+
+ The default components file used by _\bf_\bo_\br_\bw when in digest mode is:
+
+ From: %{digest}-Request
+ To: %{digest} Distribution: dist-%{digest};
+ Subject: %{digest} Digest V%(cur) #%(msg)
+ Reply-To: %{digest}
+ --------
+ %{digest} Digest %(weekday{date}), %2(mday{date}) %(month{date}) 19%02(year{date})
+ Volume %(cur) : Issue %(msg)
+
+ Today's Topics:
+
+ Hence, when the `-digest' switch is present, the first step taken by
+ _\bf_\bo_\br_\bw is to expand the format strings in the component file. The next
+ step is to compose the draft using the standard digest encapsulation
+ algorithm (even putting an "End of list Digest" trailer in the draft).
+ Once the draft is composed by _\bf_\bo_\br_\bw, _\bf_\bo_\br_\bw writes out the volume and issue
+ profile entries for the digest, and then invokes the editor.
+
+ Naturally, when composing the draft, _\bf_\bo_\br_\bw will honor the
+ `-filter filterfile' switch, which is given to _\bm_\bh_\bl to filter each mes-
+ sage being forwarded prior to encapsulation in the draft. A good filter
+ file to use, which is called _\bm_\bh_\bl._\bd_\bi_\bg_\be_\bs_\bt, is:
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+ -151-
+
+
+ width=80,overflowoffset=10
+ leftadjust,compress,compwidth=9
+ Date:formatfield="%<(nodate{text})%{text}%|%(tws{text})%>"
+ From:
+ Subject:
+ :
+ body:nocomponent,overflowoffset=0,noleftadjust,nocompress
+
+
+
+\e9 _\bF_\bO_\bL_\bD_\bE_\bR _\bH_\bA_\bN_\bD_\bL_\bI_\bN_\bG
+
+ There are two interesting facilities for manipulating folders:
+ relative folder addressing, which allows a user to shorten the typing of
+ long folder names; and the folder-stack, which permits a user to keep a
+ stack of current folders.
+
+
+ _\bR_\be_\bl_\ba_\bt_\bi_\bv_\be _\bF_\bo_\bl_\bd_\be_\br _\bA_\bd_\bd_\br_\be_\bs_\bs_\bi_\bn_\bg
+
+ By default, when `+folder' is given, and the folder name is not
+ absolute (does not start with /, ./, or ../), then the UNIX pathname of
+ the folder is interpreted relative to the user's _\bM_\bH directory. Although
+ this mechanism works fine for top-level folders and their immediate
+ sub-folders, once the depth of the sub-folder tree grows, it becomes
+ rather unwieldly:
+
+ scan +mh/mh.4/draft/flames
+
+ is a lot of typing. _\bM_\bH can't do anything if the current folder was
+ "+inbox", but if the current folder was, say, "+mh/mh.4/draft", _\bM_\bH has a
+ short-hand notation to reference a sub-folder of the current folder.
+ Using the `@folder' notation, the _\bM_\bH user can direct any _\bM_\bH program
+ which expects a `+folder' argument to look for the folder relative to
+ the current folder instead of the user's _\bM_\bH directory. Hence, if the
+ current folder _\bw_\ba_\bs "+mh/mh.4/draft", then
+
+ scan @flames
+
+ would do the trick handily. In addition, if the current folder _\bw_\ba_\bs
+ "+mh/mh.4/draft",
+
+ scan @../pick
+
+ would scan the folder "+mh/mh.4/pick", since, in the UNIX fashion, it
+ references the folder "pick" which is a sub-folder of the folder that is
+ the parent of the current folder. Since most advanced _\bM_\bH users seem to
+ exhibit a large degree of locality in referencing folders when they pro-
+ cess mail, this convention should receive a wide range of uses.
+
+
+
+\e9
+
+
+
+
+
+
+
+
+
+ -152-
+
+
+ _\bT_\bh_\be _\bF_\bo_\bl_\bd_\be_\br-_\bS_\bt_\ba_\bc_\bk
+
+ The _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk mechanism in _\bM_\bH gives the _\bM_\bH user a facility simi-
+ lar to the _\bC_\bS_\bh_\be_\bl_\bl 's directory-stack. Simply put,
+
+ folder -push +foo
+
+ makes "foo" the current folder, saving the folder that was previously
+ the current folder on the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk. As expected,
+
+ folder -pop
+
+ takes the top of the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk and makes it the current folder. Each
+ of these switches lists the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk when they execute. It is sim-
+ ple to write a _\bp_\bu_\bs_\bh_\bf command as a shell script. It's one line:
+
+ exec folder -push $@
+
+ Probably a better way is to link _\bf_\bo_\bl_\bd_\be_\br to the $HOME/bin/ directory
+ under the name of _\bp_\bu_\bs_\bh_\bf and then add the entry
+
+ pushf: -push
+
+ to the .mh_profile.
+
+ The manual page for _\bf_\bo_\bl_\bd_\be_\br discusses the analogy between the _\bC_\bS_\bh_\be_\bl_\bl
+ directory stack commands and the switches in _\bf_\bo_\bl_\bd_\be_\br which manipulate the
+ _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk. The _\bf_\bo_\bl_\bd_\be_\br command uses the context entry `Folder-Stack:'
+ to keep track of the folders in the user's stack of folders.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+
+
+
+ Appendix A
+ _\bC_\bO_\bM_\bM_\bA_\bN_\bD _\bS_\bU_\bM_\bM_\bA_\bR_\bY
+
+
+
+\e9 ali [-alias aliasfile] [-list] [-nolist] [-normalize]
+ [-nonormalize] [-user] [-nouser] aliases ... [-help]
+
+ anno [+folder] [msgs] [-component field] [-inplace] [-noinplace]
+ [-date] [-nodate] [-text body] [-help]
+
+ bbc [bboards ...] [-topics] [-check] [-read] [-quiet] [-verbose]
+ [-archive] [-noarchive] [-protocol] [-noprotocol]
+ [-mshproc program] [switches for _\bm_\bs_\bh_\bp_\br_\bo_\bc] [-rcfile rcfile]
+ [-norcfile] [-file BBoardsfile] [-user BBoardsuser]
+ [-host host] [-help]
+
+ burst [+folder] [msgs] [-inplace] [-noinplace] [-quiet] [-noquiet]
+ [-verbose] [-noverbose] [-help]
+
+ comp [+folder] [msg] [-draftfolder +folder] [-draftmessage msg]
+ [-nodraftfolder] [-editor editor] [-noedit] [-file file]
+ [-form formfile] [-use] [-nouse] [-whatnowproc program]
+ [-nowhatnowproc] [-help]
+
+ dist [+folder] [msg] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-form formfile] [-inplace]
+ [-noinplace] [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ folder [+folder] [msg] [-all] [-fast] [-nofast] [-header]
+ [-noheader] [-pack] [-nopack] [-recurse] [-norecurse] [-total]
+ [-nototal] [-print] [-noprint] [-list] [-nolist] [-push]
+ [-pop] [-help]
+
+ folders
+
+ forw [+folder] [msgs] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-filter filterfile]
+ [-form formfile] [-format] [-noformat] [-inplace] [-noinplace]
+ [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ forw [+folder] [msgs] [-digest list] [-issue number]
+ [-volume number] [other switches for _\bf_\bo_\br_\bw] [-help]
+
+
+
+
+
+
+
+\e9 -153-
+
+
+
+
+
+
+
+
+
+
+
+
+ inc [+folder] [-audit audit-file] [-noaudit] [-changecur]
+ [-nochangecur] [-file name] [-form formatfile]
+ [-format string] [-silent] [-nosilent] [-truncate]
+ [-notruncate] [-width columns] [-host host] [-user user]
+ [-pack file] [-nopack] [-rpop] [-norpop] [-help]
+
+ mark [+folder] [msgs] [-sequence name ...] [-add] [-delete] [-list]
+ [-public] [-nopublic] [-zero] [-nozero] [-help]
+
+ /usr/local/lib/mh/mhl [-bell] [-nobell] [-clear] [-noclear]
+ [-folder +folder] [-form formfile] [-length lines]
+ [-width columns] [-moreproc program] [-nomoreproc] [files ...]
+ [-help]
+
+ mhmail [ addrs ... [-body text] [-cc addrs ...] [-from addr]
+ [-subject subject]] [-help]
+
+ mhpath [+folder] [msgs] [-help]
+
+ msgchk [-date] [-nodate] [-notify all/mail/nomail]
+ [-nonotify all/mail/nomail] [-host host] [-user user] [-rpop]
+ [-norpop] [users ...] [-help]
+
+ msh [-prompt string] [-scan] [-noscan] [-topcur] [-notopcur] [file]
+ [-help]
+
+ next [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ packf [+folder] [msgs] [-file name] [-help]
+
+ pick [+folder] [msgs] [-and ...] [-or ...] [-not ...]
+ [-lbrace ... -rbrace] [--component pattern] [-after date]
+ [-before date] [-datefield field] [-sequence name ...]
+ [-public] [-nopublic] [-zero] [-nozero] [-list] [-nolist]
+ [-help]
+
+ prev [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ prompter [-erase chr] [-kill chr] [-prepend] [-noprepend] [-rapid]
+ [-norapid] [-doteof] [-nodoteof] file [-help]
+
+ /usr/local/lib/mh/rcvstore [+folder] [-create] [-nocreate]
+ [-sequence name ...] [-public] [-nopublic] [-zero] [-nozero]
+ [-help]
+
+
+
+
+
+\e9
+\e9 -154-
+
+
+
+
+
+
+
+
+
+
+
+
+ refile [msgs] [-draft] [-link] [-nolink] [-preserve] [-nopreserve]
+ [-src +folder] [-file file] +folder ... [-help]
+
+ repl [+folder] [msg] [-annotate] [-noannotate] [-cc all/to/cc/me]
+ [-nocc all/to/cc/me] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-editor editor]
+ [-noedit] [-fcc +folder] [-filter filterfile] [-form formfile]
+ [-inplace] [-noinplace] [-query] [-noquery]
+ [-whatnowproc program] [-nowhatnowproc] [-width columns]
+ [-help]
+
+ rmf [+folder] [-interactive] [-nointeractive] [-help]
+
+ rmm [+folder] [msgs] [-help]
+
+ scan [+folder] [msgs] [-clear] [-noclear] [-form formatfile]
+ [-format string] [-header] [-noheader] [-width columns]
+ [-reverse] [-noreverse] [-file filename] [-help]
+
+ send [-alias aliasfile] [-draft] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-forward] [-noforward]
+ [-msgid] [-nomsgid] [-push] [-nopush] [-verbose] [-noverbose]
+ [-watch] [-nowatch] [-width columns] [file ...] [-help]
+
+ show [+folder] [msgs] [-draft] [-header] [-noheader]
+ [-showproc program] [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc]
+ [-help]
+
+ sortm [+folder] [msgs] [-datefield field] [-textfield field]
+ [-notextfield] [-limit days] [-nolimit] [-verbose]
+ [-noverbose] [-help]
+
+ vmh [-prompt string] [-vmhproc program] [-novmhproc]
+ [switches for _\bv_\bm_\bh_\bp_\br_\bo_\bc] [-help]
+
+ whatnow [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-prompt string] [file] [-help]
+
+ whom [-alias aliasfile] [-check] [-nocheck] [-draft]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [file] [-help]
+
+ /usr/local/lib/mh/ap [-form formatfile] [-format string]
+ [-normalize] [-nonormalize] [-width columns] addrs ...
+ [-help]
+
+
+
+
+
+\e9
+\e9 -155-
+
+
+
+
+
+
+
+
+
+
+
+
+ /usr/local/lib/mh/conflict [-mail name] [-search directory]
+ [aliasfiles ...] [-help]
+
+ /usr/local/lib/mh/dp [-form formatfile] [-format string]
+ [-width columns] dates ... [-help]
+
+ /usr/local/lib/mh/install-mh [-auto] [-compat]
+
+ /usr/local/lib/mh/post [-alias aliasfile] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-msgid] [-nomsgid]
+ [-verbose] [-noverbose] [-watch] [-nowatch] [-width columns]
+ file [-help]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 -156-
+
+
+
+
+
+
+
+
+
+
+
+
+ Appendix B
+ _\bM_\bE_\bS_\bS_\bA_\bG_\bE _\bN_\bA_\bM_\bE _\bB_\bN_\bF
+
+
+
+\e9
+ msgs := msgspec |
+ msgs msgspec
+
+ msgspec := msg |
+ msg-range |
+ msg-sequence |
+ user-defined-sequence
+
+ msg := msg-name |
+ <number>
+
+ msg-name := "first" |
+ "last" |
+ "cur" |
+ "." |
+ "next" |
+ "prev"
+
+ msg-range := msg"-"msg |
+ "all"
+
+ msg-sequence := msg":"signed-number
+
+ signed-number := "+"<number> |
+ "-"<number> |
+ <number>
+
+ user-defined-sequence := <alpha> |
+ <alpha><alphanumeric>*
+
+
+ Where <number> is a decimal number greater than zero.
+
+ Msg-range specifies all of the messages in the given range and must not
+ be empty.
+
+ Msg-sequence specifies up to <number> of messages, beginning with "msg"
+ (in the case of first, cur, next, or <number>), or ending with "msg" (in
+ the case of prev or last). +<number> forces "starting with msg", and
+ -<number> forces "ending with number". In all cases, "msg" must exist.
+
+ User-defined sequences are defined and manipulated with the _\bp_\bi_\bc_\bk and
+ _\bm_\ba_\br_\bk commands.
+
+
+
+\e9 -157-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bR_\bE_\bF_\bE_\bR_\bE_\bN_\bC_\bE_\bS
+
+
+
+ 1. Crocker, D. H., J. J. Vittal, K. T. Pogran, and D. A. Henderson,
+ Jr., "Standard for the Format of ARPA Network Text Messages,"
+ _\bR_\bF_\bC_\b7_\b3_\b3, November 1977.
+
+ 2. Thompson, K., and D. M. Ritchie, "The UNIX Time-sharing System,"
+ _\bC_\bo_\bm_\bm_\bu_\bn_\bi_\bc_\ba_\bt_\bi_\bo_\bn_\bs _\bo_\bf _\bt_\bh_\be _\bA_\bC_\bM, Vol. 17, July 1974, pp. 365-375.
+
+ 3. McCauley, E. J., and P. J. Drongowski, "KSOS-The Design of a Secure
+ Operating System," _\bA_\bF_\bI_\bP_\bS _\bC_\bo_\bn_\bf_\be_\br_\be_\bn_\bc_\be _\bP_\br_\bo_\bc_\be_\be_\bd_\bi_\bn_\bg_\bs, National Computer
+ Conference, Vol. 48, 1979, pp. 345-353.
+
+ 4. Crocker, David H., _\bF_\br_\ba_\bm_\be_\bw_\bo_\br_\bk _\ba_\bn_\bd _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs _\bo_\bf _\bt_\bh_\be "_\bM_\bS" _\bP_\be_\br_\bs_\bo_\bn_\ba_\bl _\bM_\be_\bs_\b-
+ _\bs_\ba_\bg_\be _\bS_\by_\bs_\bt_\be_\bm, The RAND Corporation, R-2134-ARPA, December 1977.
+
+ 5. Thompson, K., and D. M. Ritchie, _\bU_\bN_\bI_\bX _\bP_\br_\bo_\bg_\br_\ba_\bm_\bm_\be_\br'_\bs _\bM_\ba_\bn_\bu_\ba_\bl, 6th ed.,
+ Western Electric Company, May 1975 (available only to UNIX licen-
+ sees).
+
+ 6. Crocker, D. H., "Standard for the Format of ARPA Internet Text Mes-
+ sages," _\bR_\bF_\bC_\b8_\b2_\b2, August 1982.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 -158-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 -i-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bR_\bE_\bA_\bD _\bT_\bH_\bI_\bS
+
+
+
+
+ Although the _\bM_\bH system was originally developed by the RAND Cor-
+ poration, and is now in the public domain, the RAND Corporation assumes
+ no responsibility for _\bM_\bH or this particular version of _\bM_\bH.
+
+ In addition, the Regents of the University of California issue the
+ following disclaimer in regard to the UCI version of _\bM_\bH:
+
+ "Although each program has been tested by its contributor, no war-
+ ranty, express or implied, is made by the contributor or the
+ University of California, as to the accuracy and functioning of the
+ program and related program material, nor shall the fact of distri-
+ bution constitute any such warranty, and no responsibility is
+ assumed by the contributor or the University of California in con-
+ nection herewith."
+
+ This version of _\bM_\bH is in the public domain, and as such, there are
+ no real restrictions on its use. The _\bM_\bH source code and documentation
+ have no licensing restrictions whatsoever. As a courtesy, the authors
+ ask only that you provide appropriate credit to the RAND Corporation and
+ the University of California for having developed the software.
+
+ _\bM_\bH is a software package that is supported neither by the RAND Cor-
+ poration nor the University of California. However, since we do use the
+ software ourselves and plan to continue using (and improving) _\bM_\bH, bug
+ reports and their associated fixes should be reported back to us so that
+ we may include them in future releases. The current computer mailbox
+ for _\bM_\bH is Bug-MH@ICS.UCI.EDU (in the ARPA Internet), and
+ ...!ucbvax!ucivax!bug-mh (UUCP). Presently, there are two Internet dis-
+ cussion groups, MH-Users@ICS.UCI.EDU and MH-Workers@ICS.UCI.EDU.
+ MH-Workers is for people discussing code changes to _\bM_\bH. MH-Users is for
+ general discussion about how to use _\bM_\bH. MH-Users is bi-directionally
+ gatewayed into USENET as comp.mail.mh.
+
+ _\bH_\bO_\bW _\bT_\bO _\bG_\bE_\bT _\bM_\bH
+
+ Since you probably already have _\bM_\bH, you may not need to read this
+ unless you suspect you have an old version. There are two ways to get
+ the latest release:
+
+ 1. If you can FTP to the ARPA Internet, use anonymous FTP to
+ ics.uci.edu [128.195.1.1] and retrieve the file pub/mh/mh-6.7.tar.Z.
+ This is a tar image after being run through the compress program
+ (approximately 1.5MB). There should also be a README file in that
+ directory which tells what the current release of _\bM_\bH is, and how to get
+ updates.
+
+\e9
+\e9 -i-
+
+
+
+
+
+
+
+
+
+ -ii-
+
+
+ This tar file is also available on louie.udel.edu [128.175.1.3] in
+ portal/mh-6.7.tar.Z. You may also find MH on various other hosts; to
+ make sure you get the latest version and don't waste your time re-fixing
+ bugs, it's best to get it from either ics.uci.edu or louie.udel.edu.
+
+ 2. You can send $75 US to the address below. This covers the cost
+ of a 6250 BPI 9-track magtape, handling, and shipping. In addition,
+ you'll get a laser-printed hard-copy of the entire MH documentation set.
+ Be sure to include your USPS address with your check. Checks must be
+ drawn on U.S. funds and should be made payable to:
+
+ Regents of the University of California
+
+ The distribution address is:
+
+ Computing Support Group
+ Attn: MH distribution
+ Department of Information and Computer Science
+ University of California, Irvine
+ Irvine, CA 92717
+
+ 714/856-7554
+
+ If you just want the hard-copies of the documentation, you still
+ have to pay the $75. The tar image has the documentation source (the
+ manual is in roff format, but the rest are in TeX format). Postscript
+ formatted versions of the TeX papers are available, as are crude tty-
+ conversions of those papers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bF_\bO_\bR_\bE_\bW_\bO_\bR_\bD
+
+
+
+
+ This document describes the RAND _\bM_\bH Message Handling System. Its
+ primary purpose is to serve as a user's manual. It has been heavily
+ based on a previous version of the manual, prepared by Bruce Borden,
+ Stockton Gaines, and Norman Shapiro.
+
+ _\bM_\bH is a particularly novel system, and thus it is often more prone
+ to change than other pieces of production software. As such, some
+ specific points in this manual may not be correct in the future. In all
+ cases, the on-line sections of this manual, available through the
+ UNIX[1] _\bm_\ba_\bn command, should present the most current information.
+
+ When reading this document as a user's manual, certain sections are
+ more interesting than others. The Preface and Summary are not particu-
+ larly interesting to those interested in learning _\bM_\bH. The Introduction
+ is slightly more interesting, as it touches upon the organization of the
+ remainder of this document. The most useful sections are the Overview,
+ Tutorial, and Detailed Description. The Overview should be read by all
+ _\bM_\bH users, regardless of their expertise (beginning, novice, advanced, or
+ hacker). The Tutorial should be read by all beginning and novice _\bM_\bH
+ users, as it presents a nice description of the _\bM_\bH system. The Detailed
+ Description should be read by the day-to-day user of _\bM_\bH, as it spells
+ out all of the realities of the _\bM_\bH system. The Advanced Features sec-
+ tion discusses some powerful _\bM_\bH capabilities for advanced users. Appen-
+ dix A is particularly useful for novices, as it summarizes the invoca-
+ tion syntax of all the _\bM_\bH commands.
+
+ There are also several other documents which may be useful to you:
+ _\bT_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bT_\bu_\bt_\bo_\br_\bi_\ba_\bl, which is a tutorial for
+ _\bM_\bH; _\bT_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bT_\bh_\be _\bU_\bC_\bI _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bF_\ba_\bc_\bi_\bl_\bi_\bt_\by, which
+ describes the BBoards handling under _\bM_\bH; _\bM_\bH._\b5: _\bH_\bo_\bw _\bt_\bo _\bp_\br_\bo_\bc_\be_\bs_\bs _\b2_\b0_\b0 _\bm_\be_\bs_\b-
+ _\bs_\ba_\bg_\be_\bs _\ba _\bd_\ba_\by _\ba_\bn_\bd _\bs_\bt_\bi_\bl_\bl _\bg_\be_\bt _\bs_\bo_\bm_\be _\br_\be_\ba_\bl _\bw_\bo_\br_\bk _\bd_\bo_\bn_\be, which was presented at
+ the 1985 Summer Usenix Conference and Exhibition in Portland, Oregon;
+ _\bM_\bH: _\bA _\bM_\bu_\bl_\bt_\bi_\bf_\ba_\br_\bi_\bo_\bu_\bs _\bU_\bs_\be_\br _\bA_\bg_\be_\bn_\bt, which has been accepted for publication
+ by Computer Networks; _\bM_\bZ_\bn_\be_\bt: _\bM_\ba_\bi_\bl _\bS_\be_\br_\bv_\bi_\bc_\be _\bf_\bo_\br _\bP_\be_\br_\bs_\bo_\bn_\ba_\bl _\bM_\bi_\bc_\br_\bo-_\bC_\bo_\bm_\bp_\bu_\bt_\be_\br
+ _\bS_\by_\bs_\bt_\be_\bm_\bs, which was presented at the First International Symposium on
+ Computer Message Systems in Nottingham, U.K.; and, _\bD_\be_\bs_\bi_\bg_\bn _\bo_\bf _\bt_\bh_\be _\bT_\bT_\bI
+ _\bP_\br_\bo_\bt_\bo_\bt_\by_\bp_\be _\bT_\br_\bu_\bs_\bt_\be_\bd _\bM_\ba_\bi_\bl _\bA_\bg_\be_\bn_\bt, which describes a proprietary "trusted"
+ mail system built on _\bM_\bH. There are also documents, mostly specific to
+ U.C. Irvine which you may find interesting: _\bM_\bH _\bf_\bo_\br _\bB_\be_\bg_\bi_\bn_\bn_\be_\br_\bs, and _\bM_\bH _\bf_\bo_\br
+ _\bM_\bM _\bU_\bs_\be_\br_\bs. All of these documents exist in the _\bm_\bh._\b6 distribution sent to
+ your site. There's also a document, _\bC_\bh_\ba_\bn_\bg_\be_\bs _\bt_\bo _\bt_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\b-
+ _\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bM_\bH._\b6, which describes user-visible changes made to _\bM_\bH
+
+
+\e9 [1] UNIX is a trademark of AT&T Bell Laboratories.
+
+
+\e9 -iii-
+
+
+
+
+
+
+
+
+
+ -iv-
+
+
+ since the last major release.
+
+ This manual is very large, as it describes a large, powerful system
+ in gruesome detail. The important thing to remember is:
+
+
+ _\bD_\bO_\bN'_\bT _\bP_\bA_\bN_\bI_\bC[_\b2]
+
+
+ As explained in the tutorial, you really need to know only 5 commands to
+ handle most of your mail.
+
+ Very advanced users may wish to consult _\bT_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\b-
+ _\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be, which is also present in the _\bm_\bh._\b6
+ distribution sent to your site.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9 [2] Note the large, _\bf_\br_\bi_\be_\bn_\bd_\bl_\by letters.
+
+
+\e9
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bA_\bC_\bK_\bN_\bO_\bW_\bL_\bE_\bD_\bG_\bM_\bE_\bN_\bT_\bS
+
+
+
+
+ The _\bM_\bH system described herein is based on the original RAND _\bM_\bH
+ system. It has been extensively developed (perhaps too much so) by
+ Marshall T. Rose and John L. Romine at the University of California,
+ Irvine. Einar A. Stefferud, Jerry N. Sweet, and Terry P. Domae provided
+ numerous suggestions to improve the UCI version of _\bM_\bH. Of course, a
+ large number of people have helped _\bM_\bH along. The list of ``_\bM_\bH immor-
+ tals'' is too long to list here. However, Van Jacobson deserves a spe-
+ cial acknowledgement for his tireless work in improving the performance
+ of _\bM_\bH. Some programs have been speeded-up by a factor of 10 or 20. All
+ of users of _\bM_\bH, everywhere, owe a special thanks to Van. For this
+ release, numerous _\bM_\bH-_\bW_\bo_\br_\bk_\be_\br_\bs sent in fixes and other changes. A handful
+ of courageous _\bM_\bH-_\bW_\bo_\br_\bk_\be_\br_\bs volunteered to beta-test these changes; their
+ help is particularly appreciated.
+
+ This manual is based on the original _\bM_\bH manual written at RAND by
+ Bruce Borden, Stockton Gaines, and Norman Shapiro.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 -v-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bP_\bR_\bE_\bF_\bA_\bC_\bE
+
+
+
+
+ This report describes a system for dealing with messages transmit-
+ ted on a computer. Such messages might originate with other users of
+ the same computer or might come from an outside source through a network
+ to which the user's computer is connected. Such computer-based message
+ systems are becoming increasingly widely used, both within and outside
+ the Department of Defense.
+
+ The message handling system _\bM_\bH was developed for two reasons. One
+ was to investigate some research ideas concerning how a message system
+ might take advantage of the architecture of the UNIX time-sharing
+ operating system for Digital Equipment Corporation PDP-11 and VAX com-
+ puters, and the special features of UNIX's command-level interface with
+ the user (the "shell"). The other reason was to provide a better and
+ more adaptable base than that of conventional designs on which to build
+ a command and control message system. The effort has succeeded in both
+ regards, although this report mainly describes the message system itself
+ and how it fits in with UNIX.
+
+ The present report should be of interest to three groups of
+ readers. First, it is a complete reference manual for the users of _\bM_\bH.
+ Second, it should be of interest to those who have a general knowledge
+ of computer-based message systems, both in civilian and military appli-
+ cations. Finally, it should be of interest to those who build large
+ subsystems that interface with users, since it illustrates a new
+ approach to such interfaces.
+
+ The original _\bM_\bH system was developed by Bruce Borden, using an
+ approach suggested by Stockton Gaines and Norman Shapiro. Valuable
+ assistance was provided by Phyllis Kantar in the later stages of the
+ system's implementation. Several colleagues contributed to the ideas
+ included in this system, particularly Robert Anderson and David Crocker.
+ In addition, valuable experience in message systems, and a valuable
+ source of ideas, was available to us in the form of a previous message
+ system for UNIX called MS, designed at RAND by David Crocker.
+
+ This report was originally prepared as part of the RAND project
+ entitled "Data Automation Research", sponsored by Project AIR FORCE.
+
+
+
+
+
+
+
+
+
+\e9
+\e9 -vi-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bS_\bU_\bM_\bM_\bA_\bR_\bY
+
+
+
+
+ Electronic communication of text messages is becoming commonplace.
+ Computer-based message systems-software packages that provide tools for
+ dealing with messages-are used in many contexts. In particular, message
+ systems are becoming increasingly important in command and control and
+ intelligence applications.
+
+ This report describes a message handling system called _\bM_\bH. This
+ system provides the user with tools to compose, send, receive, store,
+ retrieve, forward, and reply to messages. _\bM_\bH has been built on the UNIX
+ time-sharing system, a popular operating system developed for the DEC
+ PDP-11 and VAX classes of computers.
+
+ A complete description of _\bM_\bH is given for users of the system. For
+ those who do not intend to use the system, this description gives a gen-
+ eral idea of what a message system is like. The system involves some
+ new ideas about how large subsystems can be constructed.
+
+ The interesting and unusual features of _\bM_\bH include the following:
+ The user command interface to _\bM_\bH is the UNIX "shell" (the standard UNIX
+ command interpreter). Each separable component of message handling,
+ such as message composition or message display, is a separate command.
+ Each program is driven from and updates a private user environment,
+ which is stored as a file between program invocations. This private
+ environment also contains information to "custom tailor" _\bM_\bH to the
+ individual's tastes. _\bM_\bH stores each message as a separate file under
+ UNIX, and it utilizes the tree-structured UNIX file system to organize
+ groups of files within separate directories or "folders". All of the
+ UNIX facilities for dealing with files and directories, such as renam-
+ ing, copying, deleting, cataloging, off-line printing, etc., are appli-
+ cable to messages and directories of messages (folders). Thus, impor-
+ tant capabilities needed in a message system are available in _\bM_\bH without
+ the need (often seen in other message systems) for code that duplicates
+ the facilities of the supporting operating system. It also allows users
+ familiar with the shell to use _\bM_\bH with minimal effort.
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9 -vii-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bC_\bO_\bN_\bT_\bE_\bN_\bT_\bS
+
+
+
+
+ READ THIS ......................................................... i
+
+ FOREWORD .......................................................... iii
+
+ ACKNOWLEDGMENTS ................................................... v
+
+ PREFACE ........................................................... vi
+
+ SUMMARY ........................................................... vii
+
+ Section
+
+ 1. INTRODUCTION ............................................... 1
+
+ 2. OVERVIEW ................................................... 4
+
+ 3. TUTORIAL ................................................... 7
+
+ 4. DETAILED DESCRIPTION ....................................... 10
+\e9 THE USER PROFILE ............................................. 10
+\e9 MESSAGE NAMING ............................................... 13
+\e9 OTHER MH CONVENTIONS ......................................... 14
+\e9 MH COMMANDS .................................................. 16
+ ALI ....................................................... 17
+ ANNO ...................................................... 19
+ BBC ....................................................... 21
+ BBOARDS ................................................... 24
+ BURST ..................................................... 26
+ COMP ...................................................... 28
+ DIST ...................................................... 30
+ FOLDER .................................................... 33
+ FORW ...................................................... 36
+ INC ....................................................... 40
+ MARK ...................................................... 43
+ MHL ....................................................... 45
+ MHMAIL .................................................... 50
+ MHOOK ..................................................... 52
+ MHPATH .................................................... 54
+ MSGCHK .................................................... 57
+ MSH ....................................................... 59
+ NEXT ...................................................... 63
+ PACKF ..................................................... 64
+ PICK ...................................................... 65
+ PREV ...................................................... 69
+ PROMPTER .................................................. 70
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RCVSTORE .................................................. 73
+ REFILE .................................................... 75
+ REPL ...................................................... 77
+ RMF ....................................................... 81
+ RMM ....................................................... 83
+ SCAN ...................................................... 85
+ SEND ...................................................... 88
+ SHOW ...................................................... 91
+ SORTM ..................................................... 94
+ VMH ....................................................... 96
+ WHATNOW ................................................... 98
+ WHOM ...................................................... 100
+\e9 MORE DETAILS ................................................. 102
+ MH-ALIAS .................................................. 103
+ MH-FORMAT ................................................. 107
+ MH-MAIL ................................................... 116
+ MH-PROFILE ................................................ 120
+ MH-SEQUENCE ............................................... 128
+ AP ........................................................ 132
+ CONFLICT .................................................. 134
+ DP ........................................................ 136
+ INSTALL-MH ................................................ 138
+ POST ...................................................... 139
+
+ 5. REPORTING PROBLEMS ......................................... 141
+
+ 6. ADVANCED FEATURES .......................................... 142
+\e9 USER-DEFINED SEQUENCES ....................................... 142
+ Pick and User-Defined Sequences ........................... 142
+ Mark and User-Defined Sequences ........................... 144
+ Public and Private User-Defined Sequences ................. 144
+ Sequence Negation ......................................... 144
+ The Previous Sequence ..................................... 145
+ The Unseen Sequence ....................................... 145
+\e9 COMPOSITION OF MAIL .......................................... 146
+ The Draft Folder .......................................... 146
+ What Happens if the Draft Exists .......................... 148
+ The Push Option at What now? Level ........................ 148
+ Options at What now? Level ................................ 149
+ Digests ................................................... 150
+\e9 FOLDER HANDLING .............................................. 151
+ Relative Folder Addressing ................................ 151
+ The Folder-Stack .......................................... 152
+
+ Appendix
+ A. Command Summary ............................................ 153
+ B. Message Name BNF ........................................... 157
+
+ REFERENCES ........................................................ 158
+\e9
+\e9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9 THE RAND MH
+
+\e9 MESSAGE HANDLING
+
+\e9 SYSTEM:
+
+\e9 USER'S MANUAL
+
+
+
+
+
+
+ UCI Version
+
+
+
+
+
+ Marshall T. Rose
+
+ John L. Romine
+
+
+
+
+ Based on the original manual by
+
+ Borden, Gaines, and Shapiro
+
+
+
+
+
+
+
+ February 1, 1991
+
+ 6.7.1a #6[UCI]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\e9
+\e9
+
+
+
+
+
--- /dev/null
+
+
+
+
+
+
+
+
+ _\bd_\bi_\bs_\bc_\ba_\br_\bd _\bt_\bh_\bi_\bs _\bp_\ba_\bg_\be
+
+
+
+
+ The RAND _\bM_\bH
+ Message Handling System:
+ User's Manual
+
+ UCI Version
+
+
+ December 14, 1992
+ 6.6 #1[UCI]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b1. _\bI_\bN_\bT_\bR_\bO_\bD_\bU_\bC_\bT_\bI_\bO_\bN
+
+
+
+
+
+ Although people can travel cross-country in hours and can reach
+ others by telephone in seconds, communications still depend heavily upon
+ paper, most of which is distributed through the mails.
+
+ There are several major reasons for this continued dependence on
+ written documents. First, a written document may be proofread and
+ corrected prior to its distribution, giving the author complete control
+ over his words. Thus, a written document is better than a telephone
+ conversation in this respect. Second, a carefully written document is
+ far less likely to be misinterpreted or poorly translated than a phone
+ conversation. Third, a signature offers reasonable verification of
+ authorship, which cannot be provided with media such as telegrams.
+
+ However, the need for fast\b\b\b\b____, accurate, and reproducible document
+ distribution is obvious. One solution in widespread use is the telefax.
+ Another that is rapidly gaining popularity is electronic mail. Elec-
+ tronic mail is similar to telefax in that the data to be sent are digi-
+ tized, transmitted via phone lines, and turned back into a document at
+ the receiver. The advantage of electronic mail is in its compression
+ factor. Whereas a telefax must scan a page in very fine lines and send
+ all of the black and white information, electronic mail assigns charac-
+ ters fixed codes which can be transmitted as a few bits of information.
+ Telefax presently has the advantage of being able to transmit an arbi-
+ trary page, including pictures, but electronic mail is beginning to deal
+ with this problem. Electronic mail also integrates well with current
+ directions in office automation, allowing documents prepared with
+ sophisticated equipment at one site to be quickly transferred and
+ printed at another site.
+
+ Currently, most electronic mail is intraorganizational, with mail
+ transfer remaining within one computer. As computer networking becomes
+ more common, however, it is becoming more feasible to communicate with
+ anyone whose computer can be linked to your own via a network.
+
+ The pioneering efforts on general-purpose electronic mail were by
+ organizations using the DoD ARPAnet[1]. The capability to send messages
+ between computers existed before the ARPAnet was developed, but it was
+ used only in limited ways. With the advent of the ARPAnet, tools began
+ to be developed which made it convenient for individuals or organiza-
+ tions to distribute messages over broad geographic areas, using diverse
+ computer facilities. The interest and activity in message systems has
+ now reached such proportions that steps have been taken within the DoD
+ to coordinate and unify the development of military message systems.
+ The use of electronic mail is expected to increase dramatically in the
+ next few years. The utility of such systems in the command and control
+ and intelligence environments is clear, and applications in these areas
+
+
+
+
+
+
+
+
+
+
+
+ -2-
+
+
+ will probably lead the way. As the costs for sending and handling elec-
+ tronic messages continue their rapid decrease, such uses can be expected
+ to spread rapidly into other areas and, of course, will not be limited
+ to the DoD.
+
+ A message system provides tools that help users (individuals or
+ organizations) deal with messages in various ways. Messages must be
+ composed, sent, received, stored, retrieved, forwarded, and replied to.
+ Today's best interactive computer systems provide a variety of word-
+ processing and information handling capabilities. The message handling
+ facilities should be well integrated with the rest of the system, so as
+ to be a graceful extension of overall system capability.
+
+ The message system described in this report, _\bM_\bH, provides most of
+ the features that can be found in other message systems and also incor-
+ porates some new ones. It has been built on the UNIX time-sharing sys-
+ tem[2], a popular operating system for the DEC PDP-11[1] and VAX-11
+ classes of computers. A "secure" operating system similar to UNIX is
+ currently being developed[3], and that system will also run _\bM_\bH.
+
+ This report provides a complete description of _\bM_\bH and thus may
+ serve as a user's manual, although parts of the report will be of
+ interest to non-users as well. Sections 2 and 3, the Overview and
+ Tutorial, present the key ideas of _\bM_\bH and will give those not familiar
+ with message systems an idea of what such systems are like.
+
+ _\bM_\bH consists of a set of commands which use some special files and
+ conventions. The final section is divided into three parts. The first
+ part covers the information a user needs to know in addition to the com-
+ mands. Then, each of the _\bM_\bH commands is described in detail. Finally,
+ other obscure details are revealed. A summary of the commands is given
+ in Appendix A, and the syntax of message sequences is given in Appendix
+ B.
+
+ A novel approach has been taken in the design of _\bM_\bH. Instead of
+ creating a large subsystem that appears as a single command to the user
+ (such as MS[4]), _\bM_\bH is a collection of separate commands which are run
+ as separate programs. The file and directory system of UNIX are used
+ directly. Messages are stored as individual files (datasets), and col-
+ lections of them are grouped into directories. In contrast, most other
+ message systems store messages in a complicated data structure within a
+ monolithic file. With the _\bM_\bH approach, UNIX commands can be interleaved
+ with commands invoking the functions of the message handler. Con-
+ versely, existing UNIX commands can be used in connection with messages.
+ For example, all the usual UNIX editing, text-formatting, and printing
+ facilities can be applied directly to individual messages. MH, there-
+ fore, consists of a relatively small amount of new code; it makes exten-
+ sive use of other UNIX software to provide the capabilities found in
+
+
+ [1] PDP and VAX are trademarks of Digital Equipment Corporation.
+
+
+
+
+
+
+
+
+
+
+
+
+ -3-
+
+
+ other message systems.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b2. _\bO_\bV_\bE_\bR_\bV_\bI_\bE_\bW
+
+
+
+
+
+ There are three main aspects of _\bM_\bH : the way messages are
+ stored (the message database), the user's profile (which directs how
+ certain actions of the message handler take place), and the commands for
+ dealing with messages.
+
+ Under _\bM_\bH, each message is stored as a separate file. A user can
+ take any action with a message that he could with an ordinary file in
+ UNIX. A UNIX directory in which messages are stored is called a folder.
+ Each folder contains some standard entries to support the message-
+ handling functions. The messages in a folder have numerical names.
+ These folders (directories) are entries in a particular directory path,
+ described in the user profile, through which _\bM_\bH can find message fold-
+ ers. Using the UNIX "link" facility, it is possible for one copy of a
+ message to be "filed" in more than one folder, providing a message index
+ facility. Also, using the UNIX tree-structured file system, it is pos-
+ sible to have a folder within a folder, nested arbitrarily deep, and
+ have the full power of the _\bM_\bH commands available.
+
+ Each user of _\bM_\bH has a user profile, a file in his $HOME (initial
+ login) directory called ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be. This profile contains several
+ pieces of information used by the _\bM_\bH commands: a path name to the direc-
+ tory that contains the message folders and parameters that tailor _\bM_\bH
+ commands to the individual user's requirements. There is also another
+ file, called the user context, which contains information concerning
+ which folder the user last referenced (the "current" folder). It also
+ contains most of the necessary state information concerning how the user
+ is dealing with his messages, enabling _\bM_\bH to be implemented as a set of
+ individual UNIX commands, in contrast to the usual approach of a monol-
+ ithic subsystem.
+
+ In _\bM_\bH, incoming mail is appended to the end of a file in a system
+ spooling area for the user. This area is called the mail drop direc-
+ tory, and the file is called the user's mail drop. Normally when the
+ user logins in, s/he is informed of new mail (or the _\bM_\bH program _\bm_\bs_\bg_\bc_\bh_\bk
+ may be run). The user adds the new messages to his/her collection of _\bM_\bH
+ messages by invoking the command _\bi_\bn_\bc. The _\bi_\bn_\bc (incorporate) command
+ adds the new messages to a folder called "inbox", assigning them names
+ which are consecutive integers starting with the next highest integer
+ available in inbox. _\bi_\bn_\bc also produces a _\bs_\bc_\ba_\bn summary of the messages
+ thus incorporated. A folder can be compacted into a single file, for
+ easy storage, by using the _\bp_\ba_\bc_\bk_\bf command. Also, messages within a
+ folder can be sorted by date and time with the _\bs_\bo_\br_\bt_\bm command.
+
+
+ There are four commands for examining the messages in a folder:
+ _\bs_\bh_\bo_\bw, _\bp_\br_\be_\bv, _\bn_\be_\bx_\bt, and _\bs_\bc_\ba_\bn. The _\bs_\bh_\bo_\bw command displays a message in a
+
+ -4-
+
+
+
+
+
+
+
+
+
+ -5-
+
+
+ folder, _\bp_\br_\be_\bv displays the message preceding the current message, and
+ _\bn_\be_\bx_\bt displays the message following the current message. _\bM_\bH lets the
+ user choose the program that displays individual messages. A special
+ program, _\bm_\bh_\bl, can be used to display messages according to the user's
+ preferences. The _\bs_\bc_\ba_\bn command summarizes the messages in a folder, nor-
+ mally producing one line per message, showing who the message is from,
+ the date, the subject, etc.
+
+ The user may move a message from one folder to another with the
+ command _\br_\be_\bf_\bi_\bl_\be. Messages may be removed from a folder by means of the
+ command _\br_\bm_\bm. In addition, a user may query what the current folder is
+ and may specify that a new folder become the current folder, through the
+ command _\bf_\bo_\bl_\bd_\be_\br. All folders may be summarized with the _\bf_\bo_\bl_\bd_\be_\br_\bs command.
+ A message folder (or subfolder) may be removed by means of the command
+ _\br_\bm_\bf.
+
+ A set of messages based on content may be selected by use of the
+ command _\bp_\bi_\bc_\bk. This command searches through messages in a folder and
+ selects those that match a given set of criteria. These messages are
+ then bound to a "sequence" name for use with other _\bM_\bH commands. The
+ _\bm_\ba_\br_\bk command manipulates these sequences.
+
+ There are five commands enabling the user to create new messages
+ and send them: _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, _\br_\be_\bp_\bl, and _\bs_\be_\bn_\bd. The _\bc_\bo_\bm_\bp command pro-
+ vides the facility for the user to compose a new message; _\bd_\bi_\bs_\bt redistri-
+ butes mail to additional addressees; _\bf_\bo_\br_\bw enables the user to forward
+ messages; and _\br_\be_\bp_\bl facilitates the generation of a reply to an incoming
+ message. The last three commands may optionally annotate the original
+ message. Messages may be arbitrarily annotated with the _\ba_\bn_\bn_\bo command.
+ Once a draft has been constructed by one of the four above composition
+ programs, a user-specifiable program is run to query the user as to the
+ disposition of the draft prior to sending. _\bM_\bH provides the simple _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw program to start users off. If a message is not sent directly by
+ one of these commands, it may be sent at a later time using the command
+ _\bs_\be_\bn_\bd. _\bM_\bH allows the use of any UNIX editor when composing a message.
+ For rapid entry, a special editor, _\bp_\br_\bo_\bm_\bp_\bt_\be_\br, is provided. For programs,
+ a special mail-sending program, _\bm_\bh_\bm_\ba_\bi_\bl, is provided.
+
+ _\bM_\bH supports a personal aliasing facility which gives users the
+ capability to considerably shorten address typein and use meaningful
+ names for addresses. The _\ba_\bl_\bi program can be used to query _\bM_\bH as to the
+ expansion of a list of aliases. After composing a message, but prior to
+ sending, the _\bw_\bh_\bo_\bm command can be used to determine exactly who a message
+ would go to.
+
+ _\bM_\bH provides a natural interface for telling the user's shell the
+ names of _\bM_\bH messages and folders. The _\bm_\bh_\bp_\ba_\bt_\bh program achieves this
+ capability.
+
+ Finally, _\bM_\bH supports the UCI BBoards facility. _\bb_\bb_\bc can be used to
+ query the status of a group of BBoards, while _\bm_\bs_\bh can be used to read
+ them. The _\bb_\bu_\br_\bs_\bt command can be used to "shred" digests of messages into
+
+
+
+
+
+
+
+
+
+
+
+ -6-
+
+
+ individual messages.
+
+ All of the elements summarized above are described in more detail
+ in the following sections. Many of the normal facilities of UNIX pro-
+ vide additional capabilities for dealing with messages in various ways.
+ For example, it is possible to print messages on the line-printer
+ without requiring any additional code within _\bM_\bH . Using standard UNIX
+ facilities, any terminal output can be redirected to a file for repeated
+ or future viewing. In general, the flexibility and capabilities of the
+ UNIX interface with the user are preserved as a result of the integra-
+ tion of _\bM_\bH into the UNIX structure.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b3. _\bT_\bU_\bT_\bO_\bR_\bI_\bA_\bL
+
+
+
+
+
+ This tutorial provides a brief introduction to the _\bM_\bH commands. It
+ should be sufficient to allow the user to read his mail, do some simple
+ manipulations of it, and create and send messages.
+
+ A message has two major pieces: the header and the body. The body
+ consists of the text of the message (whatever you care to type in). It
+ follows the header and is separated from it by an empty line. (When you
+ compose a message, the form that appears on your terminal shows a line
+ of dashes after the header. This is for convenience and is replaced by
+ an empty line when the message is sent.) The header is composed of
+ several components, including the subject of the message and the person
+ to whom it is addressed. Each component starts with a name and a colon;
+ components must not start with a blank. The text of the component may
+ take more than one line, but each continuation line must start with a
+ blank. Messages typically have "To:", "cc:", and "Subject:" components.
+ When composing a message, you should include the "To:" and "Subject:"
+ components; the "cc:" (for people you want to send copies to) is not
+ necessary.
+
+ The basic _\bM_\bH commands are _\bi_\bn_\bc, _\bs_\bc_\ba_\bn, _\bs_\bh_\bo_\bw, _\bn_\be_\bx_\bt, _\bp_\br_\be_\bv, _\br_\bm_\bm, _\bc_\bo_\bm_\bp,
+ and _\br_\be_\bp_\bl. These are described below.
+
+ _\bi_\bn_\bc
+
+ When you get the message "You have mail", type the command _\bi_\bn_\bc.
+ You will get a "scan listing" such as:
+
+ 7+ 7/13 Cas revival of measurement work
+ 8 10/ 9 Norm NBS people and publications
+ 9 11/26 To:norm question <<Are there any functions
+
+ This shows the messages you received since the last time you exe-
+ cuted this command (_\bi_\bn_\bc adds these new messages to your inbox folder).
+ You can see this list again, plus a list of any other messages you have,
+ by using the _\bs_\bc_\ba_\bn command.
+
+ _\bs_\bc_\ba_\bn
+
+ The scan listing shows the message number, followed by the date and
+ the sender. (If you are the sender, the addressee in the "To:" com-
+ ponent is displayed. You may send yourself a message by including your
+ name among the "To:" or "cc:" addressees.) It also shows the message's
+ subject; if the subject is short, the first part of the body of the mes-
+ sage is included after the characters <<.
+
+
+
+ -7-
+
+
+
+
+
+
+
+
+
+ -8-
+
+
+ _\bs_\bh_\bo_\bw
+
+ This command shows the current message, that is, the first one of
+ the new messages after an _\bi_\bn_\bc. If the message is not specified by name
+ (number), it is generally the last message referred to by an _\bM_\bH command.
+ For example,
+
+
+ _\bs_\bh_\bo_\bw 5 will show message 5.
+
+
+ You can use the show command to copy a message or print a message.
+
+
+ _\bs_\bh_\bo_\bw > _\bx will copy the message to file x.
+ _\bs_\bh_\bo_\bw | _\bl_\bp_\br will print the message, using the _\bl_\bp_\br command.
+ _\bn_\be_\bx_\bt will show the message that follows the current message.
+ _\bp_\br_\be_\bv will show the message previous to the current message.
+ _\br_\bm_\bm will remove the current message.
+ _\br_\bm_\bm _\b3 will remove message 3.
+
+
+ _\bc_\bo_\bm_\bp
+
+ The _\bc_\bo_\bm_\bp command puts you in the editor to write or edit a message.
+ Fill in or delete the "To:", "cc:", and "Subject:" fields, as appropri-
+ ate, and type the body of the message. Then exit normally from the edi-
+ tor. You will be asked "What now?". Type a carriage return to see the
+ options. Typing send will cause the message to be sent; typing quit
+ will cause an exit from _\bc_\bo_\bm_\bp, with the message draft saved.
+
+ If you quit without sending the message, it will be saved in a file
+ called <name>/Mail/draft (where <name> is your $HOME directory). You
+ can resume editing the message later with "comp -use"; or you can send
+ the message later, using the _\bs_\be_\bn_\bd command.
+
+ _\bc_\bo_\bm_\bp -_\be_\bd_\bi_\bt_\bo_\br _\bp_\br_\bo_\bm_\bp_\bt_\be_\br
+
+ This command uses a different editor and is useful for preparing
+ "quick and dirty" messages. It prompts you for each component of the
+ header. Type the information for that component, or type a carriage
+ return to omit the component. After that, type the body of the message.
+ Backspacing is the only form of editing allowed with this editor. When
+ the body is complete, type a carriage return followed by <EOT> (usually
+ <CTRL-D>). This completes the initial preparation of the message; from
+ then on, use the same procedures as with _\bc_\bo_\bm_\bp (above).
+
+ _\br_\be_\bp_\bl
+ _\br_\be_\bp_\bl n
+
+ This command makes up an initial message form with a header that is
+ appropriate for replying to an existing message. The message being
+
+
+
+
+
+
+
+
+
+
+
+ -9-
+
+
+ answered is the current message if no message number is mentioned, or n
+ if a number is specified. After the header is completed, you can finish
+ the message as in _\bc_\bo_\bm_\bp (above).
+
+ This is enough information to get you going using _\bM_\bH. There are
+ more commands, and the commands described here have more features. Sub-
+ sequent sections explain _\bM_\bH in complete detail. The system is quite
+ powerful if you want to use its sophisticated features, but the forego-
+ ing commands suffice for sending and receiving messages.
+
+ There are numerous additional capabilities you may wish to explore.
+ For example, the _\bp_\bi_\bc_\bk command will select a subset of messages based on
+ specified criteria such as sender and/or subject. Groups of messages
+ may be designated, as described in Sec. IV, under Message Naming. The
+ file ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be can be used to tailor your use of the message system to
+ your needs and preferences, as described in Sec. IV, under The User Pro-
+ file. In general, you may learn additional features of the system
+ selectively, according to your requirements, by studying the relevant
+ sections of this manual. There is no need to learn all the details of
+ the system at once.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b4. _\bD_\bE_\bT_\bA_\bI_\bL_\bE_\bD _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+
+
+
+
+ This section describes the _\bM_\bH system in detail, including the com-
+ ponents of the user profile, the conventions for message naming, and
+ some of the other _\bM_\bH conventions. Readers who are generally familiar
+ with computer systems will be able to follow the principal ideas,
+ although some details may be meaningful only to those familiar with
+ UNIX.
+
+
+ _\bT_\bH_\bE _\bU_\bS_\bE_\bR _\bP_\bR_\bO_\bF_\bI_\bL_\bE
+
+ The first time an _\bM_\bH command is issued by a new user, the system
+ prompts for a "Path" and creates an _\bM_\bH "profile".
+
+ Each _\bM_\bH user has a profile which contains tailoring information for
+ each individual program. Other profile entries control the _\bM_\bH path
+ (where folders and special files are kept), folder and message protec-
+ tions, editor selection, and default arguments for each _\bM_\bH program.
+ Each user of _\bM_\bH also has a context file which contains current state
+ information for the _\bM_\bH package (the location of the context file is kept
+ in the user's _\bM_\bH directory, or may be named in the user profile). When
+ a folder becomes the current folder, it is recorded in the user's con-
+ text. (Other state information is kept in the context file, see the
+ manual entry for _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be (5) for more details.) In general, the term
+ "profile entry" refer to entries in either the profile or context file.
+ Users of _\bM_\bH needn't worry about the distinction, _\bM_\bH handles these things
+ automatically.
+
+ The _\bM_\bH profile is stored in the file ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be in the user's
+ $HOME directory[1]. It has the format of a message without any body.
+ That is, each profile entry is on one line, with a keyword followed by a
+ colon (:) followed by text particular to the keyword.
+ => _\bT_\bh_\bi_\bs _\bf_\bi_\bl_\be _\bm_\bu_\bs_\bt _\bn_\bo_\bt _\bh_\ba_\bv_\be _\bb_\bl_\ba_\bn_\bk _\bl_\bi_\bn_\be_\bs.
+ The keywords may have any combination of upper and lower case. (See the
+ information of _\bm_\bh-_\bm_\ba_\bi_\bl later on in this manual for a description of mes-
+ sage formats.)
+
+ For the average _\bM_\bH user, the only profile entry of importance is
+ "Path". Path specifies a directory in which _\bM_\bH folders and certain
+ files such as "draft" are found. The argument to this keyword must be a
+ legal UNIX path that names an existing directory. If this path is not
+ absolute (i.e., does not begin with a / ), it will be presumed to start
+
+
+ [1] By defining the envariable $MH, you can specify an alternate pro-
+ file to be used by _\bM_\bH commands.
+
+
+ -10-
+
+
+
+
+
+
+
+
+
+ -11-
+
+
+ from the user's $HOME directory. All folder and message references
+ within _\bM_\bH will relate to this path unless full path names are used.
+
+ Message protection defaults to 644, and folder protection to 711.
+ These may be changed by profile entries "Msg-Protect" and "Folder-
+ Protect", respectively. The argument to these keywords is an octal
+ number which is used as the UNIX file mode[2].
+
+ When an _\bM_\bH program starts running, it looks through the user's pro-
+ file for an entry with a keyword matching the program's name. For exam-
+ ple, when _\bc_\bo_\bm_\bp is run, it looks for a "comp" profile entry. If one is
+ found, the text of the profile entry is used as the default switch set-
+ ting until all defaults are overridden by explicit switches passed to
+ the program as arguments. Thus the profile entry
+ "comp: -form standard.list" would direct _\bc_\bo_\bm_\bp to use the file
+ "standard.list" as the message skeleton. If an explicit form switch is
+ given to the _\bc_\bo_\bm_\bp command, it will override the switch obtained from the
+ profile.
+
+ In UNIX, a program may exist under several names, either by linking
+ or aliasing. The actual invocation name is used by an _\bM_\bH program when
+ scanning for its profile defaults[3]. Thus, each _\bM_\bH program may have
+ several names by which it can be invoked, and each name may have a dif-
+ ferent set of default switches. For example, if _\bc_\bo_\bm_\bp is invoked by the
+ name _\bi_\bc_\bo_\bm_\bp, the profile entry "icomp" will control the default switches
+ for this invocation of the _\bc_\bo_\bm_\bp program. This provides a powerful
+ definitional facility for commonly used switch settings.
+
+ The default editor for editing within _\bc_\bo_\bm_\bp, _\br_\be_\bp_\bl, _\bf_\bo_\br_\bw, and _\bd_\bi_\bs_\bt,
+ is usually _\bp_\br_\bo_\bm_\bp_\bt_\be_\br, but might be something else at your site, such as
+ /_\bu_\bs_\br/_\bu_\bc_\bb/_\be_\bx or /_\bb_\bi_\bn/_\be. A different editor may be used by specifying the
+ profile entry "Editor: ". The argument to "Editor" is the name of an
+ executable program or shell command file which can be found via the
+ user's $PATH defined search path, excluding the current directory. The
+ "Editor:" profile specification may in turn be overridden by a
+ `-editor <editor>' profile switch associated with _\bc_\bo_\bm_\bp, _\br_\be_\bp_\bl, _\bf_\bo_\br_\bw, or
+ _\bd_\bi_\bs_\bt. Finally, an explicit editor switch specified with any of these
+ four commands will have ultimate precedence.
+
+ During message composition, more than one editor may be used. For
+ example, one editor (such as _\bp_\br_\bo_\bm_\bp_\bt_\be_\br ) may be used initially, and a
+
+
+ [2] See _\bc_\bh_\bm_\bo_\bd (1) in the _\bU_\bN_\bI_\bX _\bP_\br_\bo_\bg_\br_\ba_\bm_\bm_\be_\br'_\bs _\bM_\ba_\bn_\bu_\ba_\bl [5].
+ [3] Unfortunately, the shell does not preserve aliasing information
+ when calling a program, hence if a program is invoked by an alias dif-
+ ferent than its name, the program will examine the profile entry for
+ it's name, not the alias that the user invoked it as. The correct solu-
+ tion is to create a (soft) link in your $_\bH_\bO_\bM_\bE/_\bb_\bi_\bn directory to the _\bM_\bH
+ program of your choice. By giving this link a different name, you can
+ use an alternate set of defaults for the command.
+
+
+
+
+
+
+
+
+
+
+
+
+ -12-
+
+
+ second editor may be invoked later to revise the message being composed
+ (see the discussion of _\bc_\bo_\bm_\bp in Section 5 for details). A profile entry
+ "<lasteditor>-next: <editor>" specifies the name of the editor to be
+ used after a particular editor. Thus "comp: -e prompter" causes the
+ initial text to be collected by _\bp_\br_\bo_\bm_\bp_\bt_\be_\br, and the profile entry
+ "prompter-next: ed" names ed as the editor to be invoked for the next
+ round of editing.
+
+ Some of the _\bM_\bH commands, such as _\bs_\bh_\bo_\bw, can be used on message fold-
+ ers owned by others, if those folders are readable. However, you cannot
+ write in someone else's folder. All the _\bM_\bH command actions not requir-
+ ing write permission may be used with a "read-only" folder.
+
+ Table 1 lists examples of some of the currently defined profile
+ entries, typical arguments, and the programs that reference the entries.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -13-
+
+
+ Table 1
+
+ PROFILE COMPONENTS
+ ______________________________________________________
+
+ _\bM_\bH Programs that
+ Keyword and Argument use Component\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b______________________________________________________
+
+ Path: Mail All
+ Current-Folder: inbox Most
+ Editor: /usr/ucb/ex _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, _\br_\be_\bp_\bl
+ Inbox: inbox _\bi_\bn_\bc, _\br_\bm_\bf
+ Msg-Protect: 644 _\bi_\bn_\bc
+ Folder-Protect: 711 _\bi_\bn_\bc, _\bp_\bi_\bc_\bk, _\br_\be_\bf_\bi_\bl_\be
+ <program>: default switches All
+ prompter-next: ed _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, _\br_\be_\bp_\bl
+ ______________________________________________________
+
+
+ Path should\b\b\b\b\b\b______ be present. Current-Folder is maintained automatically
+ by many _\bM_\bH commands (see the Context sections of the individual commands
+ in Sec. IV). All other entries are optional, defaulting to the values
+ described above.
+
+
+ _\bM_\bE_\bS_\bS_\bA_\bG_\bE _\bN_\bA_\bM_\bI_\bN_\bG
+
+ Messages may be referred to explicitly or implicitly when using _\bM_\bH
+ commands. A formal syntax of message names is given in Appendix B, but
+ the following description should be sufficient for most _\bM_\bH users. Some
+ details of message naming that apply only to certain commands are
+ included in the description of those commands.
+
+ Most of the _\bM_\bH commands accept arguments specifying one or more
+ folders, and one or more messages to operate on. The use of the word
+ "msg" as an argument to a command means that exactly one message name
+ may be specified. A message name may be a number, such as 1, 33, or
+ 234, or it may be one of the "reserved" message names: first, last,
+ prev, next, and cur. (As a shorthand, a period (.) is equivalent to
+ cur.) The meanings of these names are straightforward: "first" is the
+ first message in the folder; "last" is the last message in the folder;
+ "prev" is the message numerically previous to the current message;
+ "next" is the message numerically following the current message; "cur"
+ (or ".") is the current message in the folder. In addition, _\bM_\bH supports
+ user-defined-sequences; see the description of the _\bm_\ba_\br_\bk command for more
+ information.
+
+ The default in commands that take a "msg" argument is always "cur".
+
+ The word "msgs" indicates that several messages may be specified.
+ Such a specification consists of several message designations separated
+ by spaces. A message designation is either a message name or a message
+
+
+
+
+
+
+
+
+
+
+
+ -14-
+
+
+ range. A message range is a specification of the form name1-name2 or
+ name1:n, where name1 and name2 are message names and n is an integer.
+ The first form designates all the messages from name1 to name2
+ inclusive; this must be a non-empty range. The second form specifies up
+ to n messages, starting with name1 if name1 is a number, or first, cur,
+ or next, and ending with name1 if name1 is last or prev. This interpre-
+ tation of n is overridden if n is preceded by a plus sign or a minus
+ sign; +n always means up to n messages starting with name1, and -n
+ always means up to n messages ending with name1. Repeated specifica-
+ tions of the same message have the same effect as a single specification
+ of the message. Examples of specifications are:
+
+
+ 1 5 7-11 22
+ first 6 8 next
+ first-10
+ last:5
+
+
+ The message name "all" is a shorthand for "first-last", indicating
+ all of the messages in the folder.
+
+ In commands that accept "msgs" arguments, the default is either cur
+ or all, depending on which makes more sense.
+
+ In all of the _\bM_\bH commands, a plus sign preceding an argument indi-
+ cates a folder name. Thus, "+inbox" is the name of the user's standard
+ inbox. If an explicit folder argument is given to an _\bM_\bH command, it
+ will become the current folder (that is, the "Current-Folder:" entry in
+ the user's profile will be changed to this folder). In the case of the
+ _\br_\be_\bf_\bi_\bl_\be command, which can have multiple output folders, a new source
+ folder (other than the default current folder) is specified by
+ `-src +folder'.
+
+
+ _\bO_\bT_\bH_\bE_\bR _\bM_\bH _\bC_\bO_\bN_\bV_\bE_\bN_\bT_\bI_\bO_\bN_\bS
+
+ One very powerful feature of _\bM_\bH is that the _\bM_\bH commands may be
+ issued from any current directory, and the proper path to the appropri-
+ ate folder(s) will be taken from the user's profile. If the _\bM_\bH path is
+ not appropriate for a specific folder or file, the automatic prepending
+ of the _\bM_\bH path can be avoided by beginning a folder or file name with /,
+ or with ./ or ../ component. Thus any specific absolute path may be
+ specified along with any path relative to the current working directory.
+
+ Arguments to the various programs may be given in any order, with
+ the exception of a few switches whose arguments must follow immediately,
+ such as `-src +folder' for _\br_\be_\bf_\bi_\bl_\be.
+
+ Whenever an _\bM_\bH command prompts the user, the valid options will be
+ listed in response to a <RETURN>. (The first of the listed options is
+ the default if end-of-file is encountered, such as from a command file.)
+
+
+
+
+
+
+
+
+
+
+
+ -15-
+
+
+ A valid response is any _\bu_\bn_\bi_\bq_\bu_\be abbreviation of one of the listed
+ options.
+
+ Standard UNIX documentation conventions are used in this report to
+ describe _\bM_\bH command syntax. Arguments enclosed in brackets ([ ]) are
+ optional; exactly one of the arguments enclosed within braces ({ }) must
+ be specified, and all other arguments are required. The use of ellipsis
+ dots (...) indicates zero or more repetitions of the previous item. For
+ example, "+folder ..." would indicate that one or more "+folder" argu-
+ ments is required and "[+folder ...]" indicates that 0 or more "+folder"
+ arguments may be given.
+
+ _\bM_\bH departs from UNIX standards by using switches that consist of
+ more than one character, e.g. `-header'. To minimize typing, only a
+ unique abbreviation of a switch need be typed; thus, for `-header',
+ `-hea' is probably sufficient, depending on the other switches the com-
+ mand accepts. Each _\bM_\bH program accepts the switch `-help' (which must be
+ spelled out fully) and produces a syntax description and a list of
+ switches. In the list of switches, parentheses indicate required char-
+ acters. For example, all `-help' switches will appear as "-(help)",
+ indicating that no abbreviation is accepted. Furthermore, the `-help'
+ switch tells the version of the _\bM_\bH program you invoked.
+
+ Many _\bM_\bH switches have both on and off forms, such as `-format' and
+ `-noformat'. In many of the descriptions which follow, only one form is
+ defined; the other form, often used to nullify profile switch settings,
+ is assumed to be the opposite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -16-
+
+
+ _\bM_\bH _\bC_\bO_\bM_\bM_\bA_\bN_\bD_\bS
+
+ The _\bM_\bH package comprises several programs:
+
+ ali (1) - list mail aliases
+ anno (1) - annotate messages
+ bbc (1) - check on BBoards
+ bboards (1) - the UCI BBoards facility
+ burst (1) - explode digests into messages
+ comp (1) - compose a message
+ dist (1) - redistribute a message to additional addresses
+ folder (1) - set/list current folder/message
+ folders (1) - list all folders
+ forw (1) - forward messages
+ inc (1) - incorporate new mail
+ mark (1) - mark messages
+ mhl (1) - produce formatted listings of MH messages
+ mhmail (1) - send or read mail
+ mhook (1) - MH receive-mail hooks
+ mhparam (1) - print MH profile components
+ mhpath (1) - print full pathnames of MH messages and folders
+ msgchk (1) - check for messages
+ msh (1) - MH shell (and BBoard reader)
+ next (1) - show the next message
+ packf (1) - compress a folder into a single file
+ pick (1) - select messages by content
+ prev (1) - show the previous message
+ prompter (1) - prompting editor front end
+ rcvstore (1) - incorporate new mail asynchronously
+ refile (1) - file messages in other folders
+ repl (1) - reply to a message
+ rmf (1) - remove folder
+ rmm (1) - remove messages
+ scan (1) - produce a one line per message scan listing
+ send (1) - send a message
+ show (1) - show (list) messages
+ slocal (1) - special local mail delivery
+ sortm (1) - sort messages
+ vmh (1) - visual front-end to MH
+ whatnow (1) - prompting front-end for send
+ whom (1) - report to whom a message would go
+
+
+ These programs are described below. The form of the descriptions
+ conforms to the standard form for the description of UNIX commands.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ALI(1) -17- ALI(1)
+
+
+ _\bN_\bA_\bM_\bE
+ ali - list mail aliases
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ ali [-alias aliasfile] [-list] [-nolist] [-normalize]
+ [-nonormalize] [-user] [-nouser] aliases ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bA_\bl_\bi searches the named mail alias files for each of the given
+ _\ba_\bl_\bi_\ba_\bs_\be_\bs. It creates a list of addresses for those _\ba_\bl_\bi_\ba_\bs_\be_\bs, and
+ writes that list on standard output. If the `-list' option is
+ specified, each address appears on a separate line; otherwise, the
+ addresses are separated by commas and printed on as few lines as
+ possible.
+
+ The `-user' option directs _\ba_\bl_\bi to perform its processing in an
+ inverted fashion: instead of listing the addresses that each given
+ alias expands to, _\ba_\bl_\bi will list the aliases that expand to each
+ given address. If the `-normalize' switch is given, _\ba_\bl_\bi will try
+ to track down the official hostname of the address.
+
+ The files specified by the profile entry "Aliasfile:" and any addi-
+ tional alias files given by the `-alias aliasfile' switch will be
+ read. Each _\ba_\bl_\bi_\ba_\bs is processed as described in _\bm_\bh-_\ba_\bl_\bi_\ba_\bs (5).
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /etc/passwd List of users
+ /etc/group List of groups
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Aliasfile: For a default alias file
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-alias(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-alias /usr/bs/mh-6.8/lib/MailAliases'
+ `-nolist'
+ `-nonormalize'
+ `-nouser'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ ALI(1) -18- ALI(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The `-user' option with `-nonormalize' is not entirely accurate, as
+ it does not replace local nicknames for hosts with their official
+ site names.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ ANNO(1) -19- ANNO(1)
+
+
+ _\bN_\bA_\bM_\bE
+ anno - annotate messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ anno [+folder] [msgs] [-component field] [-inplace] [-noinplace]
+ [-date] [-nodate] [-text body] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bA_\bn_\bn_\bo annotates the specified messages in the named folder using the
+ field and body. Annotation is optionally performed by _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw,
+ and _\br_\be_\bp_\bl, to keep track of your distribution of, forwarding of, and
+ replies to a message. By using _\ba_\bn_\bn_\bo, you can perform arbitrary
+ annotations of your own. Each message selected will be annotated
+ with the lines
+
+ field: date
+ field: body
+
+ The `-nodate' switch inhibits the date annotation, leaving only the
+ body annotation. The `-inplace' switch causes annotation to be
+ done in place in order to preserve links to the annotated message.
+
+ The field specified should be a valid 822-style message field name,
+ which means that it should consist of alphanumerics (or dashes)
+ only. The body specified is arbitrary text.
+
+ If a `-component field' is not specified when _\ba_\bn_\bn_\bo is invoked, _\ba_\bn_\bn_\bo
+ will prompt the user for the name of field for the annotation.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ dist (1), forw (1), repl (1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-noinplace'
+ `-date'
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ ANNO(1) -20- ANNO(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The first
+ message annotated will become the current message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBC(1) -21- BBC(1)
+
+
+ _\bN_\bA_\bM_\bE
+ bbc - check on BBoards
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ bbc [bboards ...] [-topics] [-check] [-read] [-quiet] [-verbose]
+ [-archive] [-noarchive] [-protocol] [-noprotocol]
+ [-mshproc program] [switches for _\bm_\bs_\bh_\bp_\br_\bo_\bc] [-rcfile rcfile]
+ [-norcfile] [-file BBoardsfile] [-user BBoardsuser]
+ [-host host] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bb_\bb_\bc is a BBoard reading/checking program that interfaces to the
+ BBoard channel.
+
+ The _\bb_\bb_\bc program has three action switches which direct its opera-
+ tion:
+
+ The `-read' switch invokes the _\bm_\bs_\bh program on the named _\bB_\bB_\bo_\ba_\br_\bd_\bs.
+ If you also specify the `-archive' switch, then _\bb_\bb_\bc will invoke
+ the _\bm_\bs_\bh program on the archives of the named _\bB_\bB_\bo_\ba_\br_\bd_\bs. If no
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs are given on the command line, and you specified
+ `-archive', _\bb_\bb_\bc will not read your `bboards' profile entry, but
+ will read the archives of the "system" _\bB_\bB_\bo_\ba_\br_\bd instead.
+
+ The `-check' switch types out status information for the named
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs. _\bb_\bb_\bc can print one of several messages depending on the
+ status of both the BBoard and the user's reading habits. As with
+ each of these messages, the number given is the item number of the
+ last item placed in the BBoard. This number (which is marked in
+ the messages as the "BBoard-Id") is ever increasing. Hence, when
+ _\bb_\bb_\bc says "n items", it really means that the highest BBoard-Id is
+ "n". There may, or may not actually be "n" items in the BBoard.
+ Some common messages are:
+
+ BBoard -- n items unseen
+ This message tells how many items the user has not yet
+ seen. When invoked with the `-quiet' switch, this is the
+ only informative line that _\bb_\bb_\bc will possibly print out.
+
+ BBoard -- empty
+ The BBoard is empty.
+
+ BBoard -- n items (none seen)
+ The BBoard has items in it, but the user hasn't seen any.
+
+ BBoard -- n items (all seen)
+ The BBoard is non-empty, and the user has seen everything
+ in it.
+
+ BBoard -- n items seen out of m
+ The BBoard has at most m-n items that the user has not
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBC(1) -22- BBC(1)
+
+
+ seen.
+
+ The `-topics' switch directs _\bb_\bb_\bc to print three items about the
+ named _\bB_\bB_\bo_\ba_\br_\bd_\bs: it's official name, the number of items present, and
+ the date and time of the last update. If no _\bB_\bB_\bo_\ba_\br_\bd_\bs are named,
+ then all BBoards are listed. If the `-verbose' switch is given,
+ more information is output.
+
+ The `-quiet' switch specifies that _\bb_\bb_\bc should be silent if no
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs are found with new information. The `-verbose' switch
+ specifies that _\bb_\bb_\bc is to consider you to be interested in _\bB_\bB_\bo_\ba_\br_\bd_\bs
+ that you've already seen everything in.
+
+ To override the default _\bm_\bs_\bh_\bp_\br_\bo_\bc and the profile entry, use the
+ `-mshproc program' switch. Any arguments not understood by _\bb_\bb_\bc are
+ passed to this program. The `-protocol' switch tells _\bb_\bb_\bc that your
+ _\bm_\bs_\bh_\bp_\br_\bo_\bc knows about the special _\bb_\bb_\bc protocol for reporting back
+ information. _\bm_\bs_\bh (1), the default _\bm_\bs_\bh_\bp_\br_\bo_\bc, knows all about this.
+
+ The `-file BBoardsfile' switch tells _\bb_\bb_\bc to use a non-standard
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs file when performing its calculations. Similarly, the
+ `-user BBoardsuser' switch tells _\bb_\bb_\bc to use a non-standard user-
+ name. Both of these switches are useful for debugging a new
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs or _\bP_\bO_\bP file.
+
+ If the local host is configured as an NNTP BBoards client, or if
+ the `-host host' switch is given, then _\bb_\bb_\bc will query the NNTP ser-
+ vice host as to the status of the BBoards. For NNTP BBoards
+ clients, the `-user user' and the `-rpop' switches are ignored.
+
+ The ._\bb_\bb_\br_\bc file in the user's $HOME directory is used to keep track
+ of what messages have been read. The `-rcfile rcfile' switch over-
+ rides the use of ._\bb_\bb_\br_\bc for this purpose. If the value given to the
+ switch is not absolute, (i.e., does not begin with a / ), it will
+ be presumed to start from the current working directory. If this
+ switch is not given (or the `-norcfile' switch is given), then _\bb_\bb_\bc
+ consults the envariable $MHBBRC, and honors it similarly.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ $HOME/.bbrc BBoard "current" message information
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ bboards: To specify interesting BBoards
+ mshproc: Program to read a given BBoard
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbl(1), bboards(1), msh(1)
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBC(1) -23- BBC(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-read'
+ `-noarchive'
+ `-protocol'
+ `bboards' defaults to "system"
+ `-file /usr/bs/mh-6.8/bboards/BBoards'
+ `-user bboards'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The `-user' switch takes effect only if followed by the `-file'
+ switch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBOARDS(1) -24- BBOARDS(1)
+
+
+ _\bN_\bA_\bM_\bE
+ bboards - the UCI BBoards facility
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ bbc [-check] [-read] bboards ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The home directory of _\bb_\bb_\bo_\ba_\br_\bd_\bs is where the BBoard system is kept.
+ This documentation describes some of the nuances of the BBoard sys-
+ tem.
+
+ BBoards, BBoard-IDs
+ A BBoard is just a file containing a group of messages relat-
+ ing to the same topic. These files live in the ~bboards home
+ directory. Each message in a BBoard file has in its header
+ the line "BBoard-Id: n", where "n" is an ascending decimal
+ number. This id-number is unique for each message in a
+ BBoards file. It should NOT be confused with the message
+ number of a message, which can change as messages are removed
+ from the BBoard.
+
+ BBoard Handling
+ To read BBoards, use the _\bb_\bb_\bc and _\bm_\bs_\bh programs. The _\bm_\bs_\bh com-
+ mand is a monolithic program which contains all the func-
+ tionality of _\bM_\bH in a single program. The `-check' switch to
+ _\bb_\bb_\bc lets you check on the status of BBoards, and the `-read'
+ switch tells _\bb_\bb_\bc to invoke _\bm_\bs_\bh to read those BBoards.
+
+ Creating a BBoard
+ Both public, and private BBoards are supported. Contact the
+ mail address _\bP_\bo_\bs_\bt_\bM_\ba_\bs_\bt_\be_\br if you'd like to have a BBoard
+ created.
+
+ BBoard addresses
+ Each BBoard has associated with it 4 addresses, these are (for
+ the ficticious BBoard called ``hacks''):
+ hacks : The Internet wide distribution list.
+ dist-hacks : The local BBoard.
+ hacks-request : The people responsible for the BBoard at the
+ Internet level.
+ local-hacks-request : The people responsible for the BBoard
+ locally.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ $HOME/.bbrc BBoard information
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBOARDS(1) -25- BBOARDS(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ bboards: To specify interesting BBoards
+ mshproc: Program to read a given BBoard
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbc(1), bbl(1), bbleader(1), msh(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ The default bboard is "system"
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BURST(1) -26- BURST(1)
+
+
+ _\bN_\bA_\bM_\bE
+ burst - explode digests into messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ burst [+folder] [msgs] [-inplace] [-noinplace] [-quiet] [-noquiet]
+ [-verbose] [-noverbose] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bB_\bu_\br_\bs_\bt considers the specified messages in the named folder to be
+ Internet digests, and explodes them in that folder.
+
+ If `-inplace' is given, each digest is replaced by the "table of
+ contents" for the digest (the original digest is removed). _\bB_\bu_\br_\bs_\bt
+ then renumbers all of the messages following the digest in the
+ folder to make room for each of the messages contained within the
+ digest. These messages are placed immediately after the digest.
+
+ If `-noinplace' is given, each digest is preserved, no table of
+ contents is produced, and the messages contained within the digest
+ are placed at the end of the folder. Other messages are not tam-
+ pered with in any way.
+
+ The `-quiet' switch directs _\bb_\bu_\br_\bs_\bt to be silent about reporting mes-
+ sages that are not in digest format.
+
+ The `-verbose' switch directs _\bb_\bu_\br_\bs_\bt to tell the user the general
+ actions that it is taking to explode the digest.
+
+ It turns out that _\bb_\bu_\br_\bs_\bt works equally well on forwarded messages
+ and blind-carbon-copies as on Internet digests, provided that the
+ former two were generated by _\bf_\bo_\br_\bw or _\bs_\be_\bn_\bd.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Msg-Protect: To set mode when creating a new message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bE_\bn_\bc_\ba_\bp_\bs_\bu_\bl_\ba_\bt_\bi_\bo_\bn (aka RFC-934),
+ inc(1), msh(1), pack(1)
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BURST(1) -27- BURST(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-noinplace'
+ `-noquiet'
+ `-noverbose'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. If `-in-
+ place' is given, then the first message burst becomes the current
+ message. This leaves the context ready for a _\bs_\bh_\bo_\bw of the table of
+ contents of the digest, and a _\bn_\be_\bx_\bt to see the first message of the
+ digest. If `-noinplace' is given, then the first message extracted
+ from the first digest burst becomes the current message. This
+ leaves the context in a similar, but not identical, state to the
+ context achieved when using `-inplace'.
+
+
+ _\bB_\bu_\bg_\bs
+ The _\bb_\bu_\br_\bs_\bt program enforces a limit on the number of messages which
+ may be _\bb_\bu_\br_\bs_\bt from a single message. This number is on the order of
+ 1000 messages. There is usually no limit on the number of messages
+ which may reside in the folder after the _\bb_\bu_\br_\bs_\bting.
+
+ Although _\bb_\bu_\br_\bs_\bt uses a sophisticated algorithm to determine where
+ one encapsulated message ends and another begins, not all digesti-
+ fying programs use an encapsulation algorithm. In degenerate
+ cases, this usually results in _\bb_\bu_\br_\bs_\bt finding an encapsulation boun-
+ dary prematurely and splitting a single encapsulated message into
+ two or more messages. These erroneous digestifying programs should
+ be fixed.
+
+ Furthermore, any text which appears after the last encapsulated
+ message is not placed in a seperate message by _\bb_\bu_\br_\bs_\bt. In the case
+ of digestified messages, this text is usally an "End of digest"
+ string. As a result of this possibly un-friendly behavior on the
+ part of _\bb_\bu_\br_\bs_\bt, note that when the `-inplace' option is used, this
+ trailing information is lost. In practice, this is not a problem
+ since correspondents usually place remarks in text prior to the
+ first encapsulated message, and this information is not lost.
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ COMP(1) -28- COMP(1)
+
+
+ _\bN_\bA_\bM_\bE
+ comp - compose a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ comp [+folder] [msg] [-draftfolder +folder] [-draftmessage msg]
+ [-nodraftfolder] [-editor editor] [-noedit] [-file file]
+ [-form formfile] [-use] [-nouse] [-whatnowproc program]
+ [-nowhatnowproc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bC_\bo_\bm_\bp is used to create a new message to be mailed. It copies a
+ message form to the draft being composed and then invokes an editor
+ on the draft (unless `-noedit' is given, in which case the initial
+ edit is suppressed).
+
+ The default message form contains the following elements:
+
+ To:
+ cc:
+ Subject:
+ --------
+
+ If the file named "components" exists in the user's MH directory,
+ it will be used instead of this form. The file specified by
+ `-form formfile' will be used if given. You may also start _\bc_\bo_\bm_\bp
+ using the contents of an existing message as the form. If you sup-
+ ply either a `+folder' or `msg' argument, that message will be used
+ as the form. You may not supply both a `-form formfile' and a
+ `+folder' or `msg' argument. The line of dashes or a blank line
+ must be left between the header and the body of the message for the
+ message to be identified properly when it is sent (see _\bs_\be_\bn_\bd (1)).
+ The switch `-use' directs _\bc_\bo_\bm_\bp to continue editing an already
+ started message. That is, if a _\bc_\bo_\bm_\bp (or _\bd_\bi_\bs_\bt, _\br_\be_\bp_\bl, or _\bf_\bo_\br_\bw ) is
+ terminated without sending the draft, the draft can be edited again
+ via "comp -use".
+
+ If the draft already exists, _\bc_\bo_\bm_\bp will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\bc_\bo_\bm_\bp, leaving the
+ draft intact; replace will replace the existing draft with the
+ appropriate form; list will display the draft; use will use the
+ draft for further composition; and refile +folder will file the
+ draft in the given folder, and give you a new draft with the
+ appropriate form. (The `+folder' argument to refile is required.)
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ The `-file file' switch says to use the named file as the message
+ draft.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ COMP(1) -29- COMP(1)
+
+
+ The `-editor editor' switch indicates the editor to use for the
+ initial edit. Upon exiting from the editor, _\bc_\bo_\bm_\bp will invoke the
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available
+ options. The invocation of this program can be inhibited by using
+ the `-nowhatnowproc' switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw
+ program which starts the initial edit. Hence, `-nowhatnowproc'
+ will prevent any edit from occurring.)
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/lib/components The message skeleton
+ or <mh-dir>/components Rather than the standard skeleton
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ Msg-Protect: To set mode when creating a new message
+ (draft)
+ fileproc: Program to refile the message
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ dist(1), forw(1), repl(1), send(1), whatnow(1), mh-profile(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to the current message
+ `-nodraftfolder'
+ `-nouse'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bc_\bo_\bm_\bp uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\bc_\bo_\bm_\bp won't run
+ it.
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ DIST(1) -30- DIST(1)
+
+
+ _\bN_\bA_\bM_\bE
+ dist - redistribute a message to additional addresses
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ dist [+folder] [msg] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-form formfile] [-inplace]
+ [-noinplace] [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bD_\bi_\bs_\bt is similar to _\bf_\bo_\br_\bw. It prepares the specified message for
+ redistribution to addresses that (presumably) are not on the origi-
+ nal address list.
+
+ The default message form contains the following elements:
+
+ Resent-To:
+ Resent-cc:
+
+ If the file named "distcomps" exists in the user's MH directory, it
+ will be used instead of this form. In either case, the file speci-
+ fied by `-form formfile' will be used if given. The form used will
+ be prepended to the message being resent.
+
+ If the draft already exists, _\bd_\bi_\bs_\bt will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\bd_\bi_\bs_\bt, leaving the
+ draft intact; replace will replace the existing draft with a blank
+ skeleton; and list will display the draft.
+
+ Only those addresses in "Resent-To:", "Resent-cc:", and
+ "Resent-Bcc:" will be sent. Also, a "Resent-Fcc: folder" will be
+ honored (see _\bs_\be_\bn_\bd (1)). Note that with _\bd_\bi_\bs_\bt, the draft should con-
+ tain only "Resent-xxx:" fields and no body. The headers and the
+ body of the original message are copied to the draft when the mes-
+ sage is sent. Use care in constructing the headers for the redis-
+ tribution.
+
+ If the `-annotate' switch is given, the message being distributed
+ will be annotated with the lines:
+
+ Resent: date
+ Resent: addrs
+
+ where each address list contains as many lines as required. This
+ annotation will be done only if the message is sent directly from
+ _\bd_\bi_\bs_\bt. If the message is not sent immediately from _\bd_\bi_\bs_\bt, "comp
+ -use" may be used to re-edit and send the constructed message, but
+ the annotations won't take place. The '-inplace' switch causes
+ annotation to be done in place in order to preserve links to the
+ annotated message.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ DIST(1) -31- DIST(1)
+
+
+ See _\bc_\bo_\bm_\bp (1) for a description of the `-editor' and `-noedit'
+ switches. Note that while in the editor, the message being resent
+ is available through a link named "@" (assuming the default _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw_\bp_\br_\bo_\bc ). In addition, the actual pathname of the message is
+ stored in the envariable $editalt, and the pathname of the folder
+ containing the message is stored in the envariable $mhfolder.
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ Upon exiting from the editor, _\bd_\bi_\bs_\bt will invoke the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available options. The invoca-
+ tion of this program can be inhibited by using the `-nowhatnowproc'
+ switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program which starts
+ the initial edit. Hence, `-nowhatnowproc' will prevent any edit
+ from occurring.)
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/lib/distcomps The message skeleton
+ or <mh-dir>/distcomps Rather than the standard skeleton
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ fileproc: Program to refile the message
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), forw(1), repl(1), send(1), whatnow(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to cur
+ `-noannotate'
+ `-nodraftfolder'
+ `-noinplace'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The mes-
+ sage distributed will become the current message.
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ DIST(1) -32- DIST(1)
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ _\bD_\bi_\bs_\bt originally used headers of the form "Distribute-xxx:" instead
+ of "Resent-xxx:". In order to conform with the ARPA Internet stan-
+ dard, RFC-822, the "Resent-xxx:" form is now used. _\bD_\bi_\bs_\bt will
+ recognize "Distribute-xxx:" type headers and automatically convert
+ them to "Resent-xxx:".
+
+
+ _\bB_\bu_\bg_\bs
+ _\bD_\bi_\bs_\bt does not _\br_\bi_\bg_\bo_\br_\bo_\bu_\bs_\bl_\by check the message being distributed for
+ adherence to the transport standard, but _\bp_\bo_\bs_\bt called by _\bs_\be_\bn_\bd does.
+ The _\bp_\bo_\bs_\bt program will balk (and rightly so) at poorly formatted
+ messages, and _\bd_\bi_\bs_\bt won't correct things for you.
+
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bd_\bi_\bs_\bt uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\bd_\bi_\bs_\bt won't run
+ it.
+
+ If your current working directory is not writable, the link named
+ "@" is not available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -33- FOLDER(1)
+
+
+ _\bN_\bA_\bM_\bE
+ folder, folders - set/list current folder/message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ folder [+folder] [msg] [-all] [-print] [-fast] [-nofast] [-header]
+ [-noheader] [-recurse] [-norecurse] [-total] [-nototal]
+ [-list] [-nolist] [-push] [-pop] [-pack] [-nopack] [-verbose]
+ [-noverbose] [-help]
+
+ folders
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Since the _\bM_\bH environment is the shell, it is easy to lose track of
+ the current folder from day to day. When _\bf_\bo_\bl_\bd_\be_\br is given the
+ `-print' switch (the default), _\bf_\bo_\bl_\bd_\be_\br will list the current folder,
+ the number of messages in it, the range of the messages (low-high),
+ and the current message within the folder, and will flag extra
+ files if they exist. An example of this summary is:
+
+ inbox+ has 16 messages ( 3- 22); cur= 5.
+
+ If a `+folder' and/or `msg' are specified, they will become the
+ current folder and/or message. If the specified (or default)
+ folder doesn't exist, the user will be queried as to whether the
+ folder should be created. When standard input is not a tty, the
+ folder is created without any query. (This is the easy way to
+ create an empty folder for use later.)
+
+ By comparison, when a `+folder' argument is given, this corresponds
+ to a "cd" operation in the _\bs_\bh_\be_\bl_\bl; when no `+folder' argument is
+ given, this corresponds roughly to a "pwd" operation in the _\bs_\bh_\be_\bl_\bl.
+
+
+
+ _\bM_\bu_\bl_\bt_\bi_\bp_\bl_\be _\bF_\bo_\bl_\bd_\be_\br_\bs
+
+ Specifying `-all' will produce a summary line for each top-level
+ folder in the user's MH directory, sorted alphabetically. (If
+ _\bf_\bo_\bl_\bd_\be_\br is invoked by a name ending with "s" (e.g., _\bf_\bo_\bl_\bd_\be_\br_\bs ),
+ `-all' is assumed). Specifying `-recurse' with `-all' will also
+ produce a line for all sub-folders. These folders are all preceded
+ by the read-only folders, which occur as "atr-cur-" entries in the
+ user's _\bM_\bH context. For example,
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -34- FOLDER(1)
+
+
+ Folder # of messages ( range ) cur msg (other files)
+ /fsd/rs/m/tacc has 35 messages ( 1- 35); cur= 23.
+ /rnd/phyl/Mail/EP has 82 messages ( 1-108); cur= 82.
+ ff has no messages.
+ inbox+ has 16 messages ( 3- 22); cur= 5.
+ mh has 76 messages ( 1- 76); cur= 70.
+ notes has 2 messages ( 1- 2); cur= 1.
+ ucom has 124 messages ( 1-124); cur= 6; (others).
+ TOTAL= 339 messages in 7 folders
+
+ The "+" after inbox indicates that it is the current folder. The
+ "(others)" indicates that the folder `ucom' has files which aren't
+ messages. These files may either be sub-folders, or files that
+ don't belong under the MH file naming scheme.
+
+ The header is output if either a `-all' or a `-header' switch is
+ specified; it is suppressed by `-noheader'. A `-total' switch will
+ produce only the summary line.
+
+ If `-fast' is given, only the folder name (or names in the case of
+ `-all') will be listed. (This is faster because the folders need
+ not be read.)
+
+ If a `+folder' is given along with the `-all' switch, _\bf_\bo_\bl_\bd_\be_\br will,
+ in addition to setting the current folder, list the top-level fold-
+ ers for the current folder (with `-norecurse') or list all sub-
+ folders under the current folder recursively (with `-recurse'). In
+ this case, if a `msg' is also supplied, it will become the current
+ message of `+folder'.
+
+ The `-recurse' switch lists each folder recursively, so use of this
+ option effectively defeats the speed enhancement of the `-fast'
+ option, since each folder must be searched for subfolders.
+ Nevertheless, the combination of these options is useful.
+
+
+ _\bC_\bo_\bm_\bp_\ba_\bc_\bt_\bi_\bn_\bg _\ba _\bF_\bo_\bl_\bd_\be_\br
+
+ The `-pack' switch will compress the message names in the desig-
+ nated folders, removing holes in message numbering. The `-verbose'
+ switch directs _\bf_\bo_\bl_\bd_\be_\br to tell the user the general actions that it
+ is taking to compress the folder.
+
+
+ _\bT_\bh_\be _\bF_\bo_\bl_\bd_\be_\br _\bS_\bt_\ba_\bc_\bk
+
+ The `-push' switch directs _\bf_\bo_\bl_\bd_\be_\br to push the current folder onto
+ the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk, and make the `+folder' argument the current
+ folder. If `+folder' is not given, the current folder and the top
+ of the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk are exchanged. This corresponds to the "pushd"
+ operation in the _\bC_\bS_\bh_\be_\bl_\bl.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -35- FOLDER(1)
+
+
+ The `-pop' switch directs _\bf_\bo_\bl_\bd_\be_\br to discard the top of the
+ _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk, after setting the current folder to that value. No
+ `+folder' argument is allowed. This corresponds to the "popd"
+ operation in the _\bC_\bS_\bh_\be_\bl_\bl. The `-push' switch and the `-pop' switch
+ are mutually exclusive: the last occurrence of either one overrides
+ any previous occurrence of the other. Both of these switches also
+ set `-list' by default.
+
+ The `-list' switch directs _\bf_\bo_\bl_\bd_\be_\br to list the contents of the
+ _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk. No `+folder' argument is allowed. After a success-
+ ful `-push' or `-pop', the `-list' action is taken, unless a `-nol-
+ ist' switch follows them on the command line. This corresponds to
+ the "dirs" operation in the _\bC_\bS_\bh_\be_\bl_\bl. The `-push', `-pop', and
+ `-list' switches turn off `-print'.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Folder-Protect: To set mode when creating a new folder
+ Folder-Stack: To determine the folder stack
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ refile(1), mhpath(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to none
+ `-nofast'
+ `-noheader'
+ `-nototal'
+ `-nopack'
+ `-norecurse'
+ `-noverbose'
+ `-print' is the default if no `-list', `-push', or `-pop' is specified
+ `-list' is the default if `-push', or `-pop' is specified
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If `+folder' and/or `msg' are given, they will become the current
+ folder and/or message.
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -36- FOLDER(1)
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous versions of _\bM_\bH, the `-fast' switch prevented context
+ changes from occurring for the current folder. This is no longer
+ the case: if `+folder' is given, then _\bf_\bo_\bl_\bd_\be_\br will always change the
+ current folder to that.
+
+
+ _\bB_\bu_\bg_\bs
+ `-all' forces `-header'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -37- FORW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ forw - forward messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ forw [+folder] [msgs] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-filter filterfile]
+ [-form formfile] [-format] [-noformat] [-inplace] [-noinplace]
+ [-mime] [-nomime] [-whatnowproc program] [-nowhatnowproc]
+ [-help]
+
+ forw [+folder] [msgs] [-digest list] [-issue number]
+ [-volume number] [other switches for _\bf_\bo_\br_\bw] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bF_\bo_\br_\bw may be used to prepare a message containing other messages.
+ It constructs the new message from the components file or
+ `-form formfile' (see _\bc_\bo_\bm_\bp ), with a body composed of the
+ message(s) to be forwarded. An editor is invoked as in _\bc_\bo_\bm_\bp, and
+ after editing is complete, the user is prompted before the message
+ is sent.
+
+ The default message form contains the following elements:
+
+ To:
+ cc:
+ Subject:
+ --------
+
+ If the file named "forwcomps" exists in the user's MH directory, it
+ will be used instead of this form. In either case, the file speci-
+ fied by `-form formfile' will be used if given.
+
+ If the draft already exists, _\bf_\bo_\br_\bw will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\bf_\bo_\br_\bw, leaving the
+ draft intact; replace will replace the existing draft with a blank
+ skeleton; and list will display the draft.
+
+ If the `-annotate' switch is given, each message being forwarded
+ will be annotated with the lines
+
+ Forwarded: date
+ Forwarded: addrs
+
+ where each address list contains as many lines as required. This
+ annotation will be done only if the message is sent directly from
+ _\bf_\bo_\br_\bw. If the message is not sent immediately from _\bf_\bo_\br_\bw,
+ "comp -use" may be used to re-edit and send the constructed mes-
+ sage, but the annotations won't take place. The '-inplace' switch
+ causes annotation to be done in place in order to preserve links to
+ the annotated message.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -38- FORW(1)
+
+
+ See _\bc_\bo_\bm_\bp (1) for a description of the `-editor' and `-noedit'
+ switches.
+
+ Although _\bf_\bo_\br_\bw uses the `-form formfile' switch to direct it how to
+ construct the beginning of the draft, the `-filter filterfile',
+ `-format', and `-noformat' switches direct _\bf_\bo_\br_\bw as to how each for-
+ warded message should be formatted in the body of the draft. If
+ `-noformat' is specified, then each forwarded message is output
+ exactly as it appears. If `-format' or `-filter filterfile' is
+ specified, then each forwarded message is filtered (re-formatted)
+ prior to being output to the body of the draft. The filter file
+ for _\bf_\bo_\br_\bw should be a standard form file for _\bm_\bh_\bl, as _\bf_\bo_\br_\bw will
+ invoke _\bm_\bh_\bl to format the forwarded messages. The default message
+ filter (what you get with `-format') is:
+
+ width=80,overflowtext=,overflowoffset=10
+ leftadjust,compress,compwidth=9
+ Date:formatfield="%<(nodate{text})%{text}%|%(tws{text})%>"
+ From:
+ To:
+ cc:
+ Subject:
+ :
+ body:nocomponent,overflowoffset=0,noleftadjust,nocompress
+
+ If the file named "mhl.forward" exists in the user's MH directory,
+ it will be used instead of this form. In either case, the file
+ specified by `-filter filterfile' will be used if given. To sum-
+ marize: `-noformat' will reproduce each forwarded message exactly,
+ `-format' will use _\bm_\bh_\bl and a default filterfile, "mhl.forward", to
+ format each forwarded message, and `-filter filterfile' will use
+ the named filterfile to format each forwarded message with _\bm_\bh_\bl.
+
+ Each forwarded message is separated with an encapsulation delimiter
+ and dashes in the first column of the forwarded messages will be
+ prepended with `- ' so that when received, the message is suitable
+ for bursting by _\bb_\bu_\br_\bs_\bt (1). This follows the Internet RFC-934
+ guidelines.
+
+ For users of _\bp_\br_\bo_\bm_\bp_\bt_\be_\br (1), by specifying prompter's `-prepend'
+ switch in the .mh_profile file, any commentary text is entered
+ before the forwarded messages. (A major win!)
+
+ To use the MIME rules for encapsulation, specify the `-mime'
+ switch. This directs _\bf_\bo_\br_\bw to generate an _\bm_\bh_\bn composition file.
+ Note that MH will not invoke _\bm_\bh_\bn automatically, unless you add
+ this line to your .mh_profile file:
+
+ automhnproc: mhn
+
+ Otherwise, you must specifically give the command
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -39- FORW(1)
+
+
+ What now? edit mhn
+
+ prior to sending the draft.
+
+ To automate this somewhat, create a link to _\bp_\br_\bo_\bm_\bp_\bt_\be_\br called _\br_\ba_\bp_\bi_\bd
+ and put these lines in your .mh_profile file:
+
+ forw: -editor rapid -mime
+ rapid: -rapid
+ rapid-next: mhn
+
+ Then, you can simply do:
+
+ _\bf_\bo_\br_\bw _\bm_\bs_\bg_\bs
+ To: _\bm_\ba_\bi_\bl_\bb_\bo_\bx
+ cc:
+ Subject: _\bw_\bh_\ba_\bt_\be_\bv_\be_\br
+
+ --------Enter initial text
+
+ _\bb_\bl_\ba_\bh, _\bb_\bl_\ba_\bh, _\bb_\bl_\ba_\bh.
+ <CTRL-D>
+ --------
+
+ What now? _\be_\bd_\bi_\bt
+ What now? _\bs_\be_\bn_\bd
+
+ The _\be_\bd_\bi_\bt command invokes _\bm_\bh_\bn automatically.
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ Upon exiting from the editor, _\bf_\bo_\br_\bw will invoke the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available options. The invoca-
+ tion of this program can be inhibited by using the `-nowhatnowproc'
+ switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program which starts
+ the initial edit. Hence, `-nowhatnowproc' will prevent any edit
+ from occurring.)
+
+ The `-digest list', `-issue number', and `-volume number' switches
+ implement a digest facility for _\bM_\bH. Specifying these switches
+ enables and/or overloads the following escapes:
+
+ _\bT_\by_\bp_\be _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt _\bd_\bi_\bg_\be_\bs_\bt string Argument to `-digest'
+ _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bc_\bu_\br integer Argument to `-volume'
+ _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bm_\bs_\bg integer Argument to `-issue'
+
+ Consult the Advanced Features section of the _\bM_\bH User's Manual for
+ more information on making digests.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -40- FORW(1)
+
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/lib/forwcomps The message skeleton
+ or <mh-dir>/forwcomps Rather than the standard skeleton
+ /usr/bs/mh-6.8/lib/digestcomps The message skeleton if `-digest' is given
+ or <mh-dir>/digestcomps Rather than the standard skeleton
+ /usr/bs/mh-6.8/lib/mhl.forward The message filter
+ or <mh-dir>/mhl.forward Rather than the standard filter
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ Msg-Protect: To set mode when creating a new message
+ (draft)
+ fileproc: Program to refile the message
+ mhlproc: Program to filter messages being forwarded
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bE_\bn_\bc_\ba_\bp_\bs_\bu_\bl_\ba_\bt_\bi_\bo_\bn (aka RFC-934),
+ comp(1), dist(1), repl(1), send(1), whatnow(1), mh-format(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-noannotate'
+ `-nodraftfolder'
+ `-noformat'
+ `-noinplace'
+ `-nomime'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The first
+ message forwarded will become the current message.
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -41- FORW(1)
+
+
+ _\bB_\bu_\bg_\bs
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bf_\bo_\br_\bw uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\bf_\bo_\br_\bw won't run
+ it.
+
+ When _\bf_\bo_\br_\bw is told to annotate the messages it forwards, it doesn't
+ actually annotate them until the draft is successfully sent. If
+ from the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, you _\bp_\bu_\bs_\bh instead of _\bs_\be_\bn_\bd, it's possible to
+ confuse _\bf_\bo_\br_\bw by re-ordering the file (e.g., by using
+ `folder -pack') before the message is successfully sent. _\bD_\bi_\bs_\bt and
+ _\br_\be_\bp_\bl don't have this problem.
+
+ To avoid prepending the leading dash characters in forwarded mes-
+ sages, there is a `-nodashmunging' option. See the "Hidden
+ Features" section of the _\bM_\bH _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be for more details.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ INC(1) -42- INC(1)
+
+
+ _\bN_\bA_\bM_\bE
+ inc - incorporate new mail
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ inc [+folder] [-audit audit-file] [-noaudit] [-changecur]
+ [-nochangecur] [-form formatfile] [-format string]
+ [-file name] [-silent] [-nosilent] [-truncate] [-notruncate]
+ [-width columns] [-host host] [-user user] [-apop] [-noapop]
+ [-rpop] [-norpop] [-pack file] [-nopack] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bI_\bn_\bc incorporates mail from the user's incoming mail drop into an _\bM_\bH
+ folder. If `+folder' isn't specified, a folder in the user's _\bM_\bH
+ directory will be used, either that specified by the "Inbox:" entry
+ in the user's profile, or the folder named "inbox". The new mes-
+ sages being incorporated are assigned numbers starting with the
+ next highest number in the folder. If the specified (or default)
+ folder doesn't exist, the user will be queried prior to its crea-
+ tion. As the messages are processed, a _\bs_\bc_\ba_\bn listing of the new
+ mail is produced.
+
+ If the user's profile contains a "Msg-Protect: nnn" entry, it will
+ be used as the protection on the newly created messages, otherwise
+ the _\bM_\bH default of 0644 will be used. During all operations on mes-
+ sages, this initially assigned protection will be preserved for
+ each message, so _\bc_\bh_\bm_\bo_\bd(1) may be used to set a protection on an
+ individual message, and its protection will be preserved
+ thereafter.
+
+ If the switch `-audit audit-file' is specified (usually as a
+ default switch in the profile), then _\bi_\bn_\bc will append a header line
+ and a line per message to the end of the specified audit-file with
+ the format:
+
+ <<inc>> date
+ <scan line for first message>
+ <scan line for second message>
+ <etc.>
+
+ This is useful for keeping track of volume and source of incoming
+ mail. Eventually, _\br_\be_\bp_\bl, _\bf_\bo_\br_\bw, _\bc_\bo_\bm_\bp, and _\bd_\bi_\bs_\bt may also produce
+ audits to this (or another) file, perhaps with "Message-Id:" infor-
+ mation to keep an exact correspondence history. "Audit-file" will
+ be in the user's MH directory unless a full path is specified.
+
+ _\bI_\bn_\bc will incorporate even improperly formatted messages into the
+ user's MH folder, inserting a blank line prior to the offending
+ component and printing a comment identifying the bad message.
+
+ In all cases, the user's mail drop will be zeroed, unless the
+ `-notruncate' switch is given.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ INC(1) -43- INC(1)
+
+
+ If the profile entry "Unseen-Sequence" is present and non-empty,
+ then _\bi_\bn_\bc will add each of the newly incorporated messages to each
+ sequence named by the profile entry. This is similar to the
+ "Previous-Sequence" profile entry supported by all _\bM_\bH commands
+ which take `msgs' or `msg' arguments. Note that _\bi_\bn_\bc will not zero
+ each sequence prior to adding messages.
+
+ The interpretation of the `-form formatfile', `-format string', and
+ `-width columns' switches is the same as in _\bs_\bc_\ba_\bn (1).
+
+ By using the `-file name' switch, one can direct _\bi_\bn_\bc to incorporate
+ messages from a file other than the user's maildrop. Note that the
+ name file will NOT be zeroed, unless the `-truncate' switch is
+ given.
+
+ If the envariable $MAILDROP is set, then _\bi_\bn_\bc uses it as the loca-
+ tion of the user's maildrop instead of the default (the `-
+ file name' switch still overrides this, however). If this envari-
+ able is not set, then _\bi_\bn_\bc will consult the profile entry "MailDrop"
+ for this information. If the value found is not absolute, then it
+ is interpreted relative to the user's _\bM_\bH directory. If the value
+ is not found, then _\bi_\bn_\bc will look in the standard system location
+ for the user's maildrop.
+
+ The `-silent' switch directs _\bi_\bn_\bc to be quiet and not ask any ques-
+ tions at all. This is useful for putting _\bi_\bn_\bc in the background and
+ going on to other things.
+
+ If the local host is configured as a POP client, or if the
+ `-host host' switch is given, then _\bi_\bn_\bc will query the POP service
+ host as to the status of mail waiting. If the `-user user' switch
+ is not given, then the current username is used. Normally, _\bi_\bn_\bc
+ will prompt for a password to use. However, if the `-apop' switch
+ is given, _\bi_\bn_\bc will generate authentication credentials to provide
+ for origin authentication and replay protection, but which do not
+ involve sending a password in the clear over the network. Other-
+ wise, if the `-rpop' switch is given, then _\bi_\bn_\bc will try to use a
+ "trusted" connection (ala the BSD r-commands).
+
+ If _\bi_\bn_\bc uses POP, then the `-pack file' switch is considered. If
+ given, then _\bi_\bn_\bc simply uses the POP to _\bp_\ba_\bc_\bk_\bf (1) the user's mail-
+ drop from the POP service host to the named file. This switch is
+ provided for those users who prefer to use _\bm_\bs_\bh to read their mail-
+ drops.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/bs/mh-6.8/lib/mtstailor tailor file
+ /usr/spool/mail/$USER Location of mail drop
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ INC(1) -44- INC(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Alternate-Mailboxes: To determine the user's mailboxes
+ Inbox: To determine the inbox, default "inbox"
+ Folder-Protect: To set mode when creating a new folder
+ Msg-Protect: To set mode when creating a new message and
+ audit-file
+ Unseen-Sequence: To name sequences denoting unseen messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl - _\bv_\be_\br_\bs_\bi_\bo_\bn _\b3 (aka RFC-1081),
+ mhmail(1), scan(1), mh-mail(5), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaulted by "Inbox" above
+ `-noaudit'
+ `-changecur'
+ `-format' defaulted as described above
+ `-nosilent'
+ `-truncate' if `-file name' not given, `-notruncate' otherwise
+ `-width' defaulted to the width of the terminal
+ `-nopack'
+ `-rpop'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ The folder into which messages are being incorporated will become
+ the current folder. The first message incorporated will become the
+ current message, unless the `-nochangecur' option is specified.
+ This leaves the context ready for a _\bs_\bh_\bo_\bw of the first new message.
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bi_\bn_\bc. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MARK(1) -45- MARK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mark - mark messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mark [+folder] [msgs] [-sequence name ...] [-add] [-delete] [-list]
+ [-public] [-nopublic] [-zero] [-nozero] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bm_\ba_\br_\bk command manipulates message sequences by adding or delet-
+ ing message numbers from folder-specific message sequences, or by
+ listing those sequences and messages. A message sequence is a key-
+ word, just like one of the "reserved" message names, such as
+ "first" or "next". Unlike the "reserved" message names, which have
+ a fixed semantics on a per-folder basis, the semantics of a message
+ sequence may be defined, modified, and removed by the user. Mes-
+ sage sequences are folder-specific, e.g., the sequence name "seen"
+ in the context of folder "+inbox" need not have any relation what-
+ soever to the sequence of the same name in a folder of a different
+ name.
+
+ Three action switches direct the operation of _\bm_\ba_\br_\bk. These switches
+ are mutually exclusive: the last occurrence of any of them over-
+ rides any previous occurrence of the other two.
+
+ The `-add' switch tells _\bm_\ba_\br_\bk to add messages to sequences or to
+ create a new sequence. For each sequence named via the
+ `-sequence name' argument (which must occur at least once) the mes-
+ sages named via `msgs' (which defaults to "cur" if no `msgs' are
+ given), are added to the sequence. The messages to be added need
+ not be absent from the sequence. If the `-zero' switch is speci-
+ fied, the sequence will be emptied prior to adding the messages.
+ Hence, `-add -zero' means that each sequence should be initialized
+ to the indicated messages, while `-add -nozero' means that each
+ sequence should be appended to by the indicated messages.
+
+ The `-delete' switch tells _\bm_\ba_\br_\bk to delete messages from sequences,
+ and is the dual of `-add'. For each of the named sequences, the
+ named messages are removed from the sequence. These messages need
+ not be already present in the sequence. If the `-zero' switch is
+ specified, then all messages in the folder are appended to the
+ sequence prior to removing the messages. Hence, `-delete -zero'
+ means that each sequence should contain all messages except those
+ indicated, while `-delete -nozero' means that only the indicated
+ messages should be removed from each sequence. As expected, the
+ command `mark -sequence seen -delete all' deletes the sequence
+ "seen" from the current folder.
+
+ When creating (or modifying) a sequence, the `-public' switch indi-
+ cates that the sequence should be made readable for other _\bM_\bH users.
+ In contrast, the `-nopublic' switch indicates that the sequence
+ should be private to the user's _\bM_\bH environment.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MARK(1) -46- MARK(1)
+
+
+ The `-list' switch tells _\bm_\ba_\br_\bk to list both the sequences defined
+ for the folder and the messages associated with those sequences.
+ _\bM_\ba_\br_\bk will list the name of each sequence given by `-sequence name'
+ and the messages associated with that sequence. If `-sequence'
+ isn't used, all sequences will be listed, with private sequences
+ being so indicated. The `-zero' switch does not affect the opera-
+ tion of `-list'.
+
+ The current restrictions on sequences are:
+
+ The name used to denote a message sequence must consist of an
+ alphabetic character followed by zero or more alphanumeric char-
+ acters, and can not be one of the "reserved" message names (e.g.,
+ "first", "cur", and so forth).
+
+ Only a certain number of sequences may be defined for a given
+ folder. This number is usually limited to 26 (10 on small sys-
+ tems).
+
+ Message ranges with user-defined sequence names are restricted to
+ the form "name:n" or "name:-n", and refer to the first or last
+ `n' messages of the sequence `name', respectively. Constructs of
+ the form "name1-name2" are forbidden.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ pick (1), mh-sequence (5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `-add' if `-sequence' is specified, `-list' otherwise
+ `msgs' defaults to cur (or all if `-list' is specified)
+ `-nopublic' if the folder is read-only, `-public' otherwise
+ `-nozero'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ Use "pick sequence -list" to enumerate the messages in a sequence
+ (such as for use by a shell script).
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MARK(1) -47- MARK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhl - produce formatted listings of MH messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bs/mh-6.8/lib/mhl [-bell] [-nobell] [-clear] [-noclear]
+ [-folder +folder] [-form formfile] [-length lines]
+ [-width columns] [-moreproc program] [-nomoreproc] [files ...]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bh_\bl is a formatted message listing program. It can be used as a
+ replacement for _\bm_\bo_\br_\be (1) (the default _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc ). As with _\bm_\bo_\br_\be,
+ each of the messages specified as arguments (or the standard input)
+ will be output. If more than one message file is specified, the
+ user will be prompted prior to each one, and a <RETURN> or <EOT>
+ will begin the output, with <RETURN> clearing the screen (if
+ appropriate), and <EOT> (usually CTRL-D) suppressing the screen
+ clear. An <INTERRUPT> (usually CTRL-C) will abort the current mes-
+ sage output, prompting for the next message (if there is one), and
+ a <QUIT> (usually CTRL-\) will terminate the program (without core
+ dump).
+
+ The `-bell' option tells _\bm_\bh_\bl to ring the terminal's bell at the end
+ of each page, while the `-clear' option tells _\bm_\bh_\bl to clear the
+ scree at the end of each page (or output a formfeed after each mes-
+ sage). Both of these switches (and their inverse counterparts)
+ take effect only if the profile entry _\bm_\bo_\br_\be_\bp_\br_\bo_\bc is defined but
+ empty, and _\bm_\bh_\bl is outputting to a terminal. If the _\bm_\bo_\br_\be_\bp_\br_\bo_\bc entry
+ is defined and non-empty, and _\bm_\bh_\bl is outputting to a terminal, then
+ _\bm_\bh_\bl will cause the _\bm_\bo_\br_\be_\bp_\br_\bo_\bc to be placed between the terminal and
+ _\bm_\bh_\bl and the switches are ignored. Furthermore, if the `-clear'
+ switch is used and _\bm_\bh_\bl'_\bs output is directed to a terminal, then _\bm_\bh_\bl
+ will consult the $TERM and $TERMCAP envariables to determine the
+ user's terminal type in order to find out how to clear the screen.
+ If the `-clear' switch is used and _\bm_\bh_\bl'_\bs output is not directed to
+ a terminal (e.g., a pipe or a file), then _\bm_\bh_\bl will send a formfeed
+ after each message.
+
+ To override the default _\bm_\bo_\br_\be_\bp_\br_\bo_\bc and the profile entry, use the
+ `-moreproc program' switch. Note that _\bm_\bh_\bl will never start a
+ _\bm_\bo_\br_\be_\bp_\br_\bo_\bc if invoked on a hardcopy terminal.
+
+ The `-length length' and `-width width' switches set the screen
+ length and width, respectively. These default to the values indi-
+ cated by $TERMCAP, if appropriate, otherwise they default to 40 and
+ 80, respectively.
+
+ The default format file used by _\bm_\bh_\bl is called _\bm_\bh_\bl._\bf_\bo_\br_\bm_\ba_\bt (which is
+ first searched for in the user's _\bM_\bH directory, and then sought in
+ the /_\bu_\bs_\br/_\bb_\bs/_\bm_\bh-_\b6._\b8/_\bl_\bi_\bb directory), this can be changed by using the
+ `-form formatfile' switch.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -48- MHL(1)
+
+
+ Finally, the `-folder +folder' switch sets the _\bM_\bH folder name,
+ which is used for the "messagename:" field described below. The
+ envariable $mhfolder is consulted for the default value, which
+ _\bs_\bh_\bo_\bw, _\bn_\be_\bx_\bt, and _\bp_\br_\be_\bv initialize appropriately.
+
+ _\bM_\bh_\bl operates in two phases: 1) read and parse the format file, and
+ 2) process each message (file). During phase 1, an internal
+ description of the format is produced as a structured list. In
+ phase 2, this list is walked for each message, outputting message
+ information under the format constraints from the format file.
+
+ The "mhl.format" form file contains information controlling screen
+ clearing, screen size, wrap-around control, transparent text, com-
+ ponent ordering, and component formatting. Also, a list of com-
+ ponents to ignore may be specified, and a couple of "special" com-
+ ponents are defined to provide added functionality. Message output
+ will be in the order specified by the order in the format file.
+
+ Each line of mhl.format has one of the formats:
+
+ ;comment
+ :cleartext
+ variable[,variable...]
+ component:[variable,...]
+
+ A line beginning with a `;' is a comment, and is ignored. A line
+ beginning with a `:' is clear text, and is output exactly as is. A
+ line containing only a `:' produces a blank line in the output. A
+ line beginning with "component:" defines the format for the speci-
+ fied component, and finally, remaining lines define the global
+ environment.
+
+ For example, the line:
+
+ width=80,length=40,clearscreen,overflowtext="***",overflowoffset=5
+
+ defines the screen size to be 80 columns by 40 rows, specifies that
+ the screen should be cleared prior to each page, that the overflow
+ indentation is 5, and that overflow text should be flagged with
+ "***".
+
+ Following are all of the current variables and their arguments. If
+ they follow a component, they apply only to that component, other-
+ wise, their affect is global. Since the whole format is parsed
+ before any output processing, the last global switch setting for a
+ variable applies to the whole message if that variable is used in a
+ global context (i.e., bell, clearscreen, width, length).
+
+ _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be _\bt_\by_\bp_\be _\bs_\be_\bm_\ba_\bn_\bt_\bi_\bc_\bs
+ width integer screen width or component width
+ length integer screen length or component length
+ offset integer positions to indent "component: "
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -49- MHL(1)
+
+
+ overflowtext string text to use at the beginning of an
+ overflow line
+ overflowoffset integer positions to indent overflow lines
+ compwidth integer positions to indent component text
+ after the first line is output
+ uppercase flag output text of this component in all
+ upper case
+ nouppercase flag don't uppercase
+ clearscreen flag/G clear the screen prior to each page
+ noclearscreen flag/G don't clearscreen
+ bell flag/G ring the bell at the end of each page
+ nobell flag/G don't bell
+ component string/L name to use instead of "component" for
+ this component
+ nocomponent flag don't output "component: " for this
+ component
+ center flag center component on line (works for
+ one-line components only)
+ nocenter flag don't center
+ leftadjust flag strip off leading whitespace on each
+ line of text
+ noleftadjust flag don't leftadjust
+ compress flag change newlines in text to spaces
+ nocompress flag don't compress
+ split flag don't combine multiple fields into a single field
+ nosplit flag combine multiple fields into a single field
+ newline flag print newline at end of components (default)
+ nonewline flag don't print newline at end of components
+ formatfield string format string for this component (see below)
+ addrfield flag field contains addresses
+ datefield flag field contains dates
+
+ To specify the value of integer-valued and string-valued variables,
+ follow their name with an equals-sign and the value.
+ Integer-valued variables are given decimal values, while
+ string-valued variables are given arbitrary text bracketed by
+ double-quotes. If a value is suffixed by "/G" or "/L", then its
+ value is useful in a global-only or local-only context (respec-
+ tively).
+
+ A line of the form:
+
+ ignores=component,...
+
+ specifies a list of components which are never output.
+
+ The component "MessageName" (case-insensitive) will output the
+ actual message name (file name) preceded by the folder name if one
+ is specified or found in the environment. The format is identical
+ to that produced by the `-header' option to _\bs_\bh_\bo_\bw.
+
+ The component "Extras" will output all of the components of the
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -50- MHL(1)
+
+
+ message which were not matched by explicit components, or included
+ in the ignore list. If this component is not specified, an ignore
+ list is not needed since all non-specified components will be
+ ignored.
+
+ If "nocomponent" is NOT specified, then the component name will be
+ output as it appears in the format file.
+
+ The default format is:
+
+ : -- using template mhl.format --
+ overflowtext="***",overflowoffset=5
+ leftadjust,compwidth=9
+ ignores=msgid,message-id,received
+ Date:formatfield="%<(nodate{text})%{text}%|%(pretty{text})%>"
+ To:
+ cc:
+ :
+ From:
+ Subject:
+ :
+ extras:nocomponent
+ :
+ body:nocomponent,overflowtext=,overflowoffset=0,noleftadjust
+
+ The variable "formatfield" specifies a format string (see
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5)). The flag variables "addrfield" and "datefield"
+ (which are mutually exclusive), tell _\bm_\bh_\bl to interpret the escapes
+ in the format string as either addresses or dates, respectively.
+
+ By default, _\bm_\bh_\bl does not apply any formatting string to fields con-
+ taining address or dates (see _\bm_\bh-_\bm_\ba_\bi_\bl (5) for a list of these
+ fields). Note that this results in faster operation since _\bm_\bh_\bl must
+ parse both addresses and dates in order to apply a format string to
+ them. If desired, _\bm_\bh_\bl can be given a default format string for
+ either address or date fields (but not both). To do this, on a
+ global line specify: either the flag addrfield or datefield, along
+ with the apropriate formatfield variable string.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/lib/mhl.format The message template
+ or <mh-dir>/mhl.format Rather than the standard template
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ moreproc: Program to use as interactive front-end
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ show(1), ap(8), dp(8)
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -51- MHL(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-bell'
+ `-noclear'
+ `-length 40'
+ `-width 80'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ There should be some way to pass `bell' and `clear' information to
+ the front-end.
+
+ On hosts where _\bM_\bH was configured with the BERK option, address
+ parsing is not enabled.
+
+ The "nonewline" option interacts badly with "compress" and "split".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHMAIL(1) -52- MHMAIL(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhmail - send or read mail
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mhmail [ addrs ... [-body text] [-cc addrs ...] [-from addr]
+ [-subject subject]] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bH_\bm_\ba_\bi_\bl is intended as a replacement for the standard Bell mail pro-
+ gram (_\bb_\be_\bl_\bl_\bm_\ba_\bi_\bl (1)), compatible with _\bM_\bH. When invoked without
+ arguments, it simply invokes _\bi_\bn_\bc (1) to incorporate new messages
+ from the user's maildrop. When one or more users is specified, a
+ message is read from the standard input and spooled to a temporary
+ file. _\bM_\bH_\bm_\ba_\bi_\bl then invokes _\bp_\bo_\bs_\bt (8) with the name of the temporary
+ file as its argument to deliver the message to the specified user.
+
+ The `-subject subject' switch can be used to specify the "Subject:"
+ field of the message. The `-body text' switch can be used to
+ specify the text of the message; if it is specified, then the stan-
+ dard input is not read. Normally, addresses appearing as arguments
+ are put in the "To:" field. If the `-cc' switch is used, all
+ addresses following it are placed in the "cc:" field.
+
+ By using `-from addr', you can specify the "From:" header of the
+ draft. Naturally, _\bp_\bo_\bs_\bt will fill-in the "Sender:" header
+ correctly.
+
+ This program is intended for the use of programs such as _\ba_\bt (1),
+ which expect to send mail automatically to various users. Nor-
+ mally, real people (as opposed to the "unreal" ones) will prefer to
+ use _\bc_\bo_\bm_\bp (1) and _\bs_\be_\bn_\bd (1) to send messages.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/bin/inc Program to incorporate a maildrop into a folder
+ /usr/bs/mh-6.8/lib/post Program to deliver a message
+ /tmp/mhmail* Temporary copy of message
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHMAIL(1) -53- MHMAIL(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If _\bi_\bn_\bc is invoked, then _\bi_\bn_\bc's context changes occur.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -54- MHN(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhn - multi-media MH
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mhn [+folder] [msgs] [-part number]... [-type content]...
+ [-list [-headers] [-noheaders]
+ [-realsize] [-norealsize]] [-nolist]
+ [-show [-serialonly] [-noserialonly]]
+ [-form formfile]] [-noshow]
+ [-store [-auto] [-noauto]] [-nostore]
+ [-verbose] [-noverbose] [-rfc934mode] [-norfc934mode]
+ [-ebcdicsafe] [-noebcdicsafe]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bm_\bh_\bn command manipulates multi-media messages as specified in
+ RFC 1341.
+
+ Three action switches direct the operation of _\bm_\bh_\bn, namely `-list',
+ `-show', and `-store'. Any of these switches may be used con-
+ currently. Normally these action switches will operate on the con-
+ tent of each of the named messages. However, by using the `-part'
+ and `-type' switches, the scope of the operation can be focused on
+ particular subparts (of a multipart content) and/or particular con-
+ tent types.
+
+ A part specification consists of a series of numbers separated by
+ dots. For example, in a multipart content containing three parts,
+ these would be named as 1, 2, and 3, respectively. If part 2 was
+ also a multipart content containing two parts, these would be named
+ as 2.1 and 2.2, respectively. Note that the `-part' switch is
+ effective for only messages containing a multipart content. If a
+ message has some other kind of content, or if the part is itself
+ another multipart content, the `-part' switch will not prevent the
+ content from being acted upon.
+
+ A content specification consists of a content type and a subtype.
+ The initial list of "standard" content types and subtypes can be
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -55- MHN(1)
+
+
+ found in RFC 1341. A list of commonly used contents is briefly
+ reproduced here:
+
+ Type Subtypes
+ ---- --------
+ text plain, richtext
+ multipart mixed, alternative, digest, parallel
+ message rfc822, partial, external-body
+ application octet-stream, oda, postscript
+ image jpeg, gif, x-pbm, x-pgm, x-ppm, x-xwd
+ audio basic
+ video mpeg
+
+ Subtypes are mandatory. To specify a content, regardless of its
+ subtype, just use the name of the content, e.g., "audio". To
+ specify a specific subtype, separate the two with a slash, e.g.,
+ "audio/basic". Note that regardless of the values given to the
+ `-type' switch, a multipart content is always acted upon. Further
+ note that if the `-type' switch is used, and it is desirable to act
+ on a message/external-body content, then the `-type' switch must be
+ used twice: once for message/external-body and once for the content
+ externally referenced.
+
+
+ _\bL_\bi_\bs_\bt_\bi_\bn_\bg _\bt_\bh_\be _\bC_\bo_\bn_\bt_\be_\bn_\bt_\bs
+
+ The `-list' switch tells _\bm_\bh_\bn to list the table of contents associ-
+ ated with the named messages. The `-headers' switch indicates that
+ a one-line banner should be displayed above the listing. The
+ `-realsize' switch tells _\bm_\bh_\bn to evaluate the "native" (decoded)
+ format of each content prior to listing. This provides an accurate
+ count at the expense of a small delay.
+
+
+ _\bS_\bh_\bo_\bw_\bi_\bn_\bg _\bt_\bh_\be _\bC_\bo_\bn_\bt_\be_\bn_\bt_\bs
+
+ The `-show' switch tells _\bm_\bh_\bn to display the contents of the named
+ messages. The headers of the message are displayed with the
+ _\bm_\bh_\bl_\bp_\br_\bo_\bc, using format file _\bm_\bh_\bl._\bh_\be_\ba_\bd_\be_\br_\bs. (The choice of format file
+ can be overridden by the `-form formfile' switch.)
+
+ _\bm_\bh_\bn will look for information in the user's profile to determine
+ how the different contents should be displayed. This is accom-
+ plished by consulting a display string, and executing it under
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -56- MHN(1)
+
+
+ /bin/sh, with the standard input set to the content. The display
+ string may contain these escapes:
+
+ %a additional arguments
+ %e exclusive execution
+ %f filename containing content
+ %F %e, %f, and stdin is terminal not content
+ %l display listing prior to displaying content
+ %p %l, and ask for confirmation
+ %s subtype
+
+ For those display strings containing the e- or F-escape, _\bm_\bh_\bn will
+ execute at most one of these at any given time. Although the F-
+ escape expands to be the filename containing the content, the e-
+ escape has no expansion as far as the shell is concerned.
+
+ When the p-escape prompts for confirmation, typing INTR (usually
+ control-C) will tell _\bm_\bh_\bn not to display that content. Further,
+ when _\bm_\bh_\bn is display a content, typing QUIT (usually control-\) will
+ tell _\bm_\bh_\bn to wrap things up immediately.
+
+ First, _\bm_\bh_\bn will look for an entry of the form:
+
+ mhn-show-<type>/<subtype>
+
+ to determine the command to use to display the content. If this
+ isn't found, _\bm_\bh_\bn will look for an entry of the form:
+
+ mhn-show-<type>
+
+ to determine the display command. If this isn't found, _\bm_\bh_\bn has two
+ default values:
+
+ mhn-show-text/plain: %pmoreproc '%F'
+ mhn-show-message/rfc822: %pshow -file '%F'
+
+ If neither apply, _\bm_\bh_\bn will check to see if the message has a
+ application/octet-stream content with parameter "type=tar". If so,
+ _\bm_\bh_\bn will use an appropriate command. If not, _\bm_\bh_\bn will complain.
+
+ Example entries might be:
+
+ mhn-show-audio/basic: raw2audio 2>/dev/null | play
+ mhn-show-image: xv '%f'
+ mhn-show-application/PostScript: lpr -Pps
+
+ Note that when using the f- or F-escape, it's a good idea to use
+ single-quotes around the escape. This prevents misinterpretation
+ by the shell of any funny characters that might be present in the
+ filename.
+
+ Because the text content might be in a non-ASCII character set,
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -57- MHN(1)
+
+
+ when _\bm_\bh_\bn encounters a "charset" parameter for this content, it
+ checks to see whether the environment variable $MM_CHARSET is set
+ and whether the value of this environment variable is equal to the
+ value of the charset parameter. If not, then _\bm_\bh_\bn will look for an
+ entry of the form:
+
+ mhn-charset-<charset>
+
+ which should contain a command creating an environment to render
+ the character set. This command string should containing a single
+ "%s", which will be filled-in with the command to display the con-
+ tent.
+
+ An example entry might be:
+
+ mhn-charset-iso-8859-1: xterm -fn '-*-*-medium-r-normal-*-*-
+ 120-*-*-c-*-iso8859-*' -e %s
+
+ Note that many pagination programs strip off the high-order bit.
+ However, newer releases of the _\bl_\be_\bs_\bs program have modest support for
+ single-octet character sets. The source to _\bl_\be_\bs_\bs version 177, which
+ has such support, is found in the MH source tree under
+ miscellany/less-177. In order to view messages sent in the ISO
+ 8859/1 character set using _\bl_\be_\bs_\bs, put these lines in your .login
+ file:
+
+ setenv LESSCHARSET latin1
+ setenv LESS "-f"
+
+ The first line tells _\bl_\be_\bs_\bs to use 8859/1 definition for determing
+ whether a character is "normal", "control", or "binary". The
+ second line tells _\bl_\be_\bs_\bs not to warn you if it encounters a file that
+ has non-ASCII characters. Then, simply set the moreproc profile
+ entry to _\bl_\be_\bs_\bs, and it will get called automatically. (To handle
+ other single-octet character sets, look at the _\bl_\be_\bs_\bs (1) manual
+ entry for information about the LESSCHARDEF environment variable.)
+
+ Finally, _\bm_\bh_\bn will process each message serially -- it won't start
+ showing the next message until all the commands executed to display
+ the current message have terminated. In the case of a multipart
+ content, the content contains advice indicating if the parts should
+ be displayed serially or in parallel. Because this may cause con-
+ fusion, particularly on uni-window displays, the `-serialonly'
+ switch can be given to tell _\bm_\bh_\bn to never display parts in parallel.
+
+
+ _\bS_\bt_\bo_\br_\bi_\bn_\bg _\bt_\bh_\be _\bC_\bo_\bn_\bt_\be_\bn_\bt_\bs
+
+ The `-store' switch tells _\bm_\bh_\bn to store the contents of the named
+ messages in "native" (decoded) format. Two things must be deter-
+ mined: the directory to store the content, and the filenames.
+ Files are written in the directory given by the mhn-storage profile
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -58- MHN(1)
+
+
+ entry, e.g.,
+
+ mhn-storage: /tmp
+
+ If this entry isn't present, the current working directory is used.
+
+ _\bm_\bh_\bn will look for information in the user's profile to determine
+ how the different contents should be stored. This is achieved
+ through the use of a formatting string, which may contain these
+ escapes:
+
+ %m message number
+ %P .part
+ %p part
+ %s subtype
+
+ If the content isn't part of a multipart content, the p-escapes are
+ ignored. Note that if the formatting string starts with a "+"
+ character, then these escapes are ignored, and the content is
+ stored in the named folder. (A formatting string consisting solely
+ of a "+" character indicates the current folder.) Further, a for-
+ matting string consisting solely of a "-" character indicates the
+ standard-output.
+
+ First, _\bm_\bh_\bn will look for an entry of the form:
+
+ mhn-store-<type>/<subtype>
+
+ to determine the formatting string. If this isn't found, _\bm_\bh_\bn will
+ look for an entry of the form:
+
+ mhn-store-<type>
+
+ to determine the formatting string. If this isn't found, _\bm_\bh_\bn will
+ check to see if the content is application/octet-stream with param-
+ eter "type=tar". If so, _\bm_\bh_\bn will choose an appropriate filename.
+ If the content is not application/octet-stream, then _\bm_\bh_\bn will check
+ to see if the content is a message. If so, _\bm_\bh_\bn will use the value
+ "+". If not, _\bm_\bh_\bn will use the value "%m%P.%s".
+
+ Note that if the formatting string starts with a '/', then content
+ will be stored in the full path given (rather than using the value
+ of mhn-storage or the current working directory.) Similarly, if the
+ formatting string starts with a '|', then _\bm_\bh_\bn will execute a com-
+ mand which should ultimately store the content. Note that before
+ executing the command, _\bm_\bh_\bn will change to the appropriate direc-
+ tory. Also note that if the formatting string starts with a '|',
+ then _\bm_\bh_\bn will also honor the a-escape when processing the format-
+ ting string.
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -59- MHN(1)
+
+
+ Example entries might be:
+
+ mhn-store-text: %m%P.txt
+ mhn-store-audio/basic: | raw2audio -e ulaw -s 8000 -c 1 > %m%P.au
+ mhn-store-application/PostScript: %m%P.ps
+
+ Further, note that when asked to store a content containing a par-
+ tial message, _\bm_\bh_\bn will try to locate all of the portions and com-
+ bine them accordingly. Thus, if someone's sent you a message in
+ several parts, you might put them all in their own folder and do:
+
+ mhn all -store
+
+ This will store exactly one message, containing the sum of the
+ parts. Note that if _\bm_\bh_\bn can not locate each part, it will not
+ store anything.
+
+ Finally, if the `-auto' switch is given and the content contains
+ information indicating the filename the content should be stored as
+ (and if the filename doesn't begin with a '/'), then the filename
+ from the content will be used instead.
+
+
+ _\bE_\bx_\bt_\be_\br_\bn_\ba_\bl _\bA_\bc_\bc_\be_\bs_\bs
+
+ For contents of type message/external-body, _\bm_\bh_\bn supports these
+ access-types:
+
+ afs
+ anon-ftp
+ ftp
+ local-file
+ mail-server
+
+ If your system supports a SOCKETs interface to TCP/IP, then _\bm_\bh_\bn
+ will use a built-in FTP client. Otherwise, _\bm_\bh_\bn will look for the
+ mhn-access-ftp profile entry, e.g.,
+
+ mhn-access-ftp: myftp.sh
+
+ to determine the pathname of a program to perform the FTP
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -60- MHN(1)
+
+
+ retrieval. This program is invoked with these arguments:
+
+ domain name of FTP-site
+ username
+ password
+ remote directory
+ remote filename
+ local filename
+ "ascii" or "binary"
+
+ The program should terminate with a zero-valued exit-status if the
+ retrieval is success.
+
+
+ _\bT_\bh_\be _\bC_\bo_\bn_\bt_\be_\bn_\bt _\bC_\ba_\bc_\bh_\be
+
+ When _\bm_\bh_\bn encounters an external content containing a "Content-ID:"
+ field, and if the content allows caching, then _\bm_\bh_\bn looks for the
+ profile entry mhn-cache to determine if the content should be read
+ from/written to a cache. Any content written to the cache will, by
+ default, be world-readable. (To prevent this, use a directory name
+ with the desired read and execute permissions.) The mhn-cache pro-
+ file entry names the directory used for caching, e.g.,
+
+ mhn-cache: /tmp
+
+ might be used if you didn't care that the cache got wiped after
+ each reboot of the system.
+
+
+ _\bC_\bo_\bm_\bp_\bo_\bs_\bi_\bn_\bg _\bt_\bh_\be _\bC_\bo_\bn_\bt_\be_\bn_\bt_\bs
+
+ The _\bm_\bh_\bn program can also be used as a simple editor to aid in com-
+ posing multi-media messages. When invoked by a _\bw_\bh_\ba_\bt_\bn_\bo_\bw program,
+ _\bm_\bh_\bn will expect the body of the draft to be formatted as an "_\bm_\bh_\bn
+ composition file."
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -61- MHN(1)
+
+
+ The syntax of this is straight-forward:
+
+ body ::= 1*(content | EOL)
+
+ content ::= directive | plaintext
+
+ directive ::= "#" type "/" subtype
+ 0*(";" attribute "=" value)
+ [ "(" comment ")" ]
+ [ "[" description "]" ]
+ [ filename ]
+ EOL
+
+ | "#@" type "/" subtype
+ 0*(";" attribute "=" value)
+ [ "(" comment ")" ]
+ [ "[" description "]" ]
+ external-parameters
+ EOL
+
+ | "#forw"
+ [ "[" description "]" ]
+ [ "+"folder ] [ 0*msg ]
+ EOL
+
+ | "#begin"
+ [ "[" description "]" ]
+ [ "alternative"
+ | "parallel" ]
+ EOL
+ 1*body
+ "#end" EOL
+
+ plaintext ::= [ "Content-Description:"
+ description EOL EOL ]
+ 1*line
+ [ "#" EOL ]
+
+ | "#<" type "/" subtype
+ 0*(";" attribute "=" value)
+ [ "(" comment ")" ]
+ [ "[" description "]" ]
+ EOL
+ 1*line
+ [ "#" EOL ]
+
+ line ::= "##" text EOL
+ -- interpreted as "#"text EOL
+ | text EOL
+
+ Basically, the body contains one or more contents. A content con-
+ sists of either a directive, indicated with a "#" as the first
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -62- MHN(1)
+
+
+ character of a line; or, plaintext (one or more lines of text).
+ The continuation character, "\", may be used to enter a single
+ directive on more than one line, e.g.,
+
+ #@application/octet-stream; \
+ type=tar; \
+ conversions=x-compress
+
+ There are four kinds of directives: "type" directives, which name
+ the type and subtype of the content; "external-type" directives,
+ which also name the type and subtype of the content; the "forw"
+ directive, which is used to forward a digest of messages; and, the
+ "begin" directive, which is used to create a multipart content.
+
+ For the type directives, the user may optionally specify the name
+ of a file containing the contents in "native" (decoded) format.
+ (If the filename starts with the "|" character, then this gives a
+ command whose output is captured accordingly.) If a filename is not
+ given, _\bm_\bh_\bn will look for information in the user's profile to
+ determine how the different contents should be composed. This is
+ accomplished by consulting a composition string, and executing it
+ under /bin/sh, with the standard output set to the content. The
+ composition string may contain these escapes:
+
+ %a additional arguments
+ %f filename containing content
+ %F %f, and stdout is not re-directed
+ %s subtype
+
+ First, _\bm_\bh_\bn will look for an entry of the form:
+
+ mhn-compose-<type>/<subtype>
+
+ to determine the command to use to compose the content. If this
+ isn't found, _\bm_\bh_\bn will look for an entry of the form:
+
+ mhn-compose-<type>
+
+ to determine the composition command. If this isn't found, _\bm_\bh_\bn
+ will complain.
+
+ An example entry might be:
+
+ mhn-compose-audio/basic: record | raw2audio -F
+
+ Because commands like these will vary, depending on the display
+ environment used for login, composition strings for different con-
+ tents should probably be put in the file specified by the $MHN
+ environment variable, instead of directly in your user profile.
+
+ The external-type directives are used to provide a reference to a
+ content, rather than enclosing the contents itself. Hence, instead
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -63- MHN(1)
+
+
+ of providing a filename as with the type directives, external-
+ parameters are supplied. These look like regular parameters, so
+ they must be separated accordingly, e.g.,
+
+ #@application/octet-stream; \
+ type=tar; \
+ conversions=x-compress [] \
+ access-type=anon-ftp; \
+ name="mh-mime.tar.Z"; \
+ directory="mrose/mh-mime"; \
+ site="ftp.ics.uci.edu"
+
+ By specifying "[]", an empty description string is given, and the
+ start of the external-parameters is identified. These parameters
+ are of the form:
+
+ access-type= usually _\ba_\bn_\bo_\bn-_\bf_\bt_\bp or _\bm_\ba_\bi_\bl-_\bs_\be_\br_\bv_\be_\br
+ name= filename
+ directory= directoryname (optional)
+ site= hostname
+ mode= usually _\ba_\bs_\bc_\bi_\bi or _\bi_\bm_\ba_\bg_\be (optional)
+ server= mailbox
+ body= command to send for retrieval
+
+
+ For the forw directive, the user may optionally specify the name of
+ the folder and which messages are to be forwarded. if a folder is
+ not given, it defaults to the current folder. Similarly, if a mes-
+ sage is not given, it defaults to the current message. Hence, the
+ forw directive is similar to the _\bf_\bo_\br_\bw (1) command, except that the
+ former uses the MIME rules for encapsulation rather than those
+ specified in RFC 934. Usage of the `-rfc934mode' switch indicates
+ whether _\bm_\bh_\bn should attempt to utilize the encapsulation rules in
+ such a way as to appear that RFC 934 is being used. If given, then
+ RFC 934-compliant user-agents should be able to burst the message
+ on reception -- providing that the messages being encapsulated do
+ not contain encapsulated messages themselves. The drawback of this
+ approach is that the encapsulations are generated by placing an
+ extra newline at the end of the body of each message.
+
+ For the begin directive, the user must specify at least one content
+ between the begin and end pairs.
+
+ For all of these directives, the user may include a brief descrip-
+ tion of the content between the "[" character and the "]" charac-
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -64- MHN(1)
+
+
+ ter. Putting this all together, here is a brief example of what a
+ user's components file might look like:
+
+ To:
+ cc:
+ Subject:
+ --------
+ #audio/basic [Flint phone] \
+ |raw2audio -F < /home/mrose/lib/multi-media/flint.au
+ #image/gif [MTR's photo] \
+ /home/mrose/lib/multi-media/mrose.gif
+
+ For a later example, we'll call this components file _\bm_\bh_\bn_\bc_\bo_\bm_\bp_\bs.
+
+ As noted earlier, in addition to directives, plaintext can be
+ present. Plaintext is gathered, until a directive is found or the
+ draft is exhausted, and this is made to form a text content. If
+ the plaintext must contain a "#" at the beginning of a line, simply
+ double it, e.g.,
+
+ ##when sent, this line will start with only one #
+
+ If you want to end the plaintext prior to a directive, e.g., to
+ have two plaintext contents adjacent, simply insert a line contain-
+ ing a single "#" character, e.g.,
+
+ this is the first content
+ #
+ and this is the second
+
+ Finally, if the plaintext starts with a line of the form:
+
+ Content-Description: text
+
+ then this will be used to describe the plaintext content. NOTE
+ WELL: you must follow this line with a blank line before starting
+ your text.
+
+ By default, plaintext is captured as a text/plain content. You can
+ override this by starting the plaintext with "#<" followed by a
+ content-type specification, e.g.,
+
+ #<text/richtext
+ this content will be tagged as text/richtext
+ #
+ and this content will be tagged as text/plain
+
+ Note that if you use the "#<" plaintext-form, then the content-
+ description must be on the same line which identifies the content
+ type of the plaintext.
+
+ If _\bm_\bh_\bn is successful, it renames the original draft to start with
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -65- MHN(1)
+
+
+ the "," character and end with the string ".orig", e.g., if you are
+ editing the file "draft", it will be renamed to ",draft.orig".
+ This allows you to easily recover the _\bm_\bh_\bn composition file.
+
+
+ _\bA_\bu_\bt_\bo_\bm_\ba_\bt_\bi_\bc _\bC_\bo_\bm_\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn
+
+ Note that MH will not invoke _\bm_\bh_\bn automatically, unless you add this
+ line to your .mh_profile file:
+
+ automhnproc: mhn
+
+ Otherwise, you must specifically give the command
+
+ What now? edit mhn
+
+ prior to sending the draft.
+
+ You can easily tailor MH to help you remember to do this. Suppose
+ you have these lines in your profile:
+
+ mcomp: -editor mprompter -form mhncomps
+ mprompter: -noprepend -norapid
+ mprompter-next: mhn
+
+ where _\bm_\bc_\bo_\bm_\bp is a link to _\bc_\bo_\bm_\bp (1), and _\bm_\bp_\br_\bo_\bm_\bp_\bt_\be_\br is a link to
+ _\bp_\br_\bo_\bm_\bp_\bt_\be_\br (1). Then to send a message using the _\bm_\bh_\bn_\bc_\bo_\bm_\bp_\bs components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -66- MHN(1)
+
+
+ file above, the sequence is:
+
+ % mcomp
+ To: user@host
+ cc:
+ Subject: multi-media message
+ --------
+ #audio/basic [Flint phone] \
+ |raw2audio -F < /home/mrose/lib/multi-media/flint.au
+ #image/gif [MTR's photo] \
+ /home/mrose/lib/multi-media/mrose.gif
+
+ --------Enter additional text
+
+ This message contains three contents.
+ <CTRL-D>
+ --------
+
+ What now? edit (this invokes _\bm_\bh_\bn)
+
+ What now? send
+
+ You have to remember to type the additional edit command, but it
+ should be fairly obvious from the interaction.
+
+ Finally, you should consider adding this line to your profile:
+
+ lproc: show
+
+ This way, if you decide to list after invoking _\bm_\bh_\bn as your editor,
+ the command
+
+ What now? list
+
+ will work as you expect.
+
+
+ _\bS_\be_\bn_\bd_\bi_\bn_\bg _\bF_\bi_\bl_\be_\bs _\bv_\bi_\ba _\bM_\ba_\bi_\bl
+
+ When you want to send a bunch of files to someone, you can run the
+ _\bv_\bi_\ba_\bm_\ba_\bi_\bl shell script, which is similar the tarmail command:
+
+ /usr/bs/mh-6.8/lib/viamail mailpath "subject" files ...
+
+ _\bv_\bi_\ba_\bm_\ba_\bi_\bl will archive the directories/files you name with _\bt_\ba_\br (1),
+ and then mail the compressed archive to the `mailpath' with the
+ given `subject'. The archive will be automatically split up into
+ as many messages as necessary in order to get past most mailers.
+
+ Sometimes you want _\bv_\bi_\ba_\bm_\ba_\bi_\bl to pause after posting a partial mes-
+ sage. This is usually the case when you are running _\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl and
+ expect to generate a lot of partial messages. If the first
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -67- MHN(1)
+
+
+ argument given to _\bv_\bi_\ba_\bm_\ba_\bi_\bl starts with a dash, then it is inter-
+ preted as the number of seconds to pause in between postings, e.g.,
+
+ /usr/bs/mh-6.8/lib/viamail -300 mailpath "subject" files ...
+
+ will pause 5 minutes in between each posting.
+
+ When these messages are received, invoke _\bm_\bh_\bn once, with the list of
+ messages, and the `-store' command. The _\bm_\bh_\bn program will then
+ store exactly one message containing the archive. You can then use
+ `-show' to find out what's inside; possibly followed by `-store'
+ to write the archive to a file where you can subsequently
+ uncompress and untar it, e.g.,
+
+ % mhn -list all
+ msg part type/subtype size description
+ 1 message/partial 47K part 1 of 4
+ 2 message/partial 47K part 2 of 4
+ 3 message/partial 47K part 3 of 4
+ 4 message/partial 18K part 4 of 4
+ % mhn -store all
+ % mhn -list -verbose last
+ msg part type/subtype size description
+ 5 application/octet-stream 118K
+ (extract with uncompress | tar xvpf -)
+ type=tar
+ conversions=x-compress
+ % mhn -show last
+ msg part type/subtype size description
+ 5 application/octet-stream 118K
+ -- headers of message, followed by _\bt_\ba_\br listing appears here
+ % mhn -store last
+ % uncompress < 5.tar.Z | tar xvpf -
+
+ Alternately, by using the `-auto' switch, _\bm_\bh_\bn will automatically do
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -68- MHN(1)
+
+
+ the extraction for you, e.g.,
+
+ % mhn -list all
+ msg part type/subtype size description
+ 1 message/partial 47K part 1 of 4
+ 2 message/partial 47K part 2 of 4
+ 3 message/partial 47K part 3 of 4
+ 4 message/partial 18K part 4 of 4
+ % mhn -store all
+ % mhn -list -verbose last
+ msg part type/subtype size description
+ 5 application/octet-stream 118K
+ (extract with uncompress | tar xvpf -)
+ type=tar
+ conversions=x-compress
+ % mhn -show last
+ msg part type/subtype size description
+ 5 application/octet-stream 118K
+ -- headers of message, followed by _\bt_\ba_\br listing appears here
+ % mhn -store -auto last
+ -- _\bt_\ba_\br listing appears here as files are extracted
+
+ As the second _\bt_\ba_\br listing is generated, the files are extracted. A
+ prudent user will never put `-auto' in the .mh_profile file. The
+ correct procedure is to first use `-show', to find out what will be
+ extracted. Then _\bm_\bh_\bn can be invoked with `-store' and `-auto' to
+ perform the extraction.
+
+
+ _\bU_\bs_\be_\br _\bE_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt
+
+ Because the display environment in which _\bm_\bh_\bn operates may vary for
+ a user, _\bm_\bh_\bn will look for the environment variable $MHN. If
+ present, this specifies the name of an additional user profile
+ which should be read. Hence, when a user logs in on a particular
+ display device, this environment variable should be set to refer to
+ a file containing definitions useful for the display device. Nor-
+ mally, only entries of the form
+
+ mhn-show-<type>/<subtype>
+ mhn-show-<type>
+
+ need be present. Finally, _\bm_\bh_\bn will attempt to consult one other
+ additional user profile, e.g.,
+
+ /usr/bs/mh-6.8/lib/mhn_defaults
+
+ which is created automatically during MH installation.
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHN(1) -69- MHN(1)
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ $MHN Additional profile entries
+ /usr/bs/mh-6.8/lib/mhn_defaults System-default profile entries
+ /usr/bs/mh-6.8/lib/mhl.headers The headers template
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ mhlproc: Default program to display message headers
+ mhn-access-ftp: Program to retrieve contents via FTP
+ mhn-cache Directory to store cached external contents
+ mhn-charset-<charset>Template for environment to render character
+ sets
+ mhn-compose-<type>* Template for composing contents
+ mhn-show-<type>* Template for displaying contents
+ mhn-storage Directory to store contents
+ mhn-store-<type>* Template for storing contents
+ moreproc: Default program to display text/plain content
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mhl(1)
+ _\bM_\bI_\bM_\bE: _\bM_\be_\bc_\bh_\ba_\bn_\bi_\bs_\bm_\bs _\bf_\bo_\br _\bS_\bp_\be_\bc_\bi_\bf_\by_\bi_\bn_\bg _\ba_\bn_\bd _\bD_\be_\bs_\bc_\br_\bi_\bb_\bi_\bn_\bg _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bI_\bn_\bt_\be_\br-
+ _\bn_\be_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be _\bB_\bo_\bd_\bi_\be_\bs (RFC 1341),
+ _\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bE_\bn_\bc_\ba_\bp_\bs_\bu_\bl_\ba_\bt_\bi_\bo_\bn (RFC 934).
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `-noauto'
+ `-noebcdicsafe'
+ `-form mhl.headers'
+ `-headers'
+ `-realsize'
+ `-rfc934mode'
+ `-noserialonly'
+ `-show'
+ `-noverbose'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The last
+ message selected will become the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ Partial messages contained within a multipart content are not
+ reassembled with the `-store' switch.
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHOOK(1) -70- MHOOK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhook, rcvdist, rcvpack, rcvtty - MH receive-mail hooks
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bs/mh-6.8/lib/rcvdist [-form formfile] [switches for _\bp_\bo_\bs_\bt_\bp_\br_\bo_\bc]
+ address ... [-help]
+
+ /usr/bs/mh-6.8/lib/rcvpack file [-help]
+
+ /usr/bs/mh-6.8/lib/rcvtty [command] [-form formatfile]
+ [-format string] [-bell] [-nobell] [-newline] [-nonewline]
+ [-biff] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ A receive-mail hook is a program that is run whenever you receive a
+ mail message. You do NOT invoke the hook yourself, rather the hook
+ is invoked on your behalf by your system's Message Transport Agent.
+ See _\bs_\bl_\bo_\bc_\ba_\bl (1) for details on how to activate receive-mail hooks on
+ your system.
+
+ Four programs are currently available as part of _\bM_\bH, _\br_\bc_\bv_\bd_\bi_\bs_\bt
+ (redistribute incoming messages to additional recipients), _\br_\bc_\bv_\bp_\ba_\bc_\bk
+ (save incoming messages in a _\bp_\ba_\bc_\bk_\bf'd file), and _\br_\bc_\bv_\bt_\bt_\by (notify user
+ of incoming messages). The fourth program, _\br_\bc_\bv_\bs_\bt_\bo_\br_\be (1) is
+ described separately. They all reside in the /_\bu_\bs_\br/_\bb_\bs/_\bm_\bh-_\b6._\b8/_\bl_\bi_\bb/
+ directory.
+
+ The _\br_\bc_\bv_\bd_\bi_\bs_\bt program will resend a copy of the message to all of the
+ addresses listed on its command line. It uses the format string
+ facility described in _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5).
+
+ The _\br_\bc_\bv_\bp_\ba_\bc_\bk program will append a copy of the message to the file
+ listed on its command line. Its use is obsoleted by the "file"
+ action of _\bs_\bl_\bo_\bc_\ba_\bl.
+
+ The _\br_\bc_\bv_\bt_\bt_\by program executes the named file with the message as its
+ standard input, and writes the resulting output on your terminal.
+
+ If no file is specified, or is bogus, etc., then _\br_\bc_\bv_\bt_\bt_\by will
+ instead write a one-line scan listing. Either the
+ `-form formatfile' or `-format string' option may be used to over-
+ ride the default output format (see _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5)). A newline is
+ output before the message output, and the terminal bell is rung
+ after the output. The `-nonewline' and `-nobell' options will
+ inhibit these functions.
+
+ In addition to the standard _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) escapes, _\br_\bc_\bv_\bt_\bt_\by also
+ recognizes the following additional _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escapes:
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHOOK(1) -71- MHOOK(1)
+
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ body string the (compressed) first part of the body
+ dtimenow date the current date
+ folder string the name of the current folder
+
+ Normally, _\br_\bc_\bv_\bt_\bt_\by obeys write permission as granted by _\bm_\be_\bs_\bg (1).
+ With the `-biff' option, _\br_\bc_\bv_\bt_\bt_\by will obey the notification status
+ set by _\bb_\bi_\bf_\bf (1) instead. If the terminal access daemon (TTYD) is
+ available on your system, then _\br_\bc_\bv_\bt_\bt_\by will give its output to the
+ daemon for output instead of writing on the user's terminal.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/lib/mtstailor tailor file
+ $HOME/.maildelivery The file controlling local delivery
+ /usr/bs/mh-6.8/lib/maildelivery Rather than the standard file
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rcvstore (1), mh-format(5), slocal(1)
+
+
+ _\bB_\bu_\bg_\bs
+ Only two return codes are meaningful, others should be.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHPARAM(1) -72- MHPARAM(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhparam - print MH profile components
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mhparam [components] [-all] [-component] [-nocomponent] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bh_\bp_\ba_\br_\ba_\bm writes the value of the specified profile component to the
+ standard output separated by newlines. If the profile component is
+ not present, the default value (or nothing if there is no default)
+ is printed.
+
+ If more than one component is specified in the `components' list,
+ the component value is preceded by the component name. If `-com-
+ ponent' is specified, the component name is displayed even when
+ only one component is specified. If `-nocomponent' is specified,
+ the component name is not displayed even when more than one com-
+ ponent is specified.
+
+ If `-all' is specified, all components if the MH profile are
+ displayed and other arguments are ignored.
+
+ Examples:
+
+ % mhparam path
+ Mail
+
+ % mhparam mhlproc
+ /usr/bs/mh-6.8/lib/mhl
+
+ % mhparam -component path
+ Path: Mail
+
+ % mhparam AliasFile rmmproc
+ AliasFile: aliases
+ rmmproc: rmmproc
+
+ % mhparam -nocomponent AliasFile rmmproc
+ aliases
+ rmmproc
+
+ _\bM_\bh_\bp_\ba_\br_\ba_\bm is also useful in back-quoted operations:
+
+ % fgrep cornell.edu `mhpath +`/`mhparam aliasfile`
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHPARAM(1) -73- MHPARAM(1)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-profile(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-nocomponent' if only one component is specified
+ `-component' if more than one component is specified
+ `components' defaults to none
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHPATH(1) -74- MHPATH(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhpath - print full pathnames of MH messages and folders
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mhpath [+folder] [msgs] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bh_\bp_\ba_\bt_\bh expands and sorts the message list `msgs' and writes the
+ full pathnames of the messages to the standard output separated by
+ newlines. If no `msgs' are specified, _\bm_\bh_\bp_\ba_\bt_\bh outputs the folder
+ pathname instead. If the only argument is `+', your MH _\bP_\ba_\bt_\bh is
+ output; this can be useful is shell scripts.
+
+ Contrasted with other MH commands, a message argument to _\bm_\bh_\bp_\ba_\bt_\bh may
+ often be intended for _\bw_\br_\bi_\bt_\bi_\bn_\bg. Because of this:
+
+ 1) the name "new" has been added to _\bm_\bh_\bp_\ba_\bt_\bh's list of reserved mes-
+ sage names (the others are "first", "last", "prev", "next", "cur",
+ and "all"). The new message is equivalent to the message after the
+ last message in a folder (and equivalent to 1 in a folder without
+ messages). The "new" message may not be used as part of a message
+ range.
+
+ 2) Within a message list, the following designations may refer to
+ messages that do not exist: a single numeric message name, the sin-
+ gle message name "cur", and (obviously) the single message name
+ "new". All other message designations must refer to at least one
+ existing message.
+
+ 3) An empty folder is not in itself an error.
+
+ Message numbers greater than the highest existing message in a
+ folder as part of a range designation are replaced with the next
+ free message number.
+
+ Examples: The current folder foo contains messages 3 5 6. Cur is
+ 4.
+
+ % mhpath
+ /r/phyl/Mail/foo
+
+ % mhpath all
+ /r/phyl/Mail/foo/3
+ /r/phyl/Mail/foo/5
+ /r/phyl/Mail/foo/6
+
+ % mhpath 2001
+ /r/phyl/Mail/foo/7
+
+ % mhpath 1-2001
+ /r/phyl/Mail/foo/3
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHPATH(1) -75- MHPATH(1)
+
+
+ /r/phyl/Mail/foo/5
+ /r/phyl/Mail/foo/6
+
+ % mhpath new
+ /r/phyl/Mail/foo/7
+
+ % mhpath last new
+ /r/phyl/Mail/foo/6
+ /r/phyl/Mail/foo/7
+
+ % mhpath last-new
+ bad message list "last-new".
+
+ % mhpath cur
+ /r/phyl/Mail/foo/4
+
+ % mhpath 1-2
+ no messages in range "1-2".
+
+ % mhpath first:2
+ /r/phyl/Mail/foo/3
+ /r/phyl/Mail/foo/5
+
+ % mhpath 1 2
+ /r/phyl/Mail/foo/1
+ /r/phyl/Mail/foo/2
+
+ _\bM_\bH_\bp_\ba_\bt_\bh is also useful in back-quoted operations:
+
+ % cd `mhpath +inbox`
+
+ % echo `mhpath +`
+ /r/phyl/Mail
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ folder(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to none
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHPATH(1) -76- MHPATH(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ Like all MH commands, _\bm_\bh_\bp_\ba_\bt_\bh expands and sorts [msgs]. So don't
+ expect
+
+ mv `mhpath 501 500`
+
+ to move 501 to 500. Quite the reverse. But
+
+ mv `mhpath 501` `mhpath 500`
+
+ will do the trick.
+
+ Out of range message 0 is treated far more severely than large out
+ of range message numbers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSGCHK(1) -77- MSGCHK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ msgchk - check for messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ msgchk [-date] [-nodate] [-notify all/mail/nomail]
+ [-nonotify all/mail/nomail] [-host host] [-user user] [-apop]
+ [-noapop] [-rpop] [-norpop] [users ...] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bm_\bs_\bg_\bc_\bh_\bk program checks all known mail drops for mail waiting for
+ you. For those drops which have mail for you, _\bm_\bs_\bg_\bc_\bh_\bk will indicate
+ if it believes that you have seen the mail in question before.
+
+ The `-notify type' switch indicates under what circumstances _\bm_\bs_\bg_\bc_\bh_\bk
+ should produce a message. The default is `-notify all' which says
+ that _\bm_\bs_\bg_\bc_\bh_\bk should always report the status of the users maildrop.
+ Other values for `type' include `mail' which says that _\bm_\bs_\bg_\bc_\bh_\bk
+ should report the status of waiting mail; and, `nomail' which says
+ that _\bm_\bs_\bg_\bc_\bh_\bk should report the status of empty maildrops. The
+ `-nonotify type' switch has the inverted sense, so `-nonotify all'
+ directs _\bm_\bs_\bg_\bc_\bh_\bk to never report the status of maildrops. This is
+ useful if the user wishes to check _\bm_\bs_\bg_\bc_\bh_\bk's exit status. A
+ non-zero exit status indicates that mail was not waiting for at
+ least one of the indicated users.
+
+ If _\bm_\bs_\bg_\bc_\bh_\bk produces output, then the `-date' switch directs _\bm_\bs_\bg_\bc_\bh_\bk
+ to print out the last date mail was read, if this can be deter-
+ mined.
+
+ If the local host is configured as a POP client, or if the
+ `-host host' switch is given, _\bm_\bs_\bg_\bc_\bh_\bk will query the POP service
+ host as to the status of mail waiting. If the `-user user' switch
+ is not given, then the current username is used. Normally, _\bm_\bs_\bg_\bc_\bh_\bk
+ will prompt for a password to use. However, if the `-apop' switch
+ is given, _\bm_\bs_\bg_\bc_\bh_\bk will generate authentication credentials to pro-
+ vide for origin authentication and replay protection, but which do
+ not involve sending a password in the clear over the network. Oth-
+ erwise, if the `-rpop' switch is given, then _\bm_\bs_\bg_\bc_\bh_\bk will try to use
+ a "trusted" connection (ala the BSD r-commands).
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/bs/mh-6.8/lib/mtstailor tailor file
+ /usr/spool/mail/$USER Location of mail drop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSGCHK(1) -78- MSGCHK(1)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl - _\bv_\be_\br_\bs_\bi_\bo_\bn _\b3 (aka RFC-1081),
+ inc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `user' defaults to the current user
+ `-date'
+ `-notify all'
+ `-rpop'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -79- MSH(1)
+
+
+ _\bN_\bA_\bM_\bE
+ msh - MH shell (and BBoard reader)
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ msh [-prompt string] [-scan] [-noscan] [-topcur] [-notopcur] [file]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bm_\bs_\bh is an interactive program that implements a subset of the nor-
+ mal _\bM_\bH commands operating on a single file in _\bp_\ba_\bc_\bk_\bf'd format. That
+ is, _\bm_\bs_\bh is used to read a file that contains a number of messages,
+ as opposed to the standard _\bM_\bH style of reading a number of files,
+ each file being a separate message in a folder. _\bm_\bs_\bh's chief advan-
+ tage is that the normal _\bM_\bH style does not allow a file to have more
+ than one message in it. Hence, _\bm_\bs_\bh is ideal for reading _\bB_\bB_\bo_\ba_\br_\bd_\bs,
+ as these files are delivered by the transport system in this for-
+ mat. In addition, _\bm_\bs_\bh can be used on other files, such as message
+ archives which have been _\bp_\ba_\bc_\bked (see _\bp_\ba_\bc_\bk_\bf (1)). Finally, _\bm_\bs_\bh is
+ an excellent _\bM_\bH tutor. As the only commands available to the user
+ are _\bM_\bH commands, this allows _\bM_\bH beginners to concentrate on how
+ commands to _\bM_\bH are formed and (more or less) what they mean.
+
+ When invoked, _\bm_\bs_\bh reads the named file, and enters a command loop.
+ The user may type most of the normal _\bM_\bH commands. The syntax and
+ semantics of these commands typed to _\bm_\bs_\bh are identical to their _\bM_\bH
+ counterparts. In cases where the nature of _\bm_\bs_\bh would be incon-
+ sistent (e.g., specifying a `+folder' with some commands), _\bm_\bs_\bh will
+ duly inform the user. The commands that _\bm_\bs_\bh currently supports (in
+ some slightly modified or restricted forms) are:
+
+ ali
+ burst
+ comp
+ dist
+ folder
+ forw
+ inc
+ mark
+ mhmail
+ mhn
+ msgchk
+ next
+ packf
+ pick
+ prev
+ refile
+ repl
+ rmm
+ scan
+ send
+ show
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -80- MSH(1)
+
+
+ sortm
+ whatnow
+ whom
+
+ In addition, _\bm_\bs_\bh has a "help" command which gives a brief overview.
+ To terminate _\bm_\bs_\bh, type CTRL-D, or use the "quit" command. If _\bm_\bs_\bh
+ is being invoked from _\bb_\bb_\bc, then typing CTRL-D will also tell _\bb_\bb_\bc to
+ exit as well, while using the "quit" command will return control to
+ _\bb_\bb_\bc, and _\bb_\bb_\bc will continue examining the list of BBoards that it is
+ scanning.
+
+ If the file is writable and has been modified, then using "quit"
+ will query the user if the file should be updated.
+
+ The `-prompt string' switch sets the prompting string for _\bm_\bs_\bh.
+
+ You may wish to use an alternate _\bM_\bH profile for the commands that
+ _\bm_\bs_\bh executes; see _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be (5) for details about the $MH envari-
+ able.
+
+ When invoked from _\bb_\bb_\bc, two special features are enabled: First, the
+ `-scan' switch directs _\bm_\bs_\bh to do a `scan unseen' on start-up if new
+ items are present in the BBoard. This feature is best used from
+ _\bb_\bb_\bc, which correctly sets the stage. Second, the _\bm_\ba_\br_\bk command in
+ _\bm_\bs_\bh acts specially when you are reading a BBoard, since _\bm_\bs_\bh will
+ consult the sequence "unseen" in determining what messages you have
+ actually read. When _\bm_\bs_\bh exits, it reports this information to _\bb_\bb_\bc.
+ In addition, if you give the _\bm_\ba_\br_\bk command with no arguments, _\bm_\bs_\bh
+ will interpret it as `mark -sequence unseen -delete -nozero all'
+ Hence, to discard all of the messages in the current BBoard you're
+ reading, just use the _\bm_\ba_\br_\bk command with no arguments.
+
+ Normally, the "exit" command is identical to the "quit" command in
+ _\bm_\bs_\bh. When run under _\bb_\bb_\bc however, "exit" directs _\bm_\bs_\bh to mark all
+ messages as seen and then "quit". For speedy type-in, this command
+ is often abbreviated as just "e".
+
+ When invoked from _\bv_\bm_\bh, another special feature is enabled: The
+ `topcur' switch directs _\bm_\bs_\bh to have the current message "track" the
+ top line of the _\bv_\bm_\bh scan window. Normally, _\bm_\bs_\bh has the current
+ message "track" the center of the window (under `-notopcur', which
+ is the default).
+
+ _\bm_\bs_\bh supports an output redirection facility. Commands may be fol-
+ lowed by one of
+
+ > _\bf_\bi_\bl_\be write output to _\bf_\bi_\bl_\be
+ >> _\bf_\bi_\bl_\be append output to _\bf_\bi_\bl_\be
+ | _\bc_\bo_\bm_\bm_\ba_\bn_\bd pipe output to UNIX _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+
+ If _\bf_\bi_\bl_\be starts with a `~' (tilde), then a _\bc_\bs_\bh-like expansion takes
+ place. Note that _\bc_\bo_\bm_\bm_\ba_\bn_\bd is interpreted by _\bs_\bh (1). Also note that
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -81- MSH(1)
+
+
+ _\bm_\bs_\bh does NOT support history substitutions, variable substitutions,
+ or alias substitutions.
+
+ When parsing commands to the left of any redirection symbol, _\bm_\bs_\bh
+ will honor `\' (back-slash) as the quote next-character symbol, and
+ `"' (double-quote) as quote-word delimiters. All other input
+ tokens are separated by whitespace (spaces and tabs).
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/bs/mh-6.8/lib/mtstailor tailor file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Msg-Protect: To set mode when creating a new `file'
+ fileproc: Program to file messages
+ showproc: Program to show messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `file' defaults to "./msgbox"
+ `-prompt (msh) '
+ `-noscan'
+ `-notopcur'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -82- MSH(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-prompt' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bm_\bs_\bh. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+
+ There is a strict limit of messages per file in _\bp_\ba_\bc_\bk_\bf'd format
+ which _\bm_\bs_\bh can handle. Usually, this limit is 1000 messages.
+
+ Please remember that _\bm_\bs_\bh is not the _\bC_\bS_\bh_\be_\bl_\bl, and that a lot of the
+ nice facilities provided by the latter are not present in the form-
+ er.
+
+ In particular, _\bm_\bs_\bh does not understand back-quoting, so the only
+ effective way to use _\bp_\bi_\bc_\bk inside _\bm_\bs_\bh is to always use the
+ `-seq select' switch. Clever users of _\bM_\bH will put the line
+
+ pick: -seq select -list
+
+ in their .mh_profile file so that _\bp_\bi_\bc_\bk works equally well from both
+ the shell and _\bm_\bs_\bh.
+
+ _\bs_\bo_\br_\bt_\bm always uses "-noverbose" and if "-textfield field" is used,
+ "-limit 0".
+
+ The _\bm_\bs_\bh program inherits most (if not all) of the bugs from the _\bM_\bH
+ commands it implements.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ NEXT(1) -83- NEXT(1)
+
+
+ _\bN_\bA_\bM_\bE
+ next - show the next message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ next [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bN_\be_\bx_\bt performs a _\bs_\bh_\bo_\bw on the next message in the specified (or
+ current) folder. Like _\bs_\bh_\bo_\bw, it passes any switches on to the pro-
+ gram _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc, which is called to list the message. This command
+ is almost exactly equivalent to "show next". Consult the manual
+ entry for _\bs_\bh_\bo_\bw (1) for all the details.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ showproc: Program to show the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ show(1), prev(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `-header'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is specified, it will become the current folder. The
+ message that is shown (i.e., the next message in sequence) will be-
+ come the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ _\bn_\be_\bx_\bt is really a link to the _\bs_\bh_\bo_\bw program. As a result, if you
+ make a link to _\bn_\be_\bx_\bt and that link is not called _\bn_\be_\bx_\bt, your link
+ will act like _\bs_\bh_\bo_\bw instead. To circumvent this, add a
+ profile-entry for the link to your _\bM_\bH profile and add the argument
+ _\bn_\be_\bx_\bt to the entry.
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PACKF(1) -84- PACKF(1)
+
+
+ _\bN_\bA_\bM_\bE
+ packf - compress an MH folder into a single file
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ packf [+folder] [msgs] [-file name] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\ba_\bc_\bk_\bf takes messages from a folder and copies them to a single
+ file. Each message in the file is separated by four CTRL-A's and a
+ newline (identical to the way messages are stored in your receiving
+ mail drop). Messages packed can be unpacked using _\bi_\bn_\bc.
+
+ If the _\bn_\ba_\bm_\be given to the `-file name' switch exists, then the mes-
+ sages specified will be appended to the end of the file, otherwise
+ the file will be created and the messages appended.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ .msgbox.map A binary index of the file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Msg-Protect: To set mode when creating a new `file'
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to all
+ `-file ./msgbox'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The first
+ message packed will become the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ _\bP_\ba_\bc_\bk_\bf doesn't handle the old UUCP-style "mbox" format (used by
+ _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl). To pack messages into this format, use the script
+ /_\bu_\bs_\br/_\bb_\bs/_\bm_\bh-_\b6._\b8/_\bl_\bi_\bb/_\bp_\ba_\bc_\bk_\bm_\bb_\bo_\bx. Note that _\bp_\ba_\bc_\bk_\bm_\bb_\bo_\bx does not take the
+ `-file' option of _\bp_\ba_\bc_\bk_\bf, and instead writes its output on _\bs_\bt_\bd_\bo_\bu_\bt.
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -85- PICK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ pick - select messages by content
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ pick [+folder] [msgs] [-and ...] [-or ...] [-not ...]
+ [-lbrace ... -rbrace] [--component pattern] [-cc pattern]
+ [-date pattern] [-from pattern] [-search pattern]
+ [-subject pattern] [-to pattern] [-after date] [-before date]
+ [-datefield field] [-sequence name ...] [-public] [-nopublic]
+ [-zero] [-nozero] [-list] [-nolist] [-help]
+
+ typically:
+ scan `pick -from jones`
+ pick -to holloway -sequence select
+ show `pick -before friday`
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\bi_\bc_\bk searches messages within a folder for the specified contents,
+ and then identifies those messages. Two types of search primitives
+ are available: pattern matching and date constraint operations.
+
+ A modified _\bg_\br_\be_\bp(1) is used to perform the matching, so the full
+ regular expression (see _\be_\bd(1)) facility is available within `pat-
+ tern'. With `-search', `pattern' is used directly, and with the
+ others, the grep pattern constructed is:
+
+ "component[ \t]*:.*pattern"
+
+ This means that the pattern specified for a `-search' will be found
+ everywhere in the message, including the header and the body, while
+ the other pattern matching requests are limited to the single
+ specified component. The expression
+
+ `--component pattern'
+
+ is a shorthand for specifying
+
+ `-search "component[ \t]*:.*pattern" '
+
+ It is used to pick a component which is not one of "To:", "cc:",
+ "Date:", "From:", or "Subject:". An example is
+ `pick --reply-to pooh'.
+
+ Pattern matching is performed on a per-line basis. Within the
+ header of the message, each component is treated as one long line,
+ but in the body, each line is separate. Lower-case letters in the
+ search pattern will match either lower or upper case in the mes-
+ sage, while upper case will match only upper case.
+
+ Note that since the `-date' switch is a pattern matching operation
+ (as described above), to find messages sent on a certain date the
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -86- PICK(1)
+
+
+ pattern string must match the text of the "Date:" field of the mes-
+ sage.
+
+ Independent of any pattern matching operations requested, the
+ switches `-after date' or `-before date' may also be used to intro-
+ duce date/time contraints on all of the messages. By default, the
+ "Date:" field is consulted, but if another date yielding field
+ (such as "BB-Posted:" or "Delivery-Date:") should be used, the
+ `-datefield field' switch may be used.
+
+ With `-before' and `-after', _\bp_\bi_\bc_\bk will actually parse the date
+ fields in each of the messages specified in `msgs' and compare them
+ to the date/time specified. If `-after' is given, then only those
+ messages whose "Date:" field value is chronologically after the
+ date specified will be considered. The `-before' switch specifies
+ the complimentary action.
+
+ Both the `-after' and `-before' switches take legal 822-style date
+ specifications as arguments. _\bP_\bi_\bc_\bk will default certain missing
+ fields so that the entire date need not be specified. These fields
+ are (in order of defaulting): timezone, time and timezone, date,
+ date and timezone. All defaults are taken from the current date,
+ time, and timezone.
+
+ In addition to 822-style dates, _\bp_\bi_\bc_\bk will also recognize any of the
+ days of the week ("sunday", "monday", and so on), and the special
+ dates "today", "yesterday" (24 hours ago), and "tomorrow" (24 hours
+ from now). All days of the week are judged to refer to a day in
+ the past (e.g., telling _\bp_\bi_\bc_\bk "saturday" on a "tuesday" means
+ "last saturday" not "this saturday").
+
+ Finally, in addition to these special specifications, _\bp_\bi_\bc_\bk will
+ also honor a specification of the form "-dd", which means "dd days
+ ago".
+
+ _\bP_\bi_\bc_\bk supports complex boolean operations on the searching primi-
+ tives with the `-and', `-or', `-not', and `-lbrace ... -rbrace'
+ switches. For example,
+
+ pick -after yesterday -and
+ -lbrace -from freida -or -from fear -rbrace
+
+ identifies messages recently sent by "frieda" or "fear".
+
+ The matching primitives take precedence over the `-not' switch,
+ which in turn takes precedence over `-and' which in turn takes pre-
+ cedence over `-or'. To override the default precedence, the
+ `-lbrace' and `-rbrace' switches are provided, which act just like
+ opening and closing parentheses in logical expressions.
+
+ If no search criteria are given, all the messages specified on the
+ command line are selected (this defaults to "all").
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -87- PICK(1)
+
+
+ Once the search has been performed, if the `-list' switch is given,
+ the message numbers of the selected messages are written to the
+ standard output separated by newlines. This is _\be_\bx_\bt_\br_\be_\bm_\be_\bl_\by useful
+ for quickly generating arguments for other _\bM_\bH programs by using the
+ "backquoting" syntax of the shell. For example, the command
+
+ scan `pick +todo -after "31 Mar 83 0123 PST"`
+
+ says to _\bs_\bc_\ba_\bn those messages in the indicated folder which meet the
+ appropriate criterion. Note that since _\bp_\bi_\bc_\bk 's context changes are
+ written out prior to _\bs_\bc_\ba_\bn 's invocation, you need not give the
+ folder argument to _\bs_\bc_\ba_\bn as well.
+
+ Regardless of the operation of the `-list' switch, the `-sequence
+ name' switch may be given once for each sequence the user wishes to
+ define. For each sequence named, that sequence will be defined to
+ mean exactly those messages selected by _\bp_\bi_\bc_\bk. For example,
+
+ pick -from frated -seq fred
+
+ defines a new message sequence for the current folder called "fred"
+ which contains exactly those messages that were selected.
+
+ Note that whenever _\bp_\bi_\bc_\bk processes a `-sequence name' switch, it
+ sets `-nolist'.
+
+ By default, _\bp_\bi_\bc_\bk will zero the sequence before adding it. This
+ action can be disabled with the `-nozero' switch, which means that
+ the messages selected by _\bp_\bi_\bc_\bk will be added to the sequence, if it
+ already exists, and any messages already a part of that sequence
+ will remain so.
+
+ The `-public' and `-nopublic' switches are used by _\bp_\bi_\bc_\bk in the same
+ way _\bm_\ba_\br_\bk uses them.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mark(1)
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -88- PICK(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to all
+ `-datefield date'
+ `-nopublic' if the folder is read-only, `-public' otherwise
+ `-zero'
+ `-list' is the default if no `-sequence', `-nolist' otherwise
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous versions of _\bM_\bH, the _\bp_\bi_\bc_\bk command would _\bs_\bh_\bo_\bw, _\bs_\bc_\ba_\bn, or
+ _\br_\be_\bf_\bi_\bl_\be the selected messages. This was rather "inverted logic"
+ from the UNIX point of view, so _\bp_\bi_\bc_\bk was changed to define se-
+ quences and output those sequences. Hence, _\bp_\bi_\bc_\bk can be used to
+ generate the arguments for all other _\bM_\bH commands, instead of giving
+ _\bp_\bi_\bc_\bk endless switches for invoking those commands itself.
+
+ Also, previous versions of _\bp_\bi_\bc_\bk balked if you didn't specify a
+ search string or a date/time constraint. The current version does
+ not, and merely matches the messages you specify. This lets you
+ type something like:
+
+ show `pick last:20 -seq fear`
+
+ instead of typing
+
+ mark -add -nozero -seq fear last:20
+ show fear
+
+ Finally, timezones used to be ignored when comparing dates: they
+ aren't any more.
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ Use "pick sequence -list" to enumerate the messages in a sequence
+ (such as for use by a shell script).
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -89- PICK(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-after' and `-before' switches must be inter-
+ preted as a single token by the shell that invokes _\bp_\bi_\bc_\bk. There-
+ fore, one must usually place the argument to this switch inside
+ double-quotes. Furthermore, any occurance of `-datefield' must oc-
+ cur prior to the `-after' or `-before' switch it applies to.
+
+ If _\bp_\bi_\bc_\bk is used in a back-quoted operation, such as
+
+ scan `pick -from jones`
+
+ and _\bp_\bi_\bc_\bk selects no messages (e.g., no messages are from "jones"),
+ then the shell will still run the outer command (e.g., "scan").
+ Since no messages were matched, _\bp_\bi_\bc_\bk produced no output, and the
+ argument given to the outer command as a result of backquoting _\bp_\bi_\bc_\bk
+ is empty. In the case of _\bM_\bH programs, the outer command now acts
+ as if the default `msg' or `msgs' should be used (e.g., "all" in
+ the case of _\bs_\bc_\ba_\bn ). To prevent this unexpected behavior, if
+ `-list' was given, and if its standard output is not a tty, then
+ _\bp_\bi_\bc_\bk outputs the illegal message number "0" when it fails. This
+ lets the outer command fail gracefully as well.
+
+ The pattern syntax "[l-r]" is not supported; each letter to be
+ matched must be included within the square brackets.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PREV(1) -90- PREV(1)
+
+
+ _\bN_\bA_\bM_\bE
+ prev - show the previous message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ prev [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [-switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\br_\be_\bv performs a _\bs_\bh_\bo_\bw on the previous message in the specified (or
+ current) folder. Like _\bs_\bh_\bo_\bw, it passes any switches on to the pro-
+ gram named by _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc, which is called to list the message. This
+ command is almost exactly equivalent to "show prev". Consult the
+ manual entry for _\bs_\bh_\bo_\bw (1) for all the details.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ showproc: Program to show the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ show(1), next(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `-header'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is specified, it will become the current folder. The
+ message that is shown (i.e., the previous message in sequence) will
+ become the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ _\bp_\br_\be_\bv is really a link to the _\bs_\bh_\bo_\bw program. As a result, if you
+ make a link to _\bp_\br_\be_\bv and that link is not called _\bp_\br_\be_\bv, your link
+ will act like _\bs_\bh_\bo_\bw instead. To circumvent this, add a
+ profile-entry for the link to your _\bM_\bH profile and add the argument
+ _\bp_\br_\be_\bv to the entry.
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PROMPTER(1) -91- PROMPTER(1)
+
+
+ _\bN_\bA_\bM_\bE
+ prompter - prompting editor front-end for MH
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ prompter [-erase chr] [-kill chr] [-prepend] [-noprepend] [-rapid]
+ [-norapid] [-doteof] [-nodoteof] file [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ This program is normally not invoked directly by users but takes
+ the place of an editor and acts as an editor front-end. It
+ operates on an 822-style message draft skeleton specified by file,
+ normally provided by _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, or _\br_\be_\bp_\bl.
+
+ _\bP_\br_\bo_\bm_\bp_\bt_\be_\br is an editor which allows rapid composition of messages.
+ It is particularly useful to network and low-speed (less than 2400
+ baud) users of _\bM_\bH. It is an _\bM_\bH program in that it can have its own
+ profile entry with switches, but it is not invoked directly by the
+ user. The commands _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl invoke _\bp_\br_\bo_\bm_\bp_\bt_\be_\br as
+ an editor, either when invoked with `-editor prompter', or by the
+ profile entry "Editor: prompter", or when given the command
+ `edit prompter' at "What now?" level.
+
+ For each empty component _\bp_\br_\bo_\bm_\bp_\bt_\be_\br finds in the draft, the user is
+ prompted for a response; A <RETURN> will cause the whole component
+ to be left out. Otherwise, a `\' preceding a <RETURN> will con-
+ tinue the response on the next line, allowing for multiline com-
+ ponents. Continuation lines must begin with a space or tab.
+
+ Each non-empty component is copied to the draft and displayed on
+ the terminal.
+
+ The start of the message body is denoted by a blank line or a line
+ of dashes. If the body is non-empty, the prompt, which isn't writ-
+ ten to the file, is
+
+ "--------Enter additional text",
+
+ or (if `-prepend' was given)
+
+ "--------Enter initial text".
+
+ Message-body typing is terminated with an end-of-file (usually
+ CTRL-D). With the `-doteof' switch, a period on a line all by
+ itself also signifies end-of-file. At this point control is
+ returned to the calling program, where the user is asked "What
+ now?". See _\bw_\bh_\ba_\bt_\bn_\bo_\bw for the valid options to this query.
+
+ By using the `-prepend' switch, the user can add type-in to the
+ beginning of the message body and have the rest of the body follow.
+ This is useful for the _\bf_\bo_\br_\bw command.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PROMPTER(1) -92- PROMPTER(1)
+
+
+ By using the `-rapid' switch, if the draft already contains text in
+ the message-body, it is not displayed on the user's terminal. This
+ is useful for low-speed terminals.
+
+ The line editing characters for kill and erase may be specified by
+ the user via the arguments `-kill chr' and `-erase chr', where chr
+ may be a character; or `\nnn', where "nnn" is the octal value for
+ the character.
+
+ An interrupt (usually CTRL-C) during component typing will abort
+ _\bp_\br_\bo_\bm_\bp_\bt_\be_\br and the _\bM_\bH command that invoked it. An interrupt during
+ message-body typing is equivalent to CTRL-D, for historical rea-
+ sons. This means that _\bp_\br_\bo_\bm_\bp_\bt_\be_\br should finish up and exit.
+
+ The first non-flag argument to _\bp_\br_\bo_\bm_\bp_\bt_\be_\br is taken as the name of the
+ draft file, and subsequent non-flag arguments are ignored.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /tmp/prompter* Temporary copy of message
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ prompter-next: To name the editor to be used on exit from
+ _\bp_\br_\bo_\bm_\bp_\bt_\be_\br
+ Msg-Protect: To set mode when creating a new draft
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), dist(1), forw(1), repl(1), whatnow(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-prepend'
+ `-norapid'
+ `-nodoteof'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ The `-rapid' option is particularly useful with _\bf_\bo_\br_\bw, and
+ `-noprepend' is useful with _\bc_\bo_\bm_\bp -_\bu_\bs_\be.
+
+ The user may wish to link _\bp_\br_\bo_\bm_\bp_\bt_\be_\br under several names (e.g., "ra-
+ pid") and give appropriate switches in the profile entries under
+ these names (e.g., "rapid: -rapid"). This facilitates invoking
+ prompter differently for different _\bM_\bH commands (e.g., "forw: -edi-
+ tor rapid").
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PROMPTER(1) -93- PROMPTER(1)
+
+
+ _\bB_\bu_\bg_\bs
+ _\bP_\br_\bo_\bm_\bp_\bt_\be_\br uses _\bs_\bt_\bd_\bi_\bo (3), so it will lose if you edit files with
+ nulls in them.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RCVSTORE(1) -94- RCVSTORE(1)
+
+
+ _\bN_\bA_\bM_\bE
+ rcvstore - incorporate new mail asynchronously
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bs/mh-6.8/lib/rcvstore [+folder] [-create] [-nocreate]
+ [-sequence name ...] [-public] [-nopublic] [-zero] [-nozero]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bc_\bv_\bs_\bt_\bo_\br_\be incorporates a message from the standard input into an _\bM_\bH
+ folder. If `+folder' isn't specified, a folder in the user's _\bM_\bH
+ directory will be used, either that specified by the "Inbox:" entry
+ in the user's profile, or the folder named "inbox". The new mes-
+ sage being incorporated is assigned the next highest number in the
+ folder. If the specified (or default) folder doesn't exist, then
+ it will be created if the `-create' option is specified, otherwise
+ _\br_\bc_\bv_\bs_\bt_\bo_\br_\be will exit.
+
+ If the user's profile contains a "Msg-Protect: nnn" entry, it will
+ be used as the protection on the newly created messages, otherwise
+ the _\bM_\bH default of 0644 will be used. During all operations on mes-
+ sages, this initially assigned protection will be preserved for
+ each message, so _\bc_\bh_\bm_\bo_\bd(1) may be used to set a protection on an
+ individual message, and its protection will be preserved
+ thereafter.
+
+ _\bR_\bc_\bv_\bs_\bt_\bo_\br_\be will incorporate anything except zero length messages into
+ the user's MH folder.
+
+ If the profile entry "Unseen-Sequence" is present and non-empty,
+ then _\br_\bc_\bv_\bs_\bt_\bo_\br_\be will add the newly incorporated message to each
+ sequence named by the profile entry. This is similar to the
+ "Previous-Sequence" profile entry supported by all _\bM_\bH commands
+ which take `msgs' or `msg' arguments. Note that _\br_\bc_\bv_\bs_\bt_\bo_\br_\be will not
+ zero each sequence prior to adding messages.
+
+ Furthermore, the incoming messages may be added to user-defined
+ sequences as they arrive by appropriate use of the `-sequence'
+ option. As with _\bp_\bi_\bc_\bk, use of the `-zero' and `-nozero' switches
+ can also be used to zero old sequences or not. Similarly, use of
+ the `-public' and `-nopublic switches may be used to force addi-
+ tions to public and private sequences.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RCVSTORE(1) -95- RCVSTORE(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Folder-Protect: To set mode when creating a new folder
+ Inbox: To find the default inbox
+ Msg-Protect: To set mode when creating a new message
+ Unseen-Sequence: To name sequences denoting unseen messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1), pick(1), mh-mail(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to "inbox"
+ `-create'
+ `-nopublic' if the folder is read-only, `-public' otherwise
+ `-nozero'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ No context changes will be attempted, with the exception of se-
+ quence manipulation.
+
+
+ _\bB_\bu_\bg_\bs
+ If you use the "Unseen-Sequence" profile entry, _\br_\bc_\bv_\bs_\bt_\bo_\br_\be could try
+ to update the context while another _\bM_\bH process is also trying to do
+ so. This can cause the context to become corrupted. To avoid
+ this, do not use _\br_\bc_\bv_\bs_\bt_\bo_\br_\be if you use the "Unseen-Sequence" profile
+ entry.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REFILE(1) -96- REFILE(1)
+
+
+ _\bN_\bA_\bM_\bE
+ refile - file message in other folders
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ refile [msgs] [-draft] [-link] [-nolink] [-preserve] [-nopreserve]
+ [-src +folder] [-file file] [-rmmproc program] [-normmproc]
+ +folder ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\be_\bf_\bi_\bl_\be moves (_\bm_\bv (1)) or links (_\bl_\bn (1)) messages from a source
+ folder into one or more destination folders. If you think of a
+ message as a sheet of paper, this operation is not unlike filing
+ the sheet of paper (or copies) in file cabinet folders. When a
+ message is filed, it is linked into the destination folder(s) if
+ possible, and is copied otherwise. As long as the destination
+ folders are all on the same file system, multiple filing causes
+ little storage overhead. This facility provides a good way to
+ cross-file or multiply-index messages. For example, if a message
+ is received from Jones about the ARPA Map Project, the command
+
+ refile cur +jones +Map
+
+ would allow the message to be found in either of the two folders
+ `jones' or `Map'.
+
+ The option `-file file' directs _\br_\be_\bf_\bi_\bl_\be to use the specified file as
+ the source message to be filed, rather than a message from a
+ folder. Note that the file should be a validly formatted message,
+ just like any other _\bM_\bH message. It should NOT be in mail drop for-
+ mat (to convert a file in mail drop format to a folder of _\bM_\bH mes-
+ sages, see _\bi_\bn_\bc (1)).
+
+ If a destination folder doesn't exist, _\br_\be_\bf_\bi_\bl_\be will ask if you want
+ to create it. A negative response will abort the file operation.
+ If the standard input for _\br_\be_\bf_\bi_\bl_\be is _\bn_\bo_\bt a tty, then _\br_\be_\bf_\bi_\bl_\be will not
+ ask any questions and will proceed as if the user's answer was
+ "yes" for all questions.
+
+ The option `-link' preserves the source folder copy of the message
+ (i.e., it does a _\bl_\bn(1) rather than a _\bm_\bv(1)), whereas, `-nolink'
+ deletes the filed messages from the source folder. Normally, when
+ a message is filed, it is assigned the next highest number avail-
+ able in each of the destination folders. Use of the `-preserve'
+ switch will override this message renaming, but name conflicts may
+ occur, so use this switch cautiously.
+
+ If `-link' is not specified (or `-nolink' is specified), the filed
+ messages will be removed from the source folder, by renaming them
+ with a site-dependent prefix (usually a comma).
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REFILE(1) -97- REFILE(1)
+
+
+ If the user has a profile component such as
+
+ rmmproc: /bin/rm
+
+ then _\br_\be_\bf_\bi_\bl_\be will instead call the named program to delete the mes-
+ sage files. The user may specify `-rmmproc program' on the command
+ line to override this profile specification. The `-normmproc'
+ option forces the message files to be deleted by renaming them as
+ described above.
+
+ The `-draft' switch tells _\br_\be_\bf_\bi_\bl_\be to file the <mh-dir>/draft.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Folder-Protect: To set mode when creating a new folder
+ rmmproc: Program to delete the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ folder(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-src +folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-nolink'
+ `-nopreserve'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If `-src +folder' is given, it will become the current folder. If
+ neither `-link' nor `all' is specified, the current message in the
+ source folder will be set to the last message specified; otherwise,
+ the current message won't be changed.
+
+ If the Previous-Sequence profile entry is set, in addition to de-
+ fining the named sequences from the source folder, _\br_\be_\bf_\bi_\bl_\be will also
+ define those sequences for the destination folders. See
+ _\bm_\bh-_\bs_\be_\bq_\bu_\be_\bn_\bc_\be (5) for information concerning the previous sequence.
+
+
+ _\bB_\bu_\bg_\bs
+ Since _\br_\be_\bf_\bi_\bl_\be uses your _\br_\bm_\bm_\bp_\br_\bo_\bc to delete the message, the _\br_\bm_\bm_\bp_\br_\bo_\bc
+ must NOT call _\br_\be_\bf_\bi_\bl_\be without specifying `-normmproc', or you will
+ create an infinte loop.
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -98- REPL(1)
+
+
+ _\bN_\bA_\bM_\bE
+ repl - reply to a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ repl [+folder] [msg] [-annotate] [-noannotate] [-cc all/to/cc/me]
+ [-nocc all/to/cc/me] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-editor editor]
+ [-noedit] [-fcc +folder] [-filter filterfile] [-form formfile]
+ [-inplace] [-noinplace] [-query] [-noquery] [-width columns]
+ [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\be_\bp_\bl aids a user in producing a reply to an existing message. _\bR_\be_\bp_\bl
+ uses a reply template to guide its actions when constructing the
+ message draft of the reply. In its simplest form (with no argu-
+ ments), it will set up a message-form skeleton in reply to the
+ current message in the current folder, and invoke the whatnow
+ shell. The default reply template will direct _\br_\be_\bp_\bl to construct
+ the composed message as follows:
+
+ To: <Reply-To> or <From>
+ cc: <cc>, <To>, and yourself
+ Subject: Re: <Subject>
+ In-reply-to: Your message of <Date>.
+ <Message-Id>
+
+ where field names enclosed in angle brackets (< >) indicate the
+ contents of the named field from the message to which the reply is
+ being made. A reply template is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ The `-cc type' switch takes an argument which specifies who gets
+ placed on the "cc:" list of the reply. The `-query' switch modi-
+ fies the action of `-cc type' switch by interactively asking you if
+ each address that normally would be placed in the "To:" and "cc:"
+ list should actually be sent a copy. (This is useful for
+ special-purpose replies.) Note that the position of the `-cc' and
+ `-nocc' switches, like all other switches which take a positive and
+ negative form, is important.
+
+ Lines beginning with the fields "To:", "cc:", and "Bcc:" will be
+ standardized and have duplicate addresses removed. In addition,
+ the `-width columns' switch will guide _\br_\be_\bp_\bl's formatting of these
+ fields.
+
+ If the file named "replcomps" exists in the user's MH directory, it
+ will be used instead of the default form. In either case, the file
+ specified by `-form formfile' will be used if given.
+
+ If the draft already exists, _\br_\be_\bp_\bl will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\br_\be_\bp_\bl, leaving the
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -99- REPL(1)
+
+
+ draft intact; replace will replace the existing draft with a blank
+ skeleton; and list will display the draft.
+
+ See _\bc_\bo_\bm_\bp (1) for a description of the `-editor' and `-noedit'
+ switches. Note that while in the editor, the message being replied
+ to is available through a link named "@" (assuming the default
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc ). In addition, the actual pathname of the message is
+ stored in the envariable $editalt, and the pathname of the folder
+ containing the message is stored in the envariable $mhfolder.
+
+ Although _\br_\be_\bp_\bl uses the `-form formfile' switch to direct it how to
+ construct the beginning of the draft, the `-filter filterfile'
+ switch directs _\br_\be_\bp_\bl as to how the message being replied-to should
+ be formatted in the body of the draft. If `-filter' is not speci-
+ fied, then the message being replied-to is not included in the body
+ of the draft. If `-filter filterfile' is specified, then the mes-
+ sage being replied-to is filtered (re-formatted) prior to being
+ output to the body of the draft. The filter file for _\br_\be_\bp_\bl should
+ be a standard form file for _\bm_\bh_\bl, as _\br_\be_\bp_\bl will invoke _\bm_\bh_\bl to format
+ the message being replied-to. There is no default message filter
+ (`-filter' must be followed by a file name). A filter file that is
+ commonly used is:
+
+ :
+ body:nocomponent,compwidth=9,offset=9
+
+ which says to output a blank line and then the body of the message
+ being replied-to, indented by one tab-stop. Another format popular
+ on USENET is:
+
+
+ message-id:nocomponent,nonewline,\
+ formatfield="In message %{text}, "
+ from:nocomponent,formatfield="%(friendly{text}) writes:"
+ body:component=">",overflowtext=">",overflowoffset=0
+
+ Which cites the Message-ID and author of the message being
+ replied-to, and then outputs each line of the body prefaced with
+ the ">" character.
+
+ If the `-annotate' switch is given, the message being replied-to
+ will be annotated with the lines
+
+ Replied: date
+ Replied: addrs
+
+ where the address list contains one line for each addressee. The
+ annotation will be done only if the message is sent directly from
+ _\br_\be_\bp_\bl. If the message is not sent immediately from _\br_\be_\bp_\bl,
+ "comp -use" may be used to re-edit and send the constructed mes-
+ sage, but the annotations won't take place. The `-inplace' switch
+ causes annotation to be done in place in order to preserve links to
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -100- REPL(1)
+
+
+ the annotated message.
+
+ The `-fcc +folder' switch can be used to automatically specify a
+ folder to receive Fcc:s. More than one folder, each preceeded by
+ `-fcc' can be named.
+
+ In addition to the standard _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) escapes, _\br_\be_\bp_\bl also recog-
+ nizes the following additional _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escape:
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ _\bf_\bc_\bc string Any folders specified with `-fcc folder'
+
+ To avoid reiteration, _\br_\be_\bp_\bl strips any leading `Re: ' strings from
+ the _\bs_\bu_\bb_\bj_\be_\bc_\bt component.
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ Upon exiting from the editor, _\br_\be_\bp_\bl will invoke the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available options. The invoca-
+ tion of this program can be inhibited by using the `-nowhatnowproc'
+ switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program which starts
+ the initial edit. Hence, `-nowhatnowproc' will prevent any edit
+ from occurring.)
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/lib/replcomps The reply template
+ or <mh-dir>/replcomps Rather than the standard template
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Alternate-Mailboxes: To determine the user's mailboxes
+ Current-Folder: To find the default current folder
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ Msg-Protect: To set mode when creating a new message
+ (draft)
+ fileproc: Program to refile the message
+ mhlproc: Program to filter message being replied-to
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), dist(1), forw(1), send(1), whatnow(1), mh-format(5)
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -101- REPL(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to cur
+ `-nocc all' at ATHENA sites, `-cc all' otherwise
+ `-noannotate'
+ `-nodraftfolder'
+ `-noinplace'
+ `-noquery'
+ `-width 72'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The mes-
+ sage replied-to will become the current message.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ Prior to using the format string mechanism, `-noformat' used to
+ cause address headers to be output as-is. Now all address fields
+ are formatted using Internet standard guidelines.
+
+
+ _\bB_\bu_\bg_\bs
+ If any addresses occur in the reply template, addresses in the tem-
+ plate that do not contain hosts are defaulted incorrectly. Instead
+ of using the localhost for the default, _\br_\be_\bp_\bl uses the sender's
+ host. Moral of the story: if you're going to include addresses in
+ a reply template, include the host portion of the address.
+
+ The `-width columns' switch is only used to do address-folding;
+ other headers are not line-wrapped.
+
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\br_\be_\bp_\bl uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\br_\be_\bp_\bl won't run
+ it.
+
+ If your current working directory is not writable, the link named
+ "@" is not available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RMF(1) -102- RMF(1)
+
+
+ _\bN_\bA_\bM_\bE
+ rmf - remove an MH folder
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ rmf [+folder] [-interactive] [-nointeractive] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bm_\bf removes all of the messages (files) within the specified (or
+ default) folder, and then removes the folder (directory) itself.
+ If there are any files within the folder which are not a part of
+ _\bM_\bH, they will _\bn_\bo_\bt be removed, and an error will be produced. If
+ the folder is given explicitly or the `-nointeractive' option is
+ given, then the folder will be removed without confirmation. Oth-
+ erwise, the user will be asked for confirmation. If _\br_\bm_\bf can't find
+ the current folder, for some reason, the folder to be removed
+ defaults to `+inbox' (unless overridden by user's profile entry
+ "Inbox") with confirmation.
+
+ _\bR_\bm_\bf irreversibly deletes messages that don't have other links, so
+ use it with caution.
+
+ If the folder being removed is a subfolder, the parent folder will
+ become the new current folder, and _\br_\bm_\bf will produce a message tel-
+ ling the user this has happened. This provides an easy mechanism
+ for selecting a set of messages, operating on the list, then remov-
+ ing the list and returning to the current folder from which the
+ list was extracted.
+
+ _\bR_\bm_\bf of a read-only folder will delete the private sequence and cur
+ information (i.e., "atr-_\bs_\be_\bq-_\bf_\bo_\bl_\bd_\be_\br" entries) from the profile
+ without affecting the folder itself.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Inbox: To find the default inbox
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rmm(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder, usually with confirmation
+ `-interactive' if +folder' not given, `-nointeractive' otherwise
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RMF(1) -103- RMF(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ _\bR_\bm_\bf will set the current folder to the parent folder if a subfolder
+ is removed; or if the current folder is removed, it will make "in-
+ box" current. Otherwise, it doesn't change the current folder or
+ message.
+
+
+ _\bB_\bu_\bg_\bs
+ Although intuitively one would suspect that _\br_\bm_\bf works recursively,
+ it does not. Hence if you have a sub-folder within a folder, in
+ order to _\br_\bm_\bf the parent, you must first _\br_\bm_\bf each of the children.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RMM(1) -104- RMM(1)
+
+
+ _\bN_\bA_\bM_\bE
+ rmm - remove messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ rmm [+folder] [msgs] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bm_\bm removes the specified messages by renaming the message files
+ with preceding commas. Many sites consider files that start with a
+ comma to be a temporary backup, and arrange for _\bc_\br_\bo_\bn (8) to remove
+ such files once a day.
+
+ If the user has a profile component such as
+
+ rmmproc: /bin/rm
+
+ then instead of simply renaming the message file, _\br_\bm_\bm will call the
+ named program to delete the file. Note that at most installations,
+ _\bc_\br_\bo_\bn (8) is told to remove files that begin with a comma once a
+ night.
+
+ Some users of csh prefer the following:
+
+ alias rmm 'refile +d'
+
+ where folder +d is a folder for deleted messages, and
+
+ alias mexp 'rm `mhpath +d all`'
+
+ is used to "expunge" deleted messages.
+
+ The current message is not changed by _\br_\bm_\bm, so a _\bn_\be_\bx_\bt will advance
+ to the next message in the folder as expected.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ rmmproc: Program to delete the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rmf(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RMM(1) -105- RMM(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+
+ _\bB_\bu_\bg_\bs
+ Since _\br_\be_\bf_\bi_\bl_\be uses your _\br_\bm_\bm_\bp_\br_\bo_\bc to delete the message, the _\br_\bm_\bm_\bp_\br_\bo_\bc
+ must NOT call _\br_\be_\bf_\bi_\bl_\be without specifying `-normmproc', or you will
+ create an infinte loop.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SCAN(1) -106- SCAN(1)
+
+
+ _\bN_\bA_\bM_\bE
+ scan - produce a one line per message scan listing
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ scan [+folder] [msgs] [-clear] [-noclear] [-form formatfile]
+ [-format string] [-header] [-noheader] [-width columns]
+ [-reverse] [-noreverse] [-file filename] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bc_\ba_\bn produces a one-line-per-message listing of the specified mes-
+ sages. Each _\bs_\bc_\ba_\bn line contains the message number (name), the
+ date, the "From:" field, the "Subject" field, and, if room allows,
+ some of the body of the message. For example:
+
+ 15+ 7/ 5 Dcrocker nned <<Last week I asked some of
+ 16 - 7/ 5 dcrocker message id format <<I recommend
+ 18 7/ 6 Obrien Re: Exit status from mkdir
+ 19 7/ 7 Obrien "scan" listing format in MH
+
+ The `+' on message 15 indicates that it is the current message.
+ The `-' on message 16 indicates that it has been replied to, as
+ indicated by a "Replied:" component produced by an `-annotate'
+ switch to the _\br_\be_\bp_\bl command.
+
+ If there is sufficient room left on the _\bs_\bc_\ba_\bn line after the sub-
+ ject, the line will be filled with text from the body, preceded by
+ <<, and terminated by >> if the body is sufficiently short. _\bS_\bc_\ba_\bn
+ actually reads each of the specified messages and parses them to
+ extract the desired fields. During parsing, appropriate error mes-
+ sages will be produced if there are format errors in any of the
+ messages.
+
+ The `-header' switch produces a header line prior to the _\bs_\bc_\ba_\bn list-
+ ing. Currently, the name of the folder and the current date and
+ time are output (see the HISTORY section for more information).
+
+ If the `-clear' switch is used and _\bs_\bc_\ba_\bn'_\bs output is directed to a
+ terminal, then _\bs_\bc_\ba_\bn will consult the $TERM and $TERMCAP envariables
+ to determine your terminal type in order to find out how to clear
+ the screen prior to exiting. If the `-clear' switch is used and
+ _\bs_\bc_\ba_\bn'_\bs output is not directed to a terminal (e.g., a pipe or a
+ file), then _\bs_\bc_\ba_\bn will send a formfeed prior to exiting.
+
+ For example, the command:
+
+ (scan -clear -header; show all -show pr -f) | lpr
+
+ produces a scan listing of the current folder, followed by a
+ formfeed, followed by a formatted listing of all messages in the
+ folder, one per page. Omitting `-show pr -f' will cause the mes-
+ sages to be concatenated, separated by a one-line header and two
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SCAN(1) -107- SCAN(1)
+
+
+ blank lines.
+
+ If _\bs_\bc_\ba_\bn encounters a message without a "Date:" field, rather than
+ leaving that portion of the scan listing blank, the date is
+ filled-in with the last write date of the message, and post-fixed
+ with a `*'. This is particularly handy for scanning a _\bd_\br_\ba_\bf_\bt
+ _\bf_\bo_\bl_\bd_\be_\br, as message drafts usually aren't allowed to have dates in
+ them.
+
+ To override the output format used by _\bs_\bc_\ba_\bn, the `-format string' or
+ `-format file' switches are used. This permits individual fields
+ of the scan listing to be extracted with ease. The string is sim-
+ ply a format string and the file is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ In addition to the standard _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) escapes, _\bs_\bc_\ba_\bn also recog-
+ nizes the following additional _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escapes:
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ body string the (compressed) first part of the body
+ dtimenow date the current date
+ folder string the name of the current folder
+
+ Also, if no date header was present in the message, the _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
+ escapes which operate on {_\bd_\ba_\bt_\be} will return values for the date of
+ last modification of the message file itself.
+
+ _\bs_\bc_\ba_\bn will update the _\bM_\bH context prior to starting the listing, so
+ interrupting a long _\bs_\bc_\ba_\bn listing preserves the new context. _\bM_\bH
+ purists hate this idea.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Alternate-Mailboxes: To determine the user's mailboxes
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1), pick(1), show(1), mh-format(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the folder current
+ `msgs' defaults to all
+ `-format' defaulted as described above
+ `-noheader'
+ `-width' defaulted to the width of the terminal
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SCAN(1) -108- SCAN(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ Prior to using the format string mechanism, `-header' used to gen-
+ erate a heading saying what each column in the listing was. Format
+ strings prevent this from happening.
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bs_\bc_\ba_\bn. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+ The value of each _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escape is set by _\bs_\bc_\ba_\bn to the contents
+ of the first message header _\bs_\bc_\ba_\bn encounters with the corresponding
+ component name; any following headers with the same component name
+ are ignored.
+
+ The switch `-reverse', makes _\bs_\bc_\ba_\bn list the messages in reverse ord-
+ er; this should be considered a bug.
+
+ The `-file filename' switch allows the user to obtain a _\bs_\bc_\ba_\bn list-
+ ing of a maildrop file as produced by _\bp_\ba_\bc_\bk_\bf. This listing includes
+ every message in the file. The user should use _\bm_\bs_\bh for more selec-
+ tive processing of the file. `-reverse' is ignored with this op-
+ tion.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SEND(1) -109- SEND(1)
+
+
+ _\bN_\bA_\bM_\bE
+ send - send a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ send [-alias aliasfile] [-draft] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-forward] [-noforward]
+ [-mime] [-nomime] [-msgid] [-nomsgid] [-push] [-nopush]
+ [-split seconds] [-verbose] [-noverbose] [-watch] [-nowatch]
+ [-width columns] [file ...] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\be_\bn_\bd will cause each of the specified files to be delivered (via
+ _\bp_\bo_\bs_\bt (8)) to each of the destinations in the "To:", "cc:", "Bcc:",
+ and "Fcc:" fields of the message. If _\bs_\be_\bn_\bd is re-distributing a
+ message, as invoked from _\bd_\bi_\bs_\bt, then the corresponding "Resent-xxx"
+ fields are examined instead.
+
+ If `-push' is specified, _\bs_\be_\bn_\bd will detach itself from the user's
+ terminal and perform its actions in the background. If _\bp_\bu_\bs_\bh 'd and
+ the draft can't be sent, then the `-forward' switch says that draft
+ should be forwarded with the failure notice sent to the user. This
+ differs from putting _\bs_\be_\bn_\bd in the background because the output is
+ trapped and analyzed by _\bM_\bH.
+
+ If `-verbose' is specified, _\bs_\be_\bn_\bd will indicate the interactions
+ occurring with the transport system, prior to actual delivery. If
+ `-watch' is specified _\bs_\be_\bn_\bd will monitor the delivery of local and
+ network mail. Hence, by specifying both switches, a large detail
+ of information can be gathered about each step of the message's
+ entry into the transport system.
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ If `-split' is specified, _\bs_\be_\bn_\bd will split the draft into one or
+ more partial messages prior to sending. This makes use of the
+ multi-media content feature in MH. Note however that if _\bs_\be_\bn_\bd is
+ invoked under _\bd_\bi_\bs_\bt (1), then this switch is ignored -- it makes no
+ sense to redistribute a message in this fashion. Sometimes you
+ want _\bs_\be_\bn_\bd to pause after posting a partial message. This is usu-
+ ally the case when you are running _\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl and expect to generate
+ a lot of partial messages. The argument to `-split' tells it how
+ long to pause between postings.
+
+ _\bS_\be_\bn_\bd with no _\bf_\bi_\bl_\be argument will query whether the draft is the
+ intended file, whereas `-draft' will suppress this question. Once
+ the transport system has successfully accepted custody of the mes-
+ sage, the file will be renamed with a leading comma, which allows
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SEND(1) -110- SEND(1)
+
+
+ it to be retrieved until the next draft message is sent. If there
+ are errors in the formatting of the message, _\bs_\be_\bn_\bd will abort with a
+ (hopefully) helpful error message.
+
+ If a "Bcc:" field is encountered, its addresses will be used for
+ delivery, and the "Bcc:" field will be removed from the message
+ sent to sighted recipients. The blind recipients will receive an
+ entirely new message with a minimal set of headers. Included in
+ the body of the message will be a copy of the message sent to the
+ sighted recipients. If `-filter filterfile' is specified, then
+ this copy is filtered (re-formatted) prior to being sent to the
+ blind recipients. Otherwise, to use the MIME rules for encapsula-
+ tion, specify the `-mime' switch.
+
+ Prior to sending the message, the fields "From: user@local", and
+ "Date: now" will be appended to the headers in the message. If the
+ envariable $SIGNATURE is set, then its value is used as your per-
+ sonal name when constructing the "From:" line of the message. If
+ this envariable is not set, then _\bs_\be_\bn_\bd will consult the profile
+ entry "Signature" for this information. On hosts where _\bM_\bH was con-
+ figured with the UCI option, if $SIGNATURE is not set and the "Sig-
+ nature" profile entry is not present, then the file
+ $HOME/.signature is consulted. If `-msgid' is specified, then a
+ "Message-ID:" field will also be added to the message.
+
+ If _\bs_\be_\bn_\bd is re-distributing a message (when invoked by _\bd_\bi_\bs_\bt ), then
+ "Resent-" will be prepended to each of these fields: "From:",
+ "Date:", and "Message-ID:". If the message already contains a
+ "From:" field, then a "Sender: user@local" field will be added as
+ well. (An already existing "Sender:" field is an error!)
+
+ By using the `-format' switch, each of the entries in the "To:" and
+ "cc:" fields will be replaced with "standard" format entries. This
+ standard format is designed to be usable by all of the message
+ handlers on the various systems around the Internet. If `-nofor-
+ mat' is given, then headers are output exactly as they appear in
+ the message draft.
+
+ If an "Fcc: folder" is encountered, the message will be copied to
+ the specified folder for the sender in the format in which it will
+ appear to any non-Bcc receivers of the message. That is, it will
+ have the appended fields and field reformatting. The "Fcc:" fields
+ will be removed from all outgoing copies of the message.
+
+ By using the `-width columns' switch, the user can direct _\bs_\be_\bn_\bd as
+ to how long it should make header lines containing addresses.
+
+ The files specified by the profile entry "Aliasfile:" and any addi-
+ tional alias files given by the `-alias aliasfile' switch will be
+ read (more than one file, each preceeded by `-alias', can be
+ named). See _\bm_\bh-_\ba_\bl_\bi_\ba_\bs (5) for more information.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SEND(1) -111- SEND(1)
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Aliasfile: For a default alias file
+ Signature: To determine the user's mail signature
+ mailproc: Program to post failure notices
+ postproc: Program to post the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), dist(1), forw(1), repl(1), mh-alias(5), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `file' defaults to <mh-dir>/draft
+ `-alias /usr/bs/mh-6.8/lib/MailAliases'
+ `-nodraftfolder'
+ `-nofilter'
+ `-format'
+ `-forward'
+ `-nomime'
+ `-nomsgid'
+ `-nopush'
+ `-noverbose'
+ `-nowatch'
+ `-width 72'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ Under some configurations, it is not possible to mointor the mail
+ delivery transaction; `-watch' is a no-op on those systems.
+
+ Using `-split 0' doesn't work correctly.
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SHOW(1) -112- SHOW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ show - show (list) messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ show [+folder] [msgs] [-draft] [-header] [-noheader]
+ [-showproc program] [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bh_\bo_\bw lists each of the specified messages to the standard output
+ (typically, the terminal). Typically, the messages are listed
+ exactly as they are, with no reformatting. A program named by the
+ _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc profile component is invoked to do the listing, and any
+ switches not recognized by _\bs_\bh_\bo_\bw are passed along to that program.
+ The default program is known as _\bm_\bo_\br_\be (1). To override the default
+ and the _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc profile component, use the `-showproc program'
+ switch. For example, `-show pr' will cause the _\bp_\br (1) program to
+ list the messages. The _\bM_\bH command _\bm_\bh_\bl can be used as a _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc to
+ show messages in a more uniform format. Normally, this program is
+ specified as the _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc is the user's .mh_profile. See _\bm_\bh_\bl (1)
+ for the details. If the `-noshowproc' option is specified,
+ `/bin/cat' is used instead of _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc.
+
+ If you have messages with multi-media content, you should define
+ the profile entry _\bm_\bh_\bn_\bp_\br_\bo_\bc, which is the name of a program to mani-
+ pulate multi-media messages. The _\bm_\bh_\bn (1) program is suitable for
+ this purpose. Note that if the _\bm_\bh_\bn_\bp_\br_\bo_\bc profile entry is defined,
+ the `-noshowproc' option is NOT specified, and if one or more named
+ messages has a multi-media content, then the program indicated by
+ _\bm_\bh_\bn_\bp_\br_\bo_\bc will be run instead of _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc. The use of the _\bm_\bh_\bn_\bp_\br_\bo_\bc
+ can also be disabled if the environment variable $NOMHNPROC is set.
+
+ The `-header' switch tells _\bs_\bh_\bo_\bw to display a one-line description
+ of the message being shown. This description includes the folder
+ and the message number.
+
+ If no `msgs' are specified, the current message is used. If more
+ than one message is specified, _\bm_\bo_\br_\be will prompt for a <RETURN>
+ prior to listing each message. _\bm_\bo_\br_\be will list each message, a page
+ at a time. When the end of page is reached, _\bm_\bo_\br_\be will ring the
+ bell and wait for a <SPACE> or <RETURN>. If a <RETURN> is entered,
+ _\bm_\bo_\br_\be will print the next line, whereas <SPACE> will print the next
+ screenful. To exit _\bm_\bo_\br_\be, type "q".
+
+ If the standard output is not a terminal, no queries are made, and
+ each file is listed with a one-line header and two lines of separa-
+ tion.
+
+ "show -draft" will list the file <mh-dir>/draft if it exists.
+
+ If the profile entry "Unseen-Sequence" is present and non-empty,
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SHOW(1) -113- SHOW(1)
+
+
+ then _\bs_\bh_\bo_\bw will remove each of the messages shown from each sequence
+ named by the profile entry. This is similar to the
+ "Previous-Sequence" profile entry supported by all _\bM_\bH commands
+ which take `msgs' or `msg' arguments.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Unseen-Sequence: To name sequences denoting unseen messages
+ showproc: Program to show messages
+ mhnproc: Program to show messages with multi-media con-
+ tent
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mhl(1), more(1), next(1), pick(1), prev(1), scan(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-header'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The last
+ message shown will become the current message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SHOW(1) -114- SHOW(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The `-header' switch doesn't work when `msgs' expands to more than
+ one message. If the _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc is _\bm_\bh_\bl, then is problem can be cir-
+ cumvented by referencing the "messagename" field in the _\bm_\bh_\bl format
+ file.
+
+ _\bS_\bh_\bo_\bw updates the user's context before showing the message. Hence
+ _\bs_\bh_\bo_\bw will mark messages as seen prior to the user actually seeing
+ them. This is generally not a problem, unless the user relies on
+ the "unseen" messages mechanism, and interrupts _\bs_\bh_\bo_\bw while it is
+ showing "unseen" messages.
+
+ If _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc is _\bm_\bh_\bl, then _\bs_\bh_\bo_\bw uses a built-in _\bm_\bh_\bl: it does not ac-
+ tually run the _\bm_\bh_\bl program. Hence, if you define your own
+ _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bm_\bh_\bl since _\bs_\bh_\bo_\bw won't run it.
+
+ If _\bm_\bo_\br_\be (1) is your showproc (the default), then avoid running _\bs_\bh_\bo_\bw
+ in the background with only its standard output piped to another
+ process, as in
+
+ show | imprint &
+
+ Due to a bug in _\bm_\bo_\br_\be, show will go into a "tty input" state. To
+ avoid this problem, re-direct _\bs_\bh_\bo_\bw's diagnostic output as well.
+ For users of _\bc_\bs_\bh:
+
+ show |& imprint &
+
+ For users of _\bs_\bh:
+
+ show 2>&1 | imprint &
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SLOCAL(1) -115- SLOCAL(1)
+
+
+ _\bN_\bA_\bM_\bE
+ slocal - special local mail delivery
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bs/mh-6.8/lib/slocal [address info sender]
+ [-addr address] [-info data] [-sender sender]
+ [-user username] [-mailbox mbox] [-file file]
+ [-maildelivery deliveryfile] [-verbose] [-noverbose] [-debug]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bl_\bo_\bc_\ba_\bl is a program designed to allow you to have your inbound mail
+ processed according to a complex set of selection criteria. You do
+ not normally invoke _\bs_\bl_\bo_\bc_\ba_\bl yourself, rather _\bs_\bl_\bo_\bc_\ba_\bl is invoked on
+ your behalf by your system's Message Transfer Agent.
+
+ The message selection criteria used by _\bs_\bl_\bo_\bc_\ba_\bl is specified in the
+ file ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by in the user's home directory. The format of
+ this file is given below.
+
+ The message delivery address and message sender are determined from
+ the Message Transfer Agent envelope information, if possible.
+ Under _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl, the sender will obtained from the UUCP "From "
+ line, if present. The user may override these values with command
+ line arguments, or arguments to the `-addr' and `-sender' switches.
+
+ The message is normally read from the standard input. The `-file'
+ switch sets the name of the file from which the message should be
+ read, instead of reading stdin. The `-user' switch tells _\bs_\bl_\bo_\bc_\ba_\bl
+ the name of the user for whom it is delivering mail. The `-mail-
+ box' switch tells _\bs_\bl_\bo_\bc_\ba_\bl the name of the user's maildrop file.
+
+ The `-info' switch may be used to pass an arbitrary argument to
+ sub-processes which _\bs_\bl_\bo_\bc_\ba_\bl may invoke on your behalf. The `-ver-
+ bose' switch causes _\bs_\bl_\bo_\bc_\ba_\bl to give information on stdout about its
+ progress. The `-debug' switch produces more verbose debugging out-
+ put on stderr.
+
+
+ _\bM_\be_\bs_\bs_\ba_\bg_\be _\bT_\br_\ba_\bn_\bs_\bf_\be_\br _\bA_\bg_\be_\bn_\bt_\bs
+
+ If your MTA is _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl, you should include the line
+
+ "| /usr/bs/mh-6.8/lib/slocal -user username"
+
+ in your .forward file in your home directory. This will cause
+ _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl to invoke _\bs_\bl_\bo_\bc_\ba_\bl on your behalf.
+
+ If your MTA is _\bM_\bM_\bD_\bF-_\bI, you should (symbolically) link /usr/bs/mh-
+ 6.8/lib/slocal to the file bin/rcvmail in your home directory.
+ This will cause _\bM_\bM_\bD_\bF-_\bI to invoke _\bs_\bl_\bo_\bc_\ba_\bl on your behalf with the
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SLOCAL(1) -116- SLOCAL(1)
+
+
+ correct "_\ba_\bd_\bd_\br_\be_\bs_\bs _\bi_\bn_\bf_\bo _\bs_\be_\bn_\bd_\be_\br" arguments.
+
+ If your MTA is _\bM_\bM_\bD_\bF-_\bI_\bI, then you should not use _\bs_\bl_\bo_\bc_\ba_\bl. An
+ equivalent functionality is already provided by _\bM_\bM_\bD_\bF-_\bI_\bI; see mail-
+ delivery(5) for details.
+
+
+ _\bT_\bh_\be _\bM_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by _\bF_\bi_\bl_\be
+
+
+ The ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file controls how local delivery is performed.
+ Each line of this file consists of five fields, separated by
+ white-space or comma. Since double-quotes are honored, these char-
+ acters may be included in a single argument by enclosing the entire
+ argument in double-quotes. A double-quote can be included by
+ preceding it with a backslash. Lines beginning with `#' are
+ ignored. The format of each line in the ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file is:
+
+
+ header pattern action result string
+
+ header:
+ The name of a header field that is to be searched for a pat-
+ tern. This is any field in the headers of the message that
+ might be present. The following special fields are also
+ defined:
+
+ _\bs_\bo_\bu_\br_\bc_\be the out-of-band sender information
+ _\ba_\bd_\bd_\br the address that was used to cause delivery to the
+ recipient
+ _\bd_\be_\bf_\ba_\bu_\bl_\bt this matches _\bo_\bn_\bl_\by if the message hasn't been
+ delivered yet
+ * this always matches
+
+ pattern:
+ The sequence of characters to match in the specified header
+ field. Matching is case-insensitive, but does not use regular
+ expressions.
+
+ action:
+ The action to take to deliver the message:
+
+ _\bd_\be_\bs_\bt_\br_\bo_\by This action always succeeds.
+
+ _\bf_\bi_\bl_\be or > Append the message to the file named by string. The
+ message is appended to the file in the maildrop for-
+ mat which is used by your message transport system.
+ If the message can be appended to the file, then
+ this action succeeds. When writing to the file, a
+ "Delivery-Date: date" header is added which indi-
+ cates the date and time that message was appended to
+ the file.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SLOCAL(1) -117- SLOCAL(1)
+
+
+ _\bm_\bb_\bo_\bx Identical to _\bf_\bi_\bl_\be, but always appends the message
+ using the format used by _\bp_\ba_\bc_\bk_\bf (the MMDF mailbox
+ format).
+
+ _\bp_\bi_\bp_\be or | Pipe the message as the standard input to the com-
+ mand named by string, using the Bourne shell _\bs_\bh(1)
+ to interpret the string. Prior to giving the string
+ to the shell, it is expanded with the following
+ built-in variables:
+
+ $(sender) the out-of-band sender information
+ $(address) the address that was used to cause
+ delivery to the recipient
+ $(size) the size of the message in bytes
+ $(reply-to) either the "Reply-To:" or "From:" field
+ of the message
+ $(info) the out-of-band information specified
+ _\bq_\bp_\bi_\bp_\be or
+ <_\bc_\ba_\br_\be_\bt> Similar to _\bp_\bi_\bp_\be, but executes the command directly,
+ after built-in variable expansion, without assis-
+ tance from the shell. This action can be used to
+ avoid quoting special characters which your shell
+ might interpret.
+
+ result:
+ Indicates how the action should be performed:
+
+ _\bA Perform the action. If the action succeeds, then
+ the message is considered delivered.
+
+ _\bR Perform the action. Regardless of the outcome of
+ the action, the message is not considered delivered.
+
+ ? Perform the action only if the message has not been
+ delivered. If the action succeeds, then the message
+ is considered delivered.
+
+ _\bN Perform the action only if the message has not been
+ delivered and the previous action succeeded. If
+ this action succeeds, then the message is considered
+ delivered.
+
+ To summarize, here's an example:
+
+ #_\bf_\bi_\be_\bl_\bd _\bp_\ba_\bt_\bt_\be_\br_\bn _\ba_\bc_\bt_\bi_\bo_\bn _\br_\be_\bs_\bu_\bl_\bt _\bs_\bt_\br_\bi_\bn_\bg
+ # lines starting with a '#' are ignored, as are blank lines
+ #
+ # file mail with mmdf2 in the "To:" line into file mmdf2.log
+ _\bT_\bo _\bm_\bm_\bd_\bf_\b2 _\bf_\bi_\bl_\be _\bA _\bm_\bm_\bd_\bf_\b2._\bl_\bo_\bg
+ # Messages from mmdf pipe to the program err-message-archive
+ _\bF_\br_\bo_\bm _\bm_\bm_\bd_\bf _\bp_\bi_\bp_\be _\bA /_\bb_\bi_\bn/_\be_\br_\br-_\bm_\be_\bs_\bs_\ba_\bg_\be-_\ba_\br_\bc_\bh_\bi_\bv_\be
+ # Anything with the "Sender:" address "mh-workers"
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SLOCAL(1) -118- SLOCAL(1)
+
+
+ # file in mh.log if not filed already
+ _\bS_\be_\bn_\bd_\be_\br _\bm_\bh-_\bw_\bo_\br_\bk_\be_\br_\bs _\bf_\bi_\bl_\be ? _\bm_\bh._\bl_\bo_\bg
+ # "To:" unix - put in file unix-news
+ _\bT_\bo _\bU_\bn_\bi_\bx > _\bA _\bu_\bn_\bi_\bx-_\bn_\be_\bw_\bs
+ # if the address is jpo=ack - send an acknowledgement copy back
+ _\ba_\bd_\bd_\br _\bj_\bp_\bo=_\ba_\bc_\bk | _\bR "/_\bb_\bi_\bn/_\br_\be_\bs_\be_\bn_\bd -_\br $(_\br_\be_\bp_\bl_\by-_\bt_\bo)"
+ # anything from steve - destroy!
+ _\bF_\br_\bo_\bm _\bs_\bt_\be_\bv_\be _\bd_\be_\bs_\bt_\br_\bo_\by _\bA -
+ # anything not matched yet - put into mailbox
+ _\bd_\be_\bf_\ba_\bu_\bl_\bt - > ? _\bm_\ba_\bi_\bl_\bb_\bo_\bx
+ # always run rcvtty
+ * - | _\bR /_\bm_\bh/_\bl_\bi_\bb/_\br_\bc_\bv_\bt_\bt_\by
+
+ The file is always read completely, so that several matches can be
+ made and several actions can be taken. The ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file must
+ be owned either by the user or by root, and must be writable only
+ by the owner. If the ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file cannot be found, or does
+ not perform an action which delivers the message, then the file
+ /usr/bs/mh-6.8/lib/maildelivery is read according to the same
+ rules. This file must be owned by the root and must be writable
+ only by the root. If this file cannot be found or does not perform
+ an action which delivers the message, then standard delivery to the
+ user's maildrop is performed.
+
+
+ _\bS_\bu_\bb-_\bp_\br_\bo_\bc_\be_\bs_\bs _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt
+
+ When a process is invoked, its environment is: the user/group-ids
+ are set to recipient's ids; the working directory is the
+ recipient's home directory; the umask is 0077; the process has no
+ /dev/tty; the standard input is set to the message; the standard
+ output and diagnostic output are set to /dev/null; all other file-
+ descriptors are closed; the envariables $USER, $HOME, $SHELL are
+ set appropriately, and no other envariables exist.
+
+ The process is given a certain amount of time to execute. If the
+ process does not exit within this limit, the process will be ter-
+ minated with extreme prejudice. The amount of time is calculated
+ as ((size x 60) + 300) seconds, where size is the number of bytes
+ in the message.
+
+ The exit status of the process is consulted in determining the suc-
+ cess of the action. An exit status of zero means that the action
+ succeeded. Any other exit status (or abnormal termination) means
+ that the action failed.
+
+ In order to avoid any time limitations, you might implement a pro-
+ cess that began by _\bf_\bo_\br_\bk_\bi_\bn_\bg. The parent would return the appropri-
+ ate value immediately, and the child could continue on, doing what-
+ ever it wanted for as long as it wanted. This approach is somewhat
+ risky if the parent is going to return an exit status of zero. If
+ the parent is going to return a non-zero exit status, then this
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SLOCAL(1) -119- SLOCAL(1)
+
+
+ approach can lead to quicker delivery into your maildrop.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/lib/mtstailor MH tailor file
+ $HOME/.maildelivery The file controlling local delivery
+ /usr/bs/mh-6.8/lib/maildelivery Rather than the standard file
+ /usr/spool/mail/$USER The default maildrop
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rcvstore(1), mhook(1), mh-format(5) , maildelivery(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-noverbose'
+ `-maildelivery .maildelivery'
+ `-mailbox /usr/spool/mail/$USER'
+ `-file' defaults to stdin
+ `-user' defaults to the current user
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ _\bS_\bl_\bo_\bc_\ba_\bl is designed to be backward-compatible with the _\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by
+ facility provided by _\bM_\bM_\bD_\bF-_\bI_\bI. Thus, the ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file syntax
+ is limited, as is the functionality of _\bs_\bl_\bo_\bc_\ba_\bl.
+
+ In addition to an exit status of zero, the _\bM_\bM_\bD_\bF values _\bR_\bP__\bM_\bO_\bK (32)
+ and _\bR_\bP__\bO_\bK (9) mean that the message has been fully delivered. Any
+ other non-zero exit status, including abnormal termination, is in-
+ terpreted as the _\bM_\bM_\bD_\bF value _\bR_\bP__\bM_\bE_\bC_\bH (200), which means "use an al-
+ ternate route" (deliver the message to the maildrop).
+
+
+ _\bB_\bu_\bg_\bs
+ Only two return codes are meaningful, others should be.
+
+ _\bS_\bl_\bo_\bc_\ba_\bl is designed to be backwards-compatible with the _\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by
+ functionality provided by MMDF-II.
+
+ Versions of _\bM_\bM_\bD_\bF with the _\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by mechanism aren't entirely
+ backwards-compatible with earlier versions of _\bM_\bM_\bD_\bF. If you have an
+ _\bM_\bM_\bD_\bF-_\bI old-style hook, the best you can do is to have a one-line
+ ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file:
+
+ default - pipe A "bin/rcvmail $(address) $(info) $(sender)"
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SORTM(1) -120- SORTM(1)
+
+
+ _\bN_\bA_\bM_\bE
+ sortm - sort messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ sortm [+folder] [msgs] [-datefield field] [-textfield field]
+ [-notextfield] [-limit days] [-nolimit] [-verbose]
+ [-noverbose] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bo_\br_\bt_\bm sorts the specified messages in the named folder according to
+ the chronological order of the "Date:" field of each message.
+
+ The `-verbose' switch directs _\bs_\bo_\br_\bt_\bm to tell the user the general
+ actions that it is taking to place the folder in sorted order.
+
+ The `-datefield field' switch tells _\bs_\bo_\br_\bt_\bm the name of the field to
+ use when making the date comparison. If the user has a special
+ field in each message, such as "BB-Posted:" or "Delivery-Date:",
+ then the `-datefield' switch can be used to direct _\bs_\bo_\br_\bt_\bm which
+ field to examine.
+
+ The `-textfield field' switch causes _\bs_\bo_\br_\bt_\bm to sort messages by the
+ specified text field. If this field is "subject", any leading
+ "re:" is stripped off. In any case, all characters except letters
+ and numbers are stripped and the resulting strings are sorted
+ datefield-major, textfield-minor, using a case insensitive com-
+ parison.
+
+ With `-textfield field', if `-limit days' is specified, messages
+ with similar textfields that are dated within `days' of each other
+ appear together. Specifying `-nolimit' makes the limit infinity.
+ With `-limit 0', the sort is instead made textfield-major,
+ date-minor.
+
+ For example, to order a folder by date-major, subject-minor, use:
+
+ sortm -textfield subject +folder
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ folder (1)
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SORTM(1) -121- SORTM(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to all
+ `-datefield date'
+ `-notextfield'
+ `-noverbose'
+ `-nolimit'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. If the
+ current message is moved, _\bs_\bo_\br_\bt_\bm will preserve its status as
+ current.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ Timezones used to be ignored when comparing dates: they aren't any
+ more.
+
+ Messages which were in the folder, but not specified by `msgs',
+ used to be moved to the end of the folder; now such messages are
+ left untouched.
+
+ Previously, _\bs_\bo_\br_\bt_\bm would try to fill any gaps in a folder within the
+ range of messages it sorted. To improve performance, _\bs_\bo_\br_\bt_\bm now
+ minimizes the number of message moves. To pack a folder, use
+ "_\bf_\bo_\bl_\bd_\be_\br -_\bp_\ba_\bc_\bk" instead.
+
+
+ _\bB_\bu_\bg_\bs
+ If _\bs_\bo_\br_\bt_\bm encounters a message without a date-field, or if the mes-
+ sage has a date-field that _\bs_\bo_\br_\bt_\bm cannot parse, then _\bs_\bo_\br_\bt_\bm attempts
+ to keep the message in the same relative position. This does not
+ always work. For instance, if the first message encountered lacks
+ a date which can be parsed, then it will usually be placed at the
+ end of the messages being sorted.
+
+ When _\bs_\bo_\br_\bt_\bm complains about a message which it can't temporally ord-
+ er, it complains about the message number _\bp_\br_\bi_\bo_\br to sorting. It
+ should indicate what the message number will be _\ba_\bf_\bt_\be_\br sorting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ VMH(1) -122- VMH(1)
+
+
+ _\bN_\bA_\bM_\bE
+ vmh - visual front-end to MH
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ vmh [-prompt string] [-vmhproc program] [-novmhproc]
+ [switches for _\bv_\bm_\bh_\bp_\br_\bo_\bc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bv_\bm_\bh is a program which implements the server side of the _\bM_\bH window
+ management protocol and uses _\bc_\bu_\br_\bs_\be_\bs (3) routines to maintain a
+ split-screen interface to any program which implements the client
+ side of the protocol. This latter program, called the _\bv_\bm_\bh_\bp_\br_\bo_\bc, is
+ specified using the `-vmhproc program' switch.
+
+ The upshot of all this is that one can run _\bm_\bs_\bh on a display termi-
+ nal and get a nice visual interface. To do this, for example, just
+ add the line
+
+ mshproc: vmh
+
+ to your .mh_profile. (This takes advantage of the fact that _\bm_\bs_\bh is
+ the default _\bv_\bm_\bh_\bp_\br_\bo_\bc for _\bv_\bm_\bh.)
+
+ In order to facilitate things, if the `-novmhproc' switch is given,
+ and _\bv_\bm_\bh can't run on the user's terminal, the _\bv_\bm_\bh_\bp_\br_\bo_\bc is run
+ directly without the window management protocol.
+
+ After initializing the protocol, _\bv_\bm_\bh prompts the user for a command
+ to be given to the client. Usually, this results in output being
+ sent to one or more windows. If a output to a window would cause
+ it to scroll, _\bv_\bm_\bh prompts the user for instructions, roughly per-
+ mitting the capabilities of _\bl_\be_\bs_\bs or _\bm_\bo_\br_\be (e.g., the ability to
+ scroll backwards and forwards):
+
+ SPACE advance to the next windowful
+ RETURN * advance to the next line
+ y * retreat to the previous line
+ d * advance to the next ten lines
+ u * retreat to the previous ten lines
+ g * go to an arbitrary line
+ (preceed g with the line number)
+ G * go to the end of the window
+ (if a line number is given, this acts like `g')
+ CTRL-L refresh the entire screen
+ h print a help message
+ q abort the window
+
+ (A `*' indicates that a numeric prefix is meaningful for this com-
+ mand.)
+
+ Note that if a command resulted in more than one window's worth of
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ VMH(1) -123- VMH(1)
+
+
+ information being displayed, and you allow the command which is
+ generating information for the window to gracefully finish (i.e.,
+ you don't use the `q' command to abort information being sent to
+ the window), then _\bv_\bm_\bh will give you one last change to peruse the
+ window. This is useful for scrolling back and forth. Just type
+ `q' when you're done.
+
+ To abnormally terminate _\bv_\bm_\bh (without core dump), use <QUIT> (usu-
+ ally CTRL-\). For instance, this does the "right" thing with _\bb_\bb_\bc
+ and _\bm_\bs_\bh.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ msh(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-prompt (vmh) '
+ `-vmhproc msh'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-prompt' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bv_\bm_\bh. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+
+ At present, there is no way to pass signals (e.g., interrupt, quit)
+ to the client. However, generating QUIT when _\bv_\bm_\bh is reading a com-
+ mand from the terminal is sufficient to tell the client to go away
+ quickly.
+
+ Acts strangely (loses peer or botches window management protocol
+ with peer) on random occasions.
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ WHATNOW(1) -124- WHATNOW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ whatnow - prompting front-end for send
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ whatnow [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-prompt string] [file] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bW_\bh_\ba_\bt_\bn_\bo_\bw is the default program that queries the user about the
+ disposition of a composed draft. It is normally invoked by one of
+ _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, or _\br_\be_\bp_\bl after the initial edit.
+
+ When started, the editor is started on the draft (unless `-noedit'
+ is given, in which case the initial edit is suppressed). Then,
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw repetitively prompts the user with "What now?" and awaits a
+ response. The valid responses are:
+
+ display to list the message being distributed/replied-to on
+ the terminal
+ edit to re-edit using the same editor that was used on the
+ preceding round unless a profile entry
+ "<lasteditor>-next: <editor>" names an alternate editor
+ edit <editor> to invoke <editor> for further editing
+ list to list the draft on the terminal
+ push to send the message in the background
+ quit to terminate the session and preserve the draft
+ quit -delete to terminate, then delete the draft
+ refile +folder to refile the draft into the given folder
+ send to send the message
+ send -watch to cause the delivery process to be monitored
+ whom to list the addresses that the message will go to
+ whom -check to list the addresses and verify that they are
+ acceptable to the transport service
+
+ For the edit response, any valid switch to the editor is valid.
+ Similarly, for the send and whom responses, any valid switch to
+ _\bs_\be_\bn_\bd (1) and _\bw_\bh_\bo_\bm (1) commands, respectively, are valid. For the
+ push response, any valid switch to _\bs_\be_\bn_\bd (1) is valid (as this
+ merely invokes _\bs_\be_\bn_\bd with the `-push' option). For the _\br_\be_\bf_\bi_\bl_\be
+ response, any valid switch to the _\bf_\bi_\bl_\be_\bp_\br_\bo_\bc is valid. For the
+ display and list responses, any valid argument to the _\bl_\bp_\br_\bo_\bc is
+ valid. If any non-switch arguments are present, then the pathname
+ of the draft will be excluded from the argument list given to the
+ _\bl_\bp_\br_\bo_\bc (this is useful for listing another _\bM_\bH message).
+
+ See _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be (5) for further information about how editors are
+ used by MH. It also discusses how complex envariables can be used
+ to direct _\bw_\bh_\ba_\bt_\bn_\bo_\bw's actions.
+
+ The `-prompt string' switch sets the prompting string for _\bw_\bh_\ba_\bt_\bn_\bo_\bw.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ WHATNOW(1) -125- WHATNOW(1)
+
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ <lasteditor>-next: To name an editor to be used after exit from
+ <lasteditor>
+ automhnproc: Program to automatically run prior to sending
+ if the draft is an _\bm_\bh_\bn composition file
+ fileproc: Program to refile the message
+ lproc: Program to list the contents of a message
+ sendproc: Program to use to send the message
+ whomproc: Program to determine who a message would go to
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ send(1), whom(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-prompt "What Now? "'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ WHATNOW(1) -126- WHATNOW(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-prompt' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bw_\bh_\ba_\bt_\bn_\bo_\bw. Therefore, one must
+ usually place the argument to this switch inside double-quotes.
+
+ If the initial edit fails, _\bw_\bh_\ba_\bt_\bn_\bo_\bw deletes your draft (by renaming
+ it with a leading comma); failure of a later edit preverves the
+ draft.
+
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl use a
+ built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, and do not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ Hence, if you define your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw
+ since it won't be run.
+
+ If _\bs_\be_\bn_\bd_\bp_\br_\bo_\bc is _\bs_\be_\bn_\bd, then _\bw_\bh_\ba_\bt_\bn_\bo_\bw uses a built-in _\bs_\be_\bn_\bd, it does not
+ actually run the _\bs_\be_\bn_\bd program. Hence, if you define your own
+ _\bs_\be_\bn_\bd_\bp_\br_\bo_\bc, don't call it _\bs_\be_\bn_\bd since _\bw_\bh_\ba_\bt_\bn_\bo_\bw won't run it.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ WHOM(1) -127- WHOM(1)
+
+
+ _\bN_\bA_\bM_\bE
+ whom - report to whom a message would go
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ whom [-alias aliasfile] [-check] [-nocheck] [-draft]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [file] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bW_\bh_\bo_\bm is used to expand the headers of a message into a set of
+ addresses and optionally verify that those addresses are deliver-
+ able at that time (if `-check' is given).
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ The files specified by the profile entry "Aliasfile:" and any addi-
+ tional alias files given by the `-alias aliasfile' switch will be
+ read (more than one file, each preceeded by `-alias', can be
+ named). See _\bm_\bh-_\ba_\bl_\bi_\ba_\bs (5) for more information.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Aliasfile: For a default alias file
+ postproc: Program to post the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-alias(5), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `file' defaults to <mh-dir>/draft
+ `-nocheck'
+ `-alias /usr/bs/mh-6.8/lib/MailAliases'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ WHOM(1) -128- WHOM(1)
+
+
+ _\bB_\bu_\bg_\bs
+ With the `-check' option, _\bw_\bh_\bo_\bm makes no guarantees that the ad-
+ dresses listed as being ok are really deliverable, rather, an ad-
+ dress being listed as ok means that at the time that _\bw_\bh_\bo_\bm was run
+ the address was thought to be deliverable by the transport service.
+ For local addresses, this is absolute; for network addresses, it
+ means that the host is known; for uucp addresses, it (often) means
+ that the _\bU_\bU_\bC_\bP network is available for use.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ -129-
+
+
+ _\bM_\bO_\bR_\bE _\bD_\bE_\bT_\bA_\bI_\bL_\bS
+
+ This section describes some of the more intense points of the _\bM_\bH
+ system, by expanding on topics previously discussed. The format
+ presented conforms to the standard form for the description of UNIX
+ documentation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -130- MH-ALIAS(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-alias - alias file for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ any _\bM_\bH command
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ This describes both _\bM_\bH personal alias files and the (primary) alias
+ file for mail delivery, the file
+
+ /usr/bs/mh-6.8/lib/MailAliases
+
+ It does not describe aliases files used by the message transport
+ system. Each line of the alias file has the format:
+
+ alias : address-group
+ or
+ alias ; address-group
+ or
+ < alias-file
+ or
+ ; comment
+
+ where:
+
+ address-group := address-list
+ | "<" file
+ | "=" UNIX-group
+ | "+" UNIX-group
+ | "*"
+
+ address-list := address
+ | address-list, address
+
+ Continuation lines in alias files end with `\' followed by the new-
+ line character.
+
+ Alias-file and file are UNIX file names. UNIX-group is a group
+ name (or number) from /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp. An address is a "simple"
+ Internet-style address. Througout this file, case is ignored,
+ except for alias-file names.
+
+ If the line starts with a `<', then the file named after the `<' is
+ read for more alias definitions. The reading is done recursively,
+ so a `<' may occur in the beginning of an alias file with the
+ expected results.
+
+ If the address-group starts with a `<', then the file named after
+ the `<' is read and its contents are added to the address-list for
+ the alias.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -131- MH-ALIAS(5)
+
+
+ If the address-group starts with an `=', then the file /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp
+ is consulted for the UNIX-group named after the `='. Each login
+ name occurring as a member of the group is added to the
+ address-list for the alias.
+
+ In contrast, if the address-group starts with a `+', then the file
+ /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp is consulted to determine the group-id of the UNIX-group
+ named after the `+'. Each login name occurring in the /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd
+ file whose group-id is indicated by this group is added to the
+ address-list for the alias.
+
+ If the address-group is simply `*', then the file /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd is
+ consulted and all login names with a userid greater than some magic
+ number (usually 200) are added to the address-list for the alias.
+
+ In match, a trailing * on an alias will match just about anything
+ appropriate. (See example below.)
+
+ An approximation of the way aliases are resolved at posting time is
+ (it's not really done this way):
+
+ 1) Build a list of all addresses from the message to be
+ delivered, eliminating duplicate addresses.
+
+ 2) If this draft originated on the local host, then for those
+ addresses in the message that have no host specified, perform
+ alias resolution.
+
+ 3) For each line in the alias file, compare "alias" against
+ all of the existing addresses. If a match, remove the matched
+ "alias" from the address list, and add each new address in the
+ address-group to the address list if it is not already on the
+ list. The alias itself is not usually output, rather the
+ address-group that the alias maps to is output instead. If
+ "alias" is terminated with a `;' instead of a `:', then both
+ the "alias" and the address are output in the correct format.
+ (This makes replies possible since _\bM_\bH aliases and personal
+ aliases are unknown to the mail transport system.)
+
+ Since the alias file is read line by line, forward references work,
+ but backward references are not recognized, thus, there is no
+ recursion.
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -132- MH-ALIAS(5)
+
+
+ Example:
+ </usr/bs/mh-6.8/lib/BBoardAliases
+ sgroup: fred, fear, freida
+ b-people: Blind List: bill, betty;
+ fred: frated@UCI
+ UNIX-committee: <unix.aliases
+ staff: =staff
+ wheels: +wheel
+ everyone: *
+ news.*: news
+
+ The first line says that more aliases should immediately be read
+ from the file /_\bu_\bs_\br/_\bb_\bs/_\bm_\bh-_\b6._\b8/_\bl_\bi_\bb/_\bB_\bB_\bo_\ba_\br_\bd_\bA_\bl_\bi_\ba_\bs_\be_\bs. Following this,
+ "fred" is defined as an alias for "frated@UCI", and "sgroup" is
+ defined as an alias for the three names "frated@UCI", "fear", and
+ "freida".
+
+ The alias "b-people" is a blind list which includes the addresses
+ "bill" and "betty"; the message will be delieved to those
+ addresses, but the message header will show only "Blind List: ;"
+ (not the addresses).
+
+ Next, the definition of "UNIX-committee" is given by reading the
+ file _\bu_\bn_\bi_\bx._\ba_\bl_\bi_\ba_\bs_\be_\bs in the users _\bM_\bH directory, "staff" is defined as
+ all users who are listed as members of the group "staff" in the
+ /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp file, and "wheels" is defined as all users whose
+ group-id in /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd is equivalent to the "wheel" group.
+
+ Finally, "everyone" is defined as all users with a user-id in
+ /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd greater than 200, and all aliases of the form
+ "news.<anything>" are defined to be "news".
+
+ The key thing to understand about aliasing in _\bM_\bH is that aliases in
+ _\bM_\bH alias files are expanded into the headers of messages posted.
+ This aliasing occurs first, at posting time, without the knowledge
+ of the message transport system. In contrast, once the message
+ transport system is given a message to deliver to a list of
+ addresses, for each address that appears to be local, a system-wide
+ alias file is consulted. These aliases are NOT expanded into the
+ headers of messages delivered.
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ To use aliasing in _\bM_\bH quickly, do the following:
+
+ First, in your ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be, choose a name for your alias file,
+ say "aliases", and add the line:
+
+ Aliasfile: aliases
+
+ Second, create the file "aliases" in your _\bM_\bH directory.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -133- MH-ALIAS(5)
+
+
+ Third, start adding aliases to your "aliases" file as
+ appropriate.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/lib/MailAliases Primary alias file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Aliasfile: For a default alias file
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous releases of _\bM_\bH, only a single, system-wide mh-alias
+ file was supported. Now that _\bM_\bH uses _\bM_\bM_\bD_\bF as a transport system,
+ the system-wide aliasing facility can be more consistently con-
+ trolled by the latter. This means that at most sites, the
+ system-wide mh-alias file will be empty (or trivial at best).
+ Hence, the semantics of mh-alias were extended to support personal
+ alias files. Users of _\bM_\bH no longer need to bother mail-system ad-
+ ministrators for keeping information in the system-wide alias file,
+ as each _\bM_\bH user can create/modify/remove aliases at will from any
+ number of personal files.
+
+
+ _\bB_\bu_\bg_\bs
+ Although the forward-referencing semantics of _\bm_\bh-_\ba_\bl_\bi_\ba_\bs files
+ prevent recursion, the "< alias-file" command may defeat this.
+ Since the number of file descriptors is finite (and very limited),
+ such infinite recursion will terminate with a meaningless diagnos-
+ tic when all the fds are used up.
+
+ Forward references do not work correctly inside blind lists.
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -134- MH-FORMAT(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-format - format file for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ some _\bM_\bH commands
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Several _\bM_\bH commands utilize either a _\bf_\bo_\br_\bm_\ba_\bt string or a _\bf_\bo_\br_\bm_\ba_\bt file
+ during their execution. For example, _\bs_\bc_\ba_\bn (1) uses a format string
+ which directs it how to generate the scan listing for each message;
+ _\br_\be_\bp_\bl (1) uses a format file which directs it how to generate the
+ reply to a message, and so on.
+
+ Format strings are designed to be efficiently parsed by _\bM_\bH which
+ means they are not necessarily simple to write and understand.
+ This means that novice, casual, or even advanced users of _\bM_\bH should
+ not have to deal with them. Some canned scan listing formats are
+ in /usr/bs/mh-6.8/lib/scan.time, /usr/bs/mh-6.8/lib/scan.size, and
+ /usr/bs/mh-6.8/lib/scan.timely. Look in /usr/bs/mh-6.8/lib for
+ other _\bs_\bc_\ba_\bn and _\br_\be_\bp_\bl format files which may have been written at
+ your site.
+
+ It suffices to have your local _\bM_\bH expert actually write new format
+ commands or modify existing ones. This manual section explains how
+ to do that. Note: familiarity with the C _\bp_\br_\bi_\bn_\bt_\bf routine is
+ assumed.
+
+ A format string consists of ordinary text, and special multi-
+ character _\be_\bs_\bc_\ba_\bp_\be sequences which begin with `%'. When specifying a
+ format string, the usual C backslash characters are honored: `\b',
+ `\f', `\n', `\r', and `\t'. Continuation lines in format files end
+ with `\' followed by the newline character. There are three types
+ of _\be_\bs_\bc_\ba_\bp_\be sequences: header _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs, built-in _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs, and
+ flow _\bc_\bo_\bn_\bt_\br_\bo_\bl.
+
+ A _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escape is specified as `%{_\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt}', and exists for
+ each header found in the message being processed. For example
+ `%{date}' refers to the "Date:" field of the appropriate message.
+ All component escapes have a string value. Normally, component
+ values are compressed by converting any control characters (tab and
+ newline included) to spaces, then eliding any leading or multiple
+ spaces. However, commands may give different interpretations to
+ some component escapes; be sure to refer to each command's manual
+ entry for complete details.
+
+ A _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn escape is specified as `%(_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn)'. All functions are
+ built-in, and most have a string or numeric value.
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -135- MH-FORMAT(5)
+
+
+ _\bC_\bo_\bn_\bt_\br_\bo_\bl-_\bf_\bl_\bo_\bw _\be_\bs_\bc_\ba_\bp_\be_\bs
+
+ A _\bc_\bo_\bn_\bt_\br_\bo_\bl escape is one of: `%<', `%?', `%|', or `%>'. These are
+ combined into the conditional execution construct:
+
+ %<condition
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\b1
+ %?condition2
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\b2
+ %?condition3
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\b3
+ ...
+ %|
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\bN
+ %>
+
+ Extra white space is shown here only for clarity. These constructs
+ may be nested without ambiguity. They form a general
+ if-elseif-else-endif block where only one of the _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt seg-
+ ments is interpreted.
+
+ The `%<' and `%?' control escapes causes a condition to be
+ evaluated. This condition may be either a _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt or a _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn.
+ The four constructs have the following syntax:
+
+ %<{component}
+ %<(function)
+ %?{component}
+ %?(function)
+
+ These control escapes test whether the function or component value
+ is non-zero (for integer-valued escapes), or non-empty (for
+ string-valued escapes).
+
+ If this test evaulates true, then the format text up to the next
+ corresponding control escape (one of `%|', `%?', or `%>') is inter-
+ preted normally. Next, all format text (if any) up to the
+ corresponding `%>' control escape is skipped. The `%>' control
+ escape is not interpreted; normal interpretation resumes after the
+ `%>' escape.
+
+ If the test evaluates false, however, then the format text up to
+ the next corresponding control escape (again, one of `%|', `%?', or
+ `%>') is skipped, instead of being interpreted. If the control
+ escape encountered was `%?', then the condition associated with
+ that control escape is evaluated, and interpretation proceeds after
+ that test as described in the previous paragraph. If the control
+ escape encountered was `%|', then the format text up to the
+ corresponding `%>' escape is interpreted normally. As above, the
+ `%>' escape is not interpreted and normal interpretation resumes
+ after the `%>' escape.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -136- MH-FORMAT(5)
+
+
+ The `%?' control escape and its following format text is optional,
+ and may be included zero or more times. The `%|' control escape
+ and its following format text is also optional, and may be included
+ zero or one times.
+
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\be_\bs_\bc_\ba_\bp_\be_\bs
+
+ Most functions expect an argument of a particular type:
+
+ _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn _\bE_\bx_\ba_\bm_\bp_\bl_\be _\bS_\by_\bn_\bt_\ba_\bx
+ literal A literal number, %(_\bf_\bu_\bn_\bc 1234)
+ or string %(_\bf_\bu_\bn_\bc text string)
+ comp Any header component %(_\bf_\bu_\bn_\bc{_\bi_\bn-_\br_\be_\bp_\bl_\by-_\bt_\bo})
+ date A date component %(_\bf_\bu_\bn_\bc{_\bd_\ba_\bt_\be})
+ addr An address component %(_\bf_\bu_\bn_\bc{_\bf_\br_\bo_\bm})
+ expr An optional component, %(_\bf_\bu_\bn_\bc(_\bf_\bu_\bn_\bc_\b2))
+ function or control, %(_\bf_\bu_\bn_\bc %<{_\br_\be_\bp_\bl_\by-_\bt_\bo}%|%{_\bf_\br_\bo_\bm}%>)
+ perhaps nested %(_\bf_\bu_\bn_\bc(_\bf_\bu_\bn_\bc_\b2{_\bc_\bo_\bm_\bp}))
+
+ The types _\bd_\ba_\bt_\be and _\ba_\bd_\bd_\br have the same syntax as _\bc_\bo_\bm_\bp, but require
+ that the header component be a date string, or address string,
+ respectively.
+
+ All arguments except those of type _\be_\bx_\bp_\br are required. For the _\be_\bx_\bp_\br
+ argument type, the leading `%' must be omitted for component and
+ function escape arguments, and must be present (with a leading
+ space) for control escape arguments.
+
+ The evaluation of format strings is based on a simple machine with
+ an integer register _\bn_\bu_\bm, and a text string register _\bs_\bt_\br. When a
+ function escape is processed, if it accepts an optional _\be_\bx_\bp_\br argu-
+ ment which is not present, it reads the current value of either _\bn_\bu_\bm
+ or _\bs_\bt_\br as appropriate.
+
+
+ _\bR_\be_\bt_\bu_\br_\bn _\bv_\ba_\bl_\bu_\be_\bs
+
+ Component escapes write the value of their message header in _\bs_\bt_\br.
+ Function escapes write their return value in _\bn_\bu_\bm for functions
+ returning _\bi_\bn_\bt_\be_\bg_\be_\br or _\bb_\bo_\bo_\bl_\be_\ba_\bn values, and in _\bs_\bt_\br for functions
+ returning string values. (The _\bb_\bo_\bo_\bl_\be_\ba_\bn type is a subset of integers
+ with usual values 0=false and 1=true.) Control escapes return a
+ _\bb_\bo_\bo_\bl_\be_\ba_\bn value, and set _\bn_\bu_\bm.
+
+ All component escapes, and those function escapes which return an
+ _\bi_\bn_\bt_\be_\bg_\be_\br or _\bs_\bt_\br_\bi_\bn_\bg value, pass this value back to their caller in
+ addition to setting _\bs_\bt_\br or _\bn_\bu_\bm. These escapes will print out this
+ value unless called as part of an argument to another escape
+ sequence. Escapes which return a _\bb_\bo_\bo_\bl_\be_\ba_\bn value do pass this value
+ back to their caller in _\bn_\bu_\bm, but will never print out the value.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -137- MH-FORMAT(5)
+
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bR_\be_\bt_\bu_\br_\bn _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ msg integer message number
+ cur integer message is current
+ size integer size of message
+ strlen integer length of _\bs_\bt_\br
+ width integer output buffer size in bytes
+ charleft integer bytes left in output buffer
+ timenow integer seconds since the UNIX epoch
+ me string the user's mailbox
+ eq literal boolean _\bn_\bu_\bm == _\ba_\br_\bg
+ ne literal boolean _\bn_\bu_\bm != _\ba_\br_\bg
+ gt literal boolean _\bn_\bu_\bm > _\ba_\br_\bg
+ match literal boolean _\bs_\bt_\br contains _\ba_\br_\bg
+ amatch literal boolean _\bs_\bt_\br starts with _\ba_\br_\bg
+ plus literal integer _\ba_\br_\bg plus _\bn_\bu_\bm
+ minus literal integer _\ba_\br_\bg minus _\bn_\bu_\bm
+ divide literal integer _\bn_\bu_\bm divided by _\ba_\br_\bg
+ modulo literal integer _\bn_\bu_\bm modulo _\ba_\br_\bg
+ num literal integer Set _\bn_\bu_\bm to _\ba_\br_\bg
+ lit literal string Set _\bs_\bt_\br to _\ba_\br_\bg
+ getenv literal string Set _\bs_\bt_\br to environment value of _\ba_\br_\bg
+ nonzero expr boolean _\bn_\bu_\bm is non-zero
+ zero expr boolean _\bn_\bu_\bm is zero
+ null expr boolean _\bs_\bt_\br is empty
+ nonnull expr boolean _\bs_\bt_\br is non-empty
+ void expr Set _\bs_\bt_\br or _\bn_\bu_\bm
+ comp comp string Set _\bs_\bt_\br to component text
+ compval comp integer _\bn_\bu_\bm set to "atoi(_\bc_\bo_\bm_\bp)"
+ trim expr trim trailing white-space from _\bs_\bt_\br
+ putstr expr print _\bs_\bt_\br
+ putstrf expr print _\bs_\bt_\br in a fixed width
+ putnum expr print _\bn_\bu_\bm
+ putnumf expr print _\bn_\bu_\bm in a fixed width
+
+ These functions require a date component as an argument:
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bR_\be_\bt_\bu_\br_\bn _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ sec date integer seconds of the minute
+ min date integer minutes of the hour
+ hour date integer hours of the day (0-23)
+ wday date integer day of the week (Sun=0)
+ day date string day of the week (abbrev.)
+ weekday date string day of the week
+ sday date integer day of the week known?
+ (0=implicit,-1=unknown)
+ mday date integer day of the month
+ yday date integer day of the year
+ mon date integer month of the year
+ month date string month of the year (abbrev.)
+ lmonth date string month of the year
+ year date integer year (may be > 100)
+ zone date integer timezone in hours
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -138- MH-FORMAT(5)
+
+
+ tzone date string timezone string
+ szone date integer timezone explicit?
+ (0=implicit,-1=unknown)
+ date2local date coerce date to local timezone
+ date2gmt date coerce date to GMT
+ dst date integer daylight savings in effect?
+ clock date integer seconds since the UNIX epoch
+ rclock date integer seconds prior to current time
+ tws date string official 822 rendering
+ pretty date string user-friendly rendering
+ nodate date integer _\bs_\bt_\br not a date string
+
+ These functions require an address component as an argument. The
+ return value of functions noted with `*' pertain only to the first
+ address present in the header component.
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bR_\be_\bt_\bu_\br_\bn _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ proper addr string official 822 rendering
+ friendly addr string user-friendly rendering
+ addr addr string mbox@host or host!mbox rendering*
+ pers addr string the personal name*
+ note addr string commentary text*
+ mbox addr string the local mailbox*
+ mymbox addr integer the user's addresses? (0=no,1=yes)
+ host addr string the host domain*
+ nohost addr integer no host was present*
+ type addr integer host type* (0=local,1=network,
+ -1=uucp,2=unknown)
+ path addr string any leading host route*
+ ingrp addr integer address was inside a group*
+ gname addr string name of group*
+ formataddr expr append _\ba_\br_\bg to _\bs_\bt_\br as a
+ (comma separated) address list
+ putaddr literal print _\bs_\bt_\br address list with
+ _\ba_\br_\bg as optional label;
+ get line width from _\bn_\bu_\bm
+
+ When escapes are nested, evaluation is done from inner-most to
+ outer-most. The outer-most escape must begin with `%'; the inner
+ escapes must not. For example,
+
+ %<(mymbox{from}) To: %{to}%>
+
+ writes the value of the header component "From:" to _\bs_\bt_\br; then (_\bm_\by_\bm_\b-
+ _\bb_\bo_\bx) reads _\bs_\bt_\br and writes its result to _\bn_\bu_\bm; then the control
+ escape evaluates _\bn_\bu_\bm. If _\bn_\bu_\bm is non-zero, the string "To: " is
+ printed followed by the value of the header component "To:".
+
+ A minor explanation of (_\bm_\by_\bm_\bb_\bo_\bx{_\bc_\bo_\bm_\bp}) is in order. In general, it
+ checks each of the addresses in the header component "_\bc_\bo_\bm_\bp" against
+ the user's mailbox name and any _\bA_\bl_\bt_\be_\br_\bn_\ba_\bt_\be-_\bM_\ba_\bi_\bl_\bb_\bo_\bx_\be_\bs. It returns
+ true if any address matches, however, it also returns true if the
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -139- MH-FORMAT(5)
+
+
+ "_\bc_\bo_\bm_\bp" header is not present in the message. If needed, the (_\bn_\bu_\bl_\bl)
+ function can be used to explicitly test for this condition.
+
+ When a function or component escape is interpreted and the result
+ will be immediately printed, an optional field width can be speci-
+ fied to print the field in exactly a given number of characters.
+ For example, a numeric escape like %4(_\bs_\bi_\bz_\be) will print at most 4
+ digits of the message size; overflow will be indicated by a `?' in
+ the first position (like `?234'). A string escape like %4(_\bm_\be) will
+ print the first 4 characters and truncate at the end. Short fields
+ are padded at the right with the fill character (normally, a
+ blank). If the field width argument begins with a leading zero,
+ then the fill character is set to a zero.
+
+ As above, the functions (_\bp_\bu_\bt_\bn_\bu_\bm_\bf) and (_\bp_\bu_\bt_\bs_\bt_\br_\bf) print their result
+ in exactly the number of characters specified by their leading
+ field width argument. For example, %06(_\bp_\bu_\bt_\bn_\bu_\bm_\bf(_\bs_\bi_\bz_\be)) will print
+ the message size in a field six characters wide filled with leading
+ zeros; %14(_\bp_\bu_\bt_\bs_\bt_\br_\bf{_\bf_\br_\bo_\bm}) will print the "From:" header component
+ in fourteen characters with trailing spaces added as needed. For
+ _\bp_\bu_\bt_\bs_\bt_\br_\bf, using a negative value for the field width causes right-
+ justification of the string within the field, with padding on the
+ left up to the field width. The functions (_\bp_\bu_\bt_\bn_\bu_\bm) and (_\bp_\bu_\bt_\bs_\bt_\br)
+ print their result in the minimum number of characters required,
+ and ignore any leading field width argument.
+
+ The available output width is kept in an internal register; any
+ output past this width will be truncated.
+
+ Comments may be inserted in most places where a function argument
+ is not expected. A comment begins with `%;' and ends with a (non-
+ escaped) newline.
+
+ With all this in mind, here's the default format string for _\bs_\bc_\ba_\bn.
+ It's been divided into several pieces for readability. The first
+ part is:
+
+ %4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>
+
+ which says that the message number should be printed in four
+ digits, if the message is the current message then a `+' else a
+ space should be printed, and if a "Replied:" field is present then
+ a `-' else if an "Encrypted:" field is present then an `E' other-
+ wise a space should be printed. Next:
+
+ %02(mon{date})/%02(mday{date})
+
+ the month and date are printed in two digits (zero filled)
+ separated by a slash. Next,
+
+ %<{date} %|*>
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -140- MH-FORMAT(5)
+
+
+ If a "Date:" field was present, then a space is printed, otherwise
+ a `*'. Next,
+
+ %<(mymbox{from})%<{to}To:%14(friendly{to})%>%>
+
+ if the message is from me, and there is a "To:" header, print `To:'
+ followed by a "user-friendly" rendering of the first address in the
+ "To:" field. Continuing,
+
+ %<(zero)%17(friendly{from})%>
+
+ if either of the above two tests failed, then the "From:" address
+ is printed in a "user-friendly" format. And finally,
+
+ %{subject}%<{body}<<%{body}%>
+
+ the subject and initial body (if any) are printed.
+
+ For a more complicated example, next consider the default _\br_\be_\bp_\bl_\bc_\bo_\bm_\bp_\bs
+ format file.
+
+ %(lit)%(formataddr %<{reply-to}
+
+ This clears _\bs_\bt_\br and formats the "Reply-To:" header if present. If
+ not present, the else-if clause is executed.
+
+ %?{from}%?{sender}%?{return-path}%>)\
+
+ This formats the "From:", "Sender:" and "Return-Path:" headers,
+ stopping as soon as one of them is present. Next:
+
+ %<(nonnull)%(void(width))%(putaddr To: )\n%>\
+
+ If the _\bf_\bo_\br_\bm_\ba_\bt_\ba_\bd_\bd_\br result is non-null, it is printed as an address
+ (with line folding if needed) in a field _\bw_\bi_\bd_\bt_\bh wide with a leading
+ label of "To: ".
+
+ %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
+
+ _\bs_\bt_\br is cleared, and the "To:" and "Cc:" headers, along with the
+ user's address (depending on what was specified with the "-cc"
+ switch to _\br_\be_\bp_\bl) are formatted.
+
+ %<(nonnull)%(void(width))%(putaddr cc: )\n%>\
+
+ If the result is non-null, it is printed as above with a leading
+ label of "cc: ".
+
+ %<{fcc}Fcc: %{fcc}\n%>\
+
+ If a "-fcc folder" switch was given to _\br_\be_\bp_\bl (see _\br_\be_\bp_\bl (1) for more
+ details about %{_\bf_\bc_\bc}), an "Fcc:" header is output.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -141- MH-FORMAT(5)
+
+
+ %<{subject}Subject: Re: %{subject}\n%>\
+
+ If a subject component was present, a suitable reply subject is
+ output.
+
+ %<{date}In-reply-to: Your message of "\
+ %<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id}
+ %{message-id}%>\n%>\
+ --------
+
+ If a date component was present, an "In-Reply-To:" header is output
+ with the preface "Your message of ". If the date was parseable, it
+ is output in a user-friendly format, otherwise it is output as-is.
+ The message-id is included if present. As with all plain-text, the
+ row of dashes are output as-is.
+
+ This last part is a good example for a little more elaboration.
+ Here's that part again in pseudo-code:
+
+ if (comp_exists(date)) then
+ print ("In-reply-to: Your message of \"")
+ if (not_date_string(date.value) then
+ print (date.value)
+ else
+ print (pretty(date.value))
+ endif
+ print ("\"")
+ if (comp_exists(message-id)) then
+ print ("\n\t")
+ print (message-id.value)
+ endif
+ print ("\n")
+ endif
+
+ Although this seems complicated, in point of fact, this method is
+ flexible enough to extract individual fields and print them in any
+ format the user desires.
+
+ _\bF_\bi_\bl_\be_\bs
+ None
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ scan(1), repl(1), ap(8), dp(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -142- MH-FORMAT(5)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ This software was contributed for MH 6.3. Prior to this, output
+ format specifications were much easier to write, but considerably
+ less flexible.
+
+
+ _\bB_\bu_\bg_\bs
+ On hosts where _\bM_\bH was configured with the BERK option, address
+ parsing is not enabled.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -143- MH-MAIL(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-mail - message format for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ any _\bM_\bH command
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bH processes messages in a particular format. It should be noted
+ that although neither Bell nor Berkeley mailers produce message
+ files in the format that _\bM_\bH prefers, _\bM_\bH can read message files in
+ that antiquated format.
+
+ Each user possesses a mail drop box which initially receives all
+ messages processed by _\bp_\bo_\bs_\bt (8). _\bI_\bn_\bc (1) will read from that drop
+ box and incorporate the new messages found there into the user's
+ own mail folders (typically `+inbox'). The mail drop box consists
+ of one or more messages. To facilitate the separation of messages,
+ each message begins and ends with a line consisting of nothing but
+ four CTRL-A (octal 001) characters.
+
+ Messages are expected to consist of lines of text. Graphics and
+ binary data are not handled. No data compression is accepted. All
+ text is clear ASCII 7-bit data.
+
+ The general "memo" framework of RFC-822 is used. A message con-
+ sists of a block of information in a rigid format, followed by gen-
+ eral text with no specified format. The rigidly formatted first
+ part of a message is called the header, and the free-format portion
+ is called the body. The header must always exist, but the body is
+ optional. These parts are separated by an empty line, i.e., two
+ consecutive newline characters. Within _\bM_\bH, the header and body may
+ be separated by a line consisting of dashes:
+
+ To:
+ cc:
+ Subject:
+ --------
+
+ The header is composed of one or more header items. Each header
+ item can be viewed as a single logical line of ASCII characters.
+ If the text of a header item extends across several real lines, the
+ continuation lines are indicated by leading spaces or tabs.
+
+ Each header item is called a component and is composed of a keyword
+ or name, along with associated text. The keyword begins at the
+ left margin, may NOT contain spaces or tabs, may not exceed 63
+ characters (as specified by RFC-822), and is terminated by a colon
+ (`:'). Certain components (as identified by their keywords) must
+ follow rigidly defined formats in their text portions.
+
+ The text for most formatted components (e.g., "Date:" and
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -144- MH-MAIL(5)
+
+
+ "Message-Id:") is produced automatically. The only ones entered by
+ the user are address fields such as "To:", "cc:", etc. Internet
+ addresses are assigned mailbox names and host computer specifica-
+ tions. The rough format is "local@domain", such as "MH@UCI", or
+ "MH@UCI-ICSA.ARPA". Multiple addresses are separated by commas. A
+ missing host/domain is assumed to be the local host/domain.
+
+ As mentioned above, a blank line (or a line of dashes) signals that
+ all following text up to the end of the file is the body. No for-
+ matting is expected or enforced within the body.
+
+ Following is a list of header components that are considered mean-
+ ingful to various MH programs.
+ Date:
+ Added by _\bp_\bo_\bs_\bt (8), contains date and time of the message's
+ entry into the transport system.
+
+ From:
+ Added by _\bp_\bo_\bs_\bt (8), contains the address of the author or
+ authors (may be more than one if a "Sender:" field is
+ present). Replies are typically directed to addresses in the
+ "Reply-To:" or "From:" field (the former has precedence if
+ present).
+
+ Sender:
+ Added by _\bp_\bo_\bs_\bt (8) in the event that the message already has a
+ "From:" line. This line contains the address of the actual
+ sender. Replies are never sent to addresses in the "Sender:"
+ field.
+
+ To:
+ Contains addresses of primary recipients.
+
+ cc:
+ Contains addresses of secondary recipients.
+
+ Bcc:
+ Still more recipients. However, the "Bcc:" line is not copied
+ onto the message as delivered, so these recipients are not
+ listed. _\bM_\bH uses an encapsulation method for blind copies, see
+ _\bs_\be_\bn_\bd (1).
+
+ Fcc:
+ Causes _\bp_\bo_\bs_\bt (8) to copy the message into the specified folder
+ for the sender, if the message was successfully given to the
+ transport system.
+
+ Message-ID:
+ A unique message identifier added by _\bp_\bo_\bs_\bt (8) if the `-msgid'
+ flag is set.
+
+ Subject:
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -145- MH-MAIL(5)
+
+
+ Sender's commentary. It is displayed by _\bs_\bc_\ba_\bn (1).
+
+ In-Reply-To:
+ A commentary line added by _\br_\be_\bp_\bl (1) when replying to a mes-
+ sage.
+
+ Resent-Date:
+ Added when redistributing a message by _\bp_\bo_\bs_\bt (8).
+
+ Resent-From:
+ Added when redistributing a message by _\bp_\bo_\bs_\bt (8).
+
+ Resent-To:
+ New recipients for a message resent by _\bd_\bi_\bs_\bt (1).
+
+ Resent-cc:
+ Still more recipients. See "cc:" and "Resent-To:".
+
+ Resent-Bcc:
+ Even more recipients. See "Bcc:" and "Resent-To:".
+
+ Resent-Fcc:
+ Copy resent message into a folder. See "Fcc:" and
+ "Resent-To:".
+
+ Resent-Message-Id:
+ A unique identifier glued on by _\bp_\bo_\bs_\bt (8) if the `-msgid' flag
+ is set. See "Message-Id:" and "Resent-To:".
+
+ Resent:
+ Annotation for _\bd_\bi_\bs_\bt (1) under the `-annotate' option.
+
+ Forwarded:
+ Annotation for _\bf_\bo_\br_\bw (1) under the `-annotate' option.
+
+ Replied:
+ Annotation for _\br_\be_\bp_\bl (1) under the `-annotate' option.
+
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/mail/$USER Location of mail drop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822)
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -146- MH-MAIL(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -147- MH-PROFILE(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-profile - user profile customization for MH message handler
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Each user of _\bM_\bH is expected to have a file named ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be in his
+ or her home directory. This file contains a set of user parameters
+ used by some or all of the _\bM_\bH family of programs. Each line of the
+ file is of the format
+
+ _\bp_\br_\bo_\bf_\bi_\bl_\be-_\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt: _\bv_\ba_\bl_\bu_\be
+
+ The possible profile components are exemplified below. Only
+ `Path:' is mandatory. The others are optional; some have default
+ values if they are not present. In the notation used below, (pro-
+ file, default) indicates whether the information is kept in the
+ user's _\bM_\bH profile or _\bM_\bH context, and indicates what the default
+ value is.
+
+ Path: Mail
+ Locates _\bM_\bH transactions in directory "Mail". (profile,
+ no default)
+
+ context: context
+ Declares the location of the _\bM_\bH context file, see the
+ HISTORY section below. (profile, default:
+ <mh-dir>/context)
+
+ Current-Folder: inbox
+ Keeps track of the current open folder. (context,
+ default: folder specified by "Inbox")
+
+ Inbox: inbox
+ Defines the name of your inbox. (profile, default:
+ inbox)
+
+ Previous-Sequence: pseq
+ Names the sequences which should be defined as the `msgs'
+ or `msg' argument given to the program. If not present,
+ or empty, no sequences are defined. Otherwise, for each
+ name given, the sequence is first zero'd and then each
+ message is added to the sequence. (profile, no default)
+
+ Sequence-Negation: not
+ Defines the string which, when prefixed to a sequence
+ name, negates that sequence. Hence, "notseen" means all
+ those messages that are not a member of the sequence
+ "seen". (profile, no default)
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -148- MH-PROFILE(5)
+
+
+ Unseen-Sequence: unseen
+ Names the sequences which should be defined as those mes-
+ sages recently incorporated by _\bi_\bn_\bc. _\bS_\bh_\bo_\bw knows to remove
+ messages from this sequence once it thinks they have been
+ seen. If not present, or empty, no sequences are
+ defined. Otherwise, each message is added to each
+ sequence name given. (profile, no default)
+
+ mh-sequences: .mh_sequences
+ The name of the file in each folder which defines public
+ sequences. To disable the use of public sequences, leave
+ the value portion of this entry blank. (profile,
+ default: .mh_sequences)
+
+ atr-_\bs_\be_\bq-_\bf_\bo_\bl_\bd_\be_\br: 172 178-181 212
+ Keeps track of the private sequence called _\bs_\be_\bq in the
+ specified folder. (context, no default)
+
+ Editor: /usr/ucb/ex
+ Defines editor to be used by _\bc_\bo_\bm_\bp (1), _\bd_\bi_\bs_\bt (1),
+ _\bf_\bo_\br_\bw (1), and _\br_\be_\bp_\bl (1). (profile, default: prompter)
+
+ Msg-Protect: 644
+ Defines octal protection bits for message files. See
+ _\bc_\bh_\bm_\bo_\bd (1) for an explanation of the octal number. (pro-
+ file, default: 0644)
+
+ Folder-Protect: 711
+ Defines protection bits for folder directories. (pro-
+ file, default: 0711)
+
+ _\bp_\br_\bo_\bg_\br_\ba_\bm: default switches
+ Sets default switches to be used whenever the mh program
+ _\bp_\br_\bo_\bg_\br_\ba_\bm is invoked. For example, one could override the
+ _\bE_\bd_\bi_\bt_\bo_\br: profile component when replying to messages by
+ adding a component such as:
+ repl: -editor /bin/ed
+ (profile, no defaults)
+
+ _\bl_\ba_\bs_\bt_\be_\bd_\bi_\bt_\bo_\br-next: nexteditor
+ Names "nexteditor" to be the default editor after using
+ "lasteditor". This takes effect at "What now?" level in
+ _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl. After editing the draft with
+ "lasteditor", the default editor is set to be "nextedi-
+ tor". If the user types "edit" without any arguments to
+ "What now?", then "nexteditor" is used. (profile, no
+ default)
+
+ bboards: system
+ Tells _\bb_\bb_\bc which BBoards you are interested in. (profile,
+ default: system)
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -149- MH-PROFILE(5)
+
+
+ Folder-Stack: _\bf_\bo_\bl_\bd_\be_\br_\bs
+ The contents of the folder-stack for the _\bf_\bo_\bl_\bd_\be_\br command.
+ (context, no default)
+
+ mhe:
+ If present, tells _\bi_\bn_\bc to compose an _\bM_\bH_\bE auditfile in
+ addition to its other tasks. _\bM_\bH_\bE is Brian Reid's _\bE_\bm_\ba_\bc_\bs
+ front-end for _\bM_\bH. An early version is supplied with the
+ _\bm_\bh._\b6 distribution. (profile, no default)
+
+ Alternate-Mailboxes: mh@uci-750a, bug-mh*
+ Tells _\br_\be_\bp_\bl and _\bs_\bc_\ba_\bn which addresses are really yours. In
+ this way, _\br_\be_\bp_\bl knows which addresses should be included
+ in the reply, and _\bs_\bc_\ba_\bn knows if the message really ori-
+ ginated from you. Addresses must be separated by a
+ comma, and the hostnames listed should be the "official"
+ hostnames for the mailboxes you indicate, as local nick-
+ names for hosts are not replaced with their official site
+ names. For each address, if a host is not given, then
+ that address on any host is considered to be you. In
+ addition, an asterisk (`*') may appear at either or both
+ ends of the mailbox and host to indicate wild-card match-
+ ing. (profile, default: your user-id)
+
+ Aliasfile: aliases other-alias
+ Indicates aliases files for _\ba_\bl_\bi, _\bw_\bh_\bo_\bm, and _\bs_\be_\bn_\bd. This
+ may be used instead of the `-alias file' switch. (pro-
+ file, no default)
+
+ Draft-Folder: drafts
+ Indicates a default draft folder for _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw,
+ and _\br_\be_\bp_\bl. (profile, no default)
+
+ digest-issue-_\bl_\bi_\bs_\bt: 1
+ Tells _\bf_\bo_\br_\bw the last issue of the last volume sent for the
+ digest _\bl_\bi_\bs_\bt. (context, no default)
+
+ digest-volume-_\bl_\bi_\bs_\bt: 1
+ Tells _\bf_\bo_\br_\bw the last volume sent for the digest _\bl_\bi_\bs_\bt.
+ (context, no default)
+
+ MailDrop: .mail
+ Tells _\bi_\bn_\bc your maildrop, if different from the default.
+ This is superceded by the MAILDROP envariable. (profile,
+ default: /usr/spool/mail/$USER)
+
+ Signature: RAND MH System (agent: Marshall Rose)
+ Tells _\bs_\be_\bn_\bd your mail signature. This is superceded by
+ the SIGNATURE envariable. On hosts where _\bM_\bH was config-
+ ured with the UCI option, if SIGNATURE is not set and
+ this profile entry is not present, the file
+ $HOME/.signature is consulted. Your signature will be
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -150- MH-PROFILE(5)
+
+
+ added to the address _\bs_\be_\bn_\bd puts in the "From:" header; do
+ not include an address in the signature text. (profile,
+ no default)
+
+ The following profile elements are used whenever an _\bM_\bH program
+ invokes some other program such as _\bm_\bo_\br_\be (1). The ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be can
+ be used to select alternate programs if the user wishes. The
+ default values are given in the examples.
+
+ fileproc: /usr/bs/mh-6.8/bin/refile
+ incproc: /usr/bs/mh-6.8/bin/inc
+ installproc: /usr/bs/mh-6.8/lib/install-mh
+ lproc: /usr/ucb/more
+ mailproc: /usr/bs/mh-6.8/bin/mhmail
+ mhlproc: /usr/bs/mh-6.8/lib/mhl
+ moreproc: /usr/ucb/more
+ mshproc: /usr/bs/mh-6.8/bin/msh
+ packproc: /usr/bs/mh-6.8/bin/packf
+ postproc: /usr/bs/mh-6.8/lib/post
+ rmmproc: none
+ rmfproc: /usr/bs/mh-6.8/bin/rmf
+ sendproc: /usr/bs/mh-6.8/bin/send
+ showproc: /usr/ucb/more
+ whatnowproc: /usr/bs/mh-6.8/bin/whatnow
+ whomproc: /usr/bs/mh-6.8/bin/whom
+
+ If you define the envariable MH, you can specify a profile other
+ than ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be to be read by the _\bM_\bH programs that you invoke. If
+ the value of MH is not absolute, (i.e., does not begin with a / ),
+ it will be presumed to start from the current working directory.
+ This is one of the very few exceptions in _\bM_\bH where non-absolute
+ pathnames are not considered relative to the user's _\bM_\bH directory.
+
+ Similarly, if you define the envariable MHCONTEXT, you can specify
+ a context other than the normal context file (as specified in the
+ _\bM_\bH profile). As always, unless the value of MHCONTEXT is absolute,
+ it will be presumed to start from your _\bM_\bH directory.
+
+ _\bM_\bH programs also support other envariables:
+
+ MAILDROP : tells _\bi_\bn_\bc the default maildrop
+ This supercedes the "MailDrop:" profile entry.
+
+ SIGNATURE : tells _\bs_\be_\bn_\bd and _\bp_\bo_\bs_\bt your mail signature
+ This supercedes the "Signature:" profile entry.
+
+ HOME : tells all _\bM_\bH programs your home directory
+
+ SHELL : tells _\bb_\bb_\bl the default shell to run
+
+ TERM : tells _\bM_\bH your terminal type
+ The TERMCAP envariable is also consulted. In particular,
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -151- MH-PROFILE(5)
+
+
+ these tell _\bs_\bc_\ba_\bn and _\bm_\bh_\bl how to clear your terminal, and how
+ many columns wide your terminal is. They also tell _\bm_\bh_\bl how
+ many lines long your terminal screen is.
+
+ editalt : the alternate message
+ This is set by _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl during edit sessions so you can
+ peruse the message being distributed or replied to. The mes-
+ sage is also available through a link called "@" in the
+ current directory if your current working directory and the
+ folder the message lives in are on the same UNIX filesystem.
+
+ mhdraft : the path to the working draft
+ This is set by _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl to tell the _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw_\bp_\br_\bo_\bc which file to ask "What now?" questions about. In
+ addition, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl set mhfolder if appropriate.
+ Further, _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl set mhaltmsg to tell the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc
+ about an alternate message associated with the draft (the mes-
+ sage being distributed or replied to), and _\bd_\bi_\bs_\bt sets mhdist to
+ tell the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc that message re-distribution is occur-
+ ring. Also, mheditor is set to tell the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc the
+ user's choice of editor (unless overridden by `-noedit').
+ Similarly, mhuse may be set by _\bc_\bo_\bm_\bp. Finally, mhmessages is
+ set by _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl if annotations are to occur (along
+ with mhannotate, and mhinplace). It's amazing all the infor-
+ mation that has to get passed via envariables to make the
+ "What now?" interface look squeaky clean to the _\bM_\bH user, isn't
+ it? The reason for all this is that the _\bM_\bH user can select
+ _\ba_\bn_\by program as the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, including one of the standard
+ shells. As a result, it's not possible to pass information
+ via an argument list.
+ If the WHATNOW option was set during _\bM_\bH configuration (type
+ `-help' to an _\bM_\bH command to find out), and if this envariable
+ is set, if the commands _\br_\be_\bf_\bi_\bl_\be, _\bs_\be_\bn_\bd, _\bs_\bh_\bo_\bw, or _\bw_\bh_\bo_\bm are not
+ given any `msgs' arguments, then they will default to using
+ the file indicated by mhdraft. This is useful for getting the
+ default behavior supplied by the default _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc.
+
+ mhfolder : the folder containing the alternate message
+ This is set by _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl during edit sessions so you can
+ peruse other messages in the current folder besides the one
+ being distributed or replied to. The mhfolder envariable is
+ also set by _\bs_\bh_\bo_\bw, _\bp_\br_\be_\bv, and _\bn_\be_\bx_\bt for use by _\bm_\bh_\bl.
+
+ MHBBRC :
+ If you define the envariable MHBBRC, you can specify a BBoards
+ information file other than ._\bb_\bb_\br_\bc to be read by _\bb_\bb_\bc. If the
+ value of MHBBRC is not absolute, (i.e., does not begin with a
+ / ), it will be presumed to start from the current working
+ directory.
+
+ MHFD :
+ If the OVERHEAD option was set during _\bM_\bH configuration (type
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -152- MH-PROFILE(5)
+
+
+ `-help' to an _\bM_\bH command to find out), then if this envariable
+ is set, _\bM_\bH considers it to be the number of a file descriptor
+ which is opened, read-only to the _\bM_\bH profile. Similarly, if
+ the envariable MHCONTEXTFD is set, this is the number of a
+ file descriptor which is opened read-only to the _\bM_\bH context.
+ This feature of _\bM_\bH is experimental, and is used to examine
+ possible speed improvements for _\bM_\bH startup. Note that these
+ envariables must be set and non-empty to enable this feature.
+ However, if OVERHEAD is enabled during _\bM_\bH configuration, then
+ when _\bM_\bH programs call other _\bM_\bH programs, this scheme is used.
+ These file descriptors are not closed throughout the execution
+ of the _\bM_\bH program, so children may take advantage of this.
+ This approach is thought to be completely safe and does result
+ in some performance enhancements.
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ or $MH Rather than the standard profile
+ <mh-dir>/context The user context
+ or $CONTEXT Rather than the standard context
+ <folder>/.mh_sequences Public sequences for <folder>
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ All
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh(1), environ(5), mh-sequence(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ All
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -153- MH-PROFILE(5)
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous versions of _\bM_\bH, the current-message value of a writable
+ folder was kept in a file called "cur" in the folder itself. In
+ _\bm_\bh._\b3, the ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be contained the current-message values for all
+ folders, regardless of their writability.
+
+ In all versions of _\bM_\bH since _\bm_\bh._\b4, the ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be contains only
+ static information, which _\bM_\bH programs will NOT update. Changes in
+ context are made to the _\bc_\bo_\bn_\bt_\be_\bx_\bt file kept in the users MH _\bd_\bi_\br_\be_\bc_\bt_\bo-
+ _\br_\by. This includes, but is not limited to: the "Current-Folder" en-
+ try and all private sequence information. Public sequence informa-
+ tion is kept in a file called ._\bm_\bh__\bs_\be_\bq_\bu_\be_\bn_\bc_\be_\bs in each folder.
+
+ To convert from the format used in releases of _\bM_\bH prior to the for-
+ mat used in the _\bm_\bh._\b4 release, _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh should be invoked with the
+ `-compat' switch. This generally happens automatically on _\bM_\bH sys-
+ tems generated with the "COMPAT" option during _\bM_\bH configuration.
+
+ The ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be may override the path of the _\bc_\bo_\bn_\bt_\be_\bx_\bt file, by
+ specifying a "context" entry (this must be in lower-case). If the
+ entry is not absolute (does not start with a / ), then it is inter-
+ preted relative to the user's _\bM_\bH directory. As a result, you can
+ actually have more than one set of private sequences by using dif-
+ ferent context files.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -154- MH-PROFILE(5)
+
+
+ _\bB_\bu_\bg_\bs
+ The shell quoting conventions are not available in the .mh_profile.
+ Each token is separated by whitespace.
+
+ There is some question as to what kind of arguments should be
+ placed in the profile as options. In order to provide a clear
+ answer, recall command line semantics of all _\bM_\bH programs: conflict-
+ ing switches (e.g., `-header and `-noheader') may occur more than
+ one time on the command line, with the last switch taking effect.
+ Other arguments, such as message sequences, filenames and folders,
+ are always remembered on the invocation line and are not superseded
+ by following arguments of the same type. Hence, it is safe to
+ place only switches (and their arguments) in the profile.
+
+ If one finds that an _\bM_\bH program is being invoked again and again
+ with the same arguments, and those arguments aren't switches, then
+ there are a few possible solutions to this problem. The first is
+ to create a (soft) link in your $_\bH_\bO_\bM_\bE/_\bb_\bi_\bn directory to the _\bM_\bH pro-
+ gram of your choice. By giving this link a different name, you can
+ create a new entry in your profile and use an alternate set of de-
+ faults for the _\bM_\bH command. Similarly, you could create a small
+ shell script which called the _\bM_\bH program of your choice with an al-
+ ternate set of invocation line switches (using links and an alter-
+ nate profile entry is preferable to this solution).
+
+ Finally, the _\bc_\bs_\bh user could create an alias for the command of the
+ form:
+
+ alias cmd 'cmd arg1 arg2 ...'
+
+ In this way, the user can avoid lengthy type-in to the shell, and
+ still give _\bM_\bH commands safely. (Recall that some _\bM_\bH commands in-
+ voke others, and that in all cases, the profile is read, meaning
+ that aliases are disregarded beyond an initial command invocation)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -155- MH-SEQUENCE(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-sequence - sequence specification for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ most _\bM_\bH commands
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Most _\bM_\bH commands accept a `msg' or `msgs' specification, where
+ `msg' indicates one message and `msgs' indicates one or more mes-
+ sages. To designate a message, you may use either its number
+ (e.g., 1, 10, 234) or one of these "reserved" message names:
+
+ _\bN_\ba_\bm_\be _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ first the first message in the folder
+ last the last message in the folder
+ cur the most recently accessed message
+ prev the message numerically preceding "cur"
+ next the message numerically following "cur"
+
+ In commands that take a `msg' argument, the default is "cur". As a
+ shorthand, "." is equivalent to "cur".
+
+ For example: In a folder containing five messages numbered 5, 10,
+ 94, 177 and 325, "first" is 5 and "last" is 325. If "cur" is 94,
+ then "prev" is 10 and "next" is 177.
+
+ The word `msgs' indicates that one or more messages may be speci-
+ fied. Such a specification consists of one message designation or
+ of several message designations separated by spaces. A message
+ designation consists either of a message name as defined above, or
+ a message range.
+
+ A message range is specified as "name1-name2" or "name:n", where
+ `name', `name1' and `name2' are message names, and `n' is an
+ integer.
+
+ The specification "name1-name2" designates all currently-existing
+ messages from `name1' to `name2' inclusive. The message name "all"
+ is a shorthand for the message range "first-last".
+
+ The specification "name:n" designates up to `n' messages. These
+ messages start with `name' if `name' is a message number or one of
+ the reserved names "first" "cur", or "next", The messages end with
+ `name' if `name' is "prev" or "last". The interpretation of `n'
+ may be overridden by preceding `n' with a plus or minus sign; `+n'
+ always means up to `n' messages starting with `name', and `-n'
+ always means up to `n' messages ending with `name'.
+
+ In commands which accept a `msgs' argument, the default is either
+ "cur" or "all", depending on which makes more sense for each com-
+ mand (see the individual man pages for details). Repeated
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -156- MH-SEQUENCE(5)
+
+
+ specifications of the same message have the same effect as a single
+ specification of the message.
+
+
+ _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bM_\be_\bs_\bs_\ba_\bg_\be _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ In addition to the "reserved" (pre-defined) message names given
+ above, _\bM_\bH supports user-defined sequence names. User-defined
+ sequences allow the _\bM_\bH user a tremendous amount of power in dealing
+ with groups of messages in the same folder by allowing the user to
+ bind a group of messages to a meaningful symbolic name.
+
+ The name used to denote a message sequence must consist of an
+ alphabetic character followed by zero or more alphanumeric charac-
+ ters, and can not be one of the "reserved" message names above.
+ After defining a sequence, it can be used wherever an _\bM_\bH command
+ expects a `msg' or `msgs' argument.
+
+ Some forms of message ranges are allowed with user-defined
+ sequences. The specification "name:n" may be used, and it desig-
+ nates up to the first `n' messages (or last `n' messages for `-n')
+ which are elements of the user-defined sequence `name'.
+
+ The specifications "name:next" and "name:prev" may also be used,
+ and they designate the next or previous message (relative to the
+ current message) which is an element of the user-defined sequence
+ `name'. The specificaitions "name:first" and "name:last" are
+ equivalent to "name:1" and "name:-1", respectively. The specifica-
+ tion "name:cur" is not allowed (use just "cur" instead). The syn-
+ tax of these message range specifcations is subject to change in
+ the future.
+
+ User-defined sequence names are specific to each folder. They are
+ defined using the _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk commands.
+
+
+ _\bP_\bu_\bb_\bl_\bi_\bc _\ba_\bn_\bd _\bP_\br_\bi_\bv_\ba_\bt_\be _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ There are two varieties of sequences: _\bp_\bu_\bb_\bl_\bi_\bc sequences and _\bp_\br_\bi_\bv_\ba_\bt_\be
+ sequences. _\bP_\bu_\bb_\bl_\bi_\bc sequences of a folder are accessible to any _\bM_\bH
+ user that can read that folder and are kept in the .mh_sequences
+ file in the folder. _\bP_\br_\bi_\bv_\ba_\bt_\be sequences are accessible only to the
+ _\bM_\bH user that defined those sequences and are kept in the user's _\bM_\bH
+ context file. By default, _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk create _\bp_\bu_\bb_\bl_\bi_\bc sequences if
+ the folder for which the sequences are being defined is writable by
+ the _\bM_\bH user. Otherwise, _\bp_\br_\bi_\bv_\ba_\bt_\be sequences are created. This can
+ be overridden with the `-public' and `-private' switches to _\bm_\ba_\br_\bk.
+
+
+ _\bS_\be_\bq_\bu_\be_\bn_\bc_\be _\bN_\be_\bg_\ba_\bt_\bi_\bo_\bn
+
+ _\bM_\bH provides the ability to select all messages not elements of a
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -157- MH-SEQUENCE(5)
+
+
+ user-defined sequence. To do this, the user should define the
+ entry "Sequence-Negation" in the _\bM_\bH profile file; its value may be
+ any string. This string is then used to preface an existing user-
+ defined sequence name. This specification then refers to those
+ messages not elements of the specified sequence name. For example,
+ if the profile entry is:
+
+ Sequence-Negation: not
+
+ then anytime an _\bM_\bH command is given "notfoo" as a `msg' or `msgs'
+ argument, it would substitute all messages that are not elements of
+ the sequence "foo".
+
+ Obviously, the user should beware of defining sequences with names
+ that begin with the value of the "Sequence-Negation" profile entry.
+
+
+ _\bT_\bh_\be _\bP_\br_\be_\bv_\bi_\bo_\bu_\bs _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ _\bM_\bH provides the ability to remember the `msgs' or `msg' argument
+ last given to an _\bM_\bH command. The entry "Previous-Sequence" should
+ be defined in the _\bM_\bH profile; its value should be a sequence name
+ or multiple sequence names separated by spaces. If this entry is
+ defined, when when an _\bM_\bH command finishes, it will define the
+ sequence(s) named in the value of this entry to be those messages
+ that were specified to the command. Hence, a profile entry of
+
+ Previous-Sequence: pseq
+
+ directs any _\bM_\bH command that accepts a `msg' or `msgs' argument to
+ define the sequence "pseq" as those messages when it finishes.
+
+ Note: there can be a performance penalty in using the
+ "Previous-Sequence" facility. If it is used, all _\bM_\bH programs have
+ to write the sequence information to the .mh_sequences file for the
+ folder each time they run. If the "Previous-Sequence" profile
+ entry is not included, only _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk will write to the
+ .mh_sequences file.
+
+
+ _\bT_\bh_\be _\bU_\bn_\bs_\be_\be_\bn _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ Finally, some users like to indicate messages which have not been
+ previously seen by them. Both _\bi_\bn_\bc and _\bs_\bh_\bo_\bw honor the profile entry
+ "Unseen-Sequence" to support this activity. This entry in the
+ .mh_profile should be defined as one or more sequence names
+ separated by spaces. If there is a value for "Unseen-Sequence" in
+ the profile, then whenever _\bi_\bn_\bc places new messages in a folder, the
+ new messages will also be added to the sequence(s) named in the
+ value of this entry. Hence, a profile entry of
+
+ Unseen-Sequence: unseen
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -158- MH-SEQUENCE(5)
+
+
+ directs _\bi_\bn_\bc to add new messages to the sequence "unseen". Unlike
+ the behavior of the "Previous-Sequence" entry in the profile, how-
+ ever, the sequence(s) will not be zeroed by _\bi_\bn_\bc.
+
+ Similarly, whenever _\bs_\bh_\bo_\bw (or _\bn_\be_\bx_\bt or _\bp_\br_\be_\bv) displays a message, that
+ message will be removed from any sequences named by the
+ "Unseen-Sequence" entry in the profile.
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ <mh-dir>/context The user context
+ <folder>/.mh_sequences Public sequences for <folder>
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Sequence-Negation: To designate messages not in a sequence
+ Previous-Sequence: The last message specification given
+ Unseen-Sequence: Those messages not yet seen by the user
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh(1), mark(1), pick(1), mh-profile(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ All
+
+
+ _\bB_\bu_\bg_\bs
+ User-defined sequences are stored in the .mh_sequences file as a
+ series of message specifications separated by spaces. If a user-
+ defined sequence contains too many individual message specifica-
+ tions, that line in the file may become too long for _\bM_\bH to handle.
+ This will generate the error message ".mh_sequences is poorly for-
+ matted". You'll have to edit the file by hand to remove the of-
+ fending line.
+
+ This can happen to users who define the "Previous-Sequence" entry
+ in the _\bM_\bH profile and have a folder containing many messages with
+ gaps in the numbering. A workaround for large folders is to minim-
+ ize numbering gaps by using "folder -pack" often.
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ AP(8) -159- AP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ ap - parse addresses 822-style
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bs/mh-6.8/lib/ap [-form formatfile] [-format string]
+ [-normalize] [-nonormalize] [-width columns] addrs ...
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bA_\bp is a program that parses addresses according to the ARPA Inter-
+ net standard. It also understands many non-standard formats. It
+ is useful for seeing how _\bM_\bH will interpret an address.
+
+ The _\ba_\bp program treats each argument as one or more addresses, and
+ prints those addresses out in the official 822-format. Hence, it
+ is usually best to enclose each argument in double-quotes for the
+ shell.
+
+ To override the output format used by _\ba_\bp, the `-format string' or
+ `-format file' switches are used. This permits individual fields
+ of the address to be extracted with ease. The string is simply a
+ format stringand thefile is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ In addition to the standard escapes, _\ba_\bp also recognizes the follow-
+ ing additional escape:
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ error string A diagnostic if the parse failed
+
+ If the `-normalize' switch is given, _\ba_\bp will try to track down the
+ official hostname of the address.
+
+ Here is the default format string used by _\ba_\bp:
+
+ %<{error}%{error}: %{text}%|%(putstr(proper{text}))%>
+
+ which says that if an error was detected, print the error, a `:',
+ and the address in error. Otherwise, output the 822-proper format
+ of the address.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/bs/mh-6.8/lib/mtstailor tailor file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ AP(8) -160- AP(8)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ dp(8),
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-format' defaults as described above
+ `-normalize'
+ `-width' defaults to the width of the terminal
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\ba_\bp. Therefore, one must usual-
+ ly place the argument to this switch inside double-quotes.
+
+ On hosts where _\bM_\bH was configured with the BERK option, address
+ parsing is not enabled.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ CONFLICT(8) -161- CONFLICT(8)
+
+
+ _\bN_\bA_\bM_\bE
+ conflict - search for alias/password conflicts
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bs/mh-6.8/lib/conflict [-mail name] [-search directory]
+ [aliasfiles...] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bC_\bo_\bn_\bf_\bl_\bi_\bc_\bt is a program that checks to see if the interface between
+ _\bM_\bH and transport system is in good shape
+
+ _\bC_\bo_\bn_\bf_\bl_\bi_\bc_\bt also checks for maildrops in /usr/spool/mail which do not
+ belong to a valid user. It assumes that no user name will start
+ with `.', and thus ignores files in /usr/spool/mail which begin
+ with `.'. It also checks for entries in the _\bg_\br_\bo_\bu_\bp (5) file which
+ do not belong to a valid user, and for users who do not have a
+ valid group number. In addition duplicate users and groups are
+ noted.
+
+ If the `-mail name' switch is used, then the results will be sent
+ to the specified _\bn_\ba_\bm_\be. Otherwise, the results are sent to the
+ standard output.
+
+ The `-search directory' switch can be used to search directories
+ other than /usr/spool/mail and to report anomalies in those direc-
+ tories. The `-search directory' switch can appear more than one
+ time in an invocation to _\bc_\bo_\bn_\bf_\bl_\bi_\bc_\bt.
+
+ _\bC_\bo_\bn_\bf_\bl_\bi_\bc_\bt should be run under _\bc_\br_\bo_\bn (8), or whenever system account-
+ ing takes place.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/lib/mtstailor tailor file
+ /etc/passwd List of users
+ /etc/group List of groups
+ /usr/bs/mh-6.8/bin/mhmail Program to send mail
+ /usr/spool/mail/ Directory of mail drop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-alias(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `aliasfiles' defaults to /usr/bs/mh-6.8/lib/MailAliases
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ CONFLICT(8) -162- CONFLICT(8)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ DP(8) -163- DP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ dp - parse dates 822-style
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bs/mh-6.8/lib/dp [-form formatfile] [-format string]
+ [-width columns] dates ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bD_\bp is a program that parses dates according to the ARPA Internet
+ standard. It also understands many non-standard formats, such as
+ those produced by TOPS-20 sites and some UNIX sites using
+ _\bc_\bt_\bi_\bm_\be (3). It is useful for seeing how _\bM_\bH will interpret a date.
+
+ The _\bd_\bp program treats each argument as a single date, and prints
+ the date out in the official 822-format. Hence, it is usually best
+ to enclose each argument in double-quotes for the shell.
+
+ To override the output format used by _\bd_\bp, the `-format string' or
+ `-format file' switches are used. This permits individual fields
+ of the address to be extracted with ease. The string is simply a
+ format stringand thefile is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ Here is the default format string used by _\bd_\bp:
+
+ %<(nodate{text})error: %{text}%|%(putstr(pretty{text}))%>
+
+ which says that if an error was detected, print the error, a `:',
+ and the date in error. Otherwise, output the 822-proper format of
+ the date.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ ap(8)
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-format' default as described above
+ `-width' default to the width of the terminal
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ DP(8) -164- DP(8)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bd_\bp. Therefore, one must usual-
+ ly place the argument to this switch inside double-quotes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FMTDUMP(8) -165- FMTDUMP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ fmtdump - decode MH format files
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bs/mh-6.8/lib/fmtdump [-form formatfile] [-format string]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bF_\bm_\bt_\bd_\bu_\bm_\bp is a program that parses an _\bM_\bH format file and produces a
+ pseudo-language listing of the how _\bM_\bH interprets the file.
+
+ The `-format string' and `-form formatfile' switches may be used to
+ specify a format string or format file to read. The string is sim-
+ ply a format string and the file is simply a format file. See _\bm_\bh-
+ _\bf_\bo_\br_\bm_\ba_\bt(5) for the details.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/bs/mh-6.8/lib/scan.default The default format file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-format(5), mh-sequences(8)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The output may not be useful unless you are familiar with the
+ internals of the mh-format subroutines.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ INSTALL-MH(8) -166- INSTALL-MH(8)
+
+
+ _\bN_\bA_\bM_\bE
+ install-mh - initialize the MH environment
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bs/mh-6.8/lib/install-mh [-auto] [-compat]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ When a user runs any _\bM_\bH program for the first time, the program
+ will invoke _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh (with the `-auto' switch) to query the user
+ for the initial _\bM_\bH environment. The user does NOT invoke this pro-
+ gram directly. The user is asked for the name of the directory
+ that will be designated as the user's _\bM_\bH directory. If this direc-
+ tory does not exist, the user is asked if it should be created.
+ Normally, this directory should be under the user's home directory,
+ and has the default name of Mail/. After _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh has written
+ the initial .mh_profile for the user, control returns to the origi-
+ nal _\bM_\bH program.
+
+ As with all _\bM_\bH commands, _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh first consults the $HOME
+ envariable to determine the user's home directory. If $HOME is not
+ set, then the /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd file is consulted.
+
+ When converting from _\bm_\bh._\b3 to _\bm_\bh._\b4, _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh is automatically
+ invoked with the `-compat' switch.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To set the user's MH directory
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ With `-auto', the current folder is changed to "inbox".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POST(8) -167- POST(8)
+
+
+ _\bN_\bA_\bM_\bE
+ post - deliver a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/bs/mh-6.8/lib/post [-alias aliasfile] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-mime] [-nomime] [-msgid]
+ [-nomsgid] [-verbose] [-noverbose] [-watch] [-nowatch]
+ [-width columns] file [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\bo_\bs_\bt is the program called by _\bs_\be_\bn_\bd (1) to deliver the message in
+ _\bf_\bi_\bl_\be to local and remote users. In fact, all of the functions
+ attributed to _\bs_\be_\bn_\bd on its manual page are performed by _\bp_\bo_\bs_\bt, with
+ _\bs_\be_\bn_\bd acting as a relatively simple preprocessor. Thus, it is _\bp_\bo_\bs_\bt
+ which parses the various header fields, appends From: and Date:
+ lines, and interacts with the _\bM_\bM_\bD_\bF transport system. _\bP_\bo_\bs_\bt will not
+ normally be called directly by the user.
+
+ _\bP_\bo_\bs_\bt searches the "To:", "cc:", "Bcc:", "Fcc:", and "Resent-xxx:"
+ header lines of the specified message for destination addresses,
+ checks these addresses for validity, and formats them so as to con-
+ form to ARPAnet Internet Message Format protocol, unless the
+ `-noformat' flag is set. This will normally cause "@_\bl_\bo_\bc_\ba_\bl-_\bs_\bi_\bt_\be" to
+ be appended to each local destination address, as well as any local
+ return addresses. The `-width columns' switch can be used to indi-
+ cate the preferred length of the header components that contain
+ addresses.
+
+ If a "Bcc:" field is encountered, its addresses will be used for
+ delivery, and the "Bcc:" field will be removed from the message
+ sent to sighted recipients. The blind recipients will receive an
+ entirely new message with a minimal set of headers. Included in
+ the body of the message will be a copy of the message sent to the
+ sighted recipients. If `-filter filterfile' is specified, then
+ this copy is filtered (re-formatted) prior to being sent to the
+ blind recipients. Otherwise, to use the MIME rules for encapsula-
+ tion, specify the `-mime' switch.
+
+ The `-alias aliasfile' switch can be used to specify a file that
+ post should take aliases from. More than one file can be speci-
+ fied, each being preceded with `-alias'. In any event, the primary
+ alias file is read first.
+
+ The `-msgid' switch indicates that a "Message-ID:" or
+ "Resent-Message-ID:" field should be added to the header.
+
+ The `-verbose' switch indicates that the user should be informed of
+ each step of the posting/filing process.
+
+ The `-watch' switch indicates that the user would like to watch the
+ transport system's handling of the message (e.g., local and "fast"
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POST(8) -168- POST(8)
+
+
+ delivery).
+
+ _\bP_\bo_\bs_\bt consults the envariable $SIGNATURE to determine the sender's
+ personal name in constructing the "From:" line of the message.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/bs/mh-6.8/lib/mtstailor tailor file
+ /usr/bs/mh-6.8/bin/refile Program to process Fcc:s
+ /usr/bs/mh-6.8/lib/mhl Program to process Bcc:s
+ /usr/bs/mh-6.8/lib/MailAliases Primary alias file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ _\bp_\bo_\bs_\bt does NOT consult the user's .mh_profile
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822),
+ mhmail(1), send(1), mh-mail(5), mh-alias(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-alias /usr/bs/mh-6.8/lib/MailAliases'
+ `-format'
+ `-nomime'
+ `-nomsgid'
+ `-noverbose'
+ `-nowatch'
+ `-width 72'
+ `-nofilter'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ "Reply-To:" fields are allowed to have groups in them according to
+ the 822 specification, but _\bp_\bo_\bs_\bt won't let you use them.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b5. _\bR_\bE_\bP_\bO_\bR_\bT_\bI_\bN_\bG _\bP_\bR_\bO_\bB_\bL_\bE_\bM_\bS
+
+
+
+
+
+ If problems are encountered with an _\bM_\bH program, the problems should
+ be reported to the local maintainers of _\bM_\bH. When doing this, the name
+ of the program should be reported, along with the version information
+ for the program. To find out what version of an _\bM_\bH program is being
+ run, invoke the program with the `-help' switch. In addition to listing
+ the syntax of the command, the program will list information pertaining
+ to its version. This information includes the version of _\bM_\bH, the host
+ it was generated on, and the date the program was loaded. A second line
+ of information, found on versions of _\bM_\bH after #5.380 include _\bM_\bH confi-
+ guration options. For example,
+
+ version: MH 6.1 #1[UCI] (nrtc-gremlin) of Wed Nov 6 01:13:53 PST
+ 1985
+ options: [BSD42] [MHE] [NETWORK] [SENDMTS] [MMDFII] [SMTP] [POP]
+
+ The `6.1 #1[UCI]' indicates that the program is from the UCI _\bm_\bh._\b6 ver-
+ sion of _\bM_\bH. The program was generated on the host `nrtc-gremlin' on
+ `Wed Nov 6 01:13:53 PST 1985'. It's usually a good idea to send the
+ output of the `-help' switch along with your report.
+
+ If there is no local _\bM_\bH maintainer, try the address Bug-MH. If that
+ fails, use the Internet mailbox Bug-MH@ICS.UCI.EDU.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -169-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b6. _\bA_\bD_\bV_\bA_\bN_\bC_\bE_\bD _\bF_\bE_\bA_\bT_\bU_\bR_\bE_\bS
+
+
+
+
+
+ This section describes some features of _\bM_\bH that were included
+ strictly for advanced _\bM_\bH users. These capabilities permit _\bM_\bH to exhibit
+ more powerful behavior for the seasoned _\bM_\bH users.
+
+
+ _\bU_\bS_\bE_\bR-_\bD_\bE_\bF_\bI_\bN_\bE_\bD _\bS_\bE_\bQ_\bU_\bE_\bN_\bC_\bE_\bS
+
+ User-defined sequences allow the _\bM_\bH user a tremendous amount of
+ power in dealing with groups of messages in the same folder by allowing
+ the user to bind a group of messages to a meaningful symbolic name. The
+ user may choose any name for a message sequence, as long as it consists
+ of alphanumeric characters and does not conflict with the standard _\bM_\bH
+ reserved message names (e.g., "first", etc). After defining a sequence,
+ it can be used wherever an _\bM_\bH command expects a `msg' or `msgs' argu-
+ ment.
+
+ A restricted form of message ranges are allowed with user-defined
+ sequences. The form "name:n", specifies up to the first `n' messages
+ which are part of the user-defined sequence `name'. A leading plus sign
+ is allowed on `n', but is ignored. The interpretation of n is overrid-
+ den if n is preceded by a minus sign; `-n' always means up to the last
+ `n' messages which are part of the sequence `name'.
+
+ Although all _\bM_\bH commands expand user-defined sequences as appropri-
+ ate, there are two commands that allow the user to define and manipulate
+ them: _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk.
+
+ _\bP_\bi_\bc_\bk _\ba_\bn_\bd _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ Most users of _\bM_\bH will use user-defined sequences only with the _\bp_\bi_\bc_\bk
+ command. By giving the `-sequence name' switch to _\bp_\bi_\bc_\bk (which can occur
+ more than once on the command line), each sequence named is defined as
+ those messages which _\bp_\bi_\bc_\bk matched according the the selection criteria
+ it was given. Hence,
+
+ pick -from frated -seq fred
+
+ finds all those messages in the current folder which were from "frated",
+ creates a sequence called "fred", and then adds them to the sequence.
+ The user could then invoke
+
+ scan fred
+
+ to get a _\bs_\bc_\ba_\bn listing of those messages. Note that by default, _\bp_\bi_\bc_\bk
+ creates the named sequences before it adds the selected messages to the
+ sequence. Hence, if the named sequence already existed, the sequence is
+
+ -170-
+
+
+
+
+
+
+
+
+
+ -171-
+
+
+ destroyed prior to being re-defined (nothing happens to the messages
+ that were a part of this sequence, they simply cease to be members of
+ that sequence). By using the `-nozero' switch, this behavior can be
+ inhibited, as in
+
+ pick -from frated -seq sgroup
+ pick -from fear -seq sgroup -nozero
+ pick -from freida -seq sgroup -nozero
+
+ finds all those messages in the current folder which were from "frated",
+ "fear", or "freida", and defines the sequence called "sgroup" as exactly
+ those messages. These operations amounted to an "inclusive-or" of three
+ selection criteria, using _\bp_\bi_\bc_\bk, one can also generate the "and" of some
+ selection criteria as well:
+
+ pick -from frated -seq fred
+ pick -before friday -seq fred fred
+
+ This example defines the sequence called "fred" as exactly those mes-
+ sages from "frated" that were dated prior to "friday".[1]
+
+ _\bP_\bi_\bc_\bk is normally used as a back-quoted command, for example,
+
+ scan `pick -from postmaster`
+
+ Now suppose that the user decides that another command should be issued,
+ using exactly those messages. Since, _\bp_\bi_\bc_\bk wasn't given a
+ `-sequence name' argument in this example, the user would end-up typing
+ the entire back-quoted command again. A simpler way is to add a default
+ sequence name to the .mh_profile. For example,
+
+ pick: -seq select -list
+
+ will tell _\bp_\bi_\bc_\bk to always define the sequence "select" whenever it's run.
+ The `-list' is necessary since the `-sequence name' switch sets `-nol-
+ ist' whenever the former is encountered. Hence, this profile entry
+ makes _\bp_\bi_\bc_\bk define the "select" sequence and otherwise behave exactly as
+
+
+ [1] Of course, it is much easier to simply use the built-in boolean
+ operation of _\bp_\bi_\bc_\bk to get the desired results:
+
+ pick -from frated -or -from fear -or -from freida -seq sgroup
+
+ and
+
+ pick -from frated -and -before friday -seq fred
+
+ do exactly the same thing as the five commands listed above. Hence, the
+ `-nozero' option to _\bp_\bi_\bc_\bk is only useful to manipulate existing se-
+ quences.
+
+
+
+
+
+
+
+
+
+
+
+
+ -172-
+
+
+ if there was no profile entry at all.
+
+ _\bM_\ba_\br_\bk _\ba_\bn_\bd _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ The _\bm_\ba_\br_\bk command lets the user perform low-level manipulation of
+ sequences, and also provides a well-needed debug facility to the
+ implementors/developers/maintainers of _\bM_\bH (the _\bM_\bH-hacks). In the
+ future, a user-friendly "front-end" for _\bm_\ba_\br_\bk will probably be developed
+ to give the _\bM_\bH user a way to take better advantage of the underlying
+ facilities.
+
+ _\bP_\bu_\bb_\bl_\bi_\bc _\ba_\bn_\bd _\bP_\br_\bi_\bv_\ba_\bt_\be _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ There are two kinds of sequences: _\bp_\bu_\bb_\bl_\bi_\bc sequences, and _\bp_\br_\bi_\bv_\ba_\bt_\be
+ sequences. _\bP_\bu_\bb_\bl_\bi_\bc sequences of a folder are accessible to any _\bM_\bH user
+ that can read that folder and are kept in the .mh_sequences file in the
+ folder. _\bP_\br_\bi_\bv_\ba_\bt_\be sequences are accessible only to the _\bM_\bH user that
+ defined those sequences and are kept in the user's _\bM_\bH context file. By
+ default, _\bp_\bi_\bc_\bk (and _\bm_\ba_\br_\bk ) create _\bp_\bu_\bb_\bl_\bi_\bc sequences if the folder for
+ which the sequences are being defined is writable by the _\bM_\bH user. Oth-
+ erwise, _\bp_\br_\bi_\bv_\ba_\bt_\be sequences are created. This can be overridden with the
+ `-public' and `-nopublic' switches.
+
+ _\bS_\be_\bq_\bu_\be_\bn_\bc_\be _\bN_\be_\bg_\ba_\bt_\bi_\bo_\bn
+
+ In addition to telling an _\bM_\bH command to use the messages in the
+ sequence "seen", as in
+
+ refile seen +old
+
+ it would be useful to be easily able to tell an _\bM_\bH command to use all
+ messages _\be_\bx_\bc_\be_\bp_\bt those in the sequence. One way of doing this would be
+ to use _\bm_\ba_\br_\bk and define the sequence explicitly, as in
+
+ mark -delete -zero seen -seq notseen
+
+ which, owing to _\bm_\ba_\br_\bk 's cryptic interpretation of `-delete' and `-zero',
+ defines the sequence "notseen" to be all messages not in the sequence
+ "seen". Naturally, anytime the sequence "seen" is changed, "notseen"
+ will have to be updated. Another way to achieve this is to define the
+ entry "Sequence-Negation:" in the .mh_profile. If the entry was
+
+ Sequence-Negation: not
+
+ then anytime an _\bM_\bH command was given "notseen" as a `msg' or `msgs'
+ argument, it would substitute all messages that are not a member of the
+ sequence "seen". That is,
+
+ refile notseen +new
+
+ does just that. The value of the "Sequence-Negation:" entry in the pro-
+ file can be any string. Hence, experienced users of _\bM_\bH do not use a
+
+
+
+
+
+
+
+
+
+
+
+ -173-
+
+
+ word, but rather a special character which their shell does not inter-
+ pret (users of the _\bC_\bS_\bh_\be_\bl_\bl use a single caret or circumflex (usually
+ shift-6), while users of the Bourne shell use an exclamation-mark).
+ This is because there is nothing to prevent a user of _\bM_\bH from defining a
+ sequence with this string as its prefix, if the string is nothing by
+ letters and digits. Obviously, this could lead to confusing behavior if
+ the "Sequence-Negation:" entry leads _\bM_\bH to believe that two sequences
+ are opposites by virtue of their names differing by the prefix string.
+
+ _\bT_\bh_\be _\bP_\br_\be_\bv_\bi_\bo_\bu_\bs _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ Many times users find themselves issuing a series of commands on
+ the same sequences of messages. If the user first defined these mes-
+ sages as a sequence, then considerable typing may be saved. If the user
+ doesn't have this foresight, _\bM_\bH provides a handy way of having _\bM_\bH
+ remember the `msgs' or `msg' argument last given to an _\bM_\bH command. If
+ the entry "Previous-Sequence:" is defined in the .mh_profile, then when
+ the command finishes, it will define the sequence(s) named in the value
+ of this entry as being exactly those messages that were specified.
+ Hence, a profile entry of
+
+ Previous-Sequence: pseq
+
+ directs any _\bM_\bH command that accepts a `msg' or `msgs' argument to define
+ the sequence "pseq" as those messages when it finishes. More than one
+ sequence name may be placed in this entry, separated with spaces. The
+ one disadvantage of this approach is that the _\bM_\bH progams have to update
+ the sequence information for the folder each time they run (although
+ most programs read this information, usually only _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk have to
+ write this information out).
+
+ _\bT_\bh_\be _\bU_\bn_\bs_\be_\be_\bn _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ Finally, some users like to distinguish between messages which have
+ been previously seen by them. Both _\bi_\bn_\bc and _\bs_\bh_\bo_\bw honorthe profile entry
+ "Unseen-Sequence" to support this activity. Whenever _\bi_\bn_\bc places new
+ messages in a folder, if the entry "Unseen-Sequence" is defined in the
+ .mh_profile, then when the command finishes, _\bi_\bn_\bc will add the new mes-
+ sages to the sequence(s) named in the value of this entry. Hence, a
+ profile entry of
+
+ Unseen-Sequence: unseen
+
+ directs _\bi_\bn_\bc to add new messages to the sequence "unseen". Unlike the
+ behavior of the "Previous-Sequence" entry in the profile however, the
+ sequence(s) will not be zero'd.
+
+ Similarly, whenever _\bs_\bh_\bo_\bw (or _\bn_\be_\bx_\bt or _\bp_\br_\be_\bv ) displays a message,
+ they remove those messages from any sequences named by the
+ "Unseen-Sequence" entry in the profile.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -174-
+
+
+ _\bC_\bO_\bM_\bP_\bO_\bS_\bI_\bT_\bI_\bO_\bN _\bO_\bF _\bM_\bA_\bI_\bL
+
+ There are a number of interesting advanced facilities for the com-
+ position of outgoing mail.
+
+
+ _\bT_\bh_\be _\bD_\br_\ba_\bf_\bt _\bF_\bo_\bl_\bd_\be_\br
+
+ The _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl commands have two switches,
+ `-draftfolder +folder' and `-draftmessage msg'. If
+ `-draftfolder +folder' is used, these commands are directed to construct
+ a draft message in the indicated folder. (The "Draft-Folder:" profile
+ entry may be used to declare a default draft folder for use with _\bc_\bo_\bm_\bp,
+ _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl) If `-draftmessage msg' is not used, it defaults to
+ `new' (unless the user invokes _\bc_\bo_\bm_\bp with `-use', in which case the
+ default is `cur'). Hence, the user may have several message composi-
+ tions in progress simultaneously. Now, all of the _\bM_\bH tools are avail-
+ able on each of the user's message drafts (e.g., _\bs_\bh_\bo_\bw, _\bs_\bc_\ba_\bn, _\bp_\bi_\bc_\bk, and
+ so on). If the folder does not exist, the user is asked if it should be
+ created (just like with _\br_\be_\bf_\bi_\bl_\be ). Also, the last draft message the user
+ was composing is known as `cur' in the draft folder.
+
+ Furthermore, the _\bs_\be_\bn_\bd command has these switches as well. Hence,
+ from the shell, the user can send off whatever drafts desired using the
+ standard _\bM_\bH `msgs' convention with `-draftmessage msgs'. If no `msgs'
+ are given, it defaults to `cur'.
+
+ In addition, all five programs have a `-nodraftfolder' switch,
+ which undoes the last occurrence of `-draftfolder folder' (useful if the
+ latter occurs in the user's _\bM_\bH profile).
+
+ If the user does not give the `-draftfolder +folder' switch, then
+ all these commands act ``normally''. Note that the `-draft' switch to
+ _\bs_\be_\bn_\bd and _\bs_\bh_\bo_\bw still refers to the file called `draft' in the user's _\bM_\bH
+ directory. In the interests of economy of expression, when using _\bc_\bo_\bm_\bp
+ or _\bs_\be_\bn_\bd, the user needn't prefix the draft `msg' or `msgs' with `-draft-
+ message'. Both of these commands accept a `file' or `files' argument,
+ and they will, if given `-draftfolder +folder' treat these arguments as
+ `msg' or `msgs'.[2] Hence,
+
+ send -draftf +drafts first
+
+ is the same as
+
+ send -draftf +drafts -draftm first
+
+
+
+
+ [2] This may appear to be inconsistent, at first, but it saves a lot
+ of typing.
+
+
+
+
+
+
+
+
+
+
+
+
+ -175-
+
+
+ To make all this a bit more clear, here are some examples. Let's
+ assume that the following entries are in the _\bM_\bH profile:
+
+ Draft-Folder: +drafts
+ sendf: -draftfolder +drafts
+
+ Furthermore, let's assume that the program _\bs_\be_\bn_\bd_\bf is a (symbolic) link in
+ the user's $HOME/bin/ directory to _\bs_\be_\bn_\bd. Then, any of the commands
+
+ comp
+ dist
+ forw
+ repl
+
+ constructs the message draft in the `draft' folder using the `new' mes-
+ sage number. Furthermore, they each define `cur' in this folder to be
+ that message draft. If the user were to use the _\bq_\bu_\bi_\bt option at `What
+ now?' level, then later on, if no other draft composition was done, the
+ draft could be sent with simply
+
+ sendf
+
+ Or, if more editing was required, the draft could be edited with
+
+ comp -use
+
+ Instead, if other drafts had been composed in the meantime, so that this
+ message draft was no longer known as `cur' in the `draft' folder, then
+ the user could _\bs_\bc_\ba_\bn the folder to see which message draft in the folder
+ should be used for editing or sending. Clever users could even employ a
+ back-quoted _\bp_\bi_\bc_\bk to do the work:
+
+ comp -use `pick +drafts -to bug-mh`
+
+ or
+
+ sendf `pick +drafts -to bug-mh`
+
+ Note that in the _\bc_\bo_\bm_\bp example, the output from _\bp_\bi_\bc_\bk must resolve to a
+ single message draft (it makes no sense to talk about composing two or
+ more drafts with one invocation of _\bc_\bo_\bm_\bp ). In contrast, in the _\bs_\be_\bn_\bd
+ example, as many message drafts as desired can appear, since _\bs_\be_\bn_\bd
+ doesn't mind sending more than one draft at a time.
+
+ Note that the argument `-draftfolder +folder' is not included in
+ the profile entry for _\bs_\be_\bn_\bd, since when _\bc_\bo_\bm_\bp, et. al., invoke _\bs_\be_\bn_\bd
+ directly, they supply _\bs_\be_\bn_\bd with the UNIX pathname of the message draft,
+ and not a `draftmessage msg' argument. As far as _\bs_\be_\bn_\bd is concerned, a
+ _\bd_\br_\ba_\bf_\bt _\bf_\bo_\bl_\bd_\be_\br is not being used.
+
+ It is important to realize that _\bM_\bH treats the draft folder like a
+ standard _\bM_\bH folder in nearly all respects. There are two exceptions:
+
+
+
+
+
+
+
+
+
+
+
+ -176-
+
+
+ first\b\b\b\b\b_____, under no circumstancs will the `-draftfolder folder' switch cause
+ the named folder to become the current folder.[3] Second\b\b\b\b\b\b______, although con-
+ ceptually _\bs_\be_\bn_\bd deletes the `msgs' named in the draft folder, it does not
+ call `delete-prog' to perform the deletion.
+
+
+ _\bW_\bh_\ba_\bt _\bH_\ba_\bp_\bp_\be_\bn_\bs _\bi_\bf _\bt_\bh_\be _\bD_\br_\ba_\bf_\bt _\bE_\bx_\bi_\bs_\bt_\bs
+
+ When the _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl commands are invoked and the
+ draft you indicated already exists, these programs will prompt the user
+ for a reponse directing the program's action. The prompt is
+
+ Draft ``/usr/src/uci/mh/mhbox/draft'' exists (xx bytes).
+ Disposition?
+
+ The appropriate responses and their meanings are: replace\b\b\b\b\b\b\b_______: deletes the
+ draft and starts afresh; list\b\b\b\b____: lists the draft; refile\b\b\b\b\b\b______: files the draft
+ into a folder and starts afresh; and, quit\b\b\b\b____: leaves the draft intact and
+ exits. In addition, if you specified `-draftfolder folder' to the com-
+ mand, then one other response will be accepted: new\b\b\b___: finds a new draft,
+ just as if `-draftmessage new' had been given. Finally, the _\bc_\bo_\bm_\bp com-
+ mand will accept one more response: use\b\b\b___: re-uses the draft, just as if
+ `-use' had been given.
+
+
+ _\bT_\bh_\be _\bP_\bu_\bs_\bh _\bO_\bp_\bt_\bi_\bo_\bn _\ba_\bt _\bW_\bh_\ba_\bt _\bn_\bo_\bw? _\bL_\be_\bv_\be_\bl
+
+ The _\bp_\bu_\bs_\bh option to the "What now?" query in the _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw,
+ and _\br_\be_\bp_\bl commands, directs the command to _\bs_\be_\bn_\bd the draft in a special
+ detached fashion, with all normal output discarded. If _\bp_\bu_\bs_\bh is used and
+ the draft can not be sent, then _\bM_\bH will send the user a message, indi-
+ cating the name of the draft file, and an explanation of the failure.
+
+ The user can also invoke _\bs_\be_\bn_\bd from the shell with the `-push'
+ switch, which makes _\bs_\be_\bn_\bd act like it had been _\bp_\bu_\bs_\bh 'd by one of the com-
+ position commands.
+
+ By using _\bp_\bu_\bs_\bh, the user can free the shell to do other things,
+ because it appears to the shell that the _\bM_\bH command has finished. As a
+ result the shell will immediately prompt for another command, despite
+ the fact that the command is really still running. Note that if the
+ user indicates that annotations are to be performed (with `-annotate' to
+
+
+ [3] Obviously, if the folder appeared in the context of a standard
+ `+folder' argument to an _\bM_\bH program, as in
+
+ scan +drafts
+
+ it might become the current folder, depending on the context changes of
+ the _\bM_\bH program in question.
+
+
+
+
+
+
+
+
+
+
+
+
+ -177-
+
+
+ _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, or _\br_\be_\bp_\bl), the annotations will be performed after the mes-
+ sage has been successfully sent. This action will appear to occur asyn-
+ chronously. Obviously, if one of the messages that is to be annotated
+ is removed before the draft has been successfully sent, then when _\bM_\bH
+ tries to make the annotations, it won't be able to do so. In previous
+ versions of _\bM_\bH, this resulted in an error message mysteriously appearing
+ on the user's terminal. In _\bm_\bh._\b5 and later versions, in this special
+ circumstance, no error will be generated.
+
+ If send is _\bp_\bu_\bs_\bh 'd, then the `-forward' switch is examined if a
+ failure notice is generated. If given, then the draft is forwarded with
+ the failure notice sent to the user. This allows rapid _\bb_\bu_\br_\bs_\bt 'ing of
+ the failure notice to retrieve the unsent draft.
+
+
+ _\bO_\bp_\bt_\bi_\bo_\bn_\bs _\ba_\bt _\bW_\bh_\ba_\bt _\bn_\bo_\bw? _\bL_\be_\bv_\be_\bl
+
+ By default, the message composition programs call a program called
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw before the initial draft composition. The _\bM_\bH user can specify
+ any program for this. Following is some information about the default
+ "What now?" level. More detailed information can be found in the _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw (1) manual entry.
+
+ When using the _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl commands at "What now?"
+ level, the _\be_\bd_\bi_\bt, _\bl_\bi_\bs_\bt, _\bh_\be_\ba_\bd_\be_\br_\bs, _\br_\be_\bf_\bi_\bl_\be, and (for the _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl com-
+ mands) the _\bd_\bi_\bs_\bp_\bl_\ba_\by options will pass on any additional arguments given
+ them to whatever program they invoke.
+
+ In _\bm_\bh._\b1 (the original RAND _\bM_\bH ) and _\bm_\bh._\b2 (the first UCI version of
+ _\bM_\bH ), _\bM_\bH used a complicated heuristic to determine if the draft should
+ be deleted or preserved after an unsuccessful edit. In _\bm_\bh._\b3, _\bM_\bH was
+ changed to preserve the draft always, since _\bc_\bo_\bm_\bp, et. al., could usually
+ look at a draft, apply another set of heuristics, and decide if it was
+ important or not. With the notion of a _\bd_\br_\ba_\bf_\bt _\bf_\bo_\bl_\bd_\be_\br, in which one by
+ default gets a `new' message draft, the edit deletion/preservation algo-
+ rithm was re-implemented, to keep the draft folder from being cluttered
+ with aborted edits.
+
+ Also, note that by default, if the draft cannot be successfully
+ sent, these commands return to "What now?" level. But, when _\bp_\bu_\bs_\bh is
+ used, this does not happen (obviously). Hence, if these commands were
+ expected to annotate any messages, this will have to be done by hand,
+ later on, with the _\ba_\bn_\bn_\bo command.
+
+ Finally, if the `-delete' switch is not given to the _\bq_\bu_\bi_\bt option,
+ then these commands will inform the user of the name of the unsent draft
+ file.
+
+
+ _\bD_\bi_\bg_\be_\bs_\bt_\bs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -178-
+
+
+ The _\bf_\bo_\br_\bw command has the beginnings of a digestifying facility,
+ with the `-digest list', `-issue number', and `-volume number' switches.
+
+ If _\bf_\bo_\br_\bw is given "list" to the `-digest' switch as the name of the dis-
+ cussion group, and the `-issue number' switch is not given, then _\bf_\bo_\br_\bw
+ looks for an entry in the user's _\bM_\bH context called "_\bd_\bi_\bg_\be_\bs_\bt-issue-list"
+ and increments its value to use as the issue number. Similarly, if the
+ `-volume number' switch is not given, then _\bf_\bo_\br_\bw looks for
+ "_\bd_\bi_\bg_\be_\bs_\bt-volume-list" (but does not increment its value) to use as the
+ volume number.
+
+ Having calculated the name of the digest and the volume and issue
+ numbers, _\bf_\bo_\br_\bw will now process the components file using the same format
+ string mechanism used by _\br_\be_\bp_\bl. The current `%'-escapes are:
+
+ _\be_\bs_\bc_\ba_\bp_\be _\bt_\by_\bp_\be _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn
+ digest string digest name
+ msg integer issue number
+ cur integer volume number
+
+ In addition, to capture the current date, any of the escapes valid for
+ _\bd_\bp (8) are also valid for _\bf_\bo_\br_\bw.
+
+ The default components file used by _\bf_\bo_\br_\bw when in digest mode is:
+
+ From: %{digest}-Request
+ To: %{digest} Distribution: dist-%{digest};
+ Subject: %{digest} Digest V%(cur) #%(msg)
+ Reply-To: %{digest}
+ --------
+ %{digest} Digest %(weekday{date}), %2(mday{date}) %(month{date}) 19%02(year{date})
+ Volume %(cur) : Issue %(msg)
+
+ Today's Topics:
+
+ Hence, when the `-digest' switch is present, the first step taken by
+ _\bf_\bo_\br_\bw is to expand the format strings in the component file. The next
+ step is to compose the draft using the standard digest encapsulation
+ algorithm (even putting an "End of list Digest" trailer in the draft).
+ Once the draft is composed by _\bf_\bo_\br_\bw, _\bf_\bo_\br_\bw writes out the volume and issue
+ profile entries for the digest, and then invokes the editor.
+
+ Naturally, when composing the draft, _\bf_\bo_\br_\bw will honor the
+ `-filter filterfile' switch, which is given to _\bm_\bh_\bl to filter each mes-
+ sage being forwarded prior to encapsulation in the draft. A good filter
+ file to use, which is called _\bm_\bh_\bl._\bd_\bi_\bg_\be_\bs_\bt, is:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -179-
+
+
+ width=80,overflowoffset=10
+ leftadjust,compress,compwidth=9
+ Date:formatfield="%<(nodate{text})%{text}%|%(tws{text})%>"
+ From:
+ Subject:
+ :
+ body:nocomponent,overflowoffset=0,noleftadjust,nocompress
+
+
+
+ _\bF_\bO_\bL_\bD_\bE_\bR _\bH_\bA_\bN_\bD_\bL_\bI_\bN_\bG
+
+ There are two interesting facilities for manipulating folders:
+ relative folder addressing, which allows a user to shorten the typing of
+ long folder names; and the folder-stack, which permits a user to keep a
+ stack of current folders.
+
+
+ _\bR_\be_\bl_\ba_\bt_\bi_\bv_\be _\bF_\bo_\bl_\bd_\be_\br _\bA_\bd_\bd_\br_\be_\bs_\bs_\bi_\bn_\bg
+
+ By default, when `+folder' is given, and the folder name is not
+ absolute (does not start with /, ./, or ../), then the UNIX pathname of
+ the folder is interpreted relative to the user's _\bM_\bH directory. Although
+ this mechanism works fine for top-level folders and their immediate
+ sub-folders, once the depth of the sub-folder tree grows, it becomes
+ rather unwieldly:
+
+ scan +mh/mh.4/draft/flames
+
+ is a lot of typing. _\bM_\bH can't do anything if the current folder was
+ "+inbox", but if the current folder was, say, "+mh/mh.4/draft", _\bM_\bH has a
+ short-hand notation to reference a sub-folder of the current folder.
+ Using the `@folder' notation, the _\bM_\bH user can direct any _\bM_\bH program
+ which expects a `+folder' argument to look for the folder relative to
+ the current folder instead of the user's _\bM_\bH directory. Hence, if the
+ current folder _\bw_\ba_\bs "+mh/mh.4/draft", then
+
+ scan @flames
+
+ would do the trick handily. In addition, if the current folder _\bw_\ba_\bs
+ "+mh/mh.4/draft",
+
+ scan @../pick
+
+ would scan the folder "+mh/mh.4/pick", since, in the UNIX fashion, it
+ references the folder "pick" which is a sub-folder of the folder that is
+ the parent of the current folder. Since most advanced _\bM_\bH users seem to
+ exhibit a large degree of locality in referencing folders when they pro-
+ cess mail, this convention should receive a wide range of uses.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -180-
+
+
+ _\bT_\bh_\be _\bF_\bo_\bl_\bd_\be_\br-_\bS_\bt_\ba_\bc_\bk
+
+ The _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk mechanism in _\bM_\bH gives the _\bM_\bH user a facility simi-
+ lar to the _\bC_\bS_\bh_\be_\bl_\bl 's directory-stack. Simply put,
+
+ folder -push +foo
+
+ makes "foo" the current folder, saving the folder that was previously
+ the current folder on the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk. As expected,
+
+ folder -pop
+
+ takes the top of the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk and makes it the current folder. Each
+ of these switches lists the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk when they execute. It is sim-
+ ple to write a _\bp_\bu_\bs_\bh_\bf command as a shell script. It's one line:
+
+ exec folder -push $@
+
+ Probably a better way is to link _\bf_\bo_\bl_\bd_\be_\br to the $HOME/bin/ directory
+ under the name of _\bp_\bu_\bs_\bh_\bf and then add the entry
+
+ pushf: -push
+
+ to the .mh_profile.
+
+ The manual page for _\bf_\bo_\bl_\bd_\be_\br discusses the analogy between the _\bC_\bS_\bh_\be_\bl_\bl
+ directory stack commands and the switches in _\bf_\bo_\bl_\bd_\be_\br which manipulate the
+ _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk. The _\bf_\bo_\bl_\bd_\be_\br command uses the context entry `Folder-Stack:'
+ to keep track of the folders in the user's stack of folders.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Appendix A
+ _\bC_\bO_\bM_\bM_\bA_\bN_\bD _\bS_\bU_\bM_\bM_\bA_\bR_\bY
+
+
+
+
+ ali [-alias aliasfile] [-list] [-nolist] [-normalize]
+ [-nonormalize] [-user] [-nouser] aliases ... [-help]
+
+ anno [+folder] [msgs] [-component field] [-inplace] [-noinplace]
+ [-date] [-nodate] [-text body] [-help]
+
+ bbc [bboards ...] [-topics] [-check] [-read] [-quiet] [-verbose]
+ [-archive] [-noarchive] [-protocol] [-noprotocol]
+ [-mshproc program] [switches for _\bm_\bs_\bh_\bp_\br_\bo_\bc] [-rcfile rcfile]
+ [-norcfile] [-file BBoardsfile] [-user BBoardsuser]
+ [-host host] [-help]
+
+ burst [+folder] [msgs] [-inplace] [-noinplace] [-quiet] [-noquiet]
+ [-verbose] [-noverbose] [-help]
+
+ comp [+folder] [msg] [-draftfolder +folder] [-draftmessage msg]
+ [-nodraftfolder] [-editor editor] [-noedit] [-file file]
+ [-form formfile] [-use] [-nouse] [-whatnowproc program]
+ [-nowhatnowproc] [-help]
+
+ dist [+folder] [msg] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-form formfile] [-inplace]
+ [-noinplace] [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ /usr/bs/mh-6.8/lib/fmtdump [-form formatfile] [-format string]
+ [-help]
+
+ folder [+folder] [msg] [-all] [-fast] [-nofast] [-header]
+ [-noheader] [-pack] [-nopack] [-recurse] [-norecurse] [-total]
+ [-nototal] [-print] [-noprint] [-list] [-nolist] [-push]
+ [-pop] [-help]
+
+ folders
+
+ forw [+folder] [msgs] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-filter filterfile]
+ [-form formfile] [-format] [-noformat] [-inplace] [-noinplace]
+ [-mime] [-nomime] [-whatnowproc program] [-nowhatnowproc]
+ [-help]
+
+
+
+
+
+
+ -181-
+
+
+
+
+
+
+
+
+
+
+
+
+ forw [+folder] [msgs] [-digest list] [-issue number]
+ [-volume number] [other switches for _\bf_\bo_\br_\bw] [-help]
+
+ inc [+folder] [-audit audit-file] [-noaudit] [-changecur]
+ [-nochangecur] [-file name] [-form formatfile]
+ [-format string] [-silent] [-nosilent] [-truncate]
+ [-notruncate] [-width columns] [-host host] [-user user]
+ [-apop] [-noapop] [-rpop] [-norpop] [-pack file] [-nopack]
+ [-help]
+
+ mark [+folder] [msgs] [-sequence name ...] [-add] [-delete] [-list]
+ [-public] [-nopublic] [-zero] [-nozero] [-help]
+
+ /usr/bs/mh-6.8/lib/mhl [-bell] [-nobell] [-clear] [-noclear]
+ [-folder +folder] [-form formfile] [-length lines]
+ [-width columns] [-moreproc program] [-nomoreproc] [files ...]
+ [-help]
+
+ mhmail [ addrs ... [-body text] [-cc addrs ...] [-from addr]
+ [-subject subject]] [-help]
+
+ mhn [+folder] [msgs] [-part number]... [-type content]...
+ [-list [-header] [-noheader]
+ [-realsize] [-norealsize]] [-nolist]
+ [-show [-serialonly] [-noserialonly]]
+ [-form formfile]] [-noshow]
+ [-store [-auto] [-noauto]] [-nostore]
+ [-verbose] [-noverbose] [-rfc934mode] [-norfc934mode]
+ [-ebcdic] [-noebcdicsafe]
+ [-help]
+
+ mhparam [profile-components] [-components] [-nocomponents] [-all]
+ [-help]
+
+ mhpath [+folder] [msgs] [-help]
+
+ msgchk [-date] [-nodate] [-notify all/mail/nomail]
+ [-nonotify all/mail/nomail] [-host host] [-user user] [-apop]
+ [-noapop] [-rpop] [-norpop] [users ...] [-help]
+
+ msh [-prompt string] [-scan] [-noscan] [-topcur] [-notopcur] [file]
+ [-help]
+
+ next [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ packf [+folder] [msgs] [-file name] [-help]
+
+
+
+
+
+
+ -182-
+
+
+
+
+
+
+
+
+
+
+
+
+ pick [+folder] [msgs] [-and ...] [-or ...] [-not ...]
+ [-lbrace ... -rbrace] [--component pattern] [-after date]
+ [-before date] [-datefield field] [-sequence name ...]
+ [-public] [-nopublic] [-zero] [-nozero] [-list] [-nolist]
+ [-help]
+
+
+ prev [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ prompter [-erase chr] [-kill chr] [-prepend] [-noprepend] [-rapid]
+ [-norapid] [-doteof] [-nodoteof] file [-help]
+
+ /usr/bs/mh-6.8/lib/rcvstore [+folder] [-create] [-nocreate]
+ [-sequence name ...] [-public] [-nopublic] [-zero] [-nozero]
+ [-help]
+
+ refile [msgs] [-draft] [-link] [-nolink] [-preserve] [-nopreserve]
+ [-src +folder] [-file file] +folder ... [-help]
+
+ repl [+folder] [msg] [-annotate] [-noannotate] [-cc all/to/cc/me]
+ [-nocc all/to/cc/me] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-editor editor]
+ [-noedit] [-fcc +folder] [-filter filterfile] [-form formfile]
+ [-inplace] [-noinplace] [-query] [-noquery]
+ [-whatnowproc program] [-nowhatnowproc] [-width columns]
+ [-help]
+
+ rmf [+folder] [-interactive] [-nointeractive] [-help]
+
+ rmm [+folder] [msgs] [-help]
+
+ scan [+folder] [msgs] [-clear] [-noclear] [-form formatfile]
+ [-format string] [-header] [-noheader] [-width columns]
+ [-reverse] [-noreverse] [-file filename] [-help]
+
+ send [-alias aliasfile] [-draft] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-forward] [-noforward]
+ [-mime] [-nomime] [-msgid] [-nomsgid] [-push] [-nopush]
+ [-split seconds] [-verbose] [-noverbose] [-watch] [-nowatch]
+ [-width columns] [file ...] [-help]
+
+ show [+folder] [msgs] [-draft] [-header] [-noheader]
+ [-showproc program] [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc]
+ [-help]
+
+ sortm [+folder] [msgs] [-datefield field] [-textfield field]
+ [-notextfield] [-limit days] [-nolimit] [-verbose]
+ [-noverbose] [-help]
+
+
+
+ -183-
+
+
+
+
+
+
+
+
+
+
+
+
+ vmh [-prompt string] [-vmhproc program] [-novmhproc]
+ [switches for _\bv_\bm_\bh_\bp_\br_\bo_\bc] [-help]
+
+ whatnow [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-prompt string] [file] [-help]
+
+ whom [-alias aliasfile] [-check] [-nocheck] [-draft]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [file] [-help]
+
+ /usr/bs/mh-6.8/lib/ap [-form formatfile] [-format string]
+ [-normalize] [-nonormalize] [-width columns] addrs ...
+ [-help]
+
+ /usr/bs/mh-6.8/lib/conflict [-mail name] [-search directory]
+ [aliasfiles ...] [-help]
+
+ /usr/bs/mh-6.8/lib/dp [-form formatfile] [-format string]
+ [-width columns] dates ... [-help]
+
+ /usr/bs/mh-6.8/lib/install-mh [-auto] [-compat]
+
+ /usr/bs/mh-6.8/lib/post [-alias aliasfile] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-mime] [-nomime] [-msgid]
+ [-nomsgid] [-verbose] [-noverbose] [-watch] [-nowatch]
+ [-width columns] file [-help]
+
+ /usr/bs/mh-6.8/lib/slocal [address info sender] [-addr address]
+ [-info data] [-sender sender] [-user username] [-mailbox mbox]
+ [-file file] [-maildelivery deliveryfile] [-verbose]
+ [-noverbose] [-debug] [-help]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -184-
+
+
+
+
+
+
+
+
+
+
+
+
+ Appendix B
+ _\bM_\bE_\bS_\bS_\bA_\bG_\bE _\bN_\bA_\bM_\bE _\bB_\bN_\bF
+
+
+
+
+
+ msgs := msgspec |
+ msgs msgspec
+
+ msgspec := msg |
+ msg-range |
+ msg-sequence |
+ user-defined-sequence
+
+ msg := msg-name |
+ <number>
+
+ msg-name := "first" |
+ "last" |
+ "cur" |
+ "." |
+ "next" |
+ "prev"
+
+ msg-range := msg"-"msg |
+ "all"
+
+ msg-sequence := msg":"signed-number
+
+ signed-number := "+"<number> |
+ "-"<number> |
+ <number>
+
+ user-defined-sequence := <alpha> |
+ <alpha><alphanumeric>*
+
+
+ Where <number> is a decimal number greater than zero.
+
+ Msg-range specifies all of the messages in the given range and must not
+ be empty.
+
+ Msg-sequence specifies up to <number> of messages, beginning with "msg"
+ (in the case of first, cur, next, or <number>), or ending with "msg" (in
+ the case of prev or last). +<number> forces "starting with msg", and
+ -<number> forces "ending with number". In all cases, "msg" must exist.
+
+ User-defined sequences are defined and manipulated with the _\bp_\bi_\bc_\bk and
+ _\bm_\ba_\br_\bk commands.
+
+
+
+ -185-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bR_\bE_\bF_\bE_\bR_\bE_\bN_\bC_\bE_\bS
+
+
+
+ 1. Crocker, D. H., J. J. Vittal, K. T. Pogran, and D. A. Henderson,
+ Jr., "Standard for the Format of ARPA Network Text Messages,"
+ _\bR_\bF_\bC_\b7_\b3_\b3, November 1977.
+
+ 2. Thompson, K., and D. M. Ritchie, "The UNIX Time-sharing System,"
+ _\bC_\bo_\bm_\bm_\bu_\bn_\bi_\bc_\ba_\bt_\bi_\bo_\bn_\bs _\bo_\bf _\bt_\bh_\be _\bA_\bC_\bM, Vol. 17, July 1974, pp. 365-375.
+
+ 3. McCauley, E. J., and P. J. Drongowski, "KSOS-The Design of a Secure
+ Operating System," _\bA_\bF_\bI_\bP_\bS _\bC_\bo_\bn_\bf_\be_\br_\be_\bn_\bc_\be _\bP_\br_\bo_\bc_\be_\be_\bd_\bi_\bn_\bg_\bs, National Computer
+ Conference, Vol. 48, 1979, pp. 345-353.
+
+ 4. Crocker, David H., _\bF_\br_\ba_\bm_\be_\bw_\bo_\br_\bk _\ba_\bn_\bd _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs _\bo_\bf _\bt_\bh_\be "_\bM_\bS" _\bP_\be_\br_\bs_\bo_\bn_\ba_\bl _\bM_\be_\bs_\b-
+ _\bs_\ba_\bg_\be _\bS_\by_\bs_\bt_\be_\bm, The RAND Corporation, R-2134-ARPA, December 1977.
+
+ 5. Thompson, K., and D. M. Ritchie, _\bU_\bN_\bI_\bX _\bP_\br_\bo_\bg_\br_\ba_\bm_\bm_\be_\br'_\bs _\bM_\ba_\bn_\bu_\ba_\bl, 6th ed.,
+ Western Electric Company, May 1975 (available only to UNIX licen-
+ sees).
+
+ 6. Crocker, D. H., "Standard for the Format of ARPA Internet Text Mes-
+ sages," _\bR_\bF_\bC_\b8_\b2_\b2, August 1982.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -186-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -i-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bR_\bE_\bA_\bD _\bT_\bH_\bI_\bS
+
+
+
+
+ Although the _\bM_\bH system was originally developed by the RAND Cor-
+ poration, and is now in the public domain, the RAND Corporation assumes
+ no responsibility for _\bM_\bH or this particular version of _\bM_\bH.
+
+ In addition, the Regents of the University of California issue the
+ following disclaimer in regard to the UCI version of _\bM_\bH:
+
+ "Although each program has been tested by its contributor, no war-
+ ranty, express or implied, is made by the contributor or the
+ University of California, as to the accuracy and functioning of the
+ program and related program material, nor shall the fact of distri-
+ bution constitute any such warranty, and no responsibility is
+ assumed by the contributor or the University of California in con-
+ nection herewith."
+
+ This version of _\bM_\bH is in the public domain, and as such, there are
+ no real restrictions on its use. The _\bM_\bH source code and documentation
+ have no licensing restrictions whatsoever. As a courtesy, the authors
+ ask only that you provide appropriate credit to the RAND Corporation and
+ the University of California for having developed the software.
+
+ _\bM_\bH is a software package that is supported neither by the RAND Cor-
+ poration nor the University of California. However, since we do use the
+ software ourselves and plan to continue using (and improving) _\bM_\bH, bug
+ reports and their associated fixes should be reported back to us so that
+ we may include them in future releases. The current computer mailbox
+ for _\bM_\bH is Bug-MH@ICS.UCI.EDU (in the ARPA Internet), and
+ ...!ucbvax!ucivax!bug-mh (UUCP). Presently, there are two Internet dis-
+ cussion groups, MH-Users@ICS.UCI.EDU and MH-Workers@ICS.UCI.EDU.
+ MH-Workers is for people discussing code changes to _\bM_\bH. MH-Users is for
+ general discussion about how to use _\bM_\bH. MH-Users is bi-directionally
+ gatewayed into USENET as comp.mail.mh.
+
+ _\bH_\bO_\bW _\bT_\bO _\bG_\bE_\bT _\bM_\bH
+
+ Since you probably already have _\bM_\bH, you may not need to read this
+ unless you suspect you have an old version. There are two ways to get
+ the latest release:
+
+ 1. If you can FTP to the ARPA Internet, use anonymous FTP to
+ ics.uci.edu [128.195.1.1] and retrieve the file pub/mh/mh-6.8.tar.Z.
+ This is a tar image after being run through the compress program
+ (approximately 1.8MB). There should also be a README file in that
+ directory which tells what the current release of _\bM_\bH is, and how to get
+ updates.
+
+
+
+ -i-
+
+
+
+
+
+
+
+
+
+ -ii-
+
+
+ This tar file is also available on louie.udel.edu [128.175.1.3] in
+ portal/mh-6.8.tar.Z. You may also find MH on various other hosts; to
+ make sure you get the latest version and don't waste your time re-fixing
+ bugs, it's best to get it from either ics.uci.edu or louie.udel.edu.
+
+ 2. You can send $75 US to the address below. This covers the cost
+ of a 6250 BPI 9-track magtape, handling, and shipping. In addition,
+ you'll get a laser-printed hard-copy of the entire MH documentation set.
+ Be sure to include your USPS address with your check. Checks must be
+ drawn on U.S. funds and should be made payable to:
+
+ Regents of the University of California
+
+ The distribution address is:
+
+ Computing Support Group
+ Attn: MH distribution
+ Department of Information and Computer Science
+ University of California, Irvine
+ Irvine, CA 92717
+
+ 714/856-7554
+
+ If you just want the hard-copies of the documentation, you still
+ have to pay the $75. The tar image has the documentation source (the
+ manual is in roff format, but the rest are in TeX format). Postscript
+ formatted versions of the TeX papers are available, as are crude tty-
+ conversions of those papers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bF_\bO_\bR_\bE_\bW_\bO_\bR_\bD
+
+
+
+
+ This document describes the RAND _\bM_\bH Message Handling System. Its
+ primary purpose is to serve as a user's manual. It has been heavily
+ based on a previous version of the manual, prepared by Bruce Borden,
+ Stockton Gaines, and Norman Shapiro.
+
+ _\bM_\bH is a particularly novel system, and thus it is often more prone
+ to change than other pieces of production software. As such, some
+ specific points in this manual may not be correct in the future. In all
+ cases, the on-line sections of this manual, available through the
+ UNIX[1] _\bm_\ba_\bn command, should present the most current information.
+
+ When reading this document as a user's manual, certain sections are
+ more interesting than others. The Preface and Summary are not particu-
+ larly interesting to those interested in learning _\bM_\bH. The Introduction
+ is slightly more interesting, as it touches upon the organization of the
+ remainder of this document. The most useful sections are the Overview,
+ Tutorial, and Detailed Description. The Overview should be read by all
+ _\bM_\bH users, regardless of their expertise (beginning, novice, advanced, or
+ hacker). The Tutorial should be read by all beginning and novice _\bM_\bH
+ users, as it presents a nice description of the _\bM_\bH system. The Detailed
+ Description should be read by the day-to-day user of _\bM_\bH, as it spells
+ out all of the realities of the _\bM_\bH system. The Advanced Features sec-
+ tion discusses some powerful _\bM_\bH capabilities for advanced users. Appen-
+ dix A is particularly useful for novices, as it summarizes the invoca-
+ tion syntax of all the _\bM_\bH commands.
+
+ There are also several other documents which may be useful to you:
+ _\bT_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bT_\bu_\bt_\bo_\br_\bi_\ba_\bl, which is a tutorial for
+ _\bM_\bH; _\bT_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bT_\bh_\be _\bU_\bC_\bI _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bF_\ba_\bc_\bi_\bl_\bi_\bt_\by, which
+ describes the BBoards handling under _\bM_\bH; _\bM_\bH._\b5: _\bH_\bo_\bw _\bt_\bo _\bp_\br_\bo_\bc_\be_\bs_\bs _\b2_\b0_\b0 _\bm_\be_\bs_\b-
+ _\bs_\ba_\bg_\be_\bs _\ba _\bd_\ba_\by _\ba_\bn_\bd _\bs_\bt_\bi_\bl_\bl _\bg_\be_\bt _\bs_\bo_\bm_\be _\br_\be_\ba_\bl _\bw_\bo_\br_\bk _\bd_\bo_\bn_\be, which was presented at
+ the 1985 Summer Usenix Conference and Exhibition in Portland, Oregon;
+ _\bM_\bH: _\bA _\bM_\bu_\bl_\bt_\bi_\bf_\ba_\br_\bi_\bo_\bu_\bs _\bU_\bs_\be_\br _\bA_\bg_\be_\bn_\bt, which has been accepted for publication
+ by Computer Networks; _\bM_\bZ_\bn_\be_\bt: _\bM_\ba_\bi_\bl _\bS_\be_\br_\bv_\bi_\bc_\be _\bf_\bo_\br _\bP_\be_\br_\bs_\bo_\bn_\ba_\bl _\bM_\bi_\bc_\br_\bo-_\bC_\bo_\bm_\bp_\bu_\bt_\be_\br
+ _\bS_\by_\bs_\bt_\be_\bm_\bs, which was presented at the First International Symposium on
+ Computer Message Systems in Nottingham, U.K.; and, _\bD_\be_\bs_\bi_\bg_\bn _\bo_\bf _\bt_\bh_\be _\bT_\bT_\bI
+ _\bP_\br_\bo_\bt_\bo_\bt_\by_\bp_\be _\bT_\br_\bu_\bs_\bt_\be_\bd _\bM_\ba_\bi_\bl _\bA_\bg_\be_\bn_\bt, which describes a proprietary "trusted"
+ mail system built on _\bM_\bH. There are also documents, mostly specific to
+ U.C. Irvine which you may find interesting: _\bM_\bH _\bf_\bo_\br _\bB_\be_\bg_\bi_\bn_\bn_\be_\br_\bs, and _\bM_\bH _\bf_\bo_\br
+ _\bM_\bM _\bU_\bs_\be_\br_\bs. All of these documents exist in the _\bm_\bh._\b6 distribution sent to
+ your site. There's also a document, _\bC_\bh_\ba_\bn_\bg_\be_\bs _\bt_\bo _\bt_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\b-
+ _\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bM_\bH._\b6, which describes user-visible changes made to _\bM_\bH
+ since the last major release.
+
+
+ [1] UNIX is a trademark of AT&T Bell Laboratories.
+
+
+ -iii-
+
+
+
+
+
+
+
+
+
+ -iv-
+
+
+ This manual is very large, as it describes a large, powerful system
+ in gruesome detail. The important thing to remember is:
+
+
+ _\bD_\bO_\bN'_\bT _\bP_\bA_\bN_\bI_\bC[_\b2]
+
+
+ As explained in the tutorial, you really need to know only 5 commands to
+ handle most of your mail.
+
+ Very advanced users may wish to consult _\bT_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\b-
+ _\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be, which is also present in the _\bm_\bh._\b6
+ distribution sent to your site.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [2] Note the large, _\bf_\br_\bi_\be_\bn_\bd_\bl_\by letters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bA_\bC_\bK_\bN_\bO_\bW_\bL_\bE_\bD_\bG_\bM_\bE_\bN_\bT_\bS
+
+
+
+
+ The _\bM_\bH system described herein is based on the original RAND _\bM_\bH
+ system. It has been extensively developed (perhaps too much so) by
+ Marshall T. Rose and John L. Romine at the University of California,
+ Irvine. Einar A. Stefferud, Jerry N. Sweet, and Terry P. Domae provided
+ numerous suggestions to improve the UCI version of _\bM_\bH. Of course, a
+ large number of people have helped _\bM_\bH along. The list of ``_\bM_\bH immor-
+ tals'' is too long to list here. However, Van Jacobson deserves a spe-
+ cial acknowledgement for his tireless work in improving the performance
+ of _\bM_\bH. Some programs have been speeded-up by a factor of 10 or 20. All
+ of users of _\bM_\bH, everywhere, owe a special thanks to Van. For this
+ release, numerous _\bM_\bH-_\bW_\bo_\br_\bk_\be_\br_\bs sent in fixes and other changes. A handful
+ of courageous _\bM_\bH-_\bW_\bo_\br_\bk_\be_\br_\bs volunteered to beta-test these changes; their
+ help is particularly appreciated.
+
+ This manual is based on the original _\bM_\bH manual written at RAND by
+ Bruce Borden, Stockton Gaines, and Norman Shapiro.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -v-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bP_\bR_\bE_\bF_\bA_\bC_\bE
+
+
+
+
+ This report describes a system for dealing with messages transmit-
+ ted on a computer. Such messages might originate with other users of
+ the same computer or might come from an outside source through a network
+ to which the user's computer is connected. Such computer-based message
+ systems are becoming increasingly widely used, both within and outside
+ the Department of Defense.
+
+ The message handling system _\bM_\bH was developed for two reasons. One
+ was to investigate some research ideas concerning how a message system
+ might take advantage of the architecture of the UNIX time-sharing
+ operating system for Digital Equipment Corporation PDP-11 and VAX com-
+ puters, and the special features of UNIX's command-level interface with
+ the user (the "shell"). The other reason was to provide a better and
+ more adaptable base than that of conventional designs on which to build
+ a command and control message system. The effort has succeeded in both
+ regards, although this report mainly describes the message system itself
+ and how it fits in with UNIX.
+
+ The present report should be of interest to three groups of
+ readers. First, it is a complete reference manual for the users of _\bM_\bH.
+ Second, it should be of interest to those who have a general knowledge
+ of computer-based message systems, both in civilian and military appli-
+ cations. Finally, it should be of interest to those who build large
+ subsystems that interface with users, since it illustrates a new
+ approach to such interfaces.
+
+ The original _\bM_\bH system was developed by Bruce Borden, using an
+ approach suggested by Stockton Gaines and Norman Shapiro. Valuable
+ assistance was provided by Phyllis Kantar in the later stages of the
+ system's implementation. Several colleagues contributed to the ideas
+ included in this system, particularly Robert Anderson and David Crocker.
+ In addition, valuable experience in message systems, and a valuable
+ source of ideas, was available to us in the form of a previous message
+ system for UNIX called MS, designed at RAND by David Crocker.
+
+ This report was originally prepared as part of the RAND project
+ entitled "Data Automation Research", sponsored by Project AIR FORCE.
+
+
+
+
+
+
+
+
+
+
+
+ -vi-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bS_\bU_\bM_\bM_\bA_\bR_\bY
+
+
+
+
+ Electronic communication of text messages is becoming commonplace.
+ Computer-based message systems-software packages that provide tools for
+ dealing with messages-are used in many contexts. In particular, message
+ systems are becoming increasingly important in command and control and
+ intelligence applications.
+
+ This report describes a message handling system called _\bM_\bH. This
+ system provides the user with tools to compose, send, receive, store,
+ retrieve, forward, and reply to messages. _\bM_\bH has been built on the UNIX
+ time-sharing system, a popular operating system developed for the DEC
+ PDP-11 and VAX classes of computers.
+
+ A complete description of _\bM_\bH is given for users of the system. For
+ those who do not intend to use the system, this description gives a gen-
+ eral idea of what a message system is like. The system involves some
+ new ideas about how large subsystems can be constructed.
+
+ The interesting and unusual features of _\bM_\bH include the following:
+ The user command interface to _\bM_\bH is the UNIX "shell" (the standard UNIX
+ command interpreter). Each separable component of message handling,
+ such as message composition or message display, is a separate command.
+ Each program is driven from and updates a private user environment,
+ which is stored as a file between program invocations. This private
+ environment also contains information to "custom tailor" _\bM_\bH to the
+ individual's tastes. _\bM_\bH stores each message as a separate file under
+ UNIX, and it utilizes the tree-structured UNIX file system to organize
+ groups of files within separate directories or "folders". All of the
+ UNIX facilities for dealing with files and directories, such as renam-
+ ing, copying, deleting, cataloging, off-line printing, etc., are appli-
+ cable to messages and directories of messages (folders). Thus, impor-
+ tant capabilities needed in a message system are available in _\bM_\bH without
+ the need (often seen in other message systems) for code that duplicates
+ the facilities of the supporting operating system. It also allows users
+ familiar with the shell to use _\bM_\bH with minimal effort.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -vii-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bC_\bO_\bN_\bT_\bE_\bN_\bT_\bS
+
+
+
+
+ READ THIS ......................................................... i
+
+ FOREWORD .......................................................... iii
+
+ ACKNOWLEDGMENTS ................................................... v
+
+ PREFACE ........................................................... vi
+
+ SUMMARY ........................................................... vii
+
+ Section
+
+ 1. INTRODUCTION ............................................... 1
+
+ 2. OVERVIEW ................................................... 4
+
+ 3. TUTORIAL ................................................... 7
+
+ 4. DETAILED DESCRIPTION ....................................... 10
+ THE USER PROFILE ............................................. 10
+ MESSAGE NAMING ............................................... 13
+ OTHER MH CONVENTIONS ......................................... 14
+ MH COMMANDS .................................................. 16
+ ALI ....................................................... 17
+ ANNO ...................................................... 19
+ BBC ....................................................... 21
+ BBOARDS ................................................... 24
+ BURST ..................................................... 26
+ COMP ...................................................... 28
+ DIST ...................................................... 30
+ FOLDER .................................................... 33
+ FORW ...................................................... 37
+ INC ....................................................... 42
+ MARK ...................................................... 45
+ MHL ....................................................... 47
+ MHMAIL .................................................... 52
+ MHN ....................................................... 54
+ MHOOK ..................................................... 70
+ MHPARAM ................................................... 72
+ MHPATH .................................................... 74
+ MSGCHK .................................................... 77
+ MSH ....................................................... 79
+ NEXT ...................................................... 83
+ PACKF ..................................................... 84
+ PICK ...................................................... 85
+ PREV ...................................................... 90
+ PROMPTER .................................................. 91
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RCVSTORE .................................................. 94
+ REFILE .................................................... 96
+ REPL ...................................................... 98
+ RMF ....................................................... 102
+ RMM ....................................................... 104
+ SCAN ...................................................... 106
+ SEND ...................................................... 109
+ SHOW ...................................................... 112
+ SLOCAL .................................................... 115
+ SORTM ..................................................... 120
+ VMH ....................................................... 122
+ WHATNOW ................................................... 124
+ WHOM ...................................................... 127
+ MORE DETAILS ................................................. 129
+ MH-ALIAS .................................................. 130
+ MH-FORMAT ................................................. 134
+ MH-MAIL ................................................... 143
+ MH-PROFILE ................................................ 147
+ MH-SEQUENCE ............................................... 155
+ AP ........................................................ 159
+ CONFLICT .................................................. 161
+ DP ........................................................ 163
+ FMTDUMP ................................................... 165
+ INSTALL-MH ................................................ 166
+ POST ...................................................... 167
+
+ 5. REPORTING PROBLEMS ......................................... 169
+
+ 6. ADVANCED FEATURES .......................................... 170
+ USER-DEFINED SEQUENCES ....................................... 170
+ Pick and User-Defined Sequences ........................... 170
+ Mark and User-Defined Sequences ........................... 172
+ Public and Private User-Defined Sequences ................. 172
+ Sequence Negation ......................................... 172
+ The Previous Sequence ..................................... 173
+ The Unseen Sequence ....................................... 173
+ COMPOSITION OF MAIL .......................................... 174
+ The Draft Folder .......................................... 174
+ What Happens if the Draft Exists .......................... 176
+ The Push Option at What now? Level ........................ 176
+ Options at What now? Level ................................ 177
+ Digests ................................................... 178
+ FOLDER HANDLING .............................................. 179
+ Relative Folder Addressing ................................ 179
+ The Folder-Stack .......................................... 180
+
+ Appendix
+ A. Command Summary ............................................ 181
+ B. Message Name BNF ........................................... 185
+
+ REFERENCES ........................................................ 186
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THE RAND MH
+
+
+ MESSAGE HANDLING
+
+
+ SYSTEM:
+
+
+ USER'S MANUAL
+
+
+
+
+
+
+ UCI Version
+
+
+
+
+
+ Marshall T. Rose
+
+ John L. Romine
+
+
+
+
+ Based on the original manual by
+
+ Borden, Gaines, and Shapiro
+
+
+
+
+
+
+
+ December 14, 1992
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6.6 #1[UCI]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null
+
+
+
+
+
+
+
+
+ _\bd_\bi_\bs_\bc_\ba_\br_\bd _\bt_\bh_\bi_\bs _\bp_\ba_\bg_\be
+
+
+
+
+ The RAND _\bM_\bH
+ Message Handling System:
+ User's Manual
+
+ UCI Version
+
+
+ November 30, 1993
+ 6.8.3 #1[UCI]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b1. _\bI_\bN_\bT_\bR_\bO_\bD_\bU_\bC_\bT_\bI_\bO_\bN
+
+
+
+
+
+ Although people can travel cross-country in hours and can reach
+ others by telephone in seconds, communications still depend heavily upon
+ paper, most of which is distributed through the mails.
+
+ There are several major reasons for this continued dependence on
+ written documents. First, a written document may be proofread and
+ corrected prior to its distribution, giving the author complete control
+ over his words. Thus, a written document is better than a telephone
+ conversation in this respect. Second, a carefully written document is
+ far less likely to be misinterpreted or poorly translated than a phone
+ conversation. Third, a signature offers reasonable verification of
+ authorship, which cannot be provided with media such as telegrams.
+
+ However, the need for fast\b\b\b\b____, accurate, and reproducible document
+ distribution is obvious. One solution in widespread use is the telefax.
+ Another that is rapidly gaining popularity is electronic mail. Elec-
+ tronic mail is similar to telefax in that the data to be sent are digi-
+ tized, transmitted via phone lines, and turned back into a document at
+ the receiver. The advantage of electronic mail is in its compression
+ factor. Whereas a telefax must scan a page in very fine lines and send
+ all of the black and white information, electronic mail assigns charac-
+ ters fixed codes which can be transmitted as a few bits of information.
+ Telefax presently has the advantage of being able to transmit an arbi-
+ trary page, including pictures, but electronic mail is beginning to deal
+ with this problem. Electronic mail also integrates well with current
+ directions in office automation, allowing documents prepared with
+ sophisticated equipment at one site to be quickly transferred and
+ printed at another site.
+
+ Currently, most electronic mail is intraorganizational, with mail
+ transfer remaining within one computer. As computer networking becomes
+ more common, however, it is becoming more feasible to communicate with
+ anyone whose computer can be linked to your own via a network.
+
+ The pioneering efforts on general-purpose electronic mail were by
+ organizations using the DoD ARPAnet[1]. The capability to send messages
+ between computers existed before the ARPAnet was developed, but it was
+ used only in limited ways. With the advent of the ARPAnet, tools began
+ to be developed which made it convenient for individuals or organiza-
+ tions to distribute messages over broad geographic areas, using diverse
+ computer facilities. The interest and activity in message systems has
+ now reached such proportions that steps have been taken within the DoD
+ to coordinate and unify the development of military message systems.
+ The use of electronic mail is expected to increase dramatically in the
+ next few years. The utility of such systems in the command and control
+ and intelligence environments is clear, and applications in these areas
+
+
+
+
+
+
+
+
+
+
+
+ -2-
+
+
+ will probably lead the way. As the costs for sending and handling elec-
+ tronic messages continue their rapid decrease, such uses can be expected
+ to spread rapidly into other areas and, of course, will not be limited
+ to the DoD.
+
+ A message system provides tools that help users (individuals or
+ organizations) deal with messages in various ways. Messages must be
+ composed, sent, received, stored, retrieved, forwarded, and replied to.
+ Today's best interactive computer systems provide a variety of word-
+ processing and information handling capabilities. The message handling
+ facilities should be well integrated with the rest of the system, so as
+ to be a graceful extension of overall system capability.
+
+ The message system described in this report, _\bM_\bH, provides most of
+ the features that can be found in other message systems and also incor-
+ porates some new ones. It has been built on the UNIX time-sharing sys-
+ tem[2], a popular operating system for the DEC PDP-11[1] and VAX-11
+ classes of computers. A "secure" operating system similar to UNIX is
+ currently being developed[3], and that system will also run _\bM_\bH.
+
+ This report provides a complete description of _\bM_\bH and thus may
+ serve as a user's manual, although parts of the report will be of
+ interest to non-users as well. Sections 2 and 3, the Overview and
+ Tutorial, present the key ideas of _\bM_\bH and will give those not familiar
+ with message systems an idea of what such systems are like.
+
+ _\bM_\bH consists of a set of commands which use some special files and
+ conventions. The final section is divided into three parts. The first
+ part covers the information a user needs to know in addition to the com-
+ mands. Then, each of the _\bM_\bH commands is described in detail. Finally,
+ other obscure details are revealed. A summary of the commands is given
+ in Appendix A, and the syntax of message sequences is given in Appendix
+ B.
+
+ A novel approach has been taken in the design of _\bM_\bH. Instead of
+ creating a large subsystem that appears as a single command to the user
+ (such as MS[4]), _\bM_\bH is a collection of separate commands which are run
+ as separate programs. The file and directory system of UNIX are used
+ directly. Messages are stored as individual files (datasets), and col-
+ lections of them are grouped into directories. In contrast, most other
+ message systems store messages in a complicated data structure within a
+ monolithic file. With the _\bM_\bH approach, UNIX commands can be interleaved
+ with commands invoking the functions of the message handler. Con-
+ versely, existing UNIX commands can be used in connection with messages.
+ For example, all the usual UNIX editing, text-formatting, and printing
+ facilities can be applied directly to individual messages. MH, there-
+ fore, consists of a relatively small amount of new code; it makes exten-
+ sive use of other UNIX software to provide the capabilities found in
+
+
+ [1] PDP and VAX are trademarks of Digital Equipment Corporation.
+
+
+
+
+
+
+
+
+
+
+
+
+ -3-
+
+
+ other message systems.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b2. _\bO_\bV_\bE_\bR_\bV_\bI_\bE_\bW
+
+
+
+
+
+ There are three main aspects of _\bM_\bH : the way messages are
+ stored (the message database), the user's profile (which directs how
+ certain actions of the message handler take place), and the commands for
+ dealing with messages.
+
+ Under _\bM_\bH, each message is stored as a separate file. A user can
+ take any action with a message that he could with an ordinary file in
+ UNIX. A UNIX directory in which messages are stored is called a folder.
+ Each folder contains some standard entries to support the message-
+ handling functions. The messages in a folder have numerical names.
+ These folders (directories) are entries in a particular directory path,
+ described in the user profile, through which _\bM_\bH can find message fold-
+ ers. Using the UNIX "link" facility, it is possible for one copy of a
+ message to be "filed" in more than one folder, providing a message index
+ facility. Also, using the UNIX tree-structured file system, it is pos-
+ sible to have a folder within a folder, nested arbitrarily deep, and
+ have the full power of the _\bM_\bH commands available.
+
+ Each user of _\bM_\bH has a user profile, a file in his $HOME (initial
+ login) directory called ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be. This profile contains several
+ pieces of information used by the _\bM_\bH commands: a path name to the direc-
+ tory that contains the message folders and parameters that tailor _\bM_\bH
+ commands to the individual user's requirements. There is also another
+ file, called the user context, which contains information concerning
+ which folder the user last referenced (the "current" folder). It also
+ contains most of the necessary state information concerning how the user
+ is dealing with his messages, enabling _\bM_\bH to be implemented as a set of
+ individual UNIX commands, in contrast to the usual approach of a monol-
+ ithic subsystem.
+
+ In _\bM_\bH, incoming mail is appended to the end of a file in a system
+ spooling area for the user. This area is called the mail drop direc-
+ tory, and the file is called the user's mail drop. Normally when the
+ user logins in, s/he is informed of new mail (or the _\bM_\bH program _\bm_\bs_\bg_\bc_\bh_\bk
+ may be run). The user adds the new messages to his/her collection of _\bM_\bH
+ messages by invoking the command _\bi_\bn_\bc. The _\bi_\bn_\bc (incorporate) command
+ adds the new messages to a folder called "inbox", assigning them names
+ which are consecutive integers starting with the next highest integer
+ available in inbox. _\bi_\bn_\bc also produces a _\bs_\bc_\ba_\bn summary of the messages
+ thus incorporated. A folder can be compacted into a single file, for
+ easy storage, by using the _\bp_\ba_\bc_\bk_\bf command. Also, messages within a
+ folder can be sorted by date and time with the _\bs_\bo_\br_\bt_\bm command.
+
+
+ There are four commands for examining the messages in a folder:
+ _\bs_\bh_\bo_\bw, _\bp_\br_\be_\bv, _\bn_\be_\bx_\bt, and _\bs_\bc_\ba_\bn. The _\bs_\bh_\bo_\bw command displays a message in a
+
+ -4-
+
+
+
+
+
+
+
+
+
+ -5-
+
+
+ folder, _\bp_\br_\be_\bv displays the message preceding the current message, and
+ _\bn_\be_\bx_\bt displays the message following the current message. _\bM_\bH lets the
+ user choose the program that displays individual messages. A special
+ program, _\bm_\bh_\bl, can be used to display messages according to the user's
+ preferences. The _\bs_\bc_\ba_\bn command summarizes the messages in a folder, nor-
+ mally producing one line per message, showing who the message is from,
+ the date, the subject, etc.
+
+ The user may move a message from one folder to another with the
+ command _\br_\be_\bf_\bi_\bl_\be. Messages may be removed from a folder by means of the
+ command _\br_\bm_\bm. In addition, a user may query what the current folder is
+ and may specify that a new folder become the current folder, through the
+ command _\bf_\bo_\bl_\bd_\be_\br. All folders may be summarized with the _\bf_\bo_\bl_\bd_\be_\br_\bs command.
+ A message folder (or subfolder) may be removed by means of the command
+ _\br_\bm_\bf.
+
+ A set of messages based on content may be selected by use of the
+ command _\bp_\bi_\bc_\bk. This command searches through messages in a folder and
+ selects those that match a given set of criteria. These messages are
+ then bound to a "sequence" name for use with other _\bM_\bH commands. The
+ _\bm_\ba_\br_\bk command manipulates these sequences.
+
+ There are five commands enabling the user to create new messages
+ and send them: _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, _\br_\be_\bp_\bl, and _\bs_\be_\bn_\bd. The _\bc_\bo_\bm_\bp command pro-
+ vides the facility for the user to compose a new message; _\bd_\bi_\bs_\bt redistri-
+ butes mail to additional addressees; _\bf_\bo_\br_\bw enables the user to forward
+ messages; and _\br_\be_\bp_\bl facilitates the generation of a reply to an incoming
+ message. The last three commands may optionally annotate the original
+ message. Messages may be arbitrarily annotated with the _\ba_\bn_\bn_\bo command.
+ Once a draft has been constructed by one of the four above composition
+ programs, a user-specifiable program is run to query the user as to the
+ disposition of the draft prior to sending. _\bM_\bH provides the simple _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw program to start users off. If a message is not sent directly by
+ one of these commands, it may be sent at a later time using the command
+ _\bs_\be_\bn_\bd. _\bM_\bH allows the use of any UNIX editor when composing a message.
+ For rapid entry, a special editor, _\bp_\br_\bo_\bm_\bp_\bt_\be_\br, is provided. For programs,
+ a special mail-sending program, _\bm_\bh_\bm_\ba_\bi_\bl, is provided.
+
+ _\bM_\bH supports a personal aliasing facility which gives users the
+ capability to considerably shorten address typein and use meaningful
+ names for addresses. The _\ba_\bl_\bi program can be used to query _\bM_\bH as to the
+ expansion of a list of aliases. After composing a message, but prior to
+ sending, the _\bw_\bh_\bo_\bm command can be used to determine exactly who a message
+ would go to.
+
+ _\bM_\bH provides a natural interface for telling the user's shell the
+ names of _\bM_\bH messages and folders. The _\bm_\bh_\bp_\ba_\bt_\bh program achieves this
+ capability.
+
+ Finally, _\bM_\bH supports the UCI BBoards facility. _\bb_\bb_\bc can be used to
+ query the status of a group of BBoards, while _\bm_\bs_\bh can be used to read
+ them. The _\bb_\bu_\br_\bs_\bt command can be used to "shred" digests of messages into
+
+
+
+
+
+
+
+
+
+
+
+ -6-
+
+
+ individual messages.
+
+ All of the elements summarized above are described in more detail
+ in the following sections. Many of the normal facilities of UNIX pro-
+ vide additional capabilities for dealing with messages in various ways.
+ For example, it is possible to print messages on the line-printer
+ without requiring any additional code within _\bM_\bH . Using standard UNIX
+ facilities, any terminal output can be redirected to a file for repeated
+ or future viewing. In general, the flexibility and capabilities of the
+ UNIX interface with the user are preserved as a result of the integra-
+ tion of _\bM_\bH into the UNIX structure.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b3. _\bT_\bU_\bT_\bO_\bR_\bI_\bA_\bL
+
+
+
+
+
+ This tutorial provides a brief introduction to the _\bM_\bH commands. It
+ should be sufficient to allow the user to read his mail, do some simple
+ manipulations of it, and create and send messages.
+
+ A message has two major pieces: the header and the body. The body
+ consists of the text of the message (whatever you care to type in). It
+ follows the header and is separated from it by an empty line. (When you
+ compose a message, the form that appears on your terminal shows a line
+ of dashes after the header. This is for convenience and is replaced by
+ an empty line when the message is sent.) The header is composed of
+ several components, including the subject of the message and the person
+ to whom it is addressed. Each component starts with a name and a colon;
+ components must not start with a blank. The text of the component may
+ take more than one line, but each continuation line must start with a
+ blank. Messages typically have "To:", "cc:", and "Subject:" components.
+ When composing a message, you should include the "To:" and "Subject:"
+ components; the "cc:" (for people you want to send copies to) is not
+ necessary.
+
+ The basic _\bM_\bH commands are _\bi_\bn_\bc, _\bs_\bc_\ba_\bn, _\bs_\bh_\bo_\bw, _\bn_\be_\bx_\bt, _\bp_\br_\be_\bv, _\br_\bm_\bm, _\bc_\bo_\bm_\bp,
+ and _\br_\be_\bp_\bl. These are described below.
+
+ _\bi_\bn_\bc
+
+ When you get the message "You have mail", type the command _\bi_\bn_\bc.
+ You will get a "scan listing" such as:
+
+ 7+ 7/13 Cas revival of measurement work
+ 8 10/ 9 Norm NBS people and publications
+ 9 11/26 To:norm question <<Are there any functions
+
+ This shows the messages you received since the last time you exe-
+ cuted this command (_\bi_\bn_\bc adds these new messages to your inbox folder).
+ You can see this list again, plus a list of any other messages you have,
+ by using the _\bs_\bc_\ba_\bn command.
+
+ _\bs_\bc_\ba_\bn
+
+ The scan listing shows the message number, followed by the date and
+ the sender. (If you are the sender, the addressee in the "To:" com-
+ ponent is displayed. You may send yourself a message by including your
+ name among the "To:" or "cc:" addressees.) It also shows the message's
+ subject; if the subject is short, the first part of the body of the mes-
+ sage is included after the characters <<.
+
+
+
+ -7-
+
+
+
+
+
+
+
+
+
+ -8-
+
+
+ _\bs_\bh_\bo_\bw
+
+ This command shows the current message, that is, the first one of
+ the new messages after an _\bi_\bn_\bc. If the message is not specified by name
+ (number), it is generally the last message referred to by an _\bM_\bH command.
+ For example,
+
+
+ _\bs_\bh_\bo_\bw 5 will show message 5.
+
+
+ You can use the show command to copy a message or print a message.
+
+
+ _\bs_\bh_\bo_\bw > _\bx will copy the message to file x.
+ _\bs_\bh_\bo_\bw | _\bl_\bp_\br will print the message, using the _\bl_\bp_\br command.
+ _\bn_\be_\bx_\bt will show the message that follows the current message.
+ _\bp_\br_\be_\bv will show the message previous to the current message.
+ _\br_\bm_\bm will remove the current message.
+ _\br_\bm_\bm _\b3 will remove message 3.
+
+
+ _\bc_\bo_\bm_\bp
+
+ The _\bc_\bo_\bm_\bp command puts you in the editor to write or edit a message.
+ Fill in or delete the "To:", "cc:", and "Subject:" fields, as appropri-
+ ate, and type the body of the message. Then exit normally from the edi-
+ tor. You will be asked "What now?". Type a carriage return to see the
+ options. Typing send will cause the message to be sent; typing quit
+ will cause an exit from _\bc_\bo_\bm_\bp, with the message draft saved.
+
+ If you quit without sending the message, it will be saved in a file
+ called <name>/Mail/draft (where <name> is your $HOME directory). You
+ can resume editing the message later with "comp -use"; or you can send
+ the message later, using the _\bs_\be_\bn_\bd command.
+
+ _\bc_\bo_\bm_\bp -_\be_\bd_\bi_\bt_\bo_\br _\bp_\br_\bo_\bm_\bp_\bt_\be_\br
+
+ This command uses a different editor and is useful for preparing
+ "quick and dirty" messages. It prompts you for each component of the
+ header. Type the information for that component, or type a carriage
+ return to omit the component. After that, type the body of the message.
+ Backspacing is the only form of editing allowed with this editor. When
+ the body is complete, type a carriage return followed by <EOT> (usually
+ <CTRL-D>). This completes the initial preparation of the message; from
+ then on, use the same procedures as with _\bc_\bo_\bm_\bp (above).
+
+ _\br_\be_\bp_\bl
+ _\br_\be_\bp_\bl n
+
+ This command makes up an initial message form with a header that is
+ appropriate for replying to an existing message. The message being
+
+
+
+
+
+
+
+
+
+
+
+ -9-
+
+
+ answered is the current message if no message number is mentioned, or n
+ if a number is specified. After the header is completed, you can finish
+ the message as in _\bc_\bo_\bm_\bp (above).
+
+ This is enough information to get you going using _\bM_\bH. There are
+ more commands, and the commands described here have more features. Sub-
+ sequent sections explain _\bM_\bH in complete detail. The system is quite
+ powerful if you want to use its sophisticated features, but the forego-
+ ing commands suffice for sending and receiving messages.
+
+ There are numerous additional capabilities you may wish to explore.
+ For example, the _\bp_\bi_\bc_\bk command will select a subset of messages based on
+ specified criteria such as sender and/or subject. Groups of messages
+ may be designated, as described in Sec. IV, under Message Naming. The
+ file ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be can be used to tailor your use of the message system to
+ your needs and preferences, as described in Sec. IV, under The User Pro-
+ file. In general, you may learn additional features of the system
+ selectively, according to your requirements, by studying the relevant
+ sections of this manual. There is no need to learn all the details of
+ the system at once.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b4. _\bD_\bE_\bT_\bA_\bI_\bL_\bE_\bD _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+
+
+
+
+ This section describes the _\bM_\bH system in detail, including the com-
+ ponents of the user profile, the conventions for message naming, and
+ some of the other _\bM_\bH conventions. Readers who are generally familiar
+ with computer systems will be able to follow the principal ideas,
+ although some details may be meaningful only to those familiar with
+ UNIX.
+
+
+ _\bT_\bH_\bE _\bU_\bS_\bE_\bR _\bP_\bR_\bO_\bF_\bI_\bL_\bE
+
+ The first time an _\bM_\bH command is issued by a new user, the system
+ prompts for a "Path" and creates an _\bM_\bH "profile".
+
+ Each _\bM_\bH user has a profile which contains tailoring information for
+ each individual program. Other profile entries control the _\bM_\bH path
+ (where folders and special files are kept), folder and message protec-
+ tions, editor selection, and default arguments for each _\bM_\bH program.
+ Each user of _\bM_\bH also has a context file which contains current state
+ information for the _\bM_\bH package (the location of the context file is kept
+ in the user's _\bM_\bH directory, or may be named in the user profile). When
+ a folder becomes the current folder, it is recorded in the user's con-
+ text. (Other state information is kept in the context file, see the
+ manual entry for _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be (5) for more details.) In general, the term
+ "profile entry" refer to entries in either the profile or context file.
+ Users of _\bM_\bH needn't worry about the distinction, _\bM_\bH handles these things
+ automatically.
+
+ The _\bM_\bH profile is stored in the file ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be in the user's
+ $HOME directory[1]. It has the format of a message without any body.
+ That is, each profile entry is on one line, with a keyword followed by a
+ colon (:) followed by text particular to the keyword.
+ => _\bT_\bh_\bi_\bs _\bf_\bi_\bl_\be _\bm_\bu_\bs_\bt _\bn_\bo_\bt _\bh_\ba_\bv_\be _\bb_\bl_\ba_\bn_\bk _\bl_\bi_\bn_\be_\bs.
+ The keywords may have any combination of upper and lower case. (See the
+ information of _\bm_\bh-_\bm_\ba_\bi_\bl later on in this manual for a description of mes-
+ sage formats.)
+
+ For the average _\bM_\bH user, the only profile entry of importance is
+ "Path". Path specifies a directory in which _\bM_\bH folders and certain
+ files such as "draft" are found. The argument to this keyword must be a
+ legal UNIX path that names an existing directory. If this path is not
+ absolute (i.e., does not begin with a / ), it will be presumed to start
+
+
+ [1] By defining the envariable $MH, you can specify an alternate pro-
+ file to be used by _\bM_\bH commands.
+
+
+ -10-
+
+
+
+
+
+
+
+
+
+ -11-
+
+
+ from the user's $HOME directory. All folder and message references
+ within _\bM_\bH will relate to this path unless full path names are used.
+
+ Message protection defaults to 644, and folder protection to 711.
+ These may be changed by profile entries "Msg-Protect" and "Folder-
+ Protect", respectively. The argument to these keywords is an octal
+ number which is used as the UNIX file mode[2].
+
+ When an _\bM_\bH program starts running, it looks through the user's pro-
+ file for an entry with a keyword matching the program's name. For exam-
+ ple, when _\bc_\bo_\bm_\bp is run, it looks for a "comp" profile entry. If one is
+ found, the text of the profile entry is used as the default switch set-
+ ting until all defaults are overridden by explicit switches passed to
+ the program as arguments. Thus the profile entry
+ "comp: -form standard.list" would direct _\bc_\bo_\bm_\bp to use the file
+ "standard.list" as the message skeleton. If an explicit form switch is
+ given to the _\bc_\bo_\bm_\bp command, it will override the switch obtained from the
+ profile.
+
+ In UNIX, a program may exist under several names, either by linking
+ or aliasing. The actual invocation name is used by an _\bM_\bH program when
+ scanning for its profile defaults[3]. Thus, each _\bM_\bH program may have
+ several names by which it can be invoked, and each name may have a dif-
+ ferent set of default switches. For example, if _\bc_\bo_\bm_\bp is invoked by the
+ name _\bi_\bc_\bo_\bm_\bp, the profile entry "icomp" will control the default switches
+ for this invocation of the _\bc_\bo_\bm_\bp program. This provides a powerful
+ definitional facility for commonly used switch settings.
+
+ The default editor for editing within _\bc_\bo_\bm_\bp, _\br_\be_\bp_\bl, _\bf_\bo_\br_\bw, and _\bd_\bi_\bs_\bt,
+ is usually _\bp_\br_\bo_\bm_\bp_\bt_\be_\br, but might be something else at your site, such as
+ /_\bu_\bs_\br/_\bu_\bc_\bb/_\be_\bx or /_\bb_\bi_\bn/_\be. A different editor may be used by specifying the
+ profile entry "Editor: ". The argument to "Editor" is the name of an
+ executable program or shell command file which can be found via the
+ user's $PATH defined search path, excluding the current directory. The
+ "Editor:" profile specification may in turn be overridden by a
+ `-editor <editor>' profile switch associated with _\bc_\bo_\bm_\bp, _\br_\be_\bp_\bl, _\bf_\bo_\br_\bw, or
+ _\bd_\bi_\bs_\bt. Finally, an explicit editor switch specified with any of these
+ four commands will have ultimate precedence.
+
+ During message composition, more than one editor may be used. For
+ example, one editor (such as _\bp_\br_\bo_\bm_\bp_\bt_\be_\br ) may be used initially, and a
+
+
+ [2] See _\bc_\bh_\bm_\bo_\bd (1) in the _\bU_\bN_\bI_\bX _\bP_\br_\bo_\bg_\br_\ba_\bm_\bm_\be_\br'_\bs _\bM_\ba_\bn_\bu_\ba_\bl [5].
+ [3] Unfortunately, the shell does not preserve aliasing information
+ when calling a program, hence if a program is invoked by an alias dif-
+ ferent than its name, the program will examine the profile entry for
+ it's name, not the alias that the user invoked it as. The correct solu-
+ tion is to create a (soft) link in your $_\bH_\bO_\bM_\bE/_\bb_\bi_\bn directory to the _\bM_\bH
+ program of your choice. By giving this link a different name, you can
+ use an alternate set of defaults for the command.
+
+
+
+
+
+
+
+
+
+
+
+
+ -12-
+
+
+ second editor may be invoked later to revise the message being composed
+ (see the discussion of _\bc_\bo_\bm_\bp in Section 5 for details). A profile entry
+ "<lasteditor>-next: <editor>" specifies the name of the editor to be
+ used after a particular editor. Thus "comp: -e prompter" causes the
+ initial text to be collected by _\bp_\br_\bo_\bm_\bp_\bt_\be_\br, and the profile entry
+ "prompter-next: ed" names ed as the editor to be invoked for the next
+ round of editing.
+
+ Some of the _\bM_\bH commands, such as _\bs_\bh_\bo_\bw, can be used on message fold-
+ ers owned by others, if those folders are readable. However, you cannot
+ write in someone else's folder. All the _\bM_\bH command actions not requir-
+ ing write permission may be used with a "read-only" folder.
+
+ Table 1 lists examples of some of the currently defined profile
+ entries, typical arguments, and the programs that reference the entries.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -13-
+
+
+ Table 1
+
+ PROFILE COMPONENTS
+ ______________________________________________________
+
+ _\bM_\bH Programs that
+ Keyword and Argument use Component\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b______________________________________________________
+
+ Path: Mail All
+ Current-Folder: inbox Most
+ Editor: /usr/ucb/ex _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, _\br_\be_\bp_\bl
+ Inbox: inbox _\bi_\bn_\bc, _\br_\bm_\bf
+ Msg-Protect: 644 _\bi_\bn_\bc
+ Folder-Protect: 711 _\bi_\bn_\bc, _\bp_\bi_\bc_\bk, _\br_\be_\bf_\bi_\bl_\be
+ <program>: default switches All
+ prompter-next: ed _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, _\br_\be_\bp_\bl
+ ______________________________________________________
+
+
+ Path should\b\b\b\b\b\b______ be present. Current-Folder is maintained automatically
+ by many _\bM_\bH commands (see the Context sections of the individual commands
+ in Sec. IV). All other entries are optional, defaulting to the values
+ described above.
+
+
+ _\bM_\bE_\bS_\bS_\bA_\bG_\bE _\bN_\bA_\bM_\bI_\bN_\bG
+
+ Messages may be referred to explicitly or implicitly when using _\bM_\bH
+ commands. A formal syntax of message names is given in Appendix B, but
+ the following description should be sufficient for most _\bM_\bH users. Some
+ details of message naming that apply only to certain commands are
+ included in the description of those commands.
+
+ Most of the _\bM_\bH commands accept arguments specifying one or more
+ folders, and one or more messages to operate on. The use of the word
+ "msg" as an argument to a command means that exactly one message name
+ may be specified. A message name may be a number, such as 1, 33, or
+ 234, or it may be one of the "reserved" message names: first, last,
+ prev, next, and cur. (As a shorthand, a period (.) is equivalent to
+ cur.) The meanings of these names are straightforward: "first" is the
+ first message in the folder; "last" is the last message in the folder;
+ "prev" is the message numerically previous to the current message;
+ "next" is the message numerically following the current message; "cur"
+ (or ".") is the current message in the folder. In addition, _\bM_\bH supports
+ user-defined-sequences; see the description of the _\bm_\ba_\br_\bk command for more
+ information.
+
+ The default in commands that take a "msg" argument is always "cur".
+
+ The word "msgs" indicates that several messages may be specified.
+ Such a specification consists of several message designations separated
+ by spaces. A message designation is either a message name or a message
+
+
+
+
+
+
+
+
+
+
+
+ -14-
+
+
+ range. A message range is a specification of the form name1-name2 or
+ name1:n, where name1 and name2 are message names and n is an integer.
+ The first form designates all the messages from name1 to name2
+ inclusive; this must be a non-empty range. The second form specifies up
+ to n messages, starting with name1 if name1 is a number, or first, cur,
+ or next, and ending with name1 if name1 is last or prev. This interpre-
+ tation of n is overridden if n is preceded by a plus sign or a minus
+ sign; +n always means up to n messages starting with name1, and -n
+ always means up to n messages ending with name1. Repeated specifica-
+ tions of the same message have the same effect as a single specification
+ of the message. Examples of specifications are:
+
+
+ 1 5 7-11 22
+ first 6 8 next
+ first-10
+ last:5
+
+
+ The message name "all" is a shorthand for "first-last", indicating
+ all of the messages in the folder.
+
+ In commands that accept "msgs" arguments, the default is either cur
+ or all, depending on which makes more sense.
+
+ In all of the _\bM_\bH commands, a plus sign preceding an argument indi-
+ cates a folder name. Thus, "+inbox" is the name of the user's standard
+ inbox. If an explicit folder argument is given to an _\bM_\bH command, it
+ will become the current folder (that is, the "Current-Folder:" entry in
+ the user's profile will be changed to this folder). In the case of the
+ _\br_\be_\bf_\bi_\bl_\be command, which can have multiple output folders, a new source
+ folder (other than the default current folder) is specified by
+ `-src +folder'.
+
+
+ _\bO_\bT_\bH_\bE_\bR _\bM_\bH _\bC_\bO_\bN_\bV_\bE_\bN_\bT_\bI_\bO_\bN_\bS
+
+ One very powerful feature of _\bM_\bH is that the _\bM_\bH commands may be
+ issued from any current directory, and the proper path to the appropri-
+ ate folder(s) will be taken from the user's profile. If the _\bM_\bH path is
+ not appropriate for a specific folder or file, the automatic prepending
+ of the _\bM_\bH path can be avoided by beginning a folder or file name with /,
+ or with ./ or ../ component. Thus any specific absolute path may be
+ specified along with any path relative to the current working directory.
+
+ Arguments to the various programs may be given in any order, with
+ the exception of a few switches whose arguments must follow immediately,
+ such as `-src +folder' for _\br_\be_\bf_\bi_\bl_\be.
+
+ Whenever an _\bM_\bH command prompts the user, the valid options will be
+ listed in response to a <RETURN>. (The first of the listed options is
+ the default if end-of-file is encountered, such as from a command file.)
+
+
+
+
+
+
+
+
+
+
+
+ -15-
+
+
+ A valid response is any _\bu_\bn_\bi_\bq_\bu_\be abbreviation of one of the listed
+ options.
+
+ Standard UNIX documentation conventions are used in this report to
+ describe _\bM_\bH command syntax. Arguments enclosed in brackets ([ ]) are
+ optional; exactly one of the arguments enclosed within braces ({ }) must
+ be specified, and all other arguments are required. The use of ellipsis
+ dots (...) indicates zero or more repetitions of the previous item. For
+ example, "+folder ..." would indicate that one or more "+folder" argu-
+ ments is required and "[+folder ...]" indicates that 0 or more "+folder"
+ arguments may be given.
+
+ _\bM_\bH departs from UNIX standards by using switches that consist of
+ more than one character, e.g. `-header'. To minimize typing, only a
+ unique abbreviation of a switch need be typed; thus, for `-header',
+ `-hea' is probably sufficient, depending on the other switches the com-
+ mand accepts. Each _\bM_\bH program accepts the switch `-help' (which must be
+ spelled out fully) and produces a syntax description and a list of
+ switches. In the list of switches, parentheses indicate required char-
+ acters. For example, all `-help' switches will appear as "-(help)",
+ indicating that no abbreviation is accepted. Furthermore, the `-help'
+ switch tells the version of the _\bM_\bH program you invoked.
+
+ Many _\bM_\bH switches have both on and off forms, such as `-format' and
+ `-noformat'. In many of the descriptions which follow, only one form is
+ defined; the other form, often used to nullify profile switch settings,
+ is assumed to be the opposite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -16-
+
+
+ _\bM_\bH _\bC_\bO_\bM_\bM_\bA_\bN_\bD_\bS
+
+ The _\bM_\bH package comprises several programs:
+
+ ali (1) - list mail aliases
+ anno (1) - annotate messages
+ bbc (1) - check on BBoards
+ bboards (1) - the UCI BBoards facility
+ burst (1) - explode digests into messages
+ comp (1) - compose a message
+ dist (1) - redistribute a message to additional addresses
+ folder (1) - set/list current folder/message
+ folders (1) - list all folders
+ forw (1) - forward messages
+ inc (1) - incorporate new mail
+ mark (1) - mark messages
+ mhl (1) - produce formatted listings of MH messages
+ mhmail (1) - send or read mail
+ mhook (1) - MH receive-mail hooks
+ mhparam (1) - print MH profile components
+ mhpath (1) - print full pathnames of MH messages and folders
+ msgchk (1) - check for messages
+ msh (1) - MH shell (and BBoard reader)
+ next (1) - show the next message
+ packf (1) - compress a folder into a single file
+ pick (1) - select messages by content
+ prev (1) - show the previous message
+ prompter (1) - prompting editor front end
+ rcvstore (1) - incorporate new mail asynchronously
+ refile (1) - file messages in other folders
+ repl (1) - reply to a message
+ rmf (1) - remove folder
+ rmm (1) - remove messages
+ scan (1) - produce a one line per message scan listing
+ send (1) - send a message
+ show (1) - show (list) messages
+ slocal (1) - special local mail delivery
+ sortm (1) - sort messages
+ vmh (1) - visual front-end to MH
+ whatnow (1) - prompting front-end for send
+ whom (1) - report to whom a message would go
+
+
+ These programs are described below. The form of the descriptions
+ conforms to the standard form for the description of UNIX commands.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ALI(1) -17- ALI(1)
+
+
+ _\bN_\bA_\bM_\bE
+ ali - list mail aliases
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ ali [-alias aliasfile] [-list] [-nolist] [-normalize]
+ [-nonormalize] [-user] [-nouser] aliases ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bA_\bl_\bi searches the named mail alias files for each of the given
+ _\ba_\bl_\bi_\ba_\bs_\be_\bs. It creates a list of addresses for those _\ba_\bl_\bi_\ba_\bs_\be_\bs, and
+ writes that list on standard output. If the `-list' option is
+ specified, each address appears on a separate line; otherwise, the
+ addresses are separated by commas and printed on as few lines as
+ possible.
+
+ The `-user' option directs _\ba_\bl_\bi to perform its processing in an
+ inverted fashion: instead of listing the addresses that each given
+ alias expands to, _\ba_\bl_\bi will list the aliases that expand to each
+ given address. If the `-normalize' switch is given, _\ba_\bl_\bi will try
+ to track down the official hostname of the address.
+
+ The files specified by the profile entry "Aliasfile:" and any addi-
+ tional alias files given by the `-alias aliasfile' switch will be
+ read. Each _\ba_\bl_\bi_\ba_\bs is processed as described in _\bm_\bh-_\ba_\bl_\bi_\ba_\bs (5).
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /etc/passwd List of users
+ /etc/group List of groups
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Aliasfile: For a default alias file
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-alias(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-alias /usr/local/lib/mh/MailAliases'
+ `-nolist'
+ `-nonormalize'
+ `-nouser'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ ALI(1) -18- ALI(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The `-user' option with `-nonormalize' is not entirely accurate, as
+ it does not replace local nicknames for hosts with their official
+ site names.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ ANNO(1) -19- ANNO(1)
+
+
+ _\bN_\bA_\bM_\bE
+ anno - annotate messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ anno [+folder] [msgs] [-component field] [-inplace] [-noinplace]
+ [-date] [-nodate] [-text body] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bA_\bn_\bn_\bo annotates the specified messages in the named folder using the
+ field and body. Annotation is optionally performed by _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw,
+ and _\br_\be_\bp_\bl, to keep track of your distribution of, forwarding of, and
+ replies to a message. By using _\ba_\bn_\bn_\bo, you can perform arbitrary
+ annotations of your own. Each message selected will be annotated
+ with the lines
+
+ field: date
+ field: body
+
+ The `-nodate' switch inhibits the date annotation, leaving only the
+ body annotation. The `-inplace' switch causes annotation to be
+ done in place in order to preserve links to the annotated message.
+
+ The field specified should be a valid 822-style message field name,
+ which means that it should consist of alphanumerics (or dashes)
+ only. The body specified is arbitrary text.
+
+ If a `-component field' is not specified when _\ba_\bn_\bn_\bo is invoked, _\ba_\bn_\bn_\bo
+ will prompt the user for the name of field for the annotation.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ dist (1), forw (1), repl (1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-noinplace'
+ `-date'
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ ANNO(1) -20- ANNO(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The first
+ message annotated will become the current message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBC(1) -21- BBC(1)
+
+
+ _\bN_\bA_\bM_\bE
+ bbc - check on BBoards
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ bbc [bboards ...] [-topics] [-check] [-read] [-quiet] [-verbose]
+ [-archive] [-noarchive] [-protocol] [-noprotocol]
+ [-mshproc program] [switches for _\bm_\bs_\bh_\bp_\br_\bo_\bc] [-rcfile rcfile]
+ [-norcfile] [-file BBoardsfile] [-user BBoardsuser] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bb_\bb_\bc is a BBoard reading/checking program that interfaces to the
+ BBoard channel.
+
+ The _\bb_\bb_\bc program has three action switches which direct its opera-
+ tion:
+
+ The `-read' switch invokes the _\bm_\bs_\bh program on the named _\bB_\bB_\bo_\ba_\br_\bd_\bs.
+ If you also specify the `-archive' switch, then _\bb_\bb_\bc will invoke
+ the _\bm_\bs_\bh program on the archives of the named _\bB_\bB_\bo_\ba_\br_\bd_\bs. If no
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs are given on the command line, and you specified
+ `-archive', _\bb_\bb_\bc will not read your `bboards' profile entry, but
+ will read the archives of the "system" _\bB_\bB_\bo_\ba_\br_\bd instead.
+
+ The `-check' switch types out status information for the named
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs. _\bb_\bb_\bc can print one of several messages depending on the
+ status of both the BBoard and the user's reading habits. As with
+ each of these messages, the number given is the item number of the
+ last item placed in the BBoard. This number (which is marked in
+ the messages as the "BBoard-Id") is ever increasing. Hence, when
+ _\bb_\bb_\bc says "n items", it really means that the highest BBoard-Id is
+ "n". There may, or may not actually be "n" items in the BBoard.
+ Some common messages are:
+
+ BBoard -- n items unseen
+ This message tells how many items the user has not yet
+ seen. When invoked with the `-quiet' switch, this is the
+ only informative line that _\bb_\bb_\bc will possibly print out.
+
+ BBoard -- empty
+ The BBoard is empty.
+
+ BBoard -- n items (none seen)
+ The BBoard has items in it, but the user hasn't seen any.
+
+ BBoard -- n items (all seen)
+ The BBoard is non-empty, and the user has seen everything
+ in it.
+
+ BBoard -- n items seen out of m
+ The BBoard has at most m-n items that the user has not
+ seen.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBC(1) -22- BBC(1)
+
+
+ The `-topics' switch directs _\bb_\bb_\bc to print three items about the
+ named _\bB_\bB_\bo_\ba_\br_\bd_\bs: it's official name, the number of items present, and
+ the date and time of the last update. If no _\bB_\bB_\bo_\ba_\br_\bd_\bs are named,
+ then all BBoards are listed. If the `-verbose' switch is given,
+ more information is output.
+
+ The `-quiet' switch specifies that _\bb_\bb_\bc should be silent if no
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs are found with new information. The `-verbose' switch
+ specifies that _\bb_\bb_\bc is to consider you to be interested in _\bB_\bB_\bo_\ba_\br_\bd_\bs
+ that you've already seen everything in.
+
+ To override the default _\bm_\bs_\bh_\bp_\br_\bo_\bc and the profile entry, use the
+ `-mshproc program' switch. Any arguments not understood by _\bb_\bb_\bc are
+ passed to this program. The `-protocol' switch tells _\bb_\bb_\bc that your
+ _\bm_\bs_\bh_\bp_\br_\bo_\bc knows about the special _\bb_\bb_\bc protocol for reporting back
+ information. _\bm_\bs_\bh (1), the default _\bm_\bs_\bh_\bp_\br_\bo_\bc, knows all about this.
+
+ The `-file BBoardsfile' switch tells _\bb_\bb_\bc to use a non-standard
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs file when performing its calculations. Similarly, the
+ `-user BBoardsuser' switch tells _\bb_\bb_\bc to use a non-standard user-
+ name. Both of these switches are useful for debugging a new
+ _\bB_\bB_\bo_\ba_\br_\bd_\bs or _\bP_\bO_\bP file.
+
+ The ._\bb_\bb_\br_\bc file in the user's $HOME directory is used to keep track
+ of what messages have been read. The `-rcfile rcfile' switch over-
+ rides the use of ._\bb_\bb_\br_\bc for this purpose. If the value given to the
+ switch is not absolute, (i.e., does not begin with a / ), it will
+ be presumed to start from the current working directory. If this
+ switch is not given (or the `-norcfile' switch is given), then _\bb_\bb_\bc
+ consults the envariable $MHBBRC, and honors it similarly.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ $HOME/.bbrc BBoard "current" message information
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ bboards: To specify interesting BBoards
+ mshproc: Program to read a given BBoard
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbl(1), bboards(1), msh(1)
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBC(1) -23- BBC(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-read'
+ `-noarchive'
+ `-protocol'
+ `bboards' defaults to "system"
+ `-file /usr/spool/bboards/BBoards'
+ `-user bboards'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The `-user' switch takes effect only if followed by the `-file'
+ switch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBOARDS(1) -24- BBOARDS(1)
+
+
+ _\bN_\bA_\bM_\bE
+ bboards - the UCI BBoards facility
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ bbc [-check] [-read] bboards ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The home directory of _\bb_\bb_\bo_\ba_\br_\bd_\bs is where the BBoard system is kept.
+ This documentation describes some of the nuances of the BBoard sys-
+ tem.
+
+ BBoards, BBoard-IDs
+ A BBoard is just a file containing a group of messages relat-
+ ing to the same topic. These files live in the ~bboards home
+ directory. Each message in a BBoard file has in its header
+ the line "BBoard-Id: n", where "n" is an ascending decimal
+ number. This id-number is unique for each message in a
+ BBoards file. It should NOT be confused with the message
+ number of a message, which can change as messages are removed
+ from the BBoard.
+
+ BBoard Handling
+ To read BBoards, use the _\bb_\bb_\bc and _\bm_\bs_\bh programs. The _\bm_\bs_\bh com-
+ mand is a monolithic program which contains all the func-
+ tionality of _\bM_\bH in a single program. The `-check' switch to
+ _\bb_\bb_\bc lets you check on the status of BBoards, and the `-read'
+ switch tells _\bb_\bb_\bc to invoke _\bm_\bs_\bh to read those BBoards.
+
+ Creating a BBoard
+ Both public, and private BBoards are supported. Contact the
+ mail address _\bP_\bo_\bs_\bt_\bM_\ba_\bs_\bt_\be_\br if you'd like to have a BBoard
+ created.
+
+ BBoard addresses
+ Each BBoard has associated with it 4 addresses, these are (for
+ the ficticious BBoard called ``hacks''):
+ hacks : The Internet wide distribution list.
+ dist-hacks : The local BBoard.
+ hacks-request : The people responsible for the BBoard at the
+ Internet level.
+ local-hacks-request : The people responsible for the BBoard
+ locally.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ $HOME/.bbrc BBoard information
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BBOARDS(1) -25- BBOARDS(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ bboards: To specify interesting BBoards
+ mshproc: Program to read a given BBoard
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbc(1), bbl(1), bbleader(1), msh(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ The default bboard is "system"
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BURST(1) -26- BURST(1)
+
+
+ _\bN_\bA_\bM_\bE
+ burst - explode digests into messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ burst [+folder] [msgs] [-inplace] [-noinplace] [-quiet] [-noquiet]
+ [-verbose] [-noverbose] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bB_\bu_\br_\bs_\bt considers the specified messages in the named folder to be
+ Internet digests, and explodes them in that folder.
+
+ If `-inplace' is given, each digest is replaced by the "table of
+ contents" for the digest (the original digest is removed). _\bB_\bu_\br_\bs_\bt
+ then renumbers all of the messages following the digest in the
+ folder to make room for each of the messages contained within the
+ digest. These messages are placed immediately after the digest.
+
+ If `-noinplace' is given, each digest is preserved, no table of
+ contents is produced, and the messages contained within the digest
+ are placed at the end of the folder. Other messages are not tam-
+ pered with in any way.
+
+ The `-quiet' switch directs _\bb_\bu_\br_\bs_\bt to be silent about reporting mes-
+ sages that are not in digest format.
+
+ The `-verbose' switch directs _\bb_\bu_\br_\bs_\bt to tell the user the general
+ actions that it is taking to explode the digest.
+
+ It turns out that _\bb_\bu_\br_\bs_\bt works equally well on forwarded messages
+ and blind-carbon-copies as on Internet digests, provided that the
+ former two were generated by _\bf_\bo_\br_\bw or _\bs_\be_\bn_\bd.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Msg-Protect: To set mode when creating a new message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bE_\bn_\bc_\ba_\bp_\bs_\bu_\bl_\ba_\bt_\bi_\bo_\bn (aka RFC-934),
+ inc(1), msh(1), pack(1)
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ BURST(1) -27- BURST(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-noinplace'
+ `-noquiet'
+ `-noverbose'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. If `-in-
+ place' is given, then the first message burst becomes the current
+ message. This leaves the context ready for a _\bs_\bh_\bo_\bw of the table of
+ contents of the digest, and a _\bn_\be_\bx_\bt to see the first message of the
+ digest. If `-noinplace' is given, then the first message extracted
+ from the first digest burst becomes the current message. This
+ leaves the context in a similar, but not identical, state to the
+ context achieved when using `-inplace'.
+
+
+ _\bB_\bu_\bg_\bs
+ The _\bb_\bu_\br_\bs_\bt program enforces a limit on the number of messages which
+ may be _\bb_\bu_\br_\bs_\bt from a single message. This number is on the order of
+ 1000 messages. There is usually no limit on the number of messages
+ which may reside in the folder after the _\bb_\bu_\br_\bs_\bting.
+
+ Although _\bb_\bu_\br_\bs_\bt uses a sophisticated algorithm to determine where
+ one encapsulated message ends and another begins, not all digesti-
+ fying programs use an encapsulation algorithm. In degenerate
+ cases, this usually results in _\bb_\bu_\br_\bs_\bt finding an encapsulation boun-
+ dary prematurely and splitting a single encapsulated message into
+ two or more messages. These erroneous digestifying programs should
+ be fixed.
+
+ Furthermore, any text which appears after the last encapsulated
+ message is not placed in a seperate message by _\bb_\bu_\br_\bs_\bt. In the case
+ of digestified messages, this text is usally an "End of digest"
+ string. As a result of this possibly un-friendly behavior on the
+ part of _\bb_\bu_\br_\bs_\bt, note that when the `-inplace' option is used, this
+ trailing information is lost. In practice, this is not a problem
+ since correspondents usually place remarks in text prior to the
+ first encapsulated message, and this information is not lost.
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ COMP(1) -28- COMP(1)
+
+
+ _\bN_\bA_\bM_\bE
+ comp - compose a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ comp [+folder] [msg] [-draftfolder +folder] [-draftmessage msg]
+ [-nodraftfolder] [-editor editor] [-noedit] [-file file]
+ [-form formfile] [-use] [-nouse] [-whatnowproc program]
+ [-nowhatnowproc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bC_\bo_\bm_\bp is used to create a new message to be mailed. It copies a
+ message form to the draft being composed and then invokes an editor
+ on the draft (unless `-noedit' is given, in which case the initial
+ edit is suppressed).
+
+ The default message form contains the following elements:
+
+ To:
+ cc:
+ Subject:
+ --------
+
+ If the file named "components" exists in the user's MH directory,
+ it will be used instead of this form. The file specified by
+ `-form formfile' will be used if given. You may also start _\bc_\bo_\bm_\bp
+ using the contents of an existing message as the form. If you sup-
+ ply either a `+folder' or `msg' argument, that message will be used
+ as the form. You may not supply both a `-form formfile' and a
+ `+folder' or `msg' argument. The line of dashes or a blank line
+ must be left between the header and the body of the message for the
+ message to be identified properly when it is sent (see _\bs_\be_\bn_\bd (1)).
+ The switch `-use' directs _\bc_\bo_\bm_\bp to continue editing an already
+ started message. That is, if a _\bc_\bo_\bm_\bp (or _\bd_\bi_\bs_\bt, _\br_\be_\bp_\bl, or _\bf_\bo_\br_\bw ) is
+ terminated without sending the draft, the draft can be edited again
+ via "comp -use".
+
+ If the draft already exists, _\bc_\bo_\bm_\bp will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\bc_\bo_\bm_\bp, leaving the
+ draft intact; replace will replace the existing draft with the
+ appropriate form; list will display the draft; use will use the
+ draft for further composition; and refile +folder will file the
+ draft in the given folder, and give you a new draft with the
+ appropriate form. (The `+folder' argument to refile is required.)
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ The `-file file' switch says to use the named file as the message
+ draft.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ COMP(1) -29- COMP(1)
+
+
+ The `-editor editor' switch indicates the editor to use for the
+ initial edit. Upon exiting from the editor, _\bc_\bo_\bm_\bp will invoke the
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available
+ options. The invocation of this program can be inhibited by using
+ the `-nowhatnowproc' switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw
+ program which starts the initial edit. Hence, `-nowhatnowproc'
+ will prevent any edit from occurring.)
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/components The message skeleton
+ or <mh-dir>/components Rather than the standard skeleton
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ Msg-Protect: To set mode when creating a new message
+ (draft)
+ fileproc: Program to refile the message
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ dist(1), forw(1), repl(1), send(1), whatnow(1), mh-profile(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to the current message
+ `-nodraftfolder'
+ `-nouse'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bc_\bo_\bm_\bp uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\bc_\bo_\bm_\bp won't run
+ it.
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ DIST(1) -30- DIST(1)
+
+
+ _\bN_\bA_\bM_\bE
+ dist - redistribute a message to additional addresses
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ dist [+folder] [msg] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-form formfile] [-inplace]
+ [-noinplace] [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bD_\bi_\bs_\bt is similar to _\bf_\bo_\br_\bw. It prepares the specified message for
+ redistribution to addresses that (presumably) are not on the origi-
+ nal address list.
+
+ The default message form contains the following elements:
+
+ Resent-To:
+ Resent-cc:
+
+ If the file named "distcomps" exists in the user's MH directory, it
+ will be used instead of this form. In either case, the file speci-
+ fied by `-form formfile' will be used if given. The form used will
+ be prepended to the message being resent.
+
+ If the draft already exists, _\bd_\bi_\bs_\bt will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\bd_\bi_\bs_\bt, leaving the
+ draft intact; replace will replace the existing draft with a blank
+ skeleton; and list will display the draft.
+
+ Only those addresses in "Resent-To:", "Resent-cc:", and
+ "Resent-Bcc:" will be sent. Also, a "Resent-Fcc: folder" will be
+ honored (see _\bs_\be_\bn_\bd (1)). Note that with _\bd_\bi_\bs_\bt, the draft should con-
+ tain only "Resent-xxx:" fields and no body. The headers and the
+ body of the original message are copied to the draft when the mes-
+ sage is sent. Use care in constructing the headers for the redis-
+ tribution.
+
+ If the `-annotate' switch is given, the message being distributed
+ will be annotated with the lines:
+
+ Resent: date
+ Resent: addrs
+
+ where each address list contains as many lines as required. This
+ annotation will be done only if the message is sent directly from
+ _\bd_\bi_\bs_\bt. If the message is not sent immediately from _\bd_\bi_\bs_\bt, "comp
+ -use" may be used to re-edit and send the constructed message, but
+ the annotations won't take place. The '-inplace' switch causes
+ annotation to be done in place in order to preserve links to the
+ annotated message.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ DIST(1) -31- DIST(1)
+
+
+ See _\bc_\bo_\bm_\bp (1) for a description of the `-editor' and `-noedit'
+ switches. Note that while in the editor, the message being resent
+ is available through a link named "@" (assuming the default _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw_\bp_\br_\bo_\bc ). In addition, the actual pathname of the message is
+ stored in the envariable $editalt, and the pathname of the folder
+ containing the message is stored in the envariable $mhfolder.
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ Upon exiting from the editor, _\bd_\bi_\bs_\bt will invoke the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available options. The invoca-
+ tion of this program can be inhibited by using the `-nowhatnowproc'
+ switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program which starts
+ the initial edit. Hence, `-nowhatnowproc' will prevent any edit
+ from occurring.)
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/distcomps The message skeleton
+ or <mh-dir>/distcomps Rather than the standard skeleton
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ fileproc: Program to refile the message
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), forw(1), repl(1), send(1), whatnow(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to cur
+ `-noannotate'
+ `-nodraftfolder'
+ `-noinplace'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The mes-
+ sage distributed will become the current message.
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ DIST(1) -32- DIST(1)
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ _\bD_\bi_\bs_\bt originally used headers of the form "Distribute-xxx:" instead
+ of "Resent-xxx:". In order to conform with the ARPA Internet stan-
+ dard, RFC-822, the "Resent-xxx:" form is now used. _\bD_\bi_\bs_\bt will
+ recognize "Distribute-xxx:" type headers and automatically convert
+ them to "Resent-xxx:".
+
+
+ _\bB_\bu_\bg_\bs
+ _\bD_\bi_\bs_\bt does not _\br_\bi_\bg_\bo_\br_\bo_\bu_\bs_\bl_\by check the message being distributed for
+ adherence to the transport standard, but _\bp_\bo_\bs_\bt called by _\bs_\be_\bn_\bd does.
+ The _\bp_\bo_\bs_\bt program will balk (and rightly so) at poorly formatted
+ messages, and _\bd_\bi_\bs_\bt won't correct things for you.
+
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bd_\bi_\bs_\bt uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\bd_\bi_\bs_\bt won't run
+ it.
+
+ If your current working directory is not writable, the link named
+ "@" is not available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -33- FOLDER(1)
+
+
+ _\bN_\bA_\bM_\bE
+ folder, folders - set/list current folder/message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ folder [+folder] [msg] [-all] [-create] [-nocreate] [-print]
+ [-fast] [-nofast] [-header] [-noheader] [-recurse]
+ [-norecurse] [-total] [-nototal] [-list] [-nolist] [-push]
+ [-pop] [-pack] [-nopack] [-verbose] [-noverbose] [-help]
+
+ folders
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Since the _\bM_\bH environment is the shell, it is easy to lose track of
+ the current folder from day to day. When _\bf_\bo_\bl_\bd_\be_\br is given the
+ `-print' switch (the default), _\bf_\bo_\bl_\bd_\be_\br will list the current folder,
+ the number of messages in it, the range of the messages (low-high),
+ and the current message within the folder, and will flag extra
+ files if they exist. An example of this summary is:
+
+ inbox+ has 16 messages ( 3- 22); cur= 5.
+
+ If a `+folder' and/or `msg' are specified, they will become the
+ current folder and/or message. By comparison, when a `+folder'
+ argument is given, this corresponds to a "cd" operation in the
+ _\bs_\bh_\be_\bl_\bl; when no `+folder' argument is given, this corresponds
+ roughly to a "pwd" operation in the _\bs_\bh_\be_\bl_\bl.
+
+ If the specified (or default) folder doesn't exist, the default
+ action is to query the user as to whether the folder should be
+ created; when standard input is not a tty, the answer to the query
+ is assumed to be "yes".
+
+ Specifying `-create' will cause _\bf_\bo_\bl_\bd_\be_\br to create new folders
+ without any query. (This is the easy way to create an empty folder
+ for use later.) Specifying `-nocreate' will cause _\bf_\bo_\bl_\bd_\be_\br to exit
+ without creating a non-existant folder.
+
+ _\bM_\bu_\bl_\bt_\bi_\bp_\bl_\be _\bF_\bo_\bl_\bd_\be_\br_\bs
+
+ Specifying `-all' will produce a summary line for each top-level
+ folder in the user's MH directory, sorted alphabetically. (If
+ _\bf_\bo_\bl_\bd_\be_\br is invoked by a name ending with "s" (e.g., _\bf_\bo_\bl_\bd_\be_\br_\bs ),
+ `-all' is assumed). Specifying `-recurse' with `-all' will also
+ produce a line for all sub-folders. These folders are all preceded
+ by the read-only folders, which occur as "atr-cur-" entries in the
+ user's _\bM_\bH context. For example,
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -34- FOLDER(1)
+
+
+ Folder # of messages ( range ) cur msg (other files)
+ /fsd/rs/m/tacc has 35 messages ( 1- 35); cur= 23.
+ /rnd/phyl/Mail/EP has 82 messages ( 1-108); cur= 82.
+ ff has no messages.
+ inbox+ has 16 messages ( 3- 22); cur= 5.
+ mh has 76 messages ( 1- 76); cur= 70.
+ notes has 2 messages ( 1- 2); cur= 1.
+ ucom has 124 messages ( 1-124); cur= 6; (others).
+ TOTAL= 339 messages in 7 folders
+
+ The "+" after inbox indicates that it is the current folder. The
+ "(others)" indicates that the folder `ucom' has files which aren't
+ messages. These files may either be sub-folders, or files that
+ don't belong under the MH file naming scheme.
+
+ The header is output if either a `-all' or a `-header' switch is
+ specified; it is suppressed by `-noheader'. A `-total' switch will
+ produce only the summary line.
+
+ If `-fast' is given, only the folder name (or names in the case of
+ `-all') will be listed. (This is faster because the folders need
+ not be read.)
+
+ If a `+folder' is given along with the `-all' switch, _\bf_\bo_\bl_\bd_\be_\br will,
+ in addition to setting the current folder, list the top-level fold-
+ ers for the current folder (with `-norecurse') or list all sub-
+ folders under the current folder recursively (with `-recurse'). In
+ this case, if a `msg' is also supplied, it will become the current
+ message of `+folder'.
+
+ The `-recurse' switch lists each folder recursively, so use of this
+ option effectively defeats the speed enhancement of the `-fast'
+ option, since each folder must be searched for subfolders.
+ Nevertheless, the combination of these options is useful.
+
+
+ _\bC_\bo_\bm_\bp_\ba_\bc_\bt_\bi_\bn_\bg _\ba _\bF_\bo_\bl_\bd_\be_\br
+
+ The `-pack' switch will compress the message names in the desig-
+ nated folders, removing holes in message numbering. The `-verbose'
+ switch directs _\bf_\bo_\bl_\bd_\be_\br to tell the user the general actions that it
+ is taking to compress the folder.
+
+
+ _\bT_\bh_\be _\bF_\bo_\bl_\bd_\be_\br _\bS_\bt_\ba_\bc_\bk
+
+ The `-push' switch directs _\bf_\bo_\bl_\bd_\be_\br to push the current folder onto
+ the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk, and make the `+folder' argument the current
+ folder. If `+folder' is not given, the current folder and the top
+ of the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk are exchanged. This corresponds to the "pushd"
+ operation in the _\bC_\bS_\bh_\be_\bl_\bl.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -35- FOLDER(1)
+
+
+ The `-pop' switch directs _\bf_\bo_\bl_\bd_\be_\br to discard the top of the
+ _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk, after setting the current folder to that value. No
+ `+folder' argument is allowed. This corresponds to the "popd"
+ operation in the _\bC_\bS_\bh_\be_\bl_\bl. The `-push' switch and the `-pop' switch
+ are mutually exclusive: the last occurrence of either one overrides
+ any previous occurrence of the other. Both of these switches also
+ set `-list' by default.
+
+ The `-list' switch directs _\bf_\bo_\bl_\bd_\be_\br to list the contents of the
+ _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk. No `+folder' argument is allowed. After a success-
+ ful `-push' or `-pop', the `-list' action is taken, unless a `-nol-
+ ist' switch follows them on the command line. This corresponds to
+ the "dirs" operation in the _\bC_\bS_\bh_\be_\bl_\bl. The `-push', `-pop', and
+ `-list' switches turn off `-print'.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Folder-Protect: To set mode when creating a new folder
+ Folder-Stack: To determine the folder stack
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ refile(1), mhpath(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to none
+ `-nofast'
+ `-noheader'
+ `-nototal'
+ `-nopack'
+ `-norecurse'
+ `-noverbose'
+ `-print' is the default if no `-list', `-push', or `-pop' is specified
+ `-list' is the default if `-push', or `-pop' is specified
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If `+folder' and/or `msg' are given, they will become the current
+ folder and/or message.
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FOLDER(1) -36- FOLDER(1)
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous versions of _\bM_\bH, the `-fast' switch prevented context
+ changes from occurring for the current folder. This is no longer
+ the case: if `+folder' is given, then _\bf_\bo_\bl_\bd_\be_\br will always change the
+ current folder to that.
+
+
+ _\bB_\bu_\bg_\bs
+ `-all' forces `-header' and `-total'.
+
+ There is no way to restore the default behavior (to ask the user
+ whether to create a non-existant folder) after `-create' or `-no-
+ create' is given.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -37- FORW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ forw - forward messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ forw [+folder] [msgs] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-filter filterfile]
+ [-form formfile] [-format] [-noformat] [-inplace] [-noinplace]
+ [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ forw [+folder] [msgs] [-digest list] [-issue number]
+ [-volume number] [other switches for _\bf_\bo_\br_\bw] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bF_\bo_\br_\bw may be used to prepare a message containing other messages.
+ It constructs the new message from the components file or
+ `-form formfile' (see _\bc_\bo_\bm_\bp ), with a body composed of the
+ message(s) to be forwarded. An editor is invoked as in _\bc_\bo_\bm_\bp, and
+ after editing is complete, the user is prompted before the message
+ is sent.
+
+ The default message form contains the following elements:
+
+ To:
+ cc:
+ Subject:
+ --------
+
+ If the file named "forwcomps" exists in the user's MH directory, it
+ will be used instead of this form. In either case, the file speci-
+ fied by `-form formfile' will be used if given.
+
+ If the draft already exists, _\bf_\bo_\br_\bw will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\bf_\bo_\br_\bw, leaving the
+ draft intact; replace will replace the existing draft with a blank
+ skeleton; and list will display the draft.
+
+ If the `-annotate' switch is given, each message being forwarded
+ will be annotated with the lines
+
+ Forwarded: date
+ Forwarded: addrs
+
+ where each address list contains as many lines as required. This
+ annotation will be done only if the message is sent directly from
+ _\bf_\bo_\br_\bw. If the message is not sent immediately from _\bf_\bo_\br_\bw,
+ "comp -use" may be used to re-edit and send the constructed mes-
+ sage, but the annotations won't take place. The '-inplace' switch
+ causes annotation to be done in place in order to preserve links to
+ the annotated message.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -38- FORW(1)
+
+
+ See _\bc_\bo_\bm_\bp (1) for a description of the `-editor' and `-noedit'
+ switches.
+
+ Although _\bf_\bo_\br_\bw uses the `-form formfile' switch to direct it how to
+ construct the beginning of the draft, the `-filter filterfile',
+ `-format', and `-noformat' switches direct _\bf_\bo_\br_\bw as to how each for-
+ warded message should be formatted in the body of the draft. If
+ `-noformat' is specified, then each forwarded message is output
+ exactly as it appears. If `-format' or `-filter filterfile' is
+ specified, then each forwarded message is filtered (re-formatted)
+ prior to being output to the body of the draft. The filter file
+ for _\bf_\bo_\br_\bw should be a standard form file for _\bm_\bh_\bl, as _\bf_\bo_\br_\bw will
+ invoke _\bm_\bh_\bl to format the forwarded messages. The default message
+ filter (what you get with `-format') is:
+
+ width=80,overflowtext=,overflowoffset=10
+ leftadjust,compress,compwidth=9
+ Date:formatfield="%<(nodate{text})%{text}%|%(tws{text})%>"
+ From:
+ To:
+ cc:
+ Subject:
+ :
+ body:nocomponent,overflowoffset=0,noleftadjust,nocompress
+
+ If the file named "mhl.forward" exists in the user's MH directory,
+ it will be used instead of this form. In either case, the file
+ specified by `-filter filterfile' will be used if given. To sum-
+ marize: `-noformat' will reproduce each forwarded message exactly,
+ `-format' will use _\bm_\bh_\bl and a default filterfile, "mhl.forward", to
+ format each forwarded message, and `-filter filterfile' will use
+ the named filterfile to format each forwarded message with _\bm_\bh_\bl.
+
+ Each forwarded message is separated with an encapsulation delimiter
+ and dashes in the first column of the forwarded messages will be
+ prepended with `- ' so that when received, the message is suitable
+ for bursting by _\bb_\bu_\br_\bs_\bt (1). This follows the Internet RFC-934
+ guidelines.
+
+ For users of _\bp_\br_\bo_\bm_\bp_\bt_\be_\br (1), by specifying prompter's `-prepend'
+ switch in the .mh_profile file, any commentary text is entered
+ before the forwarded messages. (A major win!)
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ Upon exiting from the editor, _\bf_\bo_\br_\bw will invoke the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available options. The invoca-
+ tion of this program can be inhibited by using the `-nowhatnowproc'
+ switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program which starts
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -39- FORW(1)
+
+
+ the initial edit. Hence, `-nowhatnowproc' will prevent any edit
+ from occurring.)
+
+ The `-digest list', `-issue number', and `-volume number' switches
+ implement a digest facility for _\bM_\bH. Specifying these switches
+ enables and/or overloads the following escapes:
+
+ _\bT_\by_\bp_\be _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt _\bd_\bi_\bg_\be_\bs_\bt string Argument to `-digest'
+ _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bc_\bu_\br integer Argument to `-volume'
+ _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bm_\bs_\bg integer Argument to `-issue'
+
+ Consult the Advanced Features section of the _\bM_\bH User's Manual for
+ more information on making digests.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/forwcomps The message skeleton
+ or <mh-dir>/forwcomps Rather than the standard skeleton
+ /usr/local/lib/mh/digestcomps The message skeleton if `-digest' is given
+ or <mh-dir>/digestcomps Rather than the standard skeleton
+ /usr/local/lib/mh/mhl.forward The message filter
+ or <mh-dir>/mhl.forward Rather than the standard filter
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ Msg-Protect: To set mode when creating a new message
+ (draft)
+ fileproc: Program to refile the message
+ mhlproc: Program to filter messages being forwarded
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bE_\bn_\bc_\ba_\bp_\bs_\bu_\bl_\ba_\bt_\bi_\bo_\bn (aka RFC-934),
+ comp(1), dist(1), repl(1), send(1), whatnow(1), mh-format(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-noannotate'
+ `-nodraftfolder'
+ `-noformat'
+ `-noinplace'
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FORW(1) -40- FORW(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The first
+ message forwarded will become the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bf_\bo_\br_\bw uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\bf_\bo_\br_\bw won't run
+ it.
+
+ When _\bf_\bo_\br_\bw is told to annotate the messages it forwards, it doesn't
+ actually annotate them until the draft is successfully sent. If
+ from the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, you _\bp_\bu_\bs_\bh instead of _\bs_\be_\bn_\bd, it's possible to
+ confuse _\bf_\bo_\br_\bw by re-ordering the file (e.g., by using
+ `folder -pack') before the message is successfully sent. _\bD_\bi_\bs_\bt and
+ _\br_\be_\bp_\bl don't have this problem.
+
+ To avoid prepending the leading dash characters in forwarded mes-
+ sages, there is a `-nodashmunging' option. See the "Hidden
+ Features" section of the _\bM_\bH _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be for more details.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ INC(1) -41- INC(1)
+
+
+ _\bN_\bA_\bM_\bE
+ inc - incorporate new mail
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ inc [+folder] [-audit audit-file] [-noaudit] [-changecur]
+ [-nochangecur] [-form formatfile] [-format string]
+ [-file name] [-silent] [-nosilent] [-truncate] [-notruncate]
+ [-width columns] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bI_\bn_\bc incorporates mail from the user's incoming mail drop into an _\bM_\bH
+ folder. If `+folder' isn't specified, a folder in the user's _\bM_\bH
+ directory will be used, either that specified by the "Inbox:" entry
+ in the user's profile, or the folder named "inbox". The new mes-
+ sages being incorporated are assigned numbers starting with the
+ next highest number in the folder. If the specified (or default)
+ folder doesn't exist, the user will be queried prior to its crea-
+ tion. As the messages are processed, a _\bs_\bc_\ba_\bn listing of the new
+ mail is produced.
+
+ If the user's profile contains a "Msg-Protect: nnn" entry, it will
+ be used as the protection on the newly created messages, otherwise
+ the _\bM_\bH default of 0644 will be used. During all operations on mes-
+ sages, this initially assigned protection will be preserved for
+ each message, so _\bc_\bh_\bm_\bo_\bd(1) may be used to set a protection on an
+ individual message, and its protection will be preserved
+ thereafter.
+
+ If the switch `-audit audit-file' is specified (usually as a
+ default switch in the profile), then _\bi_\bn_\bc will append a header line
+ and a line per message to the end of the specified audit-file with
+ the format:
+
+ <<inc>> date
+ <scan line for first message>
+ <scan line for second message>
+ <etc.>
+
+ This is useful for keeping track of volume and source of incoming
+ mail. Eventually, _\br_\be_\bp_\bl, _\bf_\bo_\br_\bw, _\bc_\bo_\bm_\bp, and _\bd_\bi_\bs_\bt may also produce
+ audits to this (or another) file, perhaps with "Message-Id:" infor-
+ mation to keep an exact correspondence history. "Audit-file" will
+ be in the user's MH directory unless a full path is specified.
+
+ _\bI_\bn_\bc will incorporate even improperly formatted messages into the
+ user's MH folder, inserting a blank line prior to the offending
+ component and printing a comment identifying the bad message.
+
+ In all cases, the user's mail drop will be zeroed, unless the
+ `-notruncate' switch is given.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ INC(1) -42- INC(1)
+
+
+ If the profile entry "Unseen-Sequence" is present and non-empty,
+ then _\bi_\bn_\bc will add each of the newly incorporated messages to each
+ sequence named by the profile entry. This is similar to the
+ "Previous-Sequence" profile entry supported by all _\bM_\bH commands
+ which take `msgs' or `msg' arguments. Note that _\bi_\bn_\bc will not zero
+ each sequence prior to adding messages.
+
+ The interpretation of the `-form formatfile', `-format string', and
+ `-width columns' switches is the same as in _\bs_\bc_\ba_\bn (1).
+
+ By using the `-file name' switch, one can direct _\bi_\bn_\bc to incorporate
+ messages from a file other than the user's maildrop. Note that the
+ name file will NOT be zeroed, unless the `-truncate' switch is
+ given.
+
+ If the envariable $MAILDROP is set, then _\bi_\bn_\bc uses it as the loca-
+ tion of the user's maildrop instead of the default (the `-
+ file name' switch still overrides this, however). If this envari-
+ able is not set, then _\bi_\bn_\bc will consult the profile entry "MailDrop"
+ for this information. If the value found is not absolute, then it
+ is interpreted relative to the user's _\bM_\bH directory. If the value
+ is not found, then _\bi_\bn_\bc will look in the standard system location
+ for the user's maildrop.
+
+ The `-silent' switch directs _\bi_\bn_\bc to be quiet and not ask any ques-
+ tions at all. This is useful for putting _\bi_\bn_\bc in the background and
+ going on to other things.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/spool/mail/$USER Location of mail drop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Alternate-Mailboxes: To determine the user's mailboxes
+ Inbox: To determine the inbox, default "inbox"
+ Folder-Protect: To set mode when creating a new folder
+ Msg-Protect: To set mode when creating a new message and
+ audit-file
+ Unseen-Sequence: To name sequences denoting unseen messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mhmail(1), scan(1), mh-mail(5), post(8)
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ INC(1) -43- INC(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaulted by "Inbox" above
+ `-noaudit'
+ `-changecur'
+ `-format' defaulted as described above
+ `-nosilent'
+ `-truncate' if `-file name' not given, `-notruncate' otherwise
+ `-width' defaulted to the width of the terminal
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ The folder into which messages are being incorporated will become
+ the current folder. The first message incorporated will become the
+ current message, unless the `-nochangecur' option is specified.
+ This leaves the context ready for a _\bs_\bh_\bo_\bw of the first new message.
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bi_\bn_\bc. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MARK(1) -44- MARK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mark - mark messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mark [+folder] [msgs] [-sequence name ...] [-add] [-delete] [-list]
+ [-public] [-nopublic] [-zero] [-nozero] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bm_\ba_\br_\bk command manipulates message sequences by adding or delet-
+ ing message numbers from folder-specific message sequences, or by
+ listing those sequences and messages. A message sequence is a key-
+ word, just like one of the "reserved" message names, such as
+ "first" or "next". Unlike the "reserved" message names, which have
+ a fixed semantics on a per-folder basis, the semantics of a message
+ sequence may be defined, modified, and removed by the user. Mes-
+ sage sequences are folder-specific, e.g., the sequence name "seen"
+ in the context of folder "+inbox" need not have any relation what-
+ soever to the sequence of the same name in a folder of a different
+ name.
+
+ Three action switches direct the operation of _\bm_\ba_\br_\bk. These switches
+ are mutually exclusive: the last occurrence of any of them over-
+ rides any previous occurrence of the other two.
+
+ The `-add' switch tells _\bm_\ba_\br_\bk to add messages to sequences or to
+ create a new sequence. For each sequence named via the
+ `-sequence name' argument (which must occur at least once) the mes-
+ sages named via `msgs' (which defaults to "cur" if no `msgs' are
+ given), are added to the sequence. The messages to be added need
+ not be absent from the sequence. If the `-zero' switch is speci-
+ fied, the sequence will be emptied prior to adding the messages.
+ Hence, `-add -zero' means that each sequence should be initialized
+ to the indicated messages, while `-add -nozero' means that each
+ sequence should be appended to by the indicated messages.
+
+ The `-delete' switch tells _\bm_\ba_\br_\bk to delete messages from sequences,
+ and is the dual of `-add'. For each of the named sequences, the
+ named messages are removed from the sequence. These messages need
+ not be already present in the sequence. If the `-zero' switch is
+ specified, then all messages in the folder are appended to the
+ sequence prior to removing the messages. Hence, `-delete -zero'
+ means that each sequence should contain all messages except those
+ indicated, while `-delete -nozero' means that only the indicated
+ messages should be removed from each sequence. As expected, the
+ command `mark -sequence seen -delete all' deletes the sequence
+ "seen" from the current folder.
+
+ When creating (or modifying) a sequence, the `-public' switch indi-
+ cates that the sequence should be made readable for other _\bM_\bH users.
+ In contrast, the `-nopublic' switch indicates that the sequence
+ should be private to the user's _\bM_\bH environment.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MARK(1) -45- MARK(1)
+
+
+ The `-list' switch tells _\bm_\ba_\br_\bk to list both the sequences defined
+ for the folder and the messages associated with those sequences.
+ _\bM_\ba_\br_\bk will list the name of each sequence given by `-sequence name'
+ and the messages associated with that sequence. If `-sequence'
+ isn't used, all sequences will be listed, with private sequences
+ being so indicated. The `-zero' switch does not affect the opera-
+ tion of `-list'.
+
+ The current restrictions on sequences are:
+
+ The name used to denote a message sequence must consist of an
+ alphabetic character followed by zero or more alphanumeric char-
+ acters, and cannot be one of the (reserved) message names "new",
+ "first", "last", "all", "next", or "prev".
+
+ Only a certain number of sequences may be defined for a given
+ folder. This number is usually limited to 26 (10 on small sys-
+ tems).
+
+ Message ranges with user-defined sequence names are restricted to
+ the form "name:n" or "name:-n", and refer to the first or last
+ `n' messages of the sequence `name', respectively. Constructs of
+ the form "name1-name2" are forbidden.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ pick (1), mh-sequence (5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `-add' if `-sequence' is specified, `-list' otherwise
+ `msgs' defaults to cur (or all if `-list' is specified)
+ `-nopublic' if the folder is read-only, `-public' otherwise
+ `-nozero'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ Use "pick sequence -list" to enumerate the messages in a sequence
+ (such as for use by a shell script).
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MARK(1) -46- MARK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhl - produce formatted listings of MH messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/mhl [-bell] [-nobell] [-clear] [-noclear]
+ [-folder +folder] [-form formfile] [-length lines]
+ [-width columns] [-moreproc program] [-nomoreproc] [files ...]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bh_\bl is a formatted message listing program. It can be used as a
+ replacement for _\bm_\bo_\br_\be (1) (the default _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc ). As with _\bm_\bo_\br_\be,
+ each of the messages specified as arguments (or the standard input)
+ will be output. If more than one message file is specified, the
+ user will be prompted prior to each one, and a <RETURN> or <EOT>
+ will begin the output, with <RETURN> clearing the screen (if
+ appropriate), and <EOT> (usually CTRL-D) suppressing the screen
+ clear. An <INTERRUPT> (usually CTRL-C) will abort the current mes-
+ sage output, prompting for the next message (if there is one), and
+ a <QUIT> (usually CTRL-\) will terminate the program (without core
+ dump).
+
+ The `-bell' option tells _\bm_\bh_\bl to ring the terminal's bell at the end
+ of each page, while the `-clear' option tells _\bm_\bh_\bl to clear the
+ scree at the end of each page (or output a formfeed after each mes-
+ sage). Both of these switches (and their inverse counterparts)
+ take effect only if the profile entry _\bm_\bo_\br_\be_\bp_\br_\bo_\bc is defined but
+ empty, and _\bm_\bh_\bl is outputting to a terminal. If the _\bm_\bo_\br_\be_\bp_\br_\bo_\bc entry
+ is defined and non-empty, and _\bm_\bh_\bl is outputting to a terminal, then
+ _\bm_\bh_\bl will cause the _\bm_\bo_\br_\be_\bp_\br_\bo_\bc to be placed between the terminal and
+ _\bm_\bh_\bl and the switches are ignored. Furthermore, if the `-clear'
+ switch is used and _\bm_\bh_\bl'_\bs output is directed to a terminal, then _\bm_\bh_\bl
+ will consult the $TERM and $TERMCAP envariables to determine the
+ user's terminal type in order to find out how to clear the screen.
+ If the `-clear' switch is used and _\bm_\bh_\bl'_\bs output is not directed to
+ a terminal (e.g., a pipe or a file), then _\bm_\bh_\bl will send a formfeed
+ after each message.
+
+ To override the default _\bm_\bo_\br_\be_\bp_\br_\bo_\bc and the profile entry, use the
+ `-moreproc program' switch. Note that _\bm_\bh_\bl will never start a
+ _\bm_\bo_\br_\be_\bp_\br_\bo_\bc if invoked on a hardcopy terminal.
+
+ The `-length length' and `-width width' switches set the screen
+ length and width, respectively. These default to the values indi-
+ cated by $TERMCAP, if appropriate, otherwise they default to 40 and
+ 80, respectively.
+
+ The default format file used by _\bm_\bh_\bl is called _\bm_\bh_\bl._\bf_\bo_\br_\bm_\ba_\bt (which is
+ first searched for in the user's _\bM_\bH directory, and then sought in
+ the /_\bu_\bs_\br/_\bl_\bo_\bc_\ba_\bl/_\bl_\bi_\bb/_\bm_\bh directory), this can be changed by using the
+ `-form formatfile' switch.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -47- MHL(1)
+
+
+ Finally, the `-folder +folder' switch sets the _\bM_\bH folder name,
+ which is used for the "messagename:" field described below. The
+ envariable $mhfolder is consulted for the default value, which
+ _\bs_\bh_\bo_\bw, _\bn_\be_\bx_\bt, and _\bp_\br_\be_\bv initialize appropriately.
+
+ _\bM_\bh_\bl operates in two phases: 1) read and parse the format file, and
+ 2) process each message (file). During phase 1, an internal
+ description of the format is produced as a structured list. In
+ phase 2, this list is walked for each message, outputting message
+ information under the format constraints from the format file.
+
+ The "mhl.format" form file contains information controlling screen
+ clearing, screen size, wrap-around control, transparent text, com-
+ ponent ordering, and component formatting. Also, a list of com-
+ ponents to ignore may be specified, and a couple of "special" com-
+ ponents are defined to provide added functionality. Message output
+ will be in the order specified by the order in the format file.
+
+ Each line of mhl.format has one of the formats:
+
+ ;comment
+ :cleartext
+ variable[,variable...]
+ component:[variable,...]
+
+ A line beginning with a `;' is a comment, and is ignored. A line
+ beginning with a `:' is clear text, and is output exactly as is. A
+ line containing only a `:' produces a blank line in the output. A
+ line beginning with "component:" defines the format for the speci-
+ fied component, and finally, remaining lines define the global
+ environment.
+
+ For example, the line:
+
+ width=80,length=40,clearscreen,overflowtext="***",overflowoffset=5
+
+ defines the screen size to be 80 columns by 40 rows, specifies that
+ the screen should be cleared prior to each page, that the overflow
+ indentation is 5, and that overflow text should be flagged with
+ "***".
+
+ Following are all of the current variables and their arguments. If
+ they follow a component, they apply only to that component, other-
+ wise, their affect is global. Since the whole format is parsed
+ before any output processing, the last global switch setting for a
+ variable applies to the whole message if that variable is used in a
+ global context (i.e., bell, clearscreen, width, length).
+
+ _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be _\bt_\by_\bp_\be _\bs_\be_\bm_\ba_\bn_\bt_\bi_\bc_\bs
+ width integer screen width or component width
+ length integer screen length or component length
+ offset integer positions to indent "component: "
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -48- MHL(1)
+
+
+ overflowtext string text to use at the beginning of an
+ overflow line
+ overflowoffset integer positions to indent overflow lines
+ compwidth integer positions to indent component text
+ after the first line is output
+ uppercase flag output text of this component in all
+ upper case
+ nouppercase flag don't uppercase
+ clearscreen flag/G clear the screen prior to each page
+ noclearscreen flag/G don't clearscreen
+ bell flag/G ring the bell at the end of each page
+ nobell flag/G don't bell
+ component string/L name to use instead of "component" for
+ this component
+ nocomponent flag don't output "component: " for this
+ component
+ center flag center component on line (works for
+ one-line components only)
+ nocenter flag don't center
+ leftadjust flag strip off leading whitespace on each
+ line of text
+ noleftadjust flag don't leftadjust
+ compress flag change newlines in text to spaces
+ nocompress flag don't compress
+ split flag don't combine multiple fields into a single field
+ nosplit flag combine multiple fields into a single field
+ newline flag print newline at end of components (default)
+ nonewline flag don't print newline at end of components
+ formatfield string format string for this component (see below)
+ addrfield flag field contains addresses
+ datefield flag field contains dates
+
+ To specify the value of integer-valued and string-valued variables,
+ follow their name with an equals-sign and the value.
+ Integer-valued variables are given decimal values, while
+ string-valued variables are given arbitrary text bracketed by
+ double-quotes. If a value is suffixed by "/G" or "/L", then its
+ value is useful in a global-only or local-only context (respec-
+ tively).
+
+ A line of the form:
+
+ ignores=component,...
+
+ specifies a list of components which are never output.
+
+ The component "MessageName" (case-insensitive) will output the
+ actual message name (file name) preceded by the folder name if one
+ is specified or found in the environment. The format is identical
+ to that produced by the `-header' option to _\bs_\bh_\bo_\bw.
+
+ The component "Extras" will output all of the components of the
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -49- MHL(1)
+
+
+ message which were not matched by explicit components, or included
+ in the ignore list. If this component is not specified, an ignore
+ list is not needed since all non-specified components will be
+ ignored.
+
+ If "nocomponent" is NOT specified, then the component name will be
+ output as it appears in the format file.
+
+ The default format is:
+
+ : -- using template mhl.format --
+ overflowtext="***",overflowoffset=5
+ leftadjust,compwidth=9
+ ignores=msgid,message-id,received
+ Date:formatfield="%<(nodate{text})%{text}%|%(pretty{text})%>"
+ To:
+ cc:
+ :
+ From:
+ Subject:
+ :
+ extras:nocomponent
+ :
+ body:nocomponent,overflowtext=,overflowoffset=0,noleftadjust
+
+ The variable "formatfield" specifies a format string (see
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5)). The flag variables "addrfield" and "datefield"
+ (which are mutually exclusive), tell _\bm_\bh_\bl to interpret the escapes
+ in the format string as either addresses or dates, respectively.
+
+ By default, _\bm_\bh_\bl does not apply any formatting string to fields con-
+ taining address or dates (see _\bm_\bh-_\bm_\ba_\bi_\bl (5) for a list of these
+ fields). Note that this results in faster operation since _\bm_\bh_\bl must
+ parse both addresses and dates in order to apply a format string to
+ them. If desired, _\bm_\bh_\bl can be given a default format string for
+ either address or date fields (but not both). To do this, on a
+ global line specify: either the flag addrfield or datefield, along
+ with the apropriate formatfield variable string.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mhl.format The message template
+ or <mh-dir>/mhl.format Rather than the standard template
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ moreproc: Program to use as interactive front-end
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ show(1), ap(8), dp(8)
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHL(1) -50- MHL(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-bell'
+ `-noclear'
+ `-length 40'
+ `-width 80'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ There should be some way to pass `bell' and `clear' information to
+ the front-end.
+
+ On hosts where _\bM_\bH was configured with the BERK option, address
+ parsing is not enabled.
+
+ The "nonewline" option interacts badly with "compress" and "split".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHMAIL(1) -51- MHMAIL(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhmail - send or read mail
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mhmail [ addrs ... [-body text] [-cc addrs ...] [-from addr]
+ [-subject subject]] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bH_\bm_\ba_\bi_\bl is intended as a replacement for the standard Bell mail pro-
+ gram (_\bb_\be_\bl_\bl_\bm_\ba_\bi_\bl (1)), compatible with _\bM_\bH. When invoked without
+ arguments, it simply invokes _\bi_\bn_\bc (1) to incorporate new messages
+ from the user's maildrop. When one or more users is specified, a
+ message is read from the standard input and spooled to a temporary
+ file. _\bM_\bH_\bm_\ba_\bi_\bl then invokes _\bp_\bo_\bs_\bt (8) with the name of the temporary
+ file as its argument to deliver the message to the specified user.
+
+ The `-subject subject' switch can be used to specify the "Subject:"
+ field of the message. The `-body text' switch can be used to
+ specify the text of the message; if it is specified, then the stan-
+ dard input is not read. Normally, addresses appearing as arguments
+ are put in the "To:" field. If the `-cc' switch is used, all
+ addresses following it are placed in the "cc:" field.
+
+ By using `-from addr', you can specify the "From:" header of the
+ draft. Naturally, _\bp_\bo_\bs_\bt will fill-in the "Sender:" header
+ correctly.
+
+ This program is intended for the use of programs such as _\ba_\bt (1),
+ which expect to send mail automatically to various users. Nor-
+ mally, real people (as opposed to the "unreal" ones) will prefer to
+ use _\bc_\bo_\bm_\bp (1) and _\bs_\be_\bn_\bd (1) to send messages.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/inc Program to incorporate a maildrop into a folder
+ /usr/local/lib/mh/post Program to deliver a message
+ /tmp/mhmail* Temporary copy of message
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHMAIL(1) -52- MHMAIL(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If _\bi_\bn_\bc is invoked, then _\bi_\bn_\bc's context changes occur.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHOOK(1) -53- MHOOK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhook, rcvdist, rcvpack, rcvtty - MH receive-mail hooks
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/rcvdist [-form formfile] [switches for _\bp_\bo_\bs_\bt_\bp_\br_\bo_\bc]
+ address ... [-help]
+
+ /usr/local/lib/mh/rcvpack file [-help]
+
+ /usr/local/lib/mh/rcvtty [command] [-form formatfile]
+ [-format string] [-bell] [-nobell] [-newline] [-nonewline]
+ [-biff] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ A receive-mail hook is a program that is run whenever you receive a
+ mail message. You do NOT invoke the hook yourself, rather the hook
+ is invoked on your behalf by your system's Message Transport Agent.
+ See _\bs_\bl_\bo_\bc_\ba_\bl (1) for details on how to activate receive-mail hooks on
+ your system.
+
+ Four programs are currently available as part of _\bM_\bH, _\br_\bc_\bv_\bd_\bi_\bs_\bt
+ (redistribute incoming messages to additional recipients), _\br_\bc_\bv_\bp_\ba_\bc_\bk
+ (save incoming messages in a _\bp_\ba_\bc_\bk_\bf'd file), and _\br_\bc_\bv_\bt_\bt_\by (notify user
+ of incoming messages). The fourth program, _\br_\bc_\bv_\bs_\bt_\bo_\br_\be (1) is
+ described separately. They all reside in the /_\bu_\bs_\br/_\bl_\bo_\bc_\ba_\bl/_\bl_\bi_\bb/_\bm_\bh/
+ directory.
+
+ The _\br_\bc_\bv_\bd_\bi_\bs_\bt program will resend a copy of the message to all of the
+ addresses listed on its command line. It uses the format string
+ facility described in _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5).
+
+ The _\br_\bc_\bv_\bp_\ba_\bc_\bk program will append a copy of the message to the file
+ listed on its command line. Its use is obsoleted by the "file"
+ action of _\bs_\bl_\bo_\bc_\ba_\bl.
+
+ The _\br_\bc_\bv_\bt_\bt_\by program executes the named file with the message as its
+ standard input, and writes the resulting output on your terminal.
+
+ If no file is specified, or is bogus, etc., then _\br_\bc_\bv_\bt_\bt_\by will
+ instead write a one-line scan listing. Either the
+ `-form formatfile' or `-format string' option may be used to over-
+ ride the default output format (see _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5)). A newline is
+ output before the message output, and the terminal bell is rung
+ after the output. The `-nonewline' and `-nobell' options will
+ inhibit these functions.
+
+ In addition to the standard _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) escapes, _\br_\bc_\bv_\bt_\bt_\by also
+ recognizes the following additional _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escapes:
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHOOK(1) -54- MHOOK(1)
+
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ body string the (compressed) first part of the body
+ dtimenow date the current date
+ folder string the name of the current folder
+
+ Normally, _\br_\bc_\bv_\bt_\bt_\by obeys write permission as granted by _\bm_\be_\bs_\bg (1).
+ With the `-biff' option, _\br_\bc_\bv_\bt_\bt_\by will obey the notification status
+ set by _\bb_\bi_\bf_\bf (1) instead. If the terminal access daemon (TTYD) is
+ available on your system, then _\br_\bc_\bv_\bt_\bt_\by will give its output to the
+ daemon for output instead of writing on the user's terminal.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ $HOME/.maildelivery The file controlling local delivery
+ /usr/local/lib/mh/maildelivery Rather than the standard file
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rcvstore (1), mh-format(5), slocal(1)
+
+
+ _\bB_\bu_\bg_\bs
+ Only two return codes are meaningful, others should be.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHPARAM(1) -55- MHPARAM(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhparam - print MH profile components
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mhparam [components] [-all] [-component] [-nocomponent] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bh_\bp_\ba_\br_\ba_\bm writes the value of the specified profile component to the
+ standard output separated by newlines. If the profile component is
+ not present, the default value (or nothing if there is no default)
+ is printed.
+
+ If more than one component is specified in the `components' list,
+ the component value is preceded by the component name. If `-com-
+ ponent' is specified, the component name is displayed even when
+ only one component is specified. If `-nocomponent' is specified,
+ the component name is not displayed even when more than one com-
+ ponent is specified.
+
+ If `-all' is specified, all components if the MH profile are
+ displayed and other arguments are ignored.
+
+ Examples:
+
+ % mhparam path
+ Mail
+
+ % mhparam mhlproc
+ /usr/local/lib/mh/mhl
+
+ % mhparam -component path
+ Path: Mail
+
+ % mhparam AliasFile rmmproc
+ AliasFile: aliases
+ rmmproc: rmmproc
+
+ % mhparam -nocomponent AliasFile rmmproc
+ aliases
+ rmmproc
+
+ _\bM_\bh_\bp_\ba_\br_\ba_\bm is also useful in back-quoted operations:
+
+ % fgrep cornell.edu `mhpath +`/`mhparam aliasfile`
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHPARAM(1) -56- MHPARAM(1)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-profile(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-nocomponent' if only one component is specified
+ `-component' if more than one component is specified
+ `components' defaults to none
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHPATH(1) -57- MHPATH(1)
+
+
+ _\bN_\bA_\bM_\bE
+ mhpath - print full pathnames of MH messages and folders
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ mhpath [+folder] [msgs] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bh_\bp_\ba_\bt_\bh expands and sorts the message list `msgs' and writes the
+ full pathnames of the messages to the standard output separated by
+ newlines. If no `msgs' are specified, _\bm_\bh_\bp_\ba_\bt_\bh outputs the folder
+ pathname instead. If the only argument is `+', your MH _\bP_\ba_\bt_\bh is
+ output; this can be useful is shell scripts.
+
+ Contrasted with other MH commands, a message argument to _\bm_\bh_\bp_\ba_\bt_\bh may
+ often be intended for _\bw_\br_\bi_\bt_\bi_\bn_\bg. Because of this:
+
+ 1) the name "new" has been added to _\bm_\bh_\bp_\ba_\bt_\bh's list of reserved mes-
+ sage names (the others are "first", "last", "prev", "next", "cur",
+ and "all"). The new message is equivalent to the message after the
+ last message in a folder (and equivalent to 1 in a folder without
+ messages). The "new" message may not be used as part of a message
+ range.
+
+ 2) Within a message list, the following designations may refer to
+ messages that do not exist: a single numeric message name, the sin-
+ gle message name "cur", and (obviously) the single message name
+ "new". All other message designations must refer to at least one
+ existing message.
+
+ 3) An empty folder is not in itself an error.
+
+ Message numbers greater than the highest existing message in a
+ folder as part of a range designation are replaced with the next
+ free message number.
+
+ Examples: The current folder foo contains messages 3 5 6. Cur is
+ 4.
+
+ % mhpath
+ /r/phyl/Mail/foo
+
+ % mhpath all
+ /r/phyl/Mail/foo/3
+ /r/phyl/Mail/foo/5
+ /r/phyl/Mail/foo/6
+
+ % mhpath 2001
+ /r/phyl/Mail/foo/7
+
+ % mhpath 1-2001
+ /r/phyl/Mail/foo/3
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHPATH(1) -58- MHPATH(1)
+
+
+ /r/phyl/Mail/foo/5
+ /r/phyl/Mail/foo/6
+
+ % mhpath new
+ /r/phyl/Mail/foo/7
+
+ % mhpath last new
+ /r/phyl/Mail/foo/6
+ /r/phyl/Mail/foo/7
+
+ % mhpath last-new
+ bad message list "last-new".
+
+ % mhpath cur
+ /r/phyl/Mail/foo/4
+
+ % mhpath 1-2
+ no messages in range "1-2".
+
+ % mhpath first:2
+ /r/phyl/Mail/foo/3
+ /r/phyl/Mail/foo/5
+
+ % mhpath 1 2
+ /r/phyl/Mail/foo/1
+ /r/phyl/Mail/foo/2
+
+ _\bM_\bH_\bp_\ba_\bt_\bh is also useful in back-quoted operations:
+
+ % cd `mhpath +inbox`
+
+ % echo `mhpath +`
+ /r/phyl/Mail
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ folder(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to none
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MHPATH(1) -59- MHPATH(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ Like all MH commands, _\bm_\bh_\bp_\ba_\bt_\bh expands and sorts [msgs]. So don't
+ expect
+
+ mv `mhpath 501 500`
+
+ to move 501 to 500. Quite the reverse. But
+
+ mv `mhpath 501` `mhpath 500`
+
+ will do the trick.
+
+ Out of range message 0 is treated far more severely than large out
+ of range message numbers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSGCHK(1) -60- MSGCHK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ msgchk - check for messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ msgchk [-date] [-nodate] [-notify all/mail/nomail]
+ [-nonotify all/mail/nomail] [users ...] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ The _\bm_\bs_\bg_\bc_\bh_\bk program checks all known mail drops for mail waiting for
+ you. For those drops which have mail for you, _\bm_\bs_\bg_\bc_\bh_\bk will indicate
+ if it believes that you have seen the mail in question before.
+
+ The `-notify type' switch indicates under what circumstances _\bm_\bs_\bg_\bc_\bh_\bk
+ should produce a message. The default is `-notify all' which says
+ that _\bm_\bs_\bg_\bc_\bh_\bk should always report the status of the users maildrop.
+ Other values for `type' include `mail' which says that _\bm_\bs_\bg_\bc_\bh_\bk
+ should report the status of waiting mail; and, `nomail' which says
+ that _\bm_\bs_\bg_\bc_\bh_\bk should report the status of empty maildrops. The
+ `-nonotify type' switch has the inverted sense, so `-nonotify all'
+ directs _\bm_\bs_\bg_\bc_\bh_\bk to never report the status of maildrops. This is
+ useful if the user wishes to check _\bm_\bs_\bg_\bc_\bh_\bk's exit status. A
+ non-zero exit status indicates that mail was not waiting for at
+ least one of the indicated users.
+
+ If _\bm_\bs_\bg_\bc_\bh_\bk produces output, then the `-date' switch directs _\bm_\bs_\bg_\bc_\bh_\bk
+ to print out the last date mail was read, if this can be deter-
+ mined.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/spool/mail/$USER Location of mail drop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `user' defaults to the current user
+ `-date'
+ `-notify all'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSGCHK(1) -61- MSGCHK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ msh - MH shell (and BBoard reader)
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ msh [-prompt string] [-scan] [-noscan] [-topcur] [-notopcur] [file]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bm_\bs_\bh is an interactive program that implements a subset of the nor-
+ mal _\bM_\bH commands operating on a single file in _\bp_\ba_\bc_\bk_\bf'd format. That
+ is, _\bm_\bs_\bh is used to read a file that contains a number of messages,
+ as opposed to the standard _\bM_\bH style of reading a number of files,
+ each file being a separate message in a folder. _\bm_\bs_\bh's chief advan-
+ tage is that the normal _\bM_\bH style does not allow a file to have more
+ than one message in it. Hence, _\bm_\bs_\bh is ideal for reading _\bB_\bB_\bo_\ba_\br_\bd_\bs,
+ as these files are delivered by the transport system in this for-
+ mat. In addition, _\bm_\bs_\bh can be used on other files, such as message
+ archives which have been _\bp_\ba_\bc_\bked (see _\bp_\ba_\bc_\bk_\bf (1)). Finally, _\bm_\bs_\bh is
+ an excellent _\bM_\bH tutor. As the only commands available to the user
+ are _\bM_\bH commands, this allows _\bM_\bH beginners to concentrate on how
+ commands to _\bM_\bH are formed and (more or less) what they mean.
+
+ When invoked, _\bm_\bs_\bh reads the named file, and enters a command loop.
+ The user may type most of the normal _\bM_\bH commands. The syntax and
+ semantics of these commands typed to _\bm_\bs_\bh are identical to their _\bM_\bH
+ counterparts. In cases where the nature of _\bm_\bs_\bh would be incon-
+ sistent (e.g., specifying a `+folder' with some commands), _\bm_\bs_\bh will
+ duly inform the user. The commands that _\bm_\bs_\bh currently supports (in
+ some slightly modified or restricted forms) are:
+
+ ali
+ burst
+ comp
+ dist
+ folder
+ forw
+ inc
+ mark
+ mhmail
+ msgchk
+ next
+ packf
+ pick
+ prev
+ refile
+ repl
+ rmm
+ scan
+ send
+ show
+ sortm
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -62- MSH(1)
+
+
+ whatnow
+ whom
+
+ In addition, _\bm_\bs_\bh has a "help" command which gives a brief overview.
+ To terminate _\bm_\bs_\bh, type CTRL-D, or use the "quit" command. If _\bm_\bs_\bh
+ is being invoked from _\bb_\bb_\bc, then typing CTRL-D will also tell _\bb_\bb_\bc to
+ exit as well, while using the "quit" command will return control to
+ _\bb_\bb_\bc, and _\bb_\bb_\bc will continue examining the list of BBoards that it is
+ scanning.
+
+ If the file is writable and has been modified, then using "quit"
+ will query the user if the file should be updated.
+
+ The `-prompt string' switch sets the prompting string for _\bm_\bs_\bh.
+
+ You may wish to use an alternate _\bM_\bH profile for the commands that
+ _\bm_\bs_\bh executes; see _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be (5) for details about the $MH envari-
+ able.
+
+ When invoked from _\bb_\bb_\bc, two special features are enabled: First, the
+ `-scan' switch directs _\bm_\bs_\bh to do a `scan unseen' on start-up if new
+ items are present in the BBoard. This feature is best used from
+ _\bb_\bb_\bc, which correctly sets the stage. Second, the _\bm_\ba_\br_\bk command in
+ _\bm_\bs_\bh acts specially when you are reading a BBoard, since _\bm_\bs_\bh will
+ consult the sequence "unseen" in determining what messages you have
+ actually read. When _\bm_\bs_\bh exits, it reports this information to _\bb_\bb_\bc.
+ In addition, if you give the _\bm_\ba_\br_\bk command with no arguments, _\bm_\bs_\bh
+ will interpret it as `mark -sequence unseen -delete -nozero all'
+ Hence, to discard all of the messages in the current BBoard you're
+ reading, just use the _\bm_\ba_\br_\bk command with no arguments.
+
+ Normally, the "exit" command is identical to the "quit" command in
+ _\bm_\bs_\bh. When run under _\bb_\bb_\bc however, "exit" directs _\bm_\bs_\bh to mark all
+ messages as seen and then "quit". For speedy type-in, this command
+ is often abbreviated as just "e".
+
+ When invoked from _\bv_\bm_\bh, another special feature is enabled: The
+ `topcur' switch directs _\bm_\bs_\bh to have the current message "track" the
+ top line of the _\bv_\bm_\bh scan window. Normally, _\bm_\bs_\bh has the current
+ message "track" the center of the window (under `-notopcur', which
+ is the default).
+
+ _\bm_\bs_\bh supports an output redirection facility. Commands may be fol-
+ lowed by one of
+
+ > _\bf_\bi_\bl_\be write output to _\bf_\bi_\bl_\be
+ >> _\bf_\bi_\bl_\be append output to _\bf_\bi_\bl_\be
+ | _\bc_\bo_\bm_\bm_\ba_\bn_\bd pipe output to UNIX _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+
+ If _\bf_\bi_\bl_\be starts with a `~' (tilde), then a _\bc_\bs_\bh-like expansion takes
+ place. Note that _\bc_\bo_\bm_\bm_\ba_\bn_\bd is interpreted by _\bs_\bh (1). Also note that
+ _\bm_\bs_\bh does NOT support history substitutions, variable substitutions,
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -63- MSH(1)
+
+
+ or alias substitutions.
+
+ When parsing commands to the left of any redirection symbol, _\bm_\bs_\bh
+ will honor `\' (back-slash) as the quote next-character symbol, and
+ `"' (double-quote) as quote-word delimiters. All other input
+ tokens are separated by whitespace (spaces and tabs).
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/local/lib/mh/mtstailor tailor file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Msg-Protect: To set mode when creating a new `file'
+ fileproc: Program to file messages
+ showproc: Program to show messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ bbc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `file' defaults to "./msgbox"
+ `-prompt (msh) '
+ `-noscan'
+ `-notopcur'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MSH(1) -64- MSH(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-prompt' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bm_\bs_\bh. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+
+ There is a strict limit of messages per file in _\bp_\ba_\bc_\bk_\bf'd format
+ which _\bm_\bs_\bh can handle. Usually, this limit is 1000 messages.
+
+ Please remember that _\bm_\bs_\bh is not the _\bC_\bS_\bh_\be_\bl_\bl, and that a lot of the
+ nice facilities provided by the latter are not present in the form-
+ er.
+
+ In particular, _\bm_\bs_\bh does not understand back-quoting, so the only
+ effective way to use _\bp_\bi_\bc_\bk inside _\bm_\bs_\bh is to always use the
+ `-seq select' switch. Clever users of _\bM_\bH will put the line
+
+ pick: -seq select -list
+
+ in their .mh_profile file so that _\bp_\bi_\bc_\bk works equally well from both
+ the shell and _\bm_\bs_\bh.
+
+ _\bs_\bo_\br_\bt_\bm always uses "-noverbose" and if "-textfield field" is used,
+ "-limit 0".
+
+ The _\bm_\bs_\bh program inherits most (if not all) of the bugs from the _\bM_\bH
+ commands it implements.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ NEXT(1) -65- NEXT(1)
+
+
+ _\bN_\bA_\bM_\bE
+ next - show the next message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ next [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bN_\be_\bx_\bt performs a _\bs_\bh_\bo_\bw on the next message in the specified (or
+ current) folder. Like _\bs_\bh_\bo_\bw, it passes any switches on to the pro-
+ gram _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc, which is called to list the message. This command
+ is almost exactly equivalent to "show next". Consult the manual
+ entry for _\bs_\bh_\bo_\bw (1) for all the details.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ showproc: Program to show the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ show(1), prev(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `-header'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is specified, it will become the current folder. The
+ message that is shown (i.e., the next message in sequence) will be-
+ come the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ _\bn_\be_\bx_\bt is really a link to the _\bs_\bh_\bo_\bw program. As a result, if you
+ make a link to _\bn_\be_\bx_\bt and that link is not called _\bn_\be_\bx_\bt, your link
+ will act like _\bs_\bh_\bo_\bw instead. To circumvent this, add a
+ profile-entry for the link to your _\bM_\bH profile and add the argument
+ _\bn_\be_\bx_\bt to the entry.
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PACKF(1) -66- PACKF(1)
+
+
+ _\bN_\bA_\bM_\bE
+ packf - compress an MH folder into a single file
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ packf [+folder] [msgs] [-file name] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\ba_\bc_\bk_\bf takes messages from a folder and copies them to a single
+ file. Each message in the file is separated by four CTRL-A's and a
+ newline. Messages packed can be unpacked using _\bi_\bn_\bc.
+
+ If the _\bn_\ba_\bm_\be given to the `-file name' switch exists, then the mes-
+ sages specified will be appended to the end of the file, otherwise
+ the file will be created and the messages appended.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ .msgbox.map A binary index of the file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Msg-Protect: To set mode when creating a new `file'
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to all
+ `-file ./msgbox'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The first
+ message packed will become the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ _\bP_\ba_\bc_\bk_\bf doesn't handle the old UUCP-style "mbox" format (used by
+ _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl). To pack messages into this format, use the script
+ /_\bu_\bs_\br/_\bl_\bo_\bc_\ba_\bl/_\bl_\bi_\bb/_\bm_\bh/_\bp_\ba_\bc_\bk_\bm_\bb_\bo_\bx. Note that _\bp_\ba_\bc_\bk_\bm_\bb_\bo_\bx does not take the
+ `-file' option of _\bp_\ba_\bc_\bk_\bf, and instead writes its output on _\bs_\bt_\bd_\bo_\bu_\bt.
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -67- PICK(1)
+
+
+ _\bN_\bA_\bM_\bE
+ pick - select messages by content
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ pick [+folder] [msgs] [-and ...] [-or ...] [-not ...]
+ [-lbrace ... -rbrace] [--component pattern] [-cc pattern]
+ [-date pattern] [-from pattern] [-search pattern]
+ [-subject pattern] [-to pattern] [-after date] [-before date]
+ [-datefield field] [-sequence name ...] [-public] [-nopublic]
+ [-zero] [-nozero] [-list] [-nolist] [-help]
+
+ typically:
+ scan `pick -from jones`
+ pick -to holloway -sequence select
+ show `pick -before friday`
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\bi_\bc_\bk searches messages within a folder for the specified contents,
+ and then identifies those messages. Two types of search primitives
+ are available: pattern matching and date constraint operations.
+
+ A modified _\bg_\br_\be_\bp(1) is used to perform the matching, so the full
+ regular expression (see _\be_\bd(1)) facility is available within `pat-
+ tern'. With `-search', `pattern' is used directly, and with the
+ others, the grep pattern constructed is:
+
+ "component[ \t]*:.*pattern"
+
+ This means that the pattern specified for a `-search' will be found
+ everywhere in the message, including the header and the body, while
+ the other pattern matching requests are limited to the single
+ specified component. The expression
+
+ `--component pattern'
+
+ is a shorthand for specifying
+
+ `-search "component[ \t]*:.*pattern" '
+
+ It is used to pick a component which is not one of "To:", "cc:",
+ "Date:", "From:", or "Subject:". An example is
+ `pick --reply-to pooh'.
+
+ Pattern matching is performed on a per-line basis. Within the
+ header of the message, each component is treated as one long line,
+ but in the body, each line is separate. Lower-case letters in the
+ search pattern will match either lower or upper case in the mes-
+ sage, while upper case will match only upper case.
+
+ Note that since the `-date' switch is a pattern matching operation
+ (as described above), to find messages sent on a certain date the
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -68- PICK(1)
+
+
+ pattern string must match the text of the "Date:" field of the mes-
+ sage.
+
+ Independent of any pattern matching operations requested, the
+ switches `-after date' or `-before date' may also be used to intro-
+ duce date/time contraints on all of the messages. By default, the
+ "Date:" field is consulted, but if another date yielding field
+ (such as "BB-Posted:" or "Delivery-Date:") should be used, the
+ `-datefield field' switch may be used.
+
+ With `-before' and `-after', _\bp_\bi_\bc_\bk will actually parse the date
+ fields in each of the messages specified in `msgs' and compare them
+ to the date/time specified. If `-after' is given, then only those
+ messages whose "Date:" field value is chronologically after the
+ date specified will be considered. The `-before' switch specifies
+ the complimentary action.
+
+ Both the `-after' and `-before' switches take legal 822-style date
+ specifications as arguments. _\bP_\bi_\bc_\bk will default certain missing
+ fields so that the entire date need not be specified. These fields
+ are (in order of defaulting): timezone, time and timezone, date,
+ date and timezone. All defaults are taken from the current date,
+ time, and timezone.
+
+ In addition to 822-style dates, _\bp_\bi_\bc_\bk will also recognize any of the
+ days of the week ("sunday", "monday", and so on), and the special
+ dates "today", "yesterday" (24 hours ago), and "tomorrow" (24 hours
+ from now). All days of the week are judged to refer to a day in
+ the past (e.g., telling _\bp_\bi_\bc_\bk "saturday" on a "tuesday" means
+ "last saturday" not "this saturday").
+
+ Finally, in addition to these special specifications, _\bp_\bi_\bc_\bk will
+ also honor a specification of the form "-dd", which means "dd days
+ ago".
+
+ _\bP_\bi_\bc_\bk supports complex boolean operations on the searching primi-
+ tives with the `-and', `-or', `-not', and `-lbrace ... -rbrace'
+ switches. For example,
+
+ pick -after yesterday -and
+ -lbrace -from freida -or -from fear -rbrace
+
+ identifies messages recently sent by "frieda" or "fear".
+
+ The matching primitives take precedence over the `-not' switch,
+ which in turn takes precedence over `-and' which in turn takes pre-
+ cedence over `-or'. To override the default precedence, the
+ `-lbrace' and `-rbrace' switches are provided, which act just like
+ opening and closing parentheses in logical expressions.
+
+ If no search criteria are given, all the messages specified on the
+ command line are selected (this defaults to "all").
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -69- PICK(1)
+
+
+ Once the search has been performed, if the `-list' switch is given,
+ the message numbers of the selected messages are written to the
+ standard output separated by newlines. This is _\be_\bx_\bt_\br_\be_\bm_\be_\bl_\by useful
+ for quickly generating arguments for other _\bM_\bH programs by using the
+ "backquoting" syntax of the shell. For example, the command
+
+ scan `pick +todo -after "31 Mar 83 0123 PST"`
+
+ says to _\bs_\bc_\ba_\bn those messages in the indicated folder which meet the
+ appropriate criterion. Note that since _\bp_\bi_\bc_\bk 's context changes are
+ written out prior to _\bs_\bc_\ba_\bn 's invocation, you need not give the
+ folder argument to _\bs_\bc_\ba_\bn as well.
+
+ Regardless of the operation of the `-list' switch, the `-sequence
+ name' switch may be given once for each sequence the user wishes to
+ define. For each sequence named, that sequence will be defined to
+ mean exactly those messages selected by _\bp_\bi_\bc_\bk. For example,
+
+ pick -from frated -seq fred
+
+ defines a new message sequence for the current folder called "fred"
+ which contains exactly those messages that were selected.
+
+ Note that whenever _\bp_\bi_\bc_\bk processes a `-sequence name' switch, it
+ sets `-nolist'.
+
+ By default, _\bp_\bi_\bc_\bk will zero the sequence before adding it. This
+ action can be disabled with the `-nozero' switch, which means that
+ the messages selected by _\bp_\bi_\bc_\bk will be added to the sequence, if it
+ already exists, and any messages already a part of that sequence
+ will remain so.
+
+ The `-public' and `-nopublic' switches are used by _\bp_\bi_\bc_\bk in the same
+ way _\bm_\ba_\br_\bk uses them.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mark(1)
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -70- PICK(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to all
+ `-datefield date'
+ `-nopublic' if the folder is read-only, `-public' otherwise
+ `-zero'
+ `-list' is the default if no `-sequence', `-nolist' otherwise
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous versions of _\bM_\bH, the _\bp_\bi_\bc_\bk command would _\bs_\bh_\bo_\bw, _\bs_\bc_\ba_\bn, or
+ _\br_\be_\bf_\bi_\bl_\be the selected messages. This was rather "inverted logic"
+ from the UNIX point of view, so _\bp_\bi_\bc_\bk was changed to define se-
+ quences and output those sequences. Hence, _\bp_\bi_\bc_\bk can be used to
+ generate the arguments for all other _\bM_\bH commands, instead of giving
+ _\bp_\bi_\bc_\bk endless switches for invoking those commands itself.
+
+ Also, previous versions of _\bp_\bi_\bc_\bk balked if you didn't specify a
+ search string or a date/time constraint. The current version does
+ not, and merely matches the messages you specify. This lets you
+ type something like:
+
+ show `pick last:20 -seq fear`
+
+ instead of typing
+
+ mark -add -nozero -seq fear last:20
+ show fear
+
+ Finally, timezones used to be ignored when comparing dates: they
+ aren't any more.
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ Use "pick sequence -list" to enumerate the messages in a sequence
+ (such as for use by a shell script).
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PICK(1) -71- PICK(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-after' and `-before' switches must be inter-
+ preted as a single token by the shell that invokes _\bp_\bi_\bc_\bk. There-
+ fore, one must usually place the argument to this switch inside
+ double-quotes. Furthermore, any occurance of `-datefield' must oc-
+ cur prior to the `-after' or `-before' switch it applies to.
+
+ If _\bp_\bi_\bc_\bk is used in a back-quoted operation, such as
+
+ scan `pick -from jones`
+
+ and _\bp_\bi_\bc_\bk selects no messages (e.g., no messages are from "jones"),
+ then the shell will still run the outer command (e.g., "scan").
+ Since no messages were matched, _\bp_\bi_\bc_\bk produced no output, and the
+ argument given to the outer command as a result of backquoting _\bp_\bi_\bc_\bk
+ is empty. In the case of _\bM_\bH programs, the outer command now acts
+ as if the default `msg' or `msgs' should be used (e.g., "all" in
+ the case of _\bs_\bc_\ba_\bn ). To prevent this unexpected behavior, if
+ `-list' was given, and if its standard output is not a tty, then
+ _\bp_\bi_\bc_\bk outputs the illegal message number "0" when it fails. This
+ lets the outer command fail gracefully as well.
+
+ The pattern syntax "[l-r]" is not supported; each letter to be
+ matched must be included within the square brackets.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PREV(1) -72- PREV(1)
+
+
+ _\bN_\bA_\bM_\bE
+ prev - show the previous message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ prev [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [-switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\br_\be_\bv performs a _\bs_\bh_\bo_\bw on the previous message in the specified (or
+ current) folder. Like _\bs_\bh_\bo_\bw, it passes any switches on to the pro-
+ gram named by _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc, which is called to list the message. This
+ command is almost exactly equivalent to "show prev". Consult the
+ manual entry for _\bs_\bh_\bo_\bw (1) for all the details.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ showproc: Program to show the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ show(1), next(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `-header'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is specified, it will become the current folder. The
+ message that is shown (i.e., the previous message in sequence) will
+ become the current message.
+
+
+ _\bB_\bu_\bg_\bs
+ _\bp_\br_\be_\bv is really a link to the _\bs_\bh_\bo_\bw program. As a result, if you
+ make a link to _\bp_\br_\be_\bv and that link is not called _\bp_\br_\be_\bv, your link
+ will act like _\bs_\bh_\bo_\bw instead. To circumvent this, add a
+ profile-entry for the link to your _\bM_\bH profile and add the argument
+ _\bp_\br_\be_\bv to the entry.
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PROMPTER(1) -73- PROMPTER(1)
+
+
+ _\bN_\bA_\bM_\bE
+ prompter - prompting editor front-end for MH
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ prompter [-erase chr] [-kill chr] [-prepend] [-noprepend] [-rapid]
+ [-norapid] [-doteof] [-nodoteof] file [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ This program is normally not invoked directly by users but takes
+ the place of an editor and acts as an editor front-end. It
+ operates on an 822-style message draft skeleton specified by file,
+ normally provided by _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, or _\br_\be_\bp_\bl.
+
+ _\bP_\br_\bo_\bm_\bp_\bt_\be_\br is an editor which allows rapid composition of messages.
+ It is particularly useful to network and low-speed (less than 2400
+ baud) users of _\bM_\bH. It is an _\bM_\bH program in that it can have its own
+ profile entry with switches, but it is not invoked directly by the
+ user. The commands _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl invoke _\bp_\br_\bo_\bm_\bp_\bt_\be_\br as
+ an editor, either when invoked with `-editor prompter', or by the
+ profile entry "Editor: prompter", or when given the command
+ `edit prompter' at "What now?" level.
+
+ For each empty component _\bp_\br_\bo_\bm_\bp_\bt_\be_\br finds in the draft, the user is
+ prompted for a response; A <RETURN> will cause the whole component
+ to be left out. Otherwise, a `\' preceding a <RETURN> will con-
+ tinue the response on the next line, allowing for multiline com-
+ ponents. Continuation lines must begin with a space or tab.
+
+ Each non-empty component is copied to the draft and displayed on
+ the terminal.
+
+ The start of the message body is denoted by a blank line or a line
+ of dashes. If the body is non-empty, the prompt, which isn't writ-
+ ten to the file, is
+
+ "--------Enter additional text",
+
+ or (if `-prepend' was given)
+
+ "--------Enter initial text".
+
+ Message-body typing is terminated with an end-of-file (usually
+ CTRL-D). With the `-doteof' switch, a period on a line all by
+ itself also signifies end-of-file. At this point control is
+ returned to the calling program, where the user is asked "What
+ now?". See _\bw_\bh_\ba_\bt_\bn_\bo_\bw for the valid options to this query.
+
+ By using the `-prepend' switch, the user can add type-in to the
+ beginning of the message body and have the rest of the body follow.
+ This is useful for the _\bf_\bo_\br_\bw command.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PROMPTER(1) -74- PROMPTER(1)
+
+
+ By using the `-rapid' switch, if the draft already contains text in
+ the message-body, it is not displayed on the user's terminal. This
+ is useful for low-speed terminals.
+
+ The line editing characters for kill and erase may be specified by
+ the user via the arguments `-kill chr' and `-erase chr', where chr
+ may be a character; or `\nnn', where "nnn" is the octal value for
+ the character.
+
+ An interrupt (usually CTRL-C) during component typing will abort
+ _\bp_\br_\bo_\bm_\bp_\bt_\be_\br and the _\bM_\bH command that invoked it. An interrupt during
+ message-body typing is equivalent to CTRL-D, for historical rea-
+ sons. This means that _\bp_\br_\bo_\bm_\bp_\bt_\be_\br should finish up and exit.
+
+ The first non-flag argument to _\bp_\br_\bo_\bm_\bp_\bt_\be_\br is taken as the name of the
+ draft file, and subsequent non-flag arguments are ignored.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /tmp/prompter* Temporary copy of message
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ prompter-next: To name the editor to be used on exit from
+ _\bp_\br_\bo_\bm_\bp_\bt_\be_\br
+ Msg-Protect: To set mode when creating a new draft
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), dist(1), forw(1), repl(1), whatnow(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-prepend'
+ `-norapid'
+ `-nodoteof'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ The `-rapid' option is particularly useful with _\bf_\bo_\br_\bw, and
+ `-noprepend' is useful with _\bc_\bo_\bm_\bp -_\bu_\bs_\be.
+
+ The user may wish to link _\bp_\br_\bo_\bm_\bp_\bt_\be_\br under several names (e.g., "ra-
+ pid") and give appropriate switches in the profile entries under
+ these names (e.g., "rapid: -rapid"). This facilitates invoking
+ prompter differently for different _\bM_\bH commands (e.g., "forw: -edi-
+ tor rapid").
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ PROMPTER(1) -75- PROMPTER(1)
+
+
+ _\bB_\bu_\bg_\bs
+ _\bP_\br_\bo_\bm_\bp_\bt_\be_\br uses _\bs_\bt_\bd_\bi_\bo (3), so it will lose if you edit files with
+ nulls in them.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RCVSTORE(1) -76- RCVSTORE(1)
+
+
+ _\bN_\bA_\bM_\bE
+ rcvstore - incorporate new mail asynchronously
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/rcvstore [+folder] [-create] [-nocreate]
+ [-sequence name ...] [-public] [-nopublic] [-zero] [-nozero]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bc_\bv_\bs_\bt_\bo_\br_\be incorporates a message from the standard input into an _\bM_\bH
+ folder. If `+folder' isn't specified, a folder in the user's _\bM_\bH
+ directory will be used, either that specified by the "Inbox:" entry
+ in the user's profile, or the folder named "inbox". The new mes-
+ sage being incorporated is assigned the next highest number in the
+ folder. If the specified (or default) folder doesn't exist, then
+ it will be created if the `-create' option is specified, otherwise
+ _\br_\bc_\bv_\bs_\bt_\bo_\br_\be will exit.
+
+ If the user's profile contains a "Msg-Protect: nnn" entry, it will
+ be used as the protection on the newly created messages, otherwise
+ the _\bM_\bH default of 0644 will be used. During all operations on mes-
+ sages, this initially assigned protection will be preserved for
+ each message, so _\bc_\bh_\bm_\bo_\bd(1) may be used to set a protection on an
+ individual message, and its protection will be preserved
+ thereafter.
+
+ _\bR_\bc_\bv_\bs_\bt_\bo_\br_\be will incorporate anything except zero length messages into
+ the user's MH folder.
+
+ If the profile entry "Unseen-Sequence" is present and non-empty,
+ then _\br_\bc_\bv_\bs_\bt_\bo_\br_\be will add the newly incorporated message to each
+ sequence named by the profile entry. This is similar to the
+ "Previous-Sequence" profile entry supported by all _\bM_\bH commands
+ which take `msgs' or `msg' arguments. Note that _\br_\bc_\bv_\bs_\bt_\bo_\br_\be will not
+ zero each sequence prior to adding messages.
+
+ Furthermore, the incoming messages may be added to user-defined
+ sequences as they arrive by appropriate use of the `-sequence'
+ option. As with _\bp_\bi_\bc_\bk, use of the `-zero' and `-nozero' switches
+ can also be used to zero old sequences or not. Similarly, use of
+ the `-public' and `-nopublic switches may be used to force addi-
+ tions to public and private sequences.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RCVSTORE(1) -77- RCVSTORE(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Folder-Protect: To set mode when creating a new folder
+ Inbox: To find the default inbox
+ Msg-Protect: To set mode when creating a new message
+ Unseen-Sequence: To name sequences denoting unseen messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1), pick(1), mh-mail(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to "inbox"
+ `-create'
+ `-nopublic' if the folder is read-only, `-public' otherwise
+ `-nozero'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ No context changes will be attempted, with the exception of se-
+ quence manipulation.
+
+
+ _\bB_\bu_\bg_\bs
+ If you use the "Unseen-Sequence" profile entry, _\br_\bc_\bv_\bs_\bt_\bo_\br_\be could try
+ to update the context while another _\bM_\bH process is also trying to do
+ so. This can cause the context to become corrupted. To avoid
+ this, do not use _\br_\bc_\bv_\bs_\bt_\bo_\br_\be if you use the "Unseen-Sequence" profile
+ entry.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REFILE(1) -78- REFILE(1)
+
+
+ _\bN_\bA_\bM_\bE
+ refile - file message in other folders
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ refile [msgs] [-draft] [-link] [-nolink] [-preserve] [-nopreserve]
+ [-src +folder] [-file file] [-rmmproc program] [-normmproc]
+ +folder ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\be_\bf_\bi_\bl_\be moves (_\bm_\bv (1)) or links (_\bl_\bn (1)) messages from a source
+ folder into one or more destination folders. If you think of a
+ message as a sheet of paper, this operation is not unlike filing
+ the sheet of paper (or copies) in file cabinet folders. When a
+ message is filed, it is linked into the destination folder(s) if
+ possible, and is copied otherwise. As long as the destination
+ folders are all on the same file system, multiple filing causes
+ little storage overhead. This facility provides a good way to
+ cross-file or multiply-index messages. For example, if a message
+ is received from Jones about the ARPA Map Project, the command
+
+ refile cur +jones +Map
+
+ would allow the message to be found in either of the two folders
+ `jones' or `Map'.
+
+ The option `-file file' directs _\br_\be_\bf_\bi_\bl_\be to use the specified file as
+ the source message to be filed, rather than a message from a
+ folder. Note that the file should be a validly formatted message,
+ just like any other _\bM_\bH message. It should NOT be in mail drop for-
+ mat (to convert a file in mail drop format to a folder of _\bM_\bH mes-
+ sages, see _\bi_\bn_\bc (1)).
+
+ If a destination folder doesn't exist, _\br_\be_\bf_\bi_\bl_\be will ask if you want
+ to create it. A negative response will abort the file operation.
+ If the standard input for _\br_\be_\bf_\bi_\bl_\be is _\bn_\bo_\bt a tty, then _\br_\be_\bf_\bi_\bl_\be will not
+ ask any questions and will proceed as if the user answered "yes" to
+ all questions.
+
+ The option `-link' preserves the source folder copy of the message
+ (i.e., it does a _\bl_\bn(1) rather than a _\bm_\bv(1)), whereas, `-nolink'
+ deletes the filed messages from the source folder. Normally, when
+ a message is filed, it is assigned the next highest number avail-
+ able in each of the destination folders. Use of the `-preserve'
+ switch will override this message renaming, but name conflicts may
+ occur, so use this switch cautiously.
+
+ If `-link' is not specified (or `-nolink' is specified), the filed
+ messages will be removed from the source folder, by renaming them
+ with a site-dependent prefix (usually a comma).
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REFILE(1) -79- REFILE(1)
+
+
+ If the user has a profile component such as
+
+ rmmproc: /bin/rm
+
+ then _\br_\be_\bf_\bi_\bl_\be will instead call the named program to delete the mes-
+ sage files. The user may specify `-rmmproc program' on the command
+ line to override this profile specification. The `-normmproc'
+ option forces the message files to be deleted by renaming them as
+ described above.
+
+ The `-draft' switch tells _\br_\be_\bf_\bi_\bl_\be to file the <mh-dir>/draft.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Folder-Protect: To set mode when creating a new folder
+ rmmproc: Program to delete the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ folder(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-src +folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-nolink'
+ `-nopreserve'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If `-src +folder' is given, it will become the current folder. If
+ neither `-link' nor `all' is specified, the current message in the
+ source folder will be set to the last message specified; otherwise,
+ the current message won't be changed.
+
+ If the Previous-Sequence profile entry is set, in addition to de-
+ fining the named sequences from the source folder, _\br_\be_\bf_\bi_\bl_\be will also
+ define those sequences for the destination folders. See
+ _\bm_\bh-_\bs_\be_\bq_\bu_\be_\bn_\bc_\be (5) for information concerning the previous sequence.
+
+
+ _\bB_\bu_\bg_\bs
+ Since _\br_\be_\bf_\bi_\bl_\be uses your _\br_\bm_\bm_\bp_\br_\bo_\bc to delete the message, the _\br_\bm_\bm_\bp_\br_\bo_\bc
+ must NOT call _\br_\be_\bf_\bi_\bl_\be without specifying `-normmproc', or you will
+ create an infinte loop.
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -80- REPL(1)
+
+
+ _\bN_\bA_\bM_\bE
+ repl - reply to a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ repl [+folder] [msg] [-annotate] [-noannotate] [-cc all/to/cc/me]
+ [-nocc all/to/cc/me] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-editor editor]
+ [-noedit] [-fcc +folder] [-filter filterfile] [-form formfile]
+ [-inplace] [-noinplace] [-query] [-noquery] [-width columns]
+ [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\be_\bp_\bl aids a user in producing a reply to an existing message. _\bR_\be_\bp_\bl
+ uses a reply template to guide its actions when constructing the
+ message draft of the reply. In its simplest form (with no argu-
+ ments), it will set up a message-form skeleton in reply to the
+ current message in the current folder, and invoke the whatnow
+ shell. The default reply template will direct _\br_\be_\bp_\bl to construct
+ the composed message as follows:
+
+ To: <Reply-To> or <From>
+ cc: <cc>, <To>, and yourself
+ Subject: Re: <Subject>
+ In-reply-to: Your message of <Date>.
+ <Message-Id>
+
+ where field names enclosed in angle brackets (< >) indicate the
+ contents of the named field from the message to which the reply is
+ being made. A reply template is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ The `-cc type' switch takes an argument which specifies who gets
+ placed on the "cc:" list of the reply. The `-query' switch modi-
+ fies the action of `-cc type' switch by interactively asking you if
+ each address that normally would be placed in the "To:" and "cc:"
+ list should actually be sent a copy. (This is useful for
+ special-purpose replies.) Note that the position of the `-cc' and
+ `-nocc' switches, like all other switches which take a positive and
+ negative form, is important.
+
+ Lines beginning with the fields "To:", "cc:", and "Bcc:" will be
+ standardized and have duplicate addresses removed. In addition,
+ the `-width columns' switch will guide _\br_\be_\bp_\bl's formatting of these
+ fields.
+
+ If the file named "replcomps" exists in the user's MH directory, it
+ will be used instead of the default form. In either case, the file
+ specified by `-form formfile' will be used if given.
+
+ If the draft already exists, _\br_\be_\bp_\bl will ask you as to the disposi-
+ tion of the draft. A reply of quit will abort _\br_\be_\bp_\bl, leaving the
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -81- REPL(1)
+
+
+ draft intact; replace will replace the existing draft with a blank
+ skeleton; and list will display the draft.
+
+ See _\bc_\bo_\bm_\bp (1) for a description of the `-editor' and `-noedit'
+ switches. Note that while in the editor, the message being replied
+ to is available through a link named "@" (assuming the default
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc ). In addition, the actual pathname of the message is
+ stored in the envariable $editalt, and the pathname of the folder
+ containing the message is stored in the envariable $mhfolder.
+
+ Although _\br_\be_\bp_\bl uses the `-form formfile' switch to direct it how to
+ construct the beginning of the draft, the `-filter filterfile'
+ switch directs _\br_\be_\bp_\bl as to how the message being replied-to should
+ be formatted in the body of the draft. If `-filter' is not speci-
+ fied, then the message being replied-to is not included in the body
+ of the draft. If `-filter filterfile' is specified, then the mes-
+ sage being replied-to is filtered (re-formatted) prior to being
+ output to the body of the draft. The filter file for _\br_\be_\bp_\bl should
+ be a standard form file for _\bm_\bh_\bl, as _\br_\be_\bp_\bl will invoke _\bm_\bh_\bl to format
+ the message being replied-to. There is no default message filter
+ (`-filter' must be followed by a file name). A filter file that is
+ commonly used is:
+
+ :
+ body:nocomponent,compwidth=9,offset=9
+
+ which says to output a blank line and then the body of the message
+ being replied-to, indented by one tab-stop. Another format popular
+ on USENET is:
+
+
+ message-id:nocomponent,nonewline,\
+ formatfield="In message %{text}, "
+ from:nocomponent,formatfield="%(friendly{text}) writes:"
+ body:component=">",overflowtext=">",overflowoffset=0
+
+ Which cites the Message-ID and author of the message being
+ replied-to, and then outputs each line of the body prefaced with
+ the ">" character.
+
+ If the `-annotate' switch is given, the message being replied-to
+ will be annotated with the lines
+
+ Replied: date
+ Replied: addrs
+
+ where the address list contains one line for each addressee. The
+ annotation will be done only if the message is sent directly from
+ _\br_\be_\bp_\bl. If the message is not sent immediately from _\br_\be_\bp_\bl,
+ "comp -use" may be used to re-edit and send the constructed mes-
+ sage, but the annotations won't take place. The `-inplace' switch
+ causes annotation to be done in place in order to preserve links to
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -82- REPL(1)
+
+
+ the annotated message.
+
+ The `-fcc +folder' switch can be used to automatically specify a
+ folder to receive Fcc:s. More than one folder, each preceeded by
+ `-fcc' can be named.
+
+ In addition to the standard _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) escapes, _\br_\be_\bp_\bl also recog-
+ nizes the following additional _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escape:
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ _\bf_\bc_\bc string Any folders specified with `-fcc folder'
+
+ To avoid reiteration, _\br_\be_\bp_\bl strips any leading `Re: ' strings from
+ the _\bs_\bu_\bb_\bj_\be_\bc_\bt component.
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ Upon exiting from the editor, _\br_\be_\bp_\bl will invoke the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ See _\bw_\bh_\ba_\bt_\bn_\bo_\bw (1) for a discussion of available options. The invoca-
+ tion of this program can be inhibited by using the `-nowhatnowproc'
+ switch. (In truth of fact, it is the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program which starts
+ the initial edit. Hence, `-nowhatnowproc' will prevent any edit
+ from occurring.)
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/replcomps The reply template
+ or <mh-dir>/replcomps Rather than the standard template
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Alternate-Mailboxes: To determine the user's mailboxes
+ Current-Folder: To find the default current folder
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ Msg-Protect: To set mode when creating a new message
+ (draft)
+ fileproc: Program to refile the message
+ mhlproc: Program to filter message being replied-to
+ whatnowproc: Program to ask the "What now?" questions
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), dist(1), forw(1), send(1), whatnow(1), mh-format(5)
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ REPL(1) -83- REPL(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msg' defaults to cur
+ `-nocc all' at ATHENA sites, `-cc all' otherwise
+ `-noannotate'
+ `-nodraftfolder'
+ `-noinplace'
+ `-noquery'
+ `-width 72'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The mes-
+ sage replied-to will become the current message.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ Prior to using the format string mechanism, `-noformat' used to
+ cause address headers to be output as-is. Now all address fields
+ are formatted using Internet standard guidelines.
+
+
+ _\bB_\bu_\bg_\bs
+ If any addresses occur in the reply template, addresses in the tem-
+ plate that do not contain hosts are defaulted incorrectly. Instead
+ of using the localhost for the default, _\br_\be_\bp_\bl uses the sender's
+ host. Moral of the story: if you're going to include addresses in
+ a reply template, include the host portion of the address.
+
+ The `-width columns' switch is only used to do address-folding;
+ other headers are not line-wrapped.
+
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\br_\be_\bp_\bl uses a built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, it
+ does not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program. Hence, if you define
+ your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw since _\br_\be_\bp_\bl won't run
+ it.
+
+ If your current working directory is not writable, the link named
+ "@" is not available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RMF(1) -84- RMF(1)
+
+
+ _\bN_\bA_\bM_\bE
+ rmf - remove an MH folder
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ rmf [+folder] [-interactive] [-nointeractive] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bm_\bf removes all of the messages (files) within the specified (or
+ default) folder, and then removes the folder (directory) itself.
+ If there are any files within the folder which are not a part of
+ _\bM_\bH, they will _\bn_\bo_\bt be removed, and an error will be produced. If
+ the folder is given explicitly or the `-nointeractive' option is
+ given, then the folder will be removed without confirmation. Oth-
+ erwise, the user will be asked for confirmation. If _\br_\bm_\bf can't find
+ the current folder, for some reason, the folder to be removed
+ defaults to `+inbox' (unless overridden by user's profile entry
+ "Inbox") with confirmation.
+
+ _\bR_\bm_\bf irreversibly deletes messages that don't have other links, so
+ use it with caution.
+
+ If the folder being removed is a subfolder, the parent folder will
+ become the new current folder, and _\br_\bm_\bf will produce a message tel-
+ ling the user this has happened. This provides an easy mechanism
+ for selecting a set of messages, operating on the list, then remov-
+ ing the list and returning to the current folder from which the
+ list was extracted.
+
+ _\bR_\bm_\bf of a read-only folder will delete the private sequence and cur
+ information (i.e., "atr-_\bs_\be_\bq-_\bf_\bo_\bl_\bd_\be_\br" entries) from the profile
+ without affecting the folder itself.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Inbox: To find the default inbox
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rmm(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder, usually with confirmation
+ `-interactive' if +folder' not given, `-nointeractive' otherwise
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RMF(1) -85- RMF(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ _\bR_\bm_\bf will set the current folder to the parent folder if a subfolder
+ is removed; or if the current folder is removed, it will make "in-
+ box" current. Otherwise, it doesn't change the current folder or
+ message.
+
+
+ _\bB_\bu_\bg_\bs
+ Although intuitively one would suspect that _\br_\bm_\bf works recursively,
+ it does not. Hence if you have a sub-folder within a folder, in
+ order to _\br_\bm_\bf the parent, you must first _\br_\bm_\bf each of the children.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RMM(1) -86- RMM(1)
+
+
+ _\bN_\bA_\bM_\bE
+ rmm - remove messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ rmm [+folder] [msgs] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bR_\bm_\bm removes the specified messages by renaming the message files
+ with preceding commas. Many sites consider files that start with a
+ comma to be a temporary backup, and arrange for _\bc_\br_\bo_\bn (8) to remove
+ such files once a day.
+
+ If the user has a profile component such as
+
+ rmmproc: /bin/rm
+
+ then instead of simply renaming the message file, _\br_\bm_\bm will call the
+ named program to delete the file. Note that at most installations,
+ _\bc_\br_\bo_\bn (8) is told to remove files that begin with a comma once a
+ night.
+
+ Some users of csh prefer the following:
+
+ alias rmm 'refile +d'
+
+ where folder +d is a folder for deleted messages, and
+
+ alias mexp 'rm `mhpath +d all`'
+
+ is used to "expunge" deleted messages.
+
+ The current message is not changed by _\br_\bm_\bm, so a _\bn_\be_\bx_\bt will advance
+ to the next message in the folder as expected.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ rmmproc: Program to delete the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rmf(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ RMM(1) -87- RMM(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+
+ _\bB_\bu_\bg_\bs
+ Since _\br_\be_\bf_\bi_\bl_\be uses your _\br_\bm_\bm_\bp_\br_\bo_\bc to delete the message, the _\br_\bm_\bm_\bp_\br_\bo_\bc
+ must NOT call _\br_\be_\bf_\bi_\bl_\be without specifying `-normmproc', or you will
+ create an infinte loop.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SCAN(1) -88- SCAN(1)
+
+
+ _\bN_\bA_\bM_\bE
+ scan - produce a one line per message scan listing
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ scan [+folder] [msgs] [-clear] [-noclear] [-form formatfile]
+ [-format string] [-header] [-noheader] [-width columns]
+ [-reverse] [-noreverse] [-file filename] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bc_\ba_\bn produces a one-line-per-message listing of the specified mes-
+ sages. Each _\bs_\bc_\ba_\bn line contains the message number (name), the
+ date, the "From:" field, the "Subject" field, and, if room allows,
+ some of the body of the message. For example:
+
+ 15+ 7/ 5 Dcrocker nned <<Last week I asked some of
+ 16 - 7/ 5 dcrocker message id format <<I recommend
+ 18 7/ 6 Obrien Re: Exit status from mkdir
+ 19 7/ 7 Obrien "scan" listing format in MH
+
+ The `+' on message 15 indicates that it is the current message.
+ The `-' on message 16 indicates that it has been replied to, as
+ indicated by a "Replied:" component produced by an `-annotate'
+ switch to the _\br_\be_\bp_\bl command.
+
+ If there is sufficient room left on the _\bs_\bc_\ba_\bn line after the sub-
+ ject, the line will be filled with text from the body, preceded by
+ <<, and terminated by >> if the body is sufficiently short. _\bS_\bc_\ba_\bn
+ actually reads each of the specified messages and parses them to
+ extract the desired fields. During parsing, appropriate error mes-
+ sages will be produced if there are format errors in any of the
+ messages.
+
+ The `-header' switch produces a header line prior to the _\bs_\bc_\ba_\bn list-
+ ing. Currently, the name of the folder and the current date and
+ time are output (see the HISTORY section for more information).
+
+ If the `-clear' switch is used and _\bs_\bc_\ba_\bn'_\bs output is directed to a
+ terminal, then _\bs_\bc_\ba_\bn will consult the $TERM and $TERMCAP envariables
+ to determine your terminal type in order to find out how to clear
+ the screen prior to exiting. If the `-clear' switch is used and
+ _\bs_\bc_\ba_\bn'_\bs output is not directed to a terminal (e.g., a pipe or a
+ file), then _\bs_\bc_\ba_\bn will send a formfeed prior to exiting.
+
+ For example, the command:
+
+ (scan -clear -header; show all -show pr -f) | lpr
+
+ produces a scan listing of the current folder, followed by a
+ formfeed, followed by a formatted listing of all messages in the
+ folder, one per page. Omitting `-show pr -f' will cause the mes-
+ sages to be concatenated, separated by a one-line header and two
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SCAN(1) -89- SCAN(1)
+
+
+ blank lines.
+
+ If _\bs_\bc_\ba_\bn encounters a message without a "Date:" field, rather than
+ leaving that portion of the scan listing blank, the date is
+ filled-in with the last write date of the message, and post-fixed
+ with a `*'. This is particularly handy for scanning a _\bd_\br_\ba_\bf_\bt
+ _\bf_\bo_\bl_\bd_\be_\br, as message drafts usually aren't allowed to have dates in
+ them.
+
+ To override the output format used by _\bs_\bc_\ba_\bn, the `-format string' or
+ `-form file' switches are used. This permits individual fields of
+ the scan listing to be extracted with ease. The string is simply a
+ format string and the file is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ In addition to the standard _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) escapes, _\bs_\bc_\ba_\bn also recog-
+ nizes the following additional _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escapes:
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ body string the (compressed) first part of the body
+ dtimenow date the current date
+ folder string the name of the current folder
+
+ Also, if no date header was present in the message, the _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
+ escapes which operate on {_\bd_\ba_\bt_\be} will return values for the date of
+ last modification of the message file itself.
+
+ _\bs_\bc_\ba_\bn will update the _\bM_\bH context prior to starting the listing, so
+ interrupting a long _\bs_\bc_\ba_\bn listing preserves the new context. _\bM_\bH
+ purists hate this idea.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Alternate-Mailboxes: To determine the user's mailboxes
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ inc(1), pick(1), show(1), mh-format(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the folder current
+ `msgs' defaults to all
+ `-format' defaulted as described above
+ `-noheader'
+ `-width' defaulted to the width of the terminal
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SCAN(1) -90- SCAN(1)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ Prior to using the format string mechanism, `-header' used to gen-
+ erate a heading saying what each column in the listing was. Format
+ strings prevent this from happening.
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bs_\bc_\ba_\bn. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+ The value of each _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escape is set by _\bs_\bc_\ba_\bn to the contents
+ of the first message header _\bs_\bc_\ba_\bn encounters with the corresponding
+ component name; any following headers with the same component name
+ are ignored.
+
+ The switch `-reverse', makes _\bs_\bc_\ba_\bn list the messages in reverse ord-
+ er; this should be considered a bug.
+
+ The `-file filename' switch allows the user to obtain a _\bs_\bc_\ba_\bn list-
+ ing of a maildrop file as produced by _\bp_\ba_\bc_\bk_\bf. This listing includes
+ every message in the file. The user should use _\bm_\bs_\bh for more selec-
+ tive processing of the file. `-reverse' is ignored with this op-
+ tion.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SEND(1) -91- SEND(1)
+
+
+ _\bN_\bA_\bM_\bE
+ send - send a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ send [-alias aliasfile] [-draft] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-forward] [-noforward]
+ [-msgid] [-nomsgid] [-push] [-nopush] [-verbose] [-noverbose]
+ [-watch] [-nowatch] [-width columns] [file ...] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\be_\bn_\bd will cause each of the specified files to be delivered (via
+ _\bp_\bo_\bs_\bt (8)) to each of the destinations in the "To:", "cc:", "Bcc:",
+ and "Fcc:" fields of the message. If _\bs_\be_\bn_\bd is re-distributing a
+ message, as invoked from _\bd_\bi_\bs_\bt, then the corresponding "Resent-xxx"
+ fields are examined instead.
+
+ If `-push' is specified, _\bs_\be_\bn_\bd will detach itself from the user's
+ terminal and perform its actions in the background. If _\bp_\bu_\bs_\bh 'd and
+ the draft can't be sent, then the `-forward' switch says that draft
+ should be forwarded with the failure notice sent to the user. This
+ differs from putting _\bs_\be_\bn_\bd in the background because the output is
+ trapped and analyzed by _\bM_\bH.
+
+ If `-verbose' is specified, _\bs_\be_\bn_\bd will indicate the interactions
+ occurring with the transport system, prior to actual delivery. If
+ `-watch' is specified _\bs_\be_\bn_\bd will monitor the delivery of local and
+ network mail. Hence, by specifying both switches, a large detail
+ of information can be gathered about each step of the message's
+ entry into the transport system.
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ _\bS_\be_\bn_\bd with no _\bf_\bi_\bl_\be argument will query whether the draft is the
+ intended file, whereas `-draft' will suppress this question. Once
+ the transport system has successfully accepted custody of the mes-
+ sage, the file will be renamed with a leading comma, which allows
+ it to be retrieved until the next draft message is sent. If there
+ are errors in the formatting of the message, _\bs_\be_\bn_\bd will abort with a
+ (hopefully) helpful error message.
+
+ If a "Bcc:" field is encountered, its addresses will be used for
+ delivery, and the "Bcc:" field will be removed from the message
+ sent to sighted recipients. The blind recipients will receive an
+ entirely new message with a minimal set of headers. Included in
+ the body of the message will be a copy of the message sent to the
+ sighted recipients. If `-filter filterfile' is specified, then
+ this copy is filtered (re-formatted) prior to being sent to the
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SEND(1) -92- SEND(1)
+
+
+ blind recipients.
+
+ Prior to sending the message, the fields "From: user@local", and
+ "Date: now" will be appended to the headers in the message. If the
+ envariable $SIGNATURE is set, then its value is used as your per-
+ sonal name when constructing the "From:" line of the message. If
+ this envariable is not set, then _\bs_\be_\bn_\bd will consult the profile
+ entry "Signature" for this information. On hosts where _\bM_\bH was con-
+ figured with the UCI option, if $SIGNATURE is not set and the "Sig-
+ nature" profile entry is not present, then the file
+ $HOME/.signature is consulted. If `-msgid' is specified, then a
+ "Message-ID:" field will also be added to the message.
+
+ If _\bs_\be_\bn_\bd is re-distributing a message (when invoked by _\bd_\bi_\bs_\bt ), then
+ "Resent-" will be prepended to each of these fields: "From:",
+ "Date:", and "Message-ID:". If the message already contains a
+ "From:" field, then a "Sender: user@local" field will be added as
+ well. (An already existing "Sender:" field is an error!)
+
+ By using the `-format' switch, each of the entries in the "To:" and
+ "cc:" fields will be replaced with "standard" format entries. This
+ standard format is designed to be usable by all of the message
+ handlers on the various systems around the Internet. If `-nofor-
+ mat' is given, then headers are output exactly as they appear in
+ the message draft.
+
+ If an "Fcc: folder" is encountered, the message will be copied to
+ the specified folder for the sender in the format in which it will
+ appear to any non-Bcc receivers of the message. That is, it will
+ have the appended fields and field reformatting. The "Fcc:" fields
+ will be removed from all outgoing copies of the message.
+
+ By using the `-width columns' switch, the user can direct _\bs_\be_\bn_\bd as
+ to how long it should make header lines containing addresses.
+
+ The files specified by the profile entry "Aliasfile:" and any addi-
+ tional alias files given by the `-alias aliasfile' switch will be
+ read (more than one file, each preceeded by `-alias', can be
+ named). See _\bm_\bh-_\ba_\bl_\bi_\ba_\bs (5) for more information.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Aliasfile: For a default alias file
+ Signature: To determine the user's mail signature
+ mailproc: Program to post failure notices
+ postproc: Program to post the message
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SEND(1) -93- SEND(1)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ comp(1), dist(1), forw(1), repl(1), mh-alias(5), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `file' defaults to <mh-dir>/draft
+ `-alias /usr/local/lib/mh/MailAliases'
+ `-nodraftfolder'
+ `-nofilter'
+ `-format'
+ `-forward'
+ `-nomsgid'
+ `-nopush'
+ `-noverbose'
+ `-nowatch'
+ `-width 72'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ Under some configurations, it is not possible to mointor the mail
+ delivery transaction; `-watch' is a no-op on those systems.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SHOW(1) -94- SHOW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ show - show (list) messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ show [+folder] [msgs] [-draft] [-header] [-noheader]
+ [-showproc program] [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bh_\bo_\bw lists each of the specified messages to the standard output
+ (typically, the terminal). Typically, the messages are listed
+ exactly as they are, with no reformatting. A program named by the
+ _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc profile component is invoked to do the listing, and any
+ switches not recognized by _\bs_\bh_\bo_\bw are passed along to that program.
+ The default program is known as _\bm_\bo_\br_\be (1). To override the default
+ and the _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc profile component, use the `-showproc program'
+ switch. For example, `-show pr' will cause the _\bp_\br (1) program to
+ list the messages. The _\bM_\bH command _\bm_\bh_\bl can be used as a _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc to
+ show messages in a more uniform format. Normally, this program is
+ specified as the _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc is the user's .mh_profile. See _\bm_\bh_\bl (1)
+ for the details. If the `-noshowproc' option is specified,
+ `/bin/cat' is used instead of _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc.
+
+ The `-header' switch tells _\bs_\bh_\bo_\bw to display a one-line description
+ of the message being shown. This description includes the folder
+ and the message number.
+
+ If no `msgs' are specified, the current message is used. If more
+ than one message is specified, _\bm_\bo_\br_\be will prompt for a <RETURN>
+ prior to listing each message. _\bm_\bo_\br_\be will list each message, a page
+ at a time. When the end of page is reached, _\bm_\bo_\br_\be will ring the
+ bell and wait for a <SPACE> or <RETURN>. If a <RETURN> is entered,
+ _\bm_\bo_\br_\be will print the next line, whereas <SPACE> will print the next
+ screenful. To exit _\bm_\bo_\br_\be, type "q".
+
+ If the standard output is not a terminal, no queries are made, and
+ each file is listed with a one-line header and two lines of separa-
+ tion.
+
+ "show -draft" will list the file <mh-dir>/draft if it exists.
+
+ If the profile entry "Unseen-Sequence" is present and non-empty,
+ then _\bs_\bh_\bo_\bw will remove each of the messages shown from each sequence
+ named by the profile entry. This is similar to the
+ "Previous-Sequence" profile entry supported by all _\bM_\bH commands
+ which take `msgs' or `msg' arguments.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SHOW(1) -95- SHOW(1)
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+ Unseen-Sequence: To name sequences denoting unseen messages
+ showproc: Program to show messages
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mhl(1), more(1), next(1), pick(1), prev(1), scan(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to cur
+ `-header'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. The last
+ message shown will become the current message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SHOW(1) -96- SHOW(1)
+
+
+ _\bB_\bu_\bg_\bs
+ The `-header' switch doesn't work when `msgs' expands to more than
+ one message. If the _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc is _\bm_\bh_\bl, then is problem can be cir-
+ cumvented by referencing the "messagename" field in the _\bm_\bh_\bl format
+ file.
+
+ _\bS_\bh_\bo_\bw updates the user's context before showing the message. Hence
+ _\bs_\bh_\bo_\bw will mark messages as seen prior to the user actually seeing
+ them. This is generally not a problem, unless the user relies on
+ the "unseen" messages mechanism, and interrupts _\bs_\bh_\bo_\bw while it is
+ showing "unseen" messages.
+
+ If _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc is _\bm_\bh_\bl, then _\bs_\bh_\bo_\bw uses a built-in _\bm_\bh_\bl: it does not ac-
+ tually run the _\bm_\bh_\bl program. Hence, if you define your own
+ _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bm_\bh_\bl since _\bs_\bh_\bo_\bw won't run it.
+
+ If _\bm_\bo_\br_\be (1) is your showproc (the default), then avoid running _\bs_\bh_\bo_\bw
+ in the background with only its standard output piped to another
+ process, as in
+
+ show | imprint &
+
+ Due to a bug in _\bm_\bo_\br_\be, show will go into a "tty input" state. To
+ avoid this problem, re-direct _\bs_\bh_\bo_\bw's diagnostic output as well.
+ For users of _\bc_\bs_\bh:
+
+ show |& imprint &
+
+ For users of _\bs_\bh:
+
+ show 2>&1 | imprint &
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SLOCAL(1) -97- SLOCAL(1)
+
+
+ _\bN_\bA_\bM_\bE
+ slocal - special local mail delivery
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/slocal [address info sender]
+ [-addr address] [-info data] [-sender sender]
+ [-user username] [-mailbox mbox] [-file file]
+ [-maildelivery deliveryfile] [-verbose] [-noverbose] [-debug]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bl_\bo_\bc_\ba_\bl is a program designed to allow you to have your inbound mail
+ processed according to a complex set of selection criteria. You do
+ not normally invoke _\bs_\bl_\bo_\bc_\ba_\bl yourself, rather _\bs_\bl_\bo_\bc_\ba_\bl is invoked on
+ your behalf by your system's Message Transfer Agent.
+
+ The message selection criteria used by _\bs_\bl_\bo_\bc_\ba_\bl is specified in the
+ file ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by in the user's home directory. The format of
+ this file is given below.
+
+ The message delivery address and message sender are determined from
+ the Message Transfer Agent envelope information, if possible.
+ Under _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl, the sender will obtained from the UUCP "From "
+ line, if present. The user may override these values with command
+ line arguments, or arguments to the `-addr' and `-sender' switches.
+
+ The message is normally read from the standard input. The `-file'
+ switch sets the name of the file from which the message should be
+ read, instead of reading stdin. The `-user' switch tells _\bs_\bl_\bo_\bc_\ba_\bl
+ the name of the user for whom it is delivering mail. The `-mail-
+ box' switch tells _\bs_\bl_\bo_\bc_\ba_\bl the name of the user's maildrop file.
+
+ The `-info' switch may be used to pass an arbitrary argument to
+ sub-processes which _\bs_\bl_\bo_\bc_\ba_\bl may invoke on your behalf. The `-ver-
+ bose' switch causes _\bs_\bl_\bo_\bc_\ba_\bl to give information on stdout about its
+ progress. The `-debug' switch produces more verbose debugging out-
+ put on stderr.
+
+
+ _\bM_\be_\bs_\bs_\ba_\bg_\be _\bT_\br_\ba_\bn_\bs_\bf_\be_\br _\bA_\bg_\be_\bn_\bt_\bs
+
+ If your MTA is _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl, you should include the line
+
+ "| /usr/local/lib/mh/slocal -user username"
+
+ in your .forward file in your home directory. This will cause
+ _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl to invoke _\bs_\bl_\bo_\bc_\ba_\bl on your behalf.
+
+ If your MTA is _\bM_\bM_\bD_\bF-_\bI, you should (symbolically) link
+ /usr/local/lib/mh/slocal to the file bin/rcvmail in your home
+ directory. This will cause _\bM_\bM_\bD_\bF-_\bI to invoke _\bs_\bl_\bo_\bc_\ba_\bl on your behalf
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SLOCAL(1) -98- SLOCAL(1)
+
+
+ with the correct "_\ba_\bd_\bd_\br_\be_\bs_\bs _\bi_\bn_\bf_\bo _\bs_\be_\bn_\bd_\be_\br" arguments.
+
+ If your MTA is _\bM_\bM_\bD_\bF-_\bI_\bI, then you should not use _\bs_\bl_\bo_\bc_\ba_\bl. An
+ equivalent functionality is already provided by _\bM_\bM_\bD_\bF-_\bI_\bI; see mail-
+ delivery(5) for details.
+
+
+ _\bT_\bh_\be _\bM_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by _\bF_\bi_\bl_\be
+
+
+ The ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file controls how local delivery is performed.
+ Each line of this file consists of five fields, separated by
+ white-space or comma. Since double-quotes are honored, these char-
+ acters may be included in a single argument by enclosing the entire
+ argument in double-quotes. A double-quote can be included by
+ preceding it with a backslash. Lines beginning with `#' are
+ ignored. The format of each line in the ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file is:
+
+
+ header pattern action result string
+
+ header:
+ The name of a header field that is to be searched for a pat-
+ tern. This is any field in the headers of the message that
+ might be present. The following special fields are also
+ defined:
+
+ _\bs_\bo_\bu_\br_\bc_\be the out-of-band sender information
+ _\ba_\bd_\bd_\br the address that was used to cause delivery to the
+ recipient
+ _\bd_\be_\bf_\ba_\bu_\bl_\bt this matches _\bo_\bn_\bl_\by if the message hasn't been
+ delivered yet
+ * this always matches
+
+ pattern:
+ The sequence of characters to match in the specified header
+ field. Matching is case-insensitive, but does not use regular
+ expressions.
+
+ action:
+ The action to take to deliver the message:
+
+ _\bd_\be_\bs_\bt_\br_\bo_\by This action always succeeds.
+
+ _\bf_\bi_\bl_\be or > Append the message to the file named by string. The
+ message is appended to the file in the maildrop for-
+ mat which is used by your message transport system.
+ If the message can be appended to the file, then
+ this action succeeds. When writing to the file, a
+ "Delivery-Date: date" header is added which indi-
+ cates the date and time that message was appended to
+ the file.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SLOCAL(1) -99- SLOCAL(1)
+
+
+ _\bm_\bb_\bo_\bx Identical to _\bf_\bi_\bl_\be, but always appends the message
+ using the format used by _\bp_\ba_\bc_\bk_\bf (the MMDF mailbox
+ format).
+
+ _\bp_\bi_\bp_\be or | Pipe the message as the standard input to the com-
+ mand named by string, using the Bourne shell _\bs_\bh(1)
+ to interpret the string. Prior to giving the string
+ to the shell, it is expanded with the following
+ built-in variables:
+
+ $(sender) the out-of-band sender information
+ $(address) the address that was used to cause
+ delivery to the recipient
+ $(size) the size of the message in bytes
+ $(reply-to) either the "Reply-To:" or "From:" field
+ of the message
+ $(info) the out-of-band information specified
+ _\bq_\bp_\bi_\bp_\be or
+ <_\bc_\ba_\br_\be_\bt> Similar to _\bp_\bi_\bp_\be, but executes the command directly,
+ after built-in variable expansion, without assis-
+ tance from the shell. This action can be used to
+ avoid quoting special characters which your shell
+ might interpret.
+
+ result:
+ Indicates how the action should be performed:
+
+ _\bA Perform the action. If the action succeeds, then
+ the message is considered delivered.
+
+ _\bR Perform the action. Regardless of the outcome of
+ the action, the message is not considered delivered.
+
+ ? Perform the action only if the message has not been
+ delivered. If the action succeeds, then the message
+ is considered delivered.
+
+ _\bN Perform the action only if the message has not been
+ delivered and the previous action succeeded. If
+ this action succeeds, then the message is considered
+ delivered.
+
+ To summarize, here's an example:
+
+ #_\bf_\bi_\be_\bl_\bd _\bp_\ba_\bt_\bt_\be_\br_\bn _\ba_\bc_\bt_\bi_\bo_\bn _\br_\be_\bs_\bu_\bl_\bt _\bs_\bt_\br_\bi_\bn_\bg
+ # lines starting with a '#' are ignored, as are blank lines
+ #
+ # file mail with mmdf2 in the "To:" line into file mmdf2.log
+ _\bT_\bo _\bm_\bm_\bd_\bf_\b2 _\bf_\bi_\bl_\be _\bA _\bm_\bm_\bd_\bf_\b2._\bl_\bo_\bg
+ # Messages from mmdf pipe to the program err-message-archive
+ _\bF_\br_\bo_\bm _\bm_\bm_\bd_\bf _\bp_\bi_\bp_\be _\bA /_\bb_\bi_\bn/_\be_\br_\br-_\bm_\be_\bs_\bs_\ba_\bg_\be-_\ba_\br_\bc_\bh_\bi_\bv_\be
+ # Anything with the "Sender:" address "mh-workers"
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SLOCAL(1) -100- SLOCAL(1)
+
+
+ # file in mh.log if not filed already
+ _\bS_\be_\bn_\bd_\be_\br _\bm_\bh-_\bw_\bo_\br_\bk_\be_\br_\bs _\bf_\bi_\bl_\be ? _\bm_\bh._\bl_\bo_\bg
+ # "To:" unix - put in file unix-news
+ _\bT_\bo _\bU_\bn_\bi_\bx > _\bA _\bu_\bn_\bi_\bx-_\bn_\be_\bw_\bs
+ # if the address is jpo=ack - send an acknowledgement copy back
+ _\ba_\bd_\bd_\br _\bj_\bp_\bo=_\ba_\bc_\bk | _\bR "/_\bb_\bi_\bn/_\br_\be_\bs_\be_\bn_\bd -_\br $(_\br_\be_\bp_\bl_\by-_\bt_\bo)"
+ # anything from steve - destroy!
+ _\bF_\br_\bo_\bm _\bs_\bt_\be_\bv_\be _\bd_\be_\bs_\bt_\br_\bo_\by _\bA -
+ # anything not matched yet - put into mailbox
+ _\bd_\be_\bf_\ba_\bu_\bl_\bt - > ? _\bm_\ba_\bi_\bl_\bb_\bo_\bx
+ # always run rcvtty
+ * - | _\bR /_\bm_\bh/_\bl_\bi_\bb/_\br_\bc_\bv_\bt_\bt_\by
+
+ The file is always read completely, so that several matches can be
+ made and several actions can be taken. The ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file must
+ be owned either by the user or by root, and must be writable only
+ by the owner. If the ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file cannot be found, or does
+ not perform an action which delivers the message, then the file
+ /usr/local/lib/mh/maildelivery is read according to the same rules.
+ This file must be owned by the root and must be writable only by
+ the root. If this file cannot be found or does not perform an
+ action which delivers the message, then standard delivery to the
+ user's maildrop is performed.
+
+
+ _\bS_\bu_\bb-_\bp_\br_\bo_\bc_\be_\bs_\bs _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt
+
+ When a process is invoked, its environment is: the user/group-ids
+ are set to recipient's ids; the working directory is the
+ recipient's home directory; the umask is 0077; the process has no
+ /dev/tty; the standard input is set to the message; the standard
+ output and diagnostic output are set to /dev/null; all other file-
+ descriptors are closed; the envariables $USER, $HOME, $SHELL are
+ set appropriately, and no other envariables exist.
+
+ The process is given a certain amount of time to execute. If the
+ process does not exit within this limit, the process will be ter-
+ minated with extreme prejudice. The amount of time is calculated
+ as ((size x 60) + 300) seconds, where size is the number of bytes
+ in the message.
+
+ The exit status of the process is consulted in determining the suc-
+ cess of the action. An exit status of zero means that the action
+ succeeded. Any other exit status (or abnormal termination) means
+ that the action failed.
+
+ In order to avoid any time limitations, you might implement a pro-
+ cess that began by _\bf_\bo_\br_\bk_\bi_\bn_\bg. The parent would return the appropri-
+ ate value immediately, and the child could continue on, doing what-
+ ever it wanted for as long as it wanted. This approach is somewhat
+ risky if the parent is going to return an exit status of zero. If
+ the parent is going to return a non-zero exit status, then this
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SLOCAL(1) -101- SLOCAL(1)
+
+
+ approach can lead to quicker delivery into your maildrop.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor MH tailor file
+ $HOME/.maildelivery The file controlling local delivery
+ /usr/local/lib/mh/maildelivery Rather than the standard file
+ /usr/spool/mail/$USER The default maildrop
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ rcvstore(1), mhook(1), mh-format(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-noverbose'
+ `-maildelivery .maildelivery'
+ `-mailbox /usr/spool/mail/$USER'
+ `-file' defaults to stdin
+ `-user' defaults to the current user
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ _\bS_\bl_\bo_\bc_\ba_\bl is designed to be backward-compatible with the _\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by
+ facility provided by _\bM_\bM_\bD_\bF-_\bI_\bI. Thus, the ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file syntax
+ is limited, as is the functionality of _\bs_\bl_\bo_\bc_\ba_\bl.
+
+ In addition to an exit status of zero, the _\bM_\bM_\bD_\bF values _\bR_\bP__\bM_\bO_\bK (32)
+ and _\bR_\bP__\bO_\bK (9) mean that the message has been fully delivered. Any
+ other non-zero exit status, including abnormal termination, is in-
+ terpreted as the _\bM_\bM_\bD_\bF value _\bR_\bP__\bM_\bE_\bC_\bH (200), which means "use an al-
+ ternate route" (deliver the message to the maildrop).
+
+
+ _\bB_\bu_\bg_\bs
+ Only two return codes are meaningful, others should be.
+
+ _\bS_\bl_\bo_\bc_\ba_\bl is designed to be backwards-compatible with the _\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by
+ functionality provided by MMDF-II.
+
+ Versions of _\bM_\bM_\bD_\bF with the _\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by mechanism aren't entirely
+ backwards-compatible with earlier versions of _\bM_\bM_\bD_\bF. If you have an
+ _\bM_\bM_\bD_\bF-_\bI old-style hook, the best you can do is to have a one-line
+ ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by file:
+
+ default - pipe A "bin/rcvmail $(address) $(info) $(sender)"
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SORTM(1) -102- SORTM(1)
+
+
+ _\bN_\bA_\bM_\bE
+ sortm - sort messages
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ sortm [+folder] [msgs] [-datefield field] [-textfield field]
+ [-notextfield] [-limit days] [-nolimit] [-verbose]
+ [-noverbose] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bS_\bo_\br_\bt_\bm sorts the specified messages in the named folder according to
+ the chronological order of the "Date:" field of each message.
+
+ The `-verbose' switch directs _\bs_\bo_\br_\bt_\bm to tell the user the general
+ actions that it is taking to place the folder in sorted order.
+
+ The `-datefield field' switch tells _\bs_\bo_\br_\bt_\bm the name of the field to
+ use when making the date comparison. If the user has a special
+ field in each message, such as "BB-Posted:" or "Delivery-Date:",
+ then the `-datefield' switch can be used to direct _\bs_\bo_\br_\bt_\bm which
+ field to examine.
+
+ The `-textfield field' switch causes _\bs_\bo_\br_\bt_\bm to sort messages by the
+ specified text field. If this field is "subject", any leading
+ "re:" is stripped off. In any case, all characters except letters
+ and numbers are stripped and the resulting strings are sorted
+ datefield-major, textfield-minor, using a case insensitive com-
+ parison.
+
+ With `-textfield field', if `-limit days' is specified, messages
+ with similar textfields that are dated within `days' of each other
+ appear together. Specifying `-nolimit' makes the limit infinity.
+ With `-limit 0', the sort is instead made textfield-major,
+ date-minor.
+
+ For example, to order a folder by date-major, subject-minor, use:
+
+ sortm -textfield subject +folder
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Current-Folder: To find the default current folder
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ folder (1)
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ SORTM(1) -103- SORTM(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `+folder' defaults to the current folder
+ `msgs' defaults to all
+ `-datefield date'
+ `-notextfield'
+ `-noverbose'
+ `-nolimit'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ If a folder is given, it will become the current folder. If the
+ current message is moved, _\bs_\bo_\br_\bt_\bm will preserve its status as
+ current.
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ Timezones used to be ignored when comparing dates: they aren't any
+ more.
+
+ Messages which were in the folder, but not specified by `msgs',
+ used to be moved to the end of the folder; now such messages are
+ left untouched.
+
+ _\bS_\bo_\br_\bt_\bm sometimes did not preserve the message numbering in a folder
+ (e.g., messages 1, 3, and 5, might have been renumbered to 1, 2, 3
+ after sorting). This was a bug, and has been fixed. To compress
+ the message numbering in a folder, use "_\bf_\bo_\bl_\bd_\be_\br -_\bp_\ba_\bc_\bk" as always.
+
+
+ _\bB_\bu_\bg_\bs
+ If _\bs_\bo_\br_\bt_\bm encounters a message without a date-field, or if the mes-
+ sage has a date-field that _\bs_\bo_\br_\bt_\bm cannot parse, then _\bs_\bo_\br_\bt_\bm attempts
+ to keep the message in the same relative position. This does not
+ always work. For instance, if the first message encountered lacks
+ a date which can be parsed, then it will usually be placed at the
+ end of the messages being sorted.
+
+ When _\bs_\bo_\br_\bt_\bm complains about a message which it can't temporally ord-
+ er, it complains about the message number _\bp_\br_\bi_\bo_\br to sorting. It
+ should indicate what the message number will be _\ba_\bf_\bt_\be_\br sorting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ VMH(1) -104- VMH(1)
+
+
+ _\bN_\bA_\bM_\bE
+ vmh - visual front-end to MH
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ vmh [-prompt string] [-vmhproc program] [-novmhproc]
+ [switches for _\bv_\bm_\bh_\bp_\br_\bo_\bc] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bv_\bm_\bh is a program which implements the server side of the _\bM_\bH window
+ management protocol and uses _\bc_\bu_\br_\bs_\be_\bs (3) routines to maintain a
+ split-screen interface to any program which implements the client
+ side of the protocol. This latter program, called the _\bv_\bm_\bh_\bp_\br_\bo_\bc, is
+ specified using the `-vmhproc program' switch.
+
+ The upshot of all this is that one can run _\bm_\bs_\bh on a display termi-
+ nal and get a nice visual interface. To do this, for example, just
+ add the line
+
+ mshproc: vmh
+
+ to your .mh_profile. (This takes advantage of the fact that _\bm_\bs_\bh is
+ the default _\bv_\bm_\bh_\bp_\br_\bo_\bc for _\bv_\bm_\bh.)
+
+ In order to facilitate things, if the `-novmhproc' switch is given,
+ and _\bv_\bm_\bh can't run on the user's terminal, the _\bv_\bm_\bh_\bp_\br_\bo_\bc is run
+ directly without the window management protocol.
+
+ After initializing the protocol, _\bv_\bm_\bh prompts the user for a command
+ to be given to the client. Usually, this results in output being
+ sent to one or more windows. If a output to a window would cause
+ it to scroll, _\bv_\bm_\bh prompts the user for instructions, roughly per-
+ mitting the capabilities of _\bl_\be_\bs_\bs or _\bm_\bo_\br_\be (e.g., the ability to
+ scroll backwards and forwards):
+
+ SPACE advance to the next windowful
+ RETURN * advance to the next line
+ y * retreat to the previous line
+ d * advance to the next ten lines
+ u * retreat to the previous ten lines
+ g * go to an arbitrary line
+ (preceed g with the line number)
+ G * go to the end of the window
+ (if a line number is given, this acts like `g')
+ CTRL-L refresh the entire screen
+ h print a help message
+ q abort the window
+
+ (A `*' indicates that a numeric prefix is meaningful for this com-
+ mand.)
+
+ Note that if a command resulted in more than one window's worth of
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ VMH(1) -105- VMH(1)
+
+
+ information being displayed, and you allow the command which is
+ generating information for the window to gracefully finish (i.e.,
+ you don't use the `q' command to abort information being sent to
+ the window), then _\bv_\bm_\bh will give you one last change to peruse the
+ window. This is useful for scrolling back and forth. Just type
+ `q' when you're done.
+
+ To abnormally terminate _\bv_\bm_\bh (without core dump), use <QUIT> (usu-
+ ally CTRL-\). For instance, this does the "right" thing with _\bb_\bb_\bc
+ and _\bm_\bs_\bh.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ msh(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-prompt (vmh) '
+ `-vmhproc msh'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-prompt' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bv_\bm_\bh. Therefore, one must usu-
+ ally place the argument to this switch inside double-quotes.
+
+ At present, there is no way to pass signals (e.g., interrupt, quit)
+ to the client. However, generating QUIT when _\bv_\bm_\bh is reading a com-
+ mand from the terminal is sufficient to tell the client to go away
+ quickly.
+
+ Acts strangely (loses peer or botches window management protocol
+ with peer) on random occasions.
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ WHATNOW(1) -106- WHATNOW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ whatnow - prompting front-end for send
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ whatnow [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-prompt string] [file] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bW_\bh_\ba_\bt_\bn_\bo_\bw is the default program that queries the user about the
+ disposition of a composed draft. It is normally invoked by one of
+ _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, or _\br_\be_\bp_\bl after the initial edit.
+
+ When started, the editor is started on the draft (unless `-noedit'
+ is given, in which case the initial edit is suppressed). Then,
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw repetitively prompts the user with "What now?" and awaits a
+ response. The valid responses are:
+
+ display to list the message being distributed/replied-to on
+ the terminal
+ edit to re-edit using the same editor that was used on the
+ preceding round unless a profile entry
+ "<lasteditor>-next: <editor>" names an alternate editor
+ edit <editor> to invoke <editor> for further editing
+ list to list the draft on the terminal
+ push to send the message in the background
+ quit to terminate the session and preserve the draft
+ quit -delete to terminate, then delete the draft
+ refile +folder to refile the draft into the given folder
+ send to send the message
+ send -watch to cause the delivery process to be monitored
+ whom to list the addresses that the message will go to
+ whom -check to list the addresses and verify that they are
+ acceptable to the transport service
+
+ For the edit response, any valid switch to the editor is valid.
+ Similarly, for the send and whom responses, any valid switch to
+ _\bs_\be_\bn_\bd (1) and _\bw_\bh_\bo_\bm (1) commands, respectively, are valid. For the
+ push response, any valid switch to _\bs_\be_\bn_\bd (1) is valid (as this
+ merely invokes _\bs_\be_\bn_\bd with the `-push' option). For the _\br_\be_\bf_\bi_\bl_\be
+ response, any valid switch to the _\bf_\bi_\bl_\be_\bp_\br_\bo_\bc is valid. For the
+ display and list responses, any valid argument to the _\bl_\bp_\br_\bo_\bc is
+ valid. If any non-switch arguments are present, then the pathname
+ of the draft will be excluded from the argument list given to the
+ _\bl_\bp_\br_\bo_\bc (this is useful for listing another _\bM_\bH message).
+
+ See _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be (5) for further information about how editors are
+ used by MH. It also discusses how complex envariables can be used
+ to direct _\bw_\bh_\ba_\bt_\bn_\bo_\bw's actions.
+
+ The `-prompt string' switch sets the prompting string for _\bw_\bh_\ba_\bt_\bn_\bo_\bw.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ WHATNOW(1) -107- WHATNOW(1)
+
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ <mh-dir>/draft The draft file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Editor: To override the default editor
+ <lasteditor>-next: To name an editor to be used after exit from
+ <lasteditor>
+ fileproc: Program to refile the message
+ lproc: Program to list the contents of a message
+ sendproc: Program to use to send the message
+ whomproc: Program to determine who a message would go to
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ send(1), whom(1)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-prompt "What Now? "'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-prompt' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bw_\bh_\ba_\bt_\bn_\bo_\bw. Therefore, one must
+ usually place the argument to this switch inside double-quotes.
+
+ If the initial edit fails, _\bw_\bh_\ba_\bt_\bn_\bo_\bw deletes your draft (by renaming
+ it with a leading comma); failure of a later edit preverves the
+ draft.
+
+ If _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc is _\bw_\bh_\ba_\bt_\bn_\bo_\bw, then _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl use a
+ built-in _\bw_\bh_\ba_\bt_\bn_\bo_\bw, and do not actually run the _\bw_\bh_\ba_\bt_\bn_\bo_\bw program.
+ Hence, if you define your own _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, don't call it _\bw_\bh_\ba_\bt_\bn_\bo_\bw
+ since it won't be run.
+
+ If _\bs_\be_\bn_\bd_\bp_\br_\bo_\bc is _\bs_\be_\bn_\bd, then _\bw_\bh_\ba_\bt_\bn_\bo_\bw uses a built-in _\bs_\be_\bn_\bd, it does not
+ actually run the _\bs_\be_\bn_\bd program. Hence, if you define your own
+ _\bs_\be_\bn_\bd_\bp_\br_\bo_\bc, don't call it _\bs_\be_\bn_\bd since _\bw_\bh_\ba_\bt_\bn_\bo_\bw won't run it.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ WHATNOW(1) -108- WHATNOW(1)
+
+
+ _\bN_\bA_\bM_\bE
+ whom - report to whom a message would go
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ whom [-alias aliasfile] [-check] [-nocheck] [-draft]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [file] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bW_\bh_\bo_\bm is used to expand the headers of a message into a set of
+ addresses and optionally verify that those addresses are deliver-
+ able at that time (if `-check' is given).
+
+ The `-draftfolder +folder' and `-draftmessage msg' switches invoke
+ the _\bM_\bH draft folder facility. This is an advanced (and highly use-
+ ful) feature. Consult the Advanced Features section of the _\bM_\bH
+ manual for more information.
+
+ The files specified by the profile entry "Aliasfile:" and any addi-
+ tional alias files given by the `-alias aliasfile' switch will be
+ read (more than one file, each preceeded by `-alias', can be
+ named). See _\bm_\bh-_\ba_\bl_\bi_\ba_\bs (5) for more information.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+ Draft-Folder: To find the default draft-folder
+ Aliasfile: For a default alias file
+ postproc: Program to post the message
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-alias(5), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `file' defaults to <mh-dir>/draft
+ `-nocheck'
+ `-alias /usr/local/lib/mh/MailAliases'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ WHOM(1) -109- WHOM(1)
+
+
+ _\bB_\bu_\bg_\bs
+ With the `-check' option, _\bw_\bh_\bo_\bm makes no guarantees that the ad-
+ dresses listed as being ok are really deliverable, rather, an ad-
+ dress being listed as ok means that at the time that _\bw_\bh_\bo_\bm was run
+ the address was thought to be deliverable by the transport service.
+ For local addresses, this is absolute; for network addresses, it
+ means that the host is known; for uucp addresses, it (often) means
+ that the _\bU_\bU_\bC_\bP network is available for use.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ -110-
+
+
+ _\bM_\bO_\bR_\bE _\bD_\bE_\bT_\bA_\bI_\bL_\bS
+
+ This section describes some of the more intense points of the _\bM_\bH
+ system, by expanding on topics previously discussed. The format
+ presented conforms to the standard form for the description of UNIX
+ documentation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -111- MH-ALIAS(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-alias - alias file for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ any _\bM_\bH command
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ This describes both _\bM_\bH personal alias files and the (primary) alias
+ file for mail delivery, the file
+
+ /usr/local/lib/mh/MailAliases
+
+ It does not describe aliases files used by the message transport
+ system. Each line of the alias file has the format:
+
+ alias : address-group
+ or
+ alias ; address-group
+ or
+ < alias-file
+ or
+ ; comment
+
+ where:
+
+ address-group := address-list
+ | "<" file
+ | "=" UNIX-group
+ | "+" UNIX-group
+ | "*"
+
+ address-list := address
+ | address-list, address
+
+ Continuation lines in alias files end with `\' followed by the new-
+ line character.
+
+ Alias-file and file are UNIX file names. UNIX-group is a group
+ name (or number) from /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp. An address is a "simple"
+ Internet-style address. Througout this file, case is ignored,
+ except for alias-file names.
+
+ If the line starts with a `<', then the file named after the `<' is
+ read for more alias definitions. The reading is done recursively,
+ so a `<' may occur in the beginning of an alias file with the
+ expected results.
+
+ If the address-group starts with a `<', then the file named after
+ the `<' is read and its contents are added to the address-list for
+ the alias.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -112- MH-ALIAS(5)
+
+
+ If the address-group starts with an `=', then the file /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp
+ is consulted for the UNIX-group named after the `='. Each login
+ name occurring as a member of the group is added to the
+ address-list for the alias.
+
+ In contrast, if the address-group starts with a `+', then the file
+ /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp is consulted to determine the group-id of the UNIX-group
+ named after the `+'. Each login name occurring in the /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd
+ file whose group-id is indicated by this group is added to the
+ address-list for the alias.
+
+ If the address-group is simply `*', then the file /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd is
+ consulted and all login names with a userid greater than some magic
+ number (usually 200) are added to the address-list for the alias.
+
+ In match, a trailing * on an alias will match just about anything
+ appropriate. (See example below.)
+
+ An approximation of the way aliases are resolved at posting time is
+ (it's not really done this way):
+
+ 1) Build a list of all addresses from the message to be
+ delivered, eliminating duplicate addresses.
+
+ 2) If this draft originated on the local host, then for those
+ addresses in the message that have no host specified, perform
+ alias resolution.
+
+ 3) For each line in the alias file, compare "alias" against
+ all of the existing addresses. If a match, remove the matched
+ "alias" from the address list, and add each new address in the
+ address-group to the address list if it is not already on the
+ list. The alias itself is not usually output, rather the
+ address-group that the alias maps to is output instead. If
+ "alias" is terminated with a `;' instead of a `:', then both
+ the "alias" and the address are output in the correct format.
+ (This makes replies possible since _\bM_\bH aliases and personal
+ aliases are unknown to the mail transport system.)
+
+ Since the alias file is read line by line, forward references work,
+ but backward references are not recognized, thus, there is no
+ recursion.
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -113- MH-ALIAS(5)
+
+
+ Example:
+ </usr/local/lib/mh/BBoardAliases
+ sgroup: fred, fear, freida
+ b-people: Blind List: bill, betty;
+ fred: frated@UCI
+ UNIX-committee: <unix.aliases
+ staff: =staff
+ wheels: +wheel
+ everyone: *
+ news.*: news
+
+ The first line says that more aliases should immediately be read
+ from the file /_\bu_\bs_\br/_\bl_\bo_\bc_\ba_\bl/_\bl_\bi_\bb/_\bm_\bh/_\bB_\bB_\bo_\ba_\br_\bd_\bA_\bl_\bi_\ba_\bs_\be_\bs. Following this,
+ "fred" is defined as an alias for "frated@UCI", and "sgroup" is
+ defined as an alias for the three names "frated@UCI", "fear", and
+ "freida".
+
+ The alias "b-people" is a blind list which includes the addresses
+ "bill" and "betty"; the message will be delieved to those
+ addresses, but the message header will show only "Blind List: ;"
+ (not the addresses).
+
+ Next, the definition of "UNIX-committee" is given by reading the
+ file _\bu_\bn_\bi_\bx._\ba_\bl_\bi_\ba_\bs_\be_\bs in the users _\bM_\bH directory, "staff" is defined as
+ all users who are listed as members of the group "staff" in the
+ /_\be_\bt_\bc/_\bg_\br_\bo_\bu_\bp file, and "wheels" is defined as all users whose
+ group-id in /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd is equivalent to the "wheel" group.
+
+ Finally, "everyone" is defined as all users with a user-id in
+ /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd greater than 200, and all aliases of the form
+ "news.<anything>" are defined to be "news".
+
+ The key thing to understand about aliasing in _\bM_\bH is that aliases in
+ _\bM_\bH alias files are expanded into the headers of messages posted.
+ This aliasing occurs first, at posting time, without the knowledge
+ of the message transport system. In contrast, once the message
+ transport system is given a message to deliver to a list of
+ addresses, for each address that appears to be local, a system-wide
+ alias file is consulted. These aliases are NOT expanded into the
+ headers of messages delivered.
+
+ _\bH_\be_\bl_\bp_\bf_\bu_\bl _\bH_\bi_\bn_\bt_\bs
+
+ To use aliasing in _\bM_\bH quickly, do the following:
+
+ First, in your ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be, choose a name for your alias file,
+ say "aliases", and add the line:
+
+ Aliasfile: aliases
+
+ Second, create the file "aliases" in your _\bM_\bH directory.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-ALIAS(5) -114- MH-ALIAS(5)
+
+
+ Third, start adding aliases to your "aliases" file as
+ appropriate.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/MailAliases Primary alias file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Aliasfile: For a default alias file
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous releases of _\bM_\bH, only a single, system-wide mh-alias
+ file was supported. This led to a number of problems, since only
+ mail-system administrators were capable of (un)defining aliases.
+ Hence, the semantics of mh-alias were extended to support personal
+ alias files. Users of _\bM_\bH no longer need to bother mail-system ad-
+ ministrators for keeping information in the system-wide alias file,
+ as each _\bM_\bH user can create/modify/remove aliases at will from any
+ number of personal files.
+
+
+ _\bB_\bu_\bg_\bs
+ Although the forward-referencing semantics of _\bm_\bh-_\ba_\bl_\bi_\ba_\bs files
+ prevent recursion, the "< alias-file" command may defeat this.
+ Since the number of file descriptors is finite (and very limited),
+ such infinite recursion will terminate with a meaningless diagnos-
+ tic when all the fds are used up.
+
+ Forward references do not work correctly inside blind lists.
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -115- MH-FORMAT(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-format - format file for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ some _\bM_\bH commands
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Several _\bM_\bH commands utilize either a _\bf_\bo_\br_\bm_\ba_\bt string or a _\bf_\bo_\br_\bm_\ba_\bt file
+ during their execution. For example, _\bs_\bc_\ba_\bn (1) uses a format string
+ which directs it how to generate the scan listing for each message;
+ _\br_\be_\bp_\bl (1) uses a format file which directs it how to generate the
+ reply to a message, and so on.
+
+ Format strings are designed to be efficiently parsed by _\bM_\bH which
+ means they are not necessarily simple to write and understand.
+ This means that novice, casual, or even advanced users of _\bM_\bH should
+ not have to deal with them. Some canned scan listing formats are
+ in /usr/local/lib/mh/scan.time, /usr/local/lib/mh/scan.size, and
+ /usr/local/lib/mh/scan.timely. Look in /usr/local/lib/mh for other
+ _\bs_\bc_\ba_\bn and _\br_\be_\bp_\bl format files which may have been written at your
+ site.
+
+ It suffices to have your local _\bM_\bH expert actually write new format
+ commands or modify existing ones. This manual section explains how
+ to do that. Note: familiarity with the C _\bp_\br_\bi_\bn_\bt_\bf routine is
+ assumed.
+
+ A format string consists of ordinary text, and special multi-
+ character _\be_\bs_\bc_\ba_\bp_\be sequences which begin with `%'. When specifying a
+ format string, the usual C backslash characters are honored: `\b',
+ `\f', `\n', `\r', and `\t'. Continuation lines in format files end
+ with `\' followed by the newline character. There are three types
+ of _\be_\bs_\bc_\ba_\bp_\be sequences: header _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs, built-in _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs, and
+ flow _\bc_\bo_\bn_\bt_\br_\bo_\bl.
+
+ A _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt escape is specified as `%{_\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt}', and exists for
+ each header found in the message being processed. For example
+ `%{date}' refers to the "Date:" field of the appropriate message.
+ All component escapes have a string value. Normally, component
+ values are compressed by converting any control characters (tab and
+ newline included) to spaces, then eliding any leading or multiple
+ spaces. However, commands may give different interpretations to
+ some component escapes; be sure to refer to each command's manual
+ entry for complete details.
+
+ A _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn escape is specified as `%(_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn)'. All functions are
+ built-in, and most have a string or numeric value.
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -116- MH-FORMAT(5)
+
+
+ _\bC_\bo_\bn_\bt_\br_\bo_\bl-_\bf_\bl_\bo_\bw _\be_\bs_\bc_\ba_\bp_\be_\bs
+
+ A _\bc_\bo_\bn_\bt_\br_\bo_\bl escape is one of: `%<', `%?', `%|', or `%>'. These are
+ combined into the conditional execution construct:
+
+ %<condition
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\b1
+ %?condition2
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\b2
+ %?condition3
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\b3
+ ...
+ %|
+ _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt _\bN
+ %>
+
+ Extra white space is shown here only for clarity. These constructs
+ may be nested without ambiguity. They form a general
+ if-elseif-else-endif block where only one of the _\bf_\bo_\br_\bm_\ba_\bt _\bt_\be_\bx_\bt seg-
+ ments is interpreted.
+
+ The `%<' and `%?' control escapes causes a condition to be
+ evaluated. This condition may be either a _\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt or a _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn.
+ The four constructs have the following syntax:
+
+ %<{component}
+ %<(function)
+ %?{component}
+ %?(function)
+
+ These control escapes test whether the function or component value
+ is non-zero (for integer-valued escapes), or non-empty (for
+ string-valued escapes).
+
+ If this test evaulates true, then the format text up to the next
+ corresponding control escape (one of `%|', `%?', or `%>') is inter-
+ preted normally. Next, all format text (if any) up to the
+ corresponding `%>' control escape is skipped. The `%>' control
+ escape is not interpreted; normal interpretation resumes after the
+ `%>' escape.
+
+ If the test evaluates false, however, then the format text up to
+ the next corresponding control escape (again, one of `%|', `%?', or
+ `%>') is skipped, instead of being interpreted. If the control
+ escape encountered was `%?', then the condition associated with
+ that control escape is evaluated, and interpretation proceeds after
+ that test as described in the previous paragraph. If the control
+ escape encountered was `%|', then the format text up to the
+ corresponding `%>' escape is interpreted normally. As above, the
+ `%>' escape is not interpreted and normal interpretation resumes
+ after the `%>' escape.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -117- MH-FORMAT(5)
+
+
+ The `%?' control escape and its following format text is optional,
+ and may be included zero or more times. The `%|' control escape
+ and its following format text is also optional, and may be included
+ zero or one times.
+
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\be_\bs_\bc_\ba_\bp_\be_\bs
+
+ Most functions expect an argument of a particular type:
+
+ _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn _\bE_\bx_\ba_\bm_\bp_\bl_\be _\bS_\by_\bn_\bt_\ba_\bx
+ literal A literal number, %(_\bf_\bu_\bn_\bc 1234)
+ or string %(_\bf_\bu_\bn_\bc text string)
+ comp Any header component %(_\bf_\bu_\bn_\bc{_\bi_\bn-_\br_\be_\bp_\bl_\by-_\bt_\bo})
+ date A date component %(_\bf_\bu_\bn_\bc{_\bd_\ba_\bt_\be})
+ addr An address component %(_\bf_\bu_\bn_\bc{_\bf_\br_\bo_\bm})
+ expr An optional component, %(_\bf_\bu_\bn_\bc(_\bf_\bu_\bn_\bc_\b2))
+ function or control, %(_\bf_\bu_\bn_\bc %<{_\br_\be_\bp_\bl_\by-_\bt_\bo}%|%{_\bf_\br_\bo_\bm}%>)
+ perhaps nested %(_\bf_\bu_\bn_\bc(_\bf_\bu_\bn_\bc_\b2{_\bc_\bo_\bm_\bp}))
+
+ The types _\bd_\ba_\bt_\be and _\ba_\bd_\bd_\br have the same syntax as _\bc_\bo_\bm_\bp, but require
+ that the header component be a date string, or address string,
+ respectively.
+
+ All arguments except those of type _\be_\bx_\bp_\br are required. For the _\be_\bx_\bp_\br
+ argument type, the leading `%' must be omitted for component and
+ function escape arguments, and must be present (with a leading
+ space) for control escape arguments.
+
+ The evaluation of format strings is based on a simple machine with
+ an integer register _\bn_\bu_\bm, and a text string register _\bs_\bt_\br. When a
+ function escape is processed, if it accepts an optional _\be_\bx_\bp_\br argu-
+ ment which is not present, it reads the current value of either _\bn_\bu_\bm
+ or _\bs_\bt_\br as appropriate.
+
+
+ _\bR_\be_\bt_\bu_\br_\bn _\bv_\ba_\bl_\bu_\be_\bs
+
+ Component escapes write the value of their message header in _\bs_\bt_\br.
+ Function escapes write their return value in _\bn_\bu_\bm for functions
+ returning _\bi_\bn_\bt_\be_\bg_\be_\br or _\bb_\bo_\bo_\bl_\be_\ba_\bn values, and in _\bs_\bt_\br for functions
+ returning string values. (The _\bb_\bo_\bo_\bl_\be_\ba_\bn type is a subset of integers
+ with usual values 0=false and 1=true.) Control escapes return a
+ _\bb_\bo_\bo_\bl_\be_\ba_\bn value, and set _\bn_\bu_\bm.
+
+ All component escapes, and those function escapes which return an
+ _\bi_\bn_\bt_\be_\bg_\be_\br or _\bs_\bt_\br_\bi_\bn_\bg value, pass this value back to their caller in
+ addition to setting _\bs_\bt_\br or _\bn_\bu_\bm. These escapes will print out this
+ value unless called as part of an argument to another escape
+ sequence. Escapes which return a _\bb_\bo_\bo_\bl_\be_\ba_\bn value do pass this value
+ back to their caller in _\bn_\bu_\bm, but will never print out the value.
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -118- MH-FORMAT(5)
+
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bR_\be_\bt_\bu_\br_\bn _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ msg integer message number
+ cur integer message is current
+ size integer size of message
+ strlen integer length of _\bs_\bt_\br
+ width integer output buffer size in bytes
+ charleft integer bytes left in output buffer
+ timenow integer seconds since the UNIX epoch
+ me string the user's mailbox
+ eq literal boolean _\bn_\bu_\bm == _\ba_\br_\bg
+ ne literal boolean _\bn_\bu_\bm != _\ba_\br_\bg
+ gt literal boolean _\bn_\bu_\bm > _\ba_\br_\bg
+ match literal boolean _\bs_\bt_\br contains _\ba_\br_\bg
+ amatch literal boolean _\bs_\bt_\br starts with _\ba_\br_\bg
+ plus literal integer _\ba_\br_\bg plus _\bn_\bu_\bm
+ minus literal integer _\ba_\br_\bg minus _\bn_\bu_\bm
+ divide literal integer _\bn_\bu_\bm divided by _\ba_\br_\bg
+ modulo literal integer _\bn_\bu_\bm modulo _\ba_\br_\bg
+ num literal integer Set _\bn_\bu_\bm to _\ba_\br_\bg
+ lit literal string Set _\bs_\bt_\br to _\ba_\br_\bg
+ getenv literal string Set _\bs_\bt_\br to environment value of _\ba_\br_\bg
+ profile literal string Set _\bs_\bt_\br to profile component _\ba_\br_\bg value
+ nonzero expr boolean _\bn_\bu_\bm is non-zero
+ zero expr boolean _\bn_\bu_\bm is zero
+ null expr boolean _\bs_\bt_\br is empty
+ nonnull expr boolean _\bs_\bt_\br is non-empty
+ void expr Set _\bs_\bt_\br or _\bn_\bu_\bm
+ comp comp string Set _\bs_\bt_\br to component text
+ compval comp integer _\bn_\bu_\bm set to "atoi(_\bc_\bo_\bm_\bp)"
+ trim expr trim trailing white-space from _\bs_\bt_\br
+ putstr expr print _\bs_\bt_\br
+ putstrf expr print _\bs_\bt_\br in a fixed width
+ putnum expr print _\bn_\bu_\bm
+ putnumf expr print _\bn_\bu_\bm in a fixed width
+
+ These functions require a date component as an argument:
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bR_\be_\bt_\bu_\br_\bn _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ sec date integer seconds of the minute
+ min date integer minutes of the hour
+ hour date integer hours of the day (0-23)
+ wday date integer day of the week (Sun=0)
+ day date string day of the week (abbrev.)
+ weekday date string day of the week
+ sday date integer day of the week known?
+ (0=implicit,-1=unknown)
+ mday date integer day of the month
+ yday date integer day of the year
+ mon date integer month of the year
+ month date string month of the year (abbrev.)
+ lmonth date string month of the year
+ year date integer year (may be > 100)
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -119- MH-FORMAT(5)
+
+
+ zone date integer timezone in hours
+ tzone date string timezone string
+ szone date integer timezone explicit?
+ (0=implicit,-1=unknown)
+ date2local date coerce date to local timezone
+ date2gmt date coerce date to GMT
+ dst date integer daylight savings in effect?
+ clock date integer seconds since the UNIX epoch
+ rclock date integer seconds prior to current time
+ tws date string official 822 rendering
+ pretty date string user-friendly rendering
+ nodate date integer _\bs_\bt_\br not a date string
+
+ These functions require an address component as an argument. The
+ return value of functions noted with `*' pertain only to the first
+ address present in the header component.
+
+ _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt _\bR_\be_\bt_\bu_\br_\bn _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ proper addr string official 822 rendering
+ friendly addr string user-friendly rendering
+ addr addr string mbox@host or host!mbox rendering*
+ pers addr string the personal name*
+ note addr string commentary text*
+ mbox addr string the local mailbox*
+ mymbox addr integer the user's addresses? (0=no,1=yes)
+ host addr string the host domain*
+ nohost addr integer no host was present*
+ type addr integer host type* (0=local,1=network,
+ -1=uucp,2=unknown)
+ path addr string any leading host route*
+ ingrp addr integer address was inside a group*
+ gname addr string name of group*
+ formataddr expr append _\ba_\br_\bg to _\bs_\bt_\br as a
+ (comma separated) address list
+ putaddr literal print _\bs_\bt_\br address list with
+ _\ba_\br_\bg as optional label;
+ get line width from _\bn_\bu_\bm
+
+ When escapes are nested, evaluation is done from inner-most to
+ outer-most. The outer-most escape must begin with `%'; the inner
+ escapes must not. For example,
+
+ %<(mymbox{from}) To: %{to}%>
+
+ writes the value of the header component "From:" to _\bs_\bt_\br; then (_\bm_\by_\bm_\b-
+ _\bb_\bo_\bx) reads _\bs_\bt_\br and writes its result to _\bn_\bu_\bm; then the control
+ escape evaluates _\bn_\bu_\bm. If _\bn_\bu_\bm is non-zero, the string "To: " is
+ printed followed by the value of the header component "To:".
+
+ A minor explanation of (_\bm_\by_\bm_\bb_\bo_\bx{_\bc_\bo_\bm_\bp}) is in order. In general, it
+ checks each of the addresses in the header component "_\bc_\bo_\bm_\bp" against
+ the user's mailbox name and any _\bA_\bl_\bt_\be_\br_\bn_\ba_\bt_\be-_\bM_\ba_\bi_\bl_\bb_\bo_\bx_\be_\bs. It returns
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -120- MH-FORMAT(5)
+
+
+ true if any address matches, however, it also returns true if the
+ "_\bc_\bo_\bm_\bp" header is not present in the message. If needed, the (_\bn_\bu_\bl_\bl)
+ function can be used to explicitly test for this condition.
+
+ When a function or component escape is interpreted and the result
+ will be immediately printed, an optional field width can be speci-
+ fied to print the field in exactly a given number of characters.
+ For example, a numeric escape like %4(_\bs_\bi_\bz_\be) will print at most 4
+ digits of the message size; overflow will be indicated by a `?' in
+ the first position (like `?234'). A string escape like %4(_\bm_\be) will
+ print the first 4 characters and truncate at the end. Short fields
+ are padded at the right with the fill character (normally, a
+ blank). If the field width argument begins with a leading zero,
+ then the fill character is set to a zero.
+
+ As above, the functions (_\bp_\bu_\bt_\bn_\bu_\bm_\bf) and (_\bp_\bu_\bt_\bs_\bt_\br_\bf) print their result
+ in exactly the number of characters specified by their leading
+ field width argument. For example, %06(_\bp_\bu_\bt_\bn_\bu_\bm_\bf(_\bs_\bi_\bz_\be)) will print
+ the message size in a field six characters wide filled with leading
+ zeros; %14(_\bp_\bu_\bt_\bs_\bt_\br_\bf{_\bf_\br_\bo_\bm}) will print the "From:" header component
+ in fourteen characters with trailing spaces added as needed. For
+ _\bp_\bu_\bt_\bs_\bt_\br_\bf, using a negative value for the field width causes right-
+ justification of the string within the field, with padding on the
+ left up to the field width. The functions (_\bp_\bu_\bt_\bn_\bu_\bm) and (_\bp_\bu_\bt_\bs_\bt_\br)
+ print their result in the minimum number of characters required,
+ and ignore any leading field width argument.
+
+ The available output width is kept in an internal register; any
+ output past this width will be truncated.
+
+ Comments may be inserted in most places where a function argument
+ is not expected. A comment begins with `%;' and ends with a (non-
+ escaped) newline.
+
+ With all this in mind, here's the default format string for _\bs_\bc_\ba_\bn.
+ It's been divided into several pieces for readability. The first
+ part is:
+
+ %4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>
+
+ which says that the message number should be printed in four
+ digits, if the message is the current message then a `+' else a
+ space should be printed, and if a "Replied:" field is present then
+ a `-' else if an "Encrypted:" field is present then an `E' other-
+ wise a space should be printed. Next:
+
+ %02(mon{date})/%02(mday{date})
+
+ the month and date are printed in two digits (zero filled)
+ separated by a slash. Next,
+
+ %<{date} %|*>
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -121- MH-FORMAT(5)
+
+
+ If a "Date:" field was present, then a space is printed, otherwise
+ a `*'. Next,
+
+ %<(mymbox{from})%<{to}To:%14(friendly{to})%>%>
+
+ if the message is from me, and there is a "To:" header, print `To:'
+ followed by a "user-friendly" rendering of the first address in the
+ "To:" field. Continuing,
+
+ %<(zero)%17(friendly{from})%>
+
+ if either of the above two tests failed, then the "From:" address
+ is printed in a "user-friendly" format. And finally,
+
+ %{subject}%<{body}<<%{body}%>
+
+ the subject and initial body (if any) are printed.
+
+ For a more complicated example, next consider the default _\br_\be_\bp_\bl_\bc_\bo_\bm_\bp_\bs
+ format file.
+
+ %(lit)%(formataddr %<{reply-to}
+
+ This clears _\bs_\bt_\br and formats the "Reply-To:" header if present. If
+ not present, the else-if clause is executed.
+
+ %?{from}%?{sender}%?{return-path}%>)\
+
+ This formats the "From:", "Sender:" and "Return-Path:" headers,
+ stopping as soon as one of them is present. Next:
+
+ %<(nonnull)%(void(width))%(putaddr To: )\n%>\
+
+ If the _\bf_\bo_\br_\bm_\ba_\bt_\ba_\bd_\bd_\br result is non-null, it is printed as an address
+ (with line folding if needed) in a field _\bw_\bi_\bd_\bt_\bh wide with a leading
+ label of "To: ".
+
+ %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
+
+ _\bs_\bt_\br is cleared, and the "To:" and "Cc:" headers, along with the
+ user's address (depending on what was specified with the "-cc"
+ switch to _\br_\be_\bp_\bl) are formatted.
+
+ %<(nonnull)%(void(width))%(putaddr cc: )\n%>\
+
+ If the result is non-null, it is printed as above with a leading
+ label of "cc: ".
+
+ %<{fcc}Fcc: %{fcc}\n%>\
+
+ If a "-fcc folder" switch was given to _\br_\be_\bp_\bl (see _\br_\be_\bp_\bl (1) for more
+ details about %{_\bf_\bc_\bc}), an "Fcc:" header is output.
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -122- MH-FORMAT(5)
+
+
+ %<{subject}Subject: Re: %{subject}\n%>\
+
+ If a subject component was present, a suitable reply subject is
+ output.
+
+ %<{date}In-reply-to: Your message of "\
+ %<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id}
+ %{message-id}%>\n%>\
+ --------
+
+ If a date component was present, an "In-Reply-To:" header is output
+ with the preface "Your message of ". If the date was parseable, it
+ is output in a user-friendly format, otherwise it is output as-is.
+ The message-id is included if present. As with all plain-text, the
+ row of dashes are output as-is.
+
+ This last part is a good example for a little more elaboration.
+ Here's that part again in pseudo-code:
+
+ if (comp_exists(date)) then
+ print ("In-reply-to: Your message of \"")
+ if (not_date_string(date.value) then
+ print (date.value)
+ else
+ print (pretty(date.value))
+ endif
+ print ("\"")
+ if (comp_exists(message-id)) then
+ print ("\n\t")
+ print (message-id.value)
+ endif
+ print ("\n")
+ endif
+
+ Although this seems complicated, in point of fact, this method is
+ flexible enough to extract individual fields and print them in any
+ format the user desires.
+
+ _\bF_\bi_\bl_\be_\bs
+ None
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ scan(1), repl(1), ap(8), dp(8)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-FORMAT(5) -123- MH-FORMAT(5)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ This software was contributed for MH 6.3. Prior to this, output
+ format specifications were much easier to write, but considerably
+ less flexible.
+
+
+ _\bB_\bu_\bg_\bs
+ On hosts where _\bM_\bH was configured with the BERK option, address
+ parsing is not enabled.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -124- MH-MAIL(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-mail - message format for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ any _\bM_\bH command
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bM_\bH processes messages in a particular format. It should be noted
+ that although neither Bell nor Berkeley mailers produce message
+ files in the format that _\bM_\bH prefers, _\bM_\bH can read message files in
+ that antiquated format.
+
+ Each user possesses a mail drop box which initially receives all
+ messages processed by _\bp_\bo_\bs_\bt (8). _\bI_\bn_\bc (1) will read from that drop
+ box and incorporate the new messages found there into the user's
+ own mail folders (typically `+inbox'). The mail drop box consists
+ of one or more messages.
+
+ Messages are expected to consist of lines of text. Graphics and
+ binary data are not handled. No data compression is accepted. All
+ text is clear ASCII 7-bit data.
+
+ The general "memo" framework of RFC-822 is used. A message con-
+ sists of a block of information in a rigid format, followed by gen-
+ eral text with no specified format. The rigidly formatted first
+ part of a message is called the header, and the free-format portion
+ is called the body. The header must always exist, but the body is
+ optional. These parts are separated by an empty line, i.e., two
+ consecutive newline characters. Within _\bM_\bH, the header and body may
+ be separated by a line consisting of dashes:
+
+ To:
+ cc:
+ Subject:
+ --------
+
+ The header is composed of one or more header items. Each header
+ item can be viewed as a single logical line of ASCII characters.
+ If the text of a header item extends across several real lines, the
+ continuation lines are indicated by leading spaces or tabs.
+
+ Each header item is called a component and is composed of a keyword
+ or name, along with associated text. The keyword begins at the
+ left margin, may NOT contain spaces or tabs, may not exceed 63
+ characters (as specified by RFC-822), and is terminated by a colon
+ (`:'). Certain components (as identified by their keywords) must
+ follow rigidly defined formats in their text portions.
+
+ The text for most formatted components (e.g., "Date:" and
+ "Message-Id:") is produced automatically. The only ones entered by
+ the user are address fields such as "To:", "cc:", etc. Internet
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -125- MH-MAIL(5)
+
+
+ addresses are assigned mailbox names and host computer specifica-
+ tions. The rough format is "local@domain", such as "MH@UCI", or
+ "MH@UCI-ICSA.ARPA". Multiple addresses are separated by commas. A
+ missing host/domain is assumed to be the local host/domain.
+
+ As mentioned above, a blank line (or a line of dashes) signals that
+ all following text up to the end of the file is the body. No for-
+ matting is expected or enforced within the body.
+
+ Following is a list of header components that are considered mean-
+ ingful to various MH programs.
+ Date:
+ Added by _\bp_\bo_\bs_\bt (8), contains date and time of the message's
+ entry into the transport system.
+
+ From:
+ Added by _\bp_\bo_\bs_\bt (8), contains the address of the author or
+ authors (may be more than one if a "Sender:" field is
+ present). Replies are typically directed to addresses in the
+ "Reply-To:" or "From:" field (the former has precedence if
+ present).
+
+ Sender:
+ Added by _\bp_\bo_\bs_\bt (8) in the event that the message already has a
+ "From:" line. This line contains the address of the actual
+ sender. Replies are never sent to addresses in the "Sender:"
+ field.
+
+ To:
+ Contains addresses of primary recipients.
+
+ cc:
+ Contains addresses of secondary recipients.
+
+ Bcc:
+ Still more recipients. However, the "Bcc:" line is not copied
+ onto the message as delivered, so these recipients are not
+ listed. _\bM_\bH uses an encapsulation method for blind copies, see
+ _\bs_\be_\bn_\bd (1).
+
+ Fcc:
+ Causes _\bp_\bo_\bs_\bt (8) to copy the message into the specified folder
+ for the sender, if the message was successfully given to the
+ transport system.
+
+ Message-ID:
+ A unique message identifier added by _\bp_\bo_\bs_\bt (8) if the `-msgid'
+ flag is set.
+
+ Subject:
+ Sender's commentary. It is displayed by _\bs_\bc_\ba_\bn (1).
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -126- MH-MAIL(5)
+
+
+ In-Reply-To:
+ A commentary line added by _\br_\be_\bp_\bl (1) when replying to a mes-
+ sage.
+
+ Resent-Date:
+ Added when redistributing a message by _\bp_\bo_\bs_\bt (8).
+
+ Resent-From:
+ Added when redistributing a message by _\bp_\bo_\bs_\bt (8).
+
+ Resent-To:
+ New recipients for a message resent by _\bd_\bi_\bs_\bt (1).
+
+ Resent-cc:
+ Still more recipients. See "cc:" and "Resent-To:".
+
+ Resent-Bcc:
+ Even more recipients. See "Bcc:" and "Resent-To:".
+
+ Resent-Fcc:
+ Copy resent message into a folder. See "Fcc:" and
+ "Resent-To:".
+
+ Resent-Message-Id:
+ A unique identifier glued on by _\bp_\bo_\bs_\bt (8) if the `-msgid' flag
+ is set. See "Message-Id:" and "Resent-To:".
+
+ Resent:
+ Annotation for _\bd_\bi_\bs_\bt (1) under the `-annotate' option.
+
+ Forwarded:
+ Annotation for _\bf_\bo_\br_\bw (1) under the `-annotate' option.
+
+ Replied:
+ Annotation for _\br_\be_\bp_\bl (1) under the `-annotate' option.
+
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/spool/mail/$USER Location of mail drop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-MAIL(5) -127- MH-MAIL(5)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -128- MH-PROFILE(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-profile - user profile customization for MH message handler
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Each user of _\bM_\bH is expected to have a file named ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be in his
+ or her home directory. This file contains a set of user parameters
+ used by some or all of the _\bM_\bH family of programs. Each line of the
+ file is of the format
+
+ _\bp_\br_\bo_\bf_\bi_\bl_\be-_\bc_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt: _\bv_\ba_\bl_\bu_\be
+
+ The possible profile components are exemplified below. Only
+ `Path:' is mandatory. The others are optional; some have default
+ values if they are not present. In the notation used below, (pro-
+ file, default) indicates whether the information is kept in the
+ user's _\bM_\bH profile or _\bM_\bH context, and indicates what the default
+ value is.
+
+ Path: Mail
+ Locates _\bM_\bH transactions in directory "Mail". (profile,
+ no default)
+
+ context: context
+ Declares the location of the _\bM_\bH context file, see the
+ HISTORY section below. (profile, default:
+ <mh-dir>/context)
+
+ Current-Folder: inbox
+ Keeps track of the current open folder. (context,
+ default: folder specified by "Inbox")
+
+ Inbox: inbox
+ Defines the name of your inbox. (profile, default:
+ inbox)
+
+ Previous-Sequence: pseq
+ Names the sequences which should be defined as the `msgs'
+ or `msg' argument given to the program. If not present,
+ or empty, no sequences are defined. Otherwise, for each
+ name given, the sequence is first zero'd and then each
+ message is added to the sequence. (profile, no default)
+
+ Sequence-Negation: not
+ Defines the string which, when prefixed to a sequence
+ name, negates that sequence. Hence, "notseen" means all
+ those messages that are not a member of the sequence
+ "seen". (profile, no default)
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -129- MH-PROFILE(5)
+
+
+ Unseen-Sequence: unseen
+ Names the sequences which should be defined as those mes-
+ sages recently incorporated by _\bi_\bn_\bc. _\bS_\bh_\bo_\bw knows to remove
+ messages from this sequence once it thinks they have been
+ seen. If not present, or empty, no sequences are
+ defined. Otherwise, each message is added to each
+ sequence name given. (profile, no default)
+
+ mh-sequences: .mh_sequences
+ The name of the file in each folder which defines public
+ sequences. To disable the use of public sequences, leave
+ the value portion of this entry blank. (profile,
+ default: .mh_sequences)
+
+ atr-_\bs_\be_\bq-_\bf_\bo_\bl_\bd_\be_\br: 172 178-181 212
+ Keeps track of the private sequence called _\bs_\be_\bq in the
+ specified folder. (context, no default)
+
+ Editor: /usr/ucb/ex
+ Defines editor to be used by _\bc_\bo_\bm_\bp (1), _\bd_\bi_\bs_\bt (1),
+ _\bf_\bo_\br_\bw (1), and _\br_\be_\bp_\bl (1). (profile, default: prompter)
+
+ Msg-Protect: 644
+ Defines octal protection bits for message files. See
+ _\bc_\bh_\bm_\bo_\bd (1) for an explanation of the octal number. (pro-
+ file, default: 0644)
+
+ Folder-Protect: 711
+ Defines protection bits for folder directories. (pro-
+ file, default: 0711)
+
+ _\bp_\br_\bo_\bg_\br_\ba_\bm: default switches
+ Sets default switches to be used whenever the mh program
+ _\bp_\br_\bo_\bg_\br_\ba_\bm is invoked. For example, one could override the
+ _\bE_\bd_\bi_\bt_\bo_\br: profile component when replying to messages by
+ adding a component such as:
+ repl: -editor /bin/ed
+ (profile, no defaults)
+
+ _\bl_\ba_\bs_\bt_\be_\bd_\bi_\bt_\bo_\br-next: nexteditor
+ Names "nexteditor" to be the default editor after using
+ "lasteditor". This takes effect at "What now?" level in
+ _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl. After editing the draft with
+ "lasteditor", the default editor is set to be "nextedi-
+ tor". If the user types "edit" without any arguments to
+ "What now?", then "nexteditor" is used. (profile, no
+ default)
+
+ bboards: system
+ Tells _\bb_\bb_\bc which BBoards you are interested in. (profile,
+ default: system)
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -130- MH-PROFILE(5)
+
+
+ Folder-Stack: _\bf_\bo_\bl_\bd_\be_\br_\bs
+ The contents of the folder-stack for the _\bf_\bo_\bl_\bd_\be_\br command.
+ (context, no default)
+
+ mhe:
+ If present, tells _\bi_\bn_\bc to compose an _\bM_\bH_\bE auditfile in
+ addition to its other tasks. _\bM_\bH_\bE is Brian Reid's _\bE_\bm_\ba_\bc_\bs
+ front-end for _\bM_\bH. An early version is supplied with the
+ _\bm_\bh._\b6 distribution. (profile, no default)
+
+ Alternate-Mailboxes: mh@uci-750a, bug-mh*
+ Tells _\br_\be_\bp_\bl and _\bs_\bc_\ba_\bn which addresses are really yours. In
+ this way, _\br_\be_\bp_\bl knows which addresses should be included
+ in the reply, and _\bs_\bc_\ba_\bn knows if the message really ori-
+ ginated from you. Addresses must be separated by a
+ comma, and the hostnames listed should be the "official"
+ hostnames for the mailboxes you indicate, as local nick-
+ names for hosts are not replaced with their official site
+ names. For each address, if a host is not given, then
+ that address on any host is considered to be you. In
+ addition, an asterisk (`*') may appear at either or both
+ ends of the mailbox and host to indicate wild-card match-
+ ing. (profile, default: your user-id)
+
+ Aliasfile: aliases other-alias
+ Indicates aliases files for _\ba_\bl_\bi, _\bw_\bh_\bo_\bm, and _\bs_\be_\bn_\bd. This
+ may be used instead of the `-alias file' switch. (pro-
+ file, no default)
+
+ Draft-Folder: drafts
+ Indicates a default draft folder for _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw,
+ and _\br_\be_\bp_\bl. (profile, no default)
+
+ digest-issue-_\bl_\bi_\bs_\bt: 1
+ Tells _\bf_\bo_\br_\bw the last issue of the last volume sent for the
+ digest _\bl_\bi_\bs_\bt. (context, no default)
+
+ digest-volume-_\bl_\bi_\bs_\bt: 1
+ Tells _\bf_\bo_\br_\bw the last volume sent for the digest _\bl_\bi_\bs_\bt.
+ (context, no default)
+
+ MailDrop: .mail
+ Tells _\bi_\bn_\bc your maildrop, if different from the default.
+ This is superceded by the MAILDROP envariable. (profile,
+ default: /usr/spool/mail/$USER)
+
+ Signature: RAND MH System (agent: Marshall Rose)
+ Tells _\bs_\be_\bn_\bd your mail signature. This is superceded by
+ the SIGNATURE envariable. If SIGNATURE is not set and
+ this profile entry is not present, the "gcos" field of
+ the /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd file will be used; otherwise, on hosts
+ where _\bM_\bH was configured with the UCI option, the file
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -131- MH-PROFILE(5)
+
+
+ $HOME/.signature is consulted. Your signature will be
+ added to the address _\bs_\be_\bn_\bd puts in the "From:" header; do
+ not include an address in the signature text. (profile,
+ no default)
+
+ The following profile elements are used whenever an _\bM_\bH program
+ invokes some other program such as _\bm_\bo_\br_\be (1). The ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be can
+ be used to select alternate programs if the user wishes. The
+ default values are given in the examples.
+
+ fileproc: /usr/local/refile
+ incproc: /usr/local/inc
+ installproc: /usr/local/lib/mh/install-mh
+ lproc: /usr/ucb/more
+ mailproc: /usr/local/mhmail
+ mhlproc: /usr/local/lib/mh/mhl
+ moreproc: /usr/ucb/more
+ mshproc: /usr/local/msh
+ packproc: /usr/local/packf
+ postproc: /usr/local/lib/mh/post
+ rmmproc: none
+ rmfproc: /usr/local/rmf
+ sendproc: /usr/local/send
+ showproc: /usr/ucb/more
+ whatnowproc: /usr/local/whatnow
+ whomproc: /usr/local/whom
+
+ If you define the envariable MH, you can specify a profile other
+ than ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be to be read by the _\bM_\bH programs that you invoke. If
+ the value of MH is not absolute, (i.e., does not begin with a / ),
+ it will be presumed to start from the current working directory.
+ This is one of the very few exceptions in _\bM_\bH where non-absolute
+ pathnames are not considered relative to the user's _\bM_\bH directory.
+
+ Similarly, if you define the envariable MHCONTEXT, you can specify
+ a context other than the normal context file (as specified in the
+ _\bM_\bH profile). As always, unless the value of MHCONTEXT is absolute,
+ it will be presumed to start from your _\bM_\bH directory.
+
+ _\bM_\bH programs also support other envariables:
+
+ MAILDROP : tells _\bi_\bn_\bc the default maildrop
+ This supercedes the "MailDrop:" profile entry.
+
+ SIGNATURE : tells _\bs_\be_\bn_\bd and _\bp_\bo_\bs_\bt your mail signature
+ This supercedes the "Signature:" profile entry.
+
+ HOME : tells all _\bM_\bH programs your home directory
+
+ SHELL : tells _\bb_\bb_\bl the default shell to run
+
+ TERM : tells _\bM_\bH your terminal type
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -132- MH-PROFILE(5)
+
+
+ The TERMCAP envariable is also consulted. In particular,
+ these tell _\bs_\bc_\ba_\bn and _\bm_\bh_\bl how to clear your terminal, and how
+ many columns wide your terminal is. They also tell _\bm_\bh_\bl how
+ many lines long your terminal screen is.
+
+ editalt : the alternate message
+ This is set by _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl during edit sessions so you can
+ peruse the message being distributed or replied to. The mes-
+ sage is also available through a link called "@" in the
+ current directory if your current working directory and the
+ folder the message lives in are on the same UNIX filesystem.
+
+ mhdraft : the path to the working draft
+ This is set by _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl to tell the _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw_\bp_\br_\bo_\bc which file to ask "What now?" questions about. In
+ addition, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl set mhfolder if appropriate.
+ Further, _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl set mhaltmsg to tell the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc
+ about an alternate message associated with the draft (the mes-
+ sage being distributed or replied to), and _\bd_\bi_\bs_\bt sets mhdist to
+ tell the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc that message re-distribution is occur-
+ ring. Also, mheditor is set to tell the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc the
+ user's choice of editor (unless overridden by `-noedit').
+ Similarly, mhuse may be set by _\bc_\bo_\bm_\bp. Finally, mhmessages is
+ set by _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl if annotations are to occur (along
+ with mhannotate, and mhinplace). It's amazing all the infor-
+ mation that has to get passed via envariables to make the
+ "What now?" interface look squeaky clean to the _\bM_\bH user, isn't
+ it? The reason for all this is that the _\bM_\bH user can select
+ _\ba_\bn_\by program as the _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc, including one of the standard
+ shells. As a result, it's not possible to pass information
+ via an argument list.
+ If the WHATNOW option was set during _\bM_\bH configuration (type
+ `-help' to an _\bM_\bH command to find out), and if this envariable
+ is set, if the commands _\br_\be_\bf_\bi_\bl_\be, _\bs_\be_\bn_\bd, _\bs_\bh_\bo_\bw, or _\bw_\bh_\bo_\bm are not
+ given any `msgs' arguments, then they will default to using
+ the file indicated by mhdraft. This is useful for getting the
+ default behavior supplied by the default _\bw_\bh_\ba_\bt_\bn_\bo_\bw_\bp_\br_\bo_\bc.
+
+ mhfolder : the folder containing the alternate message
+ This is set by _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl during edit sessions so you can
+ peruse other messages in the current folder besides the one
+ being distributed or replied to. The mhfolder envariable is
+ also set by _\bs_\bh_\bo_\bw, _\bp_\br_\be_\bv, and _\bn_\be_\bx_\bt for use by _\bm_\bh_\bl.
+
+ MHBBRC :
+ If you define the envariable MHBBRC, you can specify a BBoards
+ information file other than ._\bb_\bb_\br_\bc to be read by _\bb_\bb_\bc. If the
+ value of MHBBRC is not absolute, (i.e., does not begin with a
+ / ), it will be presumed to start from the current working
+ directory.
+
+ MHFD :
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -133- MH-PROFILE(5)
+
+
+ If the OVERHEAD option was set during _\bM_\bH configuration (type
+ `-help' to an _\bM_\bH command to find out), then if this envariable
+ is set, _\bM_\bH considers it to be the number of a file descriptor
+ which is opened, read-only to the _\bM_\bH profile. Similarly, if
+ the envariable MHCONTEXTFD is set, this is the number of a
+ file descriptor which is opened read-only to the _\bM_\bH context.
+ This feature of _\bM_\bH is experimental, and is used to examine
+ possible speed improvements for _\bM_\bH startup. Note that these
+ envariables must be set and non-empty to enable this feature.
+ However, if OVERHEAD is enabled during _\bM_\bH configuration, then
+ when _\bM_\bH programs call other _\bM_\bH programs, this scheme is used.
+ These file descriptors are not closed throughout the execution
+ of the _\bM_\bH program, so children may take advantage of this.
+ This approach is thought to be completely safe and does result
+ in some performance enhancements.
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ or $MH Rather than the standard profile
+ <mh-dir>/context The user context
+ or $CONTEXT Rather than the standard context
+ <folder>/.mh_sequences Public sequences for <folder>
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ All
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh(1), environ(5), mh-sequence(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ All
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -134- MH-PROFILE(5)
+
+
+ _\bH_\bi_\bs_\bt_\bo_\br_\by
+ In previous versions of _\bM_\bH, the current-message value of a writable
+ folder was kept in a file called "cur" in the folder itself. In
+ _\bm_\bh._\b3, the ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be contained the current-message values for all
+ folders, regardless of their writability.
+
+ In all versions of _\bM_\bH since _\bm_\bh._\b4, the ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be contains only
+ static information, which _\bM_\bH programs will NOT update. Changes in
+ context are made to the _\bc_\bo_\bn_\bt_\be_\bx_\bt file kept in the users MH _\bd_\bi_\br_\be_\bc_\bt_\bo-
+ _\br_\by. This includes, but is not limited to: the "Current-Folder" en-
+ try and all private sequence information. Public sequence informa-
+ tion is kept in a file called ._\bm_\bh__\bs_\be_\bq_\bu_\be_\bn_\bc_\be_\bs in each folder.
+
+ To convert from the format used in releases of _\bM_\bH prior to the for-
+ mat used in the _\bm_\bh._\b4 release, _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh should be invoked with the
+ `-compat' switch. This generally happens automatically on _\bM_\bH sys-
+ tems generated with the "COMPAT" option during _\bM_\bH configuration.
+
+ The ._\bm_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be may override the path of the _\bc_\bo_\bn_\bt_\be_\bx_\bt file, by
+ specifying a "context" entry (this must be in lower-case). If the
+ entry is not absolute (does not start with a / ), then it is inter-
+ preted relative to the user's _\bM_\bH directory. As a result, you can
+ actually have more than one set of private sequences by using dif-
+ ferent context files.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-PROFILE(5) -135- MH-PROFILE(5)
+
+
+ _\bB_\bu_\bg_\bs
+ The shell quoting conventions are not available in the .mh_profile.
+ Each token is separated by whitespace.
+
+ There is some question as to what kind of arguments should be
+ placed in the profile as options. In order to provide a clear
+ answer, recall command line semantics of all _\bM_\bH programs: conflict-
+ ing switches (e.g., `-header and `-noheader') may occur more than
+ one time on the command line, with the last switch taking effect.
+ Other arguments, such as message sequences, filenames and folders,
+ are always remembered on the invocation line and are not superseded
+ by following arguments of the same type. Hence, it is safe to
+ place only switches (and their arguments) in the profile.
+
+ If one finds that an _\bM_\bH program is being invoked again and again
+ with the same arguments, and those arguments aren't switches, then
+ there are a few possible solutions to this problem. The first is
+ to create a (soft) link in your $_\bH_\bO_\bM_\bE/_\bb_\bi_\bn directory to the _\bM_\bH pro-
+ gram of your choice. By giving this link a different name, you can
+ create a new entry in your profile and use an alternate set of de-
+ faults for the _\bM_\bH command. Similarly, you could create a small
+ shell script which called the _\bM_\bH program of your choice with an al-
+ ternate set of invocation line switches (using links and an alter-
+ nate profile entry is preferable to this solution).
+
+ Finally, the _\bc_\bs_\bh user could create an alias for the command of the
+ form:
+
+ alias cmd 'cmd arg1 arg2 ...'
+
+ In this way, the user can avoid lengthy type-in to the shell, and
+ still give _\bM_\bH commands safely. (Recall that some _\bM_\bH commands in-
+ voke others, and that in all cases, the profile is read, meaning
+ that aliases are disregarded beyond an initial command invocation)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -136- MH-SEQUENCE(5)
+
+
+ _\bN_\bA_\bM_\bE
+ mh-sequence - sequence specification for MH message system
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ most _\bM_\bH commands
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ Most _\bM_\bH commands accept a `msg' or `msgs' specification, where
+ `msg' indicates one message and `msgs' indicates one or more mes-
+ sages. To designate a message, you may use either its number
+ (e.g., 1, 10, 234) or one of these "reserved" message names:
+
+ _\bN_\ba_\bm_\be _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ first the first message in the folder
+ last the last message in the folder
+ cur the most recently accessed message
+ prev the message numerically preceding "cur"
+ next the message numerically following "cur"
+
+ In commands that take a `msg' argument, the default is "cur". As a
+ shorthand, "." is equivalent to "cur".
+
+ For example: In a folder containing five messages numbered 5, 10,
+ 94, 177 and 325, "first" is 5 and "last" is 325. If "cur" is 94,
+ then "prev" is 10 and "next" is 177.
+
+ The word `msgs' indicates that one or more messages may be speci-
+ fied. Such a specification consists of one message designation or
+ of several message designations separated by spaces. A message
+ designation consists either of a message name as defined above, or
+ a message range.
+
+ A message range is specified as "name1-name2" or "name:n", where
+ `name', `name1' and `name2' are message names, and `n' is an
+ integer.
+
+ The specification "name1-name2" designates all currently-existing
+ messages from `name1' to `name2' inclusive. The message name "all"
+ is a shorthand for the message range "first-last".
+
+ The specification "name:n" designates up to `n' messages. These
+ messages start with `name' if `name' is a message number or one of
+ the reserved names "first" "cur", or "next", The messages end with
+ `name' if `name' is "prev" or "last". The interpretation of `n'
+ may be overridden by preceding `n' with a plus or minus sign; `+n'
+ always means up to `n' messages starting with `name', and `-n'
+ always means up to `n' messages ending with `name'.
+
+ In commands which accept a `msgs' argument, the default is either
+ "cur" or "all", depending on which makes more sense for each com-
+ mand (see the individual man pages for details). Repeated
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -137- MH-SEQUENCE(5)
+
+
+ specifications of the same message have the same effect as a single
+ specification of the message.
+
+
+ _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bM_\be_\bs_\bs_\ba_\bg_\be _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ In addition to the "reserved" (pre-defined) message names given
+ above, _\bM_\bH supports user-defined sequence names. User-defined
+ sequences allow the _\bM_\bH user a tremendous amount of power in dealing
+ with groups of messages in the same folder by allowing the user to
+ bind a group of messages to a meaningful symbolic name.
+
+ The name used to denote a message sequence must consist of an
+ alphabetic character followed by zero or more alphanumeric charac-
+ ters, and can not be one of the "reserved" message names above.
+ After defining a sequence, it can be used wherever an _\bM_\bH command
+ expects a `msg' or `msgs' argument.
+
+ Some forms of message ranges are allowed with user-defined
+ sequences. The specification "name:n" may be used, and it desig-
+ nates up to the first `n' messages (or last `n' messages for `-n')
+ which are elements of the user-defined sequence `name'.
+
+ The specifications "name:next" and "name:prev" may also be used,
+ and they designate the next or previous message (relative to the
+ current message) which is an element of the user-defined sequence
+ `name'. The specificaitions "name:first" and "name:last" are
+ equivalent to "name:1" and "name:-1", respectively. The specifica-
+ tion "name:cur" is not allowed (use just "cur" instead). The syn-
+ tax of these message range specifcations is subject to change in
+ the future.
+
+ User-defined sequence names are specific to each folder. They are
+ defined using the _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk commands.
+
+
+ _\bP_\bu_\bb_\bl_\bi_\bc _\ba_\bn_\bd _\bP_\br_\bi_\bv_\ba_\bt_\be _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ There are two varieties of sequences: _\bp_\bu_\bb_\bl_\bi_\bc sequences and _\bp_\br_\bi_\bv_\ba_\bt_\be
+ sequences. _\bP_\bu_\bb_\bl_\bi_\bc sequences of a folder are accessible to any _\bM_\bH
+ user that can read that folder and are kept in the .mh_sequences
+ file in the folder. _\bP_\br_\bi_\bv_\ba_\bt_\be sequences are accessible only to the
+ _\bM_\bH user that defined those sequences and are kept in the user's _\bM_\bH
+ context file. By default, _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk create _\bp_\bu_\bb_\bl_\bi_\bc sequences if
+ the folder for which the sequences are being defined is writable by
+ the _\bM_\bH user. Otherwise, _\bp_\br_\bi_\bv_\ba_\bt_\be sequences are created. This can
+ be overridden with the `-public' and `-private' switches to _\bm_\ba_\br_\bk.
+
+
+ _\bS_\be_\bq_\bu_\be_\bn_\bc_\be _\bN_\be_\bg_\ba_\bt_\bi_\bo_\bn
+
+ _\bM_\bH provides the ability to select all messages not elements of a
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -138- MH-SEQUENCE(5)
+
+
+ user-defined sequence. To do this, the user should define the
+ entry "Sequence-Negation" in the _\bM_\bH profile file; its value may be
+ any string. This string is then used to preface an existing user-
+ defined sequence name. This specification then refers to those
+ messages not elements of the specified sequence name. For example,
+ if the profile entry is:
+
+ Sequence-Negation: not
+
+ then anytime an _\bM_\bH command is given "notfoo" as a `msg' or `msgs'
+ argument, it would substitute all messages that are not elements of
+ the sequence "foo".
+
+ Obviously, the user should beware of defining sequences with names
+ that begin with the value of the "Sequence-Negation" profile entry.
+
+
+ _\bT_\bh_\be _\bP_\br_\be_\bv_\bi_\bo_\bu_\bs _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ _\bM_\bH provides the ability to remember the `msgs' or `msg' argument
+ last given to an _\bM_\bH command. The entry "Previous-Sequence" should
+ be defined in the _\bM_\bH profile; its value should be a sequence name
+ or multiple sequence names separated by spaces. If this entry is
+ defined, when when an _\bM_\bH command finishes, it will define the
+ sequence(s) named in the value of this entry to be those messages
+ that were specified to the command. Hence, a profile entry of
+
+ Previous-Sequence: pseq
+
+ directs any _\bM_\bH command that accepts a `msg' or `msgs' argument to
+ define the sequence "pseq" as those messages when it finishes.
+
+ Note: there can be a performance penalty in using the
+ "Previous-Sequence" facility. If it is used, all _\bM_\bH programs have
+ to write the sequence information to the .mh_sequences file for the
+ folder each time they run. If the "Previous-Sequence" profile
+ entry is not included, only _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk will write to the
+ .mh_sequences file.
+
+
+ _\bT_\bh_\be _\bU_\bn_\bs_\be_\be_\bn _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ Finally, some users like to indicate messages which have not been
+ previously seen by them. Both _\bi_\bn_\bc and _\bs_\bh_\bo_\bw honor the profile entry
+ "Unseen-Sequence" to support this activity. This entry in the
+ .mh_profile should be defined as one or more sequence names
+ separated by spaces. If there is a value for "Unseen-Sequence" in
+ the profile, then whenever _\bi_\bn_\bc places new messages in a folder, the
+ new messages will also be added to the sequence(s) named in the
+ value of this entry. Hence, a profile entry of
+
+ Unseen-Sequence: unseen
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ MH-SEQUENCE(5) -139- MH-SEQUENCE(5)
+
+
+ directs _\bi_\bn_\bc to add new messages to the sequence "unseen". Unlike
+ the behavior of the "Previous-Sequence" entry in the profile, how-
+ ever, the sequence(s) will not be zeroed by _\bi_\bn_\bc.
+
+ Similarly, whenever _\bs_\bh_\bo_\bw (or _\bn_\be_\bx_\bt or _\bp_\br_\be_\bv) displays a message, that
+ message will be removed from any sequences named by the
+ "Unseen-Sequence" entry in the profile.
+
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ <mh-dir>/context The user context
+ <folder>/.mh_sequences Public sequences for <folder>
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Sequence-Negation: To designate messages not in a sequence
+ Previous-Sequence: The last message specification given
+ Unseen-Sequence: Those messages not yet seen by the user
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh(1), mark(1), pick(1), mh-profile(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ None
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ All
+
+
+ _\bB_\bu_\bg_\bs
+ User-defined sequences are stored in the .mh_sequences file as a
+ series of message specifications separated by spaces. If a user-
+ defined sequence contains too many individual message specifica-
+ tions, that line in the file may become too long for _\bM_\bH to handle.
+ This will generate the error message ".mh_sequences is poorly for-
+ matted". You'll have to edit the file by hand to remove the of-
+ fending line.
+
+ This can happen to users who define the "Previous-Sequence" entry
+ in the _\bM_\bH profile and have a folder containing many messages with
+ gaps in the numbering. A workaround for large folders is to minim-
+ ize numbering gaps by using "folder -pack" often.
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ AP(8) -140- AP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ ap - parse addresses 822-style
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/ap [-form formatfile] [-format string]
+ [-normalize] [-nonormalize] [-width columns] addrs ...
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bA_\bp is a program that parses addresses according to the ARPA Inter-
+ net standard. It also understands many non-standard formats. It
+ is useful for seeing how _\bM_\bH will interpret an address.
+
+ The _\ba_\bp program treats each argument as one or more addresses, and
+ prints those addresses out in the official 822-format. Hence, it
+ is usually best to enclose each argument in double-quotes for the
+ shell.
+
+ To override the output format used by _\ba_\bp, the `-format string' or
+ `-format file' switches are used. This permits individual fields
+ of the address to be extracted with ease. The string is simply a
+ format stringand thefile is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ In addition to the standard escapes, _\ba_\bp also recognizes the follow-
+ ing additional escape:
+
+ _\bE_\bs_\bc_\ba_\bp_\be _\bR_\be_\bt_\bu_\br_\bn_\bs _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ error string A diagnostic if the parse failed
+
+ If the `-normalize' switch is given, _\ba_\bp will try to track down the
+ official hostname of the address.
+
+ Here is the default format string used by _\ba_\bp:
+
+ %<{error}%{error}: %{text}%|%(putstr(proper{text}))%>
+
+ which says that if an error was detected, print the error, a `:',
+ and the address in error. Otherwise, output the 822-proper format
+ of the address.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/local/lib/mh/mtstailor tailor file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ AP(8) -141- AP(8)
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ dp(8),
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-format' defaults as described above
+ `-normalize'
+ `-width' defaults to the width of the terminal
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\ba_\bp. Therefore, one must usual-
+ ly place the argument to this switch inside double-quotes.
+
+ On hosts where _\bM_\bH was configured with the BERK option, address
+ parsing is not enabled.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ CONFLICT(8) -142- CONFLICT(8)
+
+
+ _\bN_\bA_\bM_\bE
+ conflict - search for alias/password conflicts
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/conflict [-mail name] [-search directory]
+ [aliasfiles...] [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bC_\bo_\bn_\bf_\bl_\bi_\bc_\bt is a program that checks to see if the interface between
+ _\bM_\bH and transport system is in good shape
+
+ _\bC_\bo_\bn_\bf_\bl_\bi_\bc_\bt also checks for maildrops in /usr/spool/mail which do not
+ belong to a valid user. It assumes that no user name will start
+ with `.', and thus ignores files in /usr/spool/mail which begin
+ with `.'. It also checks for entries in the _\bg_\br_\bo_\bu_\bp (5) file which
+ do not belong to a valid user, and for users who do not have a
+ valid group number. In addition duplicate users and groups are
+ noted.
+
+ If the `-mail name' switch is used, then the results will be sent
+ to the specified _\bn_\ba_\bm_\be. Otherwise, the results are sent to the
+ standard output.
+
+ The `-search directory' switch can be used to search directories
+ other than /usr/spool/mail and to report anomalies in those direc-
+ tories. The `-search directory' switch can appear more than one
+ time in an invocation to _\bc_\bo_\bn_\bf_\bl_\bi_\bc_\bt.
+
+ _\bC_\bo_\bn_\bf_\bl_\bi_\bc_\bt should be run under _\bc_\br_\bo_\bn (8), or whenever system account-
+ ing takes place.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ /etc/passwd List of users
+ /etc/group List of groups
+ /usr/local/mhmail Program to send mail
+ /usr/spool/mail/ Directory of mail drop
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-alias(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `aliasfiles' defaults to /usr/local/lib/mh/MailAliases
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ CONFLICT(8) -143- CONFLICT(8)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ DP(8) -144- DP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ dp - parse dates 822-style
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/dp [-form formatfile] [-format string]
+ [-width columns] dates ... [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bD_\bp is a program that parses dates according to the ARPA Internet
+ standard. It also understands many non-standard formats, such as
+ those produced by TOPS-20 sites and some UNIX sites using
+ _\bc_\bt_\bi_\bm_\be (3). It is useful for seeing how _\bM_\bH will interpret a date.
+
+ The _\bd_\bp program treats each argument as a single date, and prints
+ the date out in the official 822-format. Hence, it is usually best
+ to enclose each argument in double-quotes for the shell.
+
+ To override the output format used by _\bd_\bp, the `-format string' or
+ `-format file' switches are used. This permits individual fields
+ of the address to be extracted with ease. The string is simply a
+ format stringand thefile is simply a format file. See
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) for the details.
+
+ Here is the default format string used by _\bd_\bp:
+
+ %<(nodate{text})error: %{text}%|%(putstr(pretty{text}))%>
+
+ which says that if an error was detected, print the error, a `:',
+ and the date in error. Otherwise, output the 822-proper format of
+ the date.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ None
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ ap(8)
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-format' default as described above
+ `-width' default to the width of the terminal
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ DP(8) -145- DP(8)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The argument to the `-format' switch must be interpreted as a sin-
+ gle token by the shell that invokes _\bd_\bp. Therefore, one must usual-
+ ly place the argument to this switch inside double-quotes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ FMTDUMP(8) -146- FMTDUMP(8)
+
+
+ _\bN_\bA_\bM_\bE
+ fmtdump - decode MH format files
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/fmtdump [-form formatfile] [-format string]
+ [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bF_\bm_\bt_\bd_\bu_\bm_\bp is a program that parses an _\bM_\bH format file and produces a
+ pseudo-language listing of the how _\bM_\bH interprets the file.
+
+ The `-format string' and `-form formatfile' switches may be used to
+ specify a format string or format file to read. The string is sim-
+ ply a format string and the file is simply a format file. See _\bm_\bh-
+ _\bf_\bo_\br_\bm_\ba_\bt(5) for the details.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+ /usr/local/lib/mh/scan.default The default format file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To determine the user's MH directory
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ mh-format(5), mh-sequences(8)
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ The output may not be useful unless you are familiar with the
+ internals of the mh-format subroutines.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ INSTALL-MH(8) -147- INSTALL-MH(8)
+
+
+ _\bN_\bA_\bM_\bE
+ install-mh - initialize the MH environment
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/install-mh [-auto] [-compat]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ When a user runs any _\bM_\bH program for the first time, the program
+ will invoke _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh (with the `-auto' switch) to query the user
+ for the initial _\bM_\bH environment. The user does NOT invoke this pro-
+ gram directly. The user is asked for the name of the directory
+ that will be designated as the user's _\bM_\bH directory. If this direc-
+ tory does not exist, the user is asked if it should be created.
+ Normally, this directory should be under the user's home directory,
+ and has the default name of Mail/. After _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh has written
+ the initial .mh_profile for the user, control returns to the origi-
+ nal _\bM_\bH program.
+
+ As with all _\bM_\bH commands, _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh first consults the $HOME
+ envariable to determine the user's home directory. If $HOME is not
+ set, then the /_\be_\bt_\bc/_\bp_\ba_\bs_\bs_\bw_\bd file is consulted.
+
+ When converting from _\bm_\bh._\b3 to _\bm_\bh._\b4, _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh is automatically
+ invoked with the `-compat' switch.
+
+ _\bF_\bi_\bl_\be_\bs
+ $HOME/.mh_profile The user profile
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ Path: To set the user's MH directory
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ With `-auto', the current folder is changed to "inbox".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POST(8) -148- POST(8)
+
+
+ _\bN_\bA_\bM_\bE
+ post - deliver a message
+
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ /usr/local/lib/mh/post [-alias aliasfile] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-msgid] [-nomsgid]
+ [-verbose] [-noverbose] [-watch] [-nowatch] [-width columns]
+ file [-help]
+
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
+
+ _\bP_\bo_\bs_\bt is the program called by _\bs_\be_\bn_\bd (1) to deliver the message in
+ _\bf_\bi_\bl_\be to local and remote users. In fact, all of the functions
+ attributed to _\bs_\be_\bn_\bd on its manual page are performed by _\bp_\bo_\bs_\bt, with
+ _\bs_\be_\bn_\bd acting as a relatively simple preprocessor. Thus, it is _\bp_\bo_\bs_\bt
+ which parses the various header fields, appends From: and Date:
+ lines, and interacts with the _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl transport system. _\bP_\bo_\bs_\bt will
+ not normally be called directly by the user.
+
+ _\bP_\bo_\bs_\bt searches the "To:", "cc:", "Bcc:", "Fcc:", and "Resent-xxx:"
+ header lines of the specified message for destination addresses,
+ checks these addresses for validity, and formats them so as to con-
+ form to ARPAnet Internet Message Format protocol, unless the
+ `-noformat' flag is set. This will normally cause "@_\bl_\bo_\bc_\ba_\bl-_\bs_\bi_\bt_\be" to
+ be appended to each local destination address, as well as any local
+ return addresses. The `-width columns' switch can be used to indi-
+ cate the preferred length of the header components that contain
+ addresses.
+
+ If a "Bcc:" field is encountered, its addresses will be used for
+ delivery, and the "Bcc:" field will be removed from the message
+ sent to sighted recipients. The blind recipients will receive an
+ entirely new message with a minimal set of headers. Included in
+ the body of the message will be a copy of the message sent to the
+ sighted recipients. If `-filter filterfile' is specified, then
+ this copy is filtered (re-formatted) prior to being sent to the
+ blind recipients.
+
+ The `-alias aliasfile' switch can be used to specify a file that
+ post should take aliases from. More than one file can be speci-
+ fied, each being preceded with `-alias'. In any event, the primary
+ alias file is read first.
+
+ The `-msgid' switch indicates that a "Message-ID:" or
+ "Resent-Message-ID:" field should be added to the header.
+
+ The `-verbose' switch indicates that the user should be informed of
+ each step of the posting/filing process.
+
+ The `-watch' switch indicates that the user would like to watch the
+ transport system's handling of the message (e.g., local and "fast"
+ delivery).
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+ POST(8) -149- POST(8)
+
+
+ _\bP_\bo_\bs_\bt consults the envariable $SIGNATURE to determine the sender's
+ personal name in constructing the "From:" line of the message.
+
+ _\bF_\bi_\bl_\be_\bs
+ /usr/local/lib/mh/mtstailor tailor file
+ /usr/local/refile Program to process Fcc:s
+ /usr/local/lib/mh/mhl Program to process Bcc:s
+ /usr/local/lib/mh/MailAliases Primary alias file
+
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+ _\bp_\bo_\bs_\bt does NOT consult the user's .mh_profile
+
+
+ _\bS_\be_\be _\bA_\bl_\bs_\bo
+ _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\bR_\bP_\bA _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs (aka
+ RFC-822),
+ mhmail(1), send(1), mh-mail(5), mh-alias(5)
+
+
+ _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
+ `-alias /usr/local/lib/mh/MailAliases'
+ `-format'
+ `-nomsgid'
+ `-noverbose'
+ `-nowatch'
+ `-width 72'
+ `-nofilter'
+
+
+ _\bC_\bo_\bn_\bt_\be_\bx_\bt
+ None
+
+
+ _\bB_\bu_\bg_\bs
+ "Reply-To:" fields are allowed to have groups in them according to
+ the 822 specification, but _\bp_\bo_\bs_\bt won't let you use them.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mh.6] MH.6.8 UCI version
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b5. _\bR_\bE_\bP_\bO_\bR_\bT_\bI_\bN_\bG _\bP_\bR_\bO_\bB_\bL_\bE_\bM_\bS
+
+
+
+
+
+ If problems are encountered with an _\bM_\bH program, the problems should
+ be reported to the local maintainers of _\bM_\bH. When doing this, the name
+ of the program should be reported, along with the version information
+ for the program. To find out what version of an _\bM_\bH program is being
+ run, invoke the program with the `-help' switch. In addition to listing
+ the syntax of the command, the program will list information pertaining
+ to its version. This information includes the version of _\bM_\bH, the host
+ it was generated on, and the date the program was loaded. A second line
+ of information, found on versions of _\bM_\bH after #5.380 include _\bM_\bH confi-
+ guration options. For example,
+
+ version: MH 6.1 #1[UCI] (nrtc-gremlin) of Wed Nov 6 01:13:53 PST
+ 1985
+ options: [BSD42] [MHE] [NETWORK] [SENDMTS] [MMDFII] [SMTP] [POP]
+
+ The `6.1 #1[UCI]' indicates that the program is from the UCI _\bm_\bh._\b6 ver-
+ sion of _\bM_\bH. The program was generated on the host `nrtc-gremlin' on
+ `Wed Nov 6 01:13:53 PST 1985'. It's usually a good idea to send the
+ output of the `-help' switch along with your report.
+
+ If there is no local _\bM_\bH maintainer, try the address Bug-MH. If that
+ fails, use the Internet mailbox Bug-MH@ICS.UCI.EDU.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -150-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\b6. _\bA_\bD_\bV_\bA_\bN_\bC_\bE_\bD _\bF_\bE_\bA_\bT_\bU_\bR_\bE_\bS
+
+
+
+
+
+ This section describes some features of _\bM_\bH that were included
+ strictly for advanced _\bM_\bH users. These capabilities permit _\bM_\bH to exhibit
+ more powerful behavior for the seasoned _\bM_\bH users.
+
+
+ _\bU_\bS_\bE_\bR-_\bD_\bE_\bF_\bI_\bN_\bE_\bD _\bS_\bE_\bQ_\bU_\bE_\bN_\bC_\bE_\bS
+
+ User-defined sequences allow the _\bM_\bH user a tremendous amount of
+ power in dealing with groups of messages in the same folder by allowing
+ the user to bind a group of messages to a meaningful symbolic name. The
+ user may choose any name for a message sequence, as long as it consists
+ of alphanumeric characters and does not conflict with the standard _\bM_\bH
+ reserved message names (e.g., "first", etc). After defining a sequence,
+ it can be used wherever an _\bM_\bH command expects a `msg' or `msgs' argu-
+ ment.
+
+ A restricted form of message ranges are allowed with user-defined
+ sequences. The form "name:n", specifies up to the first `n' messages
+ which are part of the user-defined sequence `name'. A leading plus sign
+ is allowed on `n', but is ignored. The interpretation of n is overrid-
+ den if n is preceded by a minus sign; `-n' always means up to the last
+ `n' messages which are part of the sequence `name'.
+
+ Although all _\bM_\bH commands expand user-defined sequences as appropri-
+ ate, there are two commands that allow the user to define and manipulate
+ them: _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk.
+
+ _\bP_\bi_\bc_\bk _\ba_\bn_\bd _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ Most users of _\bM_\bH will use user-defined sequences only with the _\bp_\bi_\bc_\bk
+ command. By giving the `-sequence name' switch to _\bp_\bi_\bc_\bk (which can occur
+ more than once on the command line), each sequence named is defined as
+ those messages which _\bp_\bi_\bc_\bk matched according the the selection criteria
+ it was given. Hence,
+
+ pick -from frated -seq fred
+
+ finds all those messages in the current folder which were from "frated",
+ creates a sequence called "fred", and then adds them to the sequence.
+ The user could then invoke
+
+ scan fred
+
+ to get a _\bs_\bc_\ba_\bn listing of those messages. Note that by default, _\bp_\bi_\bc_\bk
+ creates the named sequences before it adds the selected messages to the
+ sequence. Hence, if the named sequence already existed, the sequence is
+
+ -151-
+
+
+
+
+
+
+
+
+
+ -152-
+
+
+ destroyed prior to being re-defined (nothing happens to the messages
+ that were a part of this sequence, they simply cease to be members of
+ that sequence). By using the `-nozero' switch, this behavior can be
+ inhibited, as in
+
+ pick -from frated -seq sgroup
+ pick -from fear -seq sgroup -nozero
+ pick -from freida -seq sgroup -nozero
+
+ finds all those messages in the current folder which were from "frated",
+ "fear", or "freida", and defines the sequence called "sgroup" as exactly
+ those messages. These operations amounted to an "inclusive-or" of three
+ selection criteria, using _\bp_\bi_\bc_\bk, one can also generate the "and" of some
+ selection criteria as well:
+
+ pick -from frated -seq fred
+ pick -before friday -seq fred fred
+
+ This example defines the sequence called "fred" as exactly those mes-
+ sages from "frated" that were dated prior to "friday".[1]
+
+ _\bP_\bi_\bc_\bk is normally used as a back-quoted command, for example,
+
+ scan `pick -from postmaster`
+
+ Now suppose that the user decides that another command should be issued,
+ using exactly those messages. Since, _\bp_\bi_\bc_\bk wasn't given a
+ `-sequence name' argument in this example, the user would end-up typing
+ the entire back-quoted command again. A simpler way is to add a default
+ sequence name to the .mh_profile. For example,
+
+ pick: -seq select -list
+
+ will tell _\bp_\bi_\bc_\bk to always define the sequence "select" whenever it's run.
+ The `-list' is necessary since the `-sequence name' switch sets `-nol-
+ ist' whenever the former is encountered. Hence, this profile entry
+ makes _\bp_\bi_\bc_\bk define the "select" sequence and otherwise behave exactly as
+
+
+ [1] Of course, it is much easier to simply use the built-in boolean
+ operation of _\bp_\bi_\bc_\bk to get the desired results:
+
+ pick -from frated -or -from fear -or -from freida -seq sgroup
+
+ and
+
+ pick -from frated -and -before friday -seq fred
+
+ do exactly the same thing as the five commands listed above. Hence, the
+ `-nozero' option to _\bp_\bi_\bc_\bk is only useful to manipulate existing se-
+ quences.
+
+
+
+
+
+
+
+
+
+
+
+
+ -153-
+
+
+ if there was no profile entry at all.
+
+ _\bM_\ba_\br_\bk _\ba_\bn_\bd _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ The _\bm_\ba_\br_\bk command lets the user perform low-level manipulation of
+ sequences, and also provides a well-needed debug facility to the
+ implementors/developers/maintainers of _\bM_\bH (the _\bM_\bH-hacks). In the
+ future, a user-friendly "front-end" for _\bm_\ba_\br_\bk will probably be developed
+ to give the _\bM_\bH user a way to take better advantage of the underlying
+ facilities.
+
+ _\bP_\bu_\bb_\bl_\bi_\bc _\ba_\bn_\bd _\bP_\br_\bi_\bv_\ba_\bt_\be _\bU_\bs_\be_\br-_\bD_\be_\bf_\bi_\bn_\be_\bd _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ There are two kinds of sequences: _\bp_\bu_\bb_\bl_\bi_\bc sequences, and _\bp_\br_\bi_\bv_\ba_\bt_\be
+ sequences. _\bP_\bu_\bb_\bl_\bi_\bc sequences of a folder are accessible to any _\bM_\bH user
+ that can read that folder and are kept in the .mh_sequences file in the
+ folder. _\bP_\br_\bi_\bv_\ba_\bt_\be sequences are accessible only to the _\bM_\bH user that
+ defined those sequences and are kept in the user's _\bM_\bH context file. By
+ default, _\bp_\bi_\bc_\bk (and _\bm_\ba_\br_\bk ) create _\bp_\bu_\bb_\bl_\bi_\bc sequences if the folder for
+ which the sequences are being defined is writable by the _\bM_\bH user. Oth-
+ erwise, _\bp_\br_\bi_\bv_\ba_\bt_\be sequences are created. This can be overridden with the
+ `-public' and `-nopublic' switches.
+
+ _\bS_\be_\bq_\bu_\be_\bn_\bc_\be _\bN_\be_\bg_\ba_\bt_\bi_\bo_\bn
+
+ In addition to telling an _\bM_\bH command to use the messages in the
+ sequence "seen", as in
+
+ refile seen +old
+
+ it would be useful to be easily able to tell an _\bM_\bH command to use all
+ messages _\be_\bx_\bc_\be_\bp_\bt those in the sequence. One way of doing this would be
+ to use _\bm_\ba_\br_\bk and define the sequence explicitly, as in
+
+ mark -delete -zero seen -seq notseen
+
+ which, owing to _\bm_\ba_\br_\bk 's cryptic interpretation of `-delete' and `-zero',
+ defines the sequence "notseen" to be all messages not in the sequence
+ "seen". Naturally, anytime the sequence "seen" is changed, "notseen"
+ will have to be updated. Another way to achieve this is to define the
+ entry "Sequence-Negation:" in the .mh_profile. If the entry was
+
+ Sequence-Negation: not
+
+ then anytime an _\bM_\bH command was given "notseen" as a `msg' or `msgs'
+ argument, it would substitute all messages that are not a member of the
+ sequence "seen". That is,
+
+ refile notseen +new
+
+ does just that. The value of the "Sequence-Negation:" entry in the pro-
+ file can be any string. Hence, experienced users of _\bM_\bH do not use a
+
+
+
+
+
+
+
+
+
+
+
+ -154-
+
+
+ word, but rather a special character which their shell does not inter-
+ pret (users of the _\bC_\bS_\bh_\be_\bl_\bl use a single caret or circumflex (usually
+ shift-6), while users of the Bourne shell use an exclamation-mark).
+ This is because there is nothing to prevent a user of _\bM_\bH from defining a
+ sequence with this string as its prefix, if the string is nothing by
+ letters and digits. Obviously, this could lead to confusing behavior if
+ the "Sequence-Negation:" entry leads _\bM_\bH to believe that two sequences
+ are opposites by virtue of their names differing by the prefix string.
+
+ _\bT_\bh_\be _\bP_\br_\be_\bv_\bi_\bo_\bu_\bs _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ Many times users find themselves issuing a series of commands on
+ the same sequences of messages. If the user first defined these mes-
+ sages as a sequence, then considerable typing may be saved. If the user
+ doesn't have this foresight, _\bM_\bH provides a handy way of having _\bM_\bH
+ remember the `msgs' or `msg' argument last given to an _\bM_\bH command. If
+ the entry "Previous-Sequence:" is defined in the .mh_profile, then when
+ the command finishes, it will define the sequence(s) named in the value
+ of this entry as being exactly those messages that were specified.
+ Hence, a profile entry of
+
+ Previous-Sequence: pseq
+
+ directs any _\bM_\bH command that accepts a `msg' or `msgs' argument to define
+ the sequence "pseq" as those messages when it finishes. More than one
+ sequence name may be placed in this entry, separated with spaces. The
+ one disadvantage of this approach is that the _\bM_\bH progams have to update
+ the sequence information for the folder each time they run (although
+ most programs read this information, usually only _\bp_\bi_\bc_\bk and _\bm_\ba_\br_\bk have to
+ write this information out).
+
+ _\bT_\bh_\be _\bU_\bn_\bs_\be_\be_\bn _\bS_\be_\bq_\bu_\be_\bn_\bc_\be
+
+ Finally, some users like to distinguish between messages which have
+ been previously seen by them. Both _\bi_\bn_\bc and _\bs_\bh_\bo_\bw honorthe profile entry
+ "Unseen-Sequence" to support this activity. Whenever _\bi_\bn_\bc places new
+ messages in a folder, if the entry "Unseen-Sequence" is defined in the
+ .mh_profile, then when the command finishes, _\bi_\bn_\bc will add the new mes-
+ sages to the sequence(s) named in the value of this entry. Hence, a
+ profile entry of
+
+ Unseen-Sequence: unseen
+
+ directs _\bi_\bn_\bc to add new messages to the sequence "unseen". Unlike the
+ behavior of the "Previous-Sequence" entry in the profile however, the
+ sequence(s) will not be zero'd.
+
+ Similarly, whenever _\bs_\bh_\bo_\bw (or _\bn_\be_\bx_\bt or _\bp_\br_\be_\bv ) displays a message,
+ they remove those messages from any sequences named by the
+ "Unseen-Sequence" entry in the profile.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -155-
+
+
+ _\bC_\bO_\bM_\bP_\bO_\bS_\bI_\bT_\bI_\bO_\bN _\bO_\bF _\bM_\bA_\bI_\bL
+
+ There are a number of interesting advanced facilities for the com-
+ position of outgoing mail.
+
+
+ _\bT_\bh_\be _\bD_\br_\ba_\bf_\bt _\bF_\bo_\bl_\bd_\be_\br
+
+ The _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl commands have two switches,
+ `-draftfolder +folder' and `-draftmessage msg'. If
+ `-draftfolder +folder' is used, these commands are directed to construct
+ a draft message in the indicated folder. (The "Draft-Folder:" profile
+ entry may be used to declare a default draft folder for use with _\bc_\bo_\bm_\bp,
+ _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl) If `-draftmessage msg' is not used, it defaults to
+ `new' (unless the user invokes _\bc_\bo_\bm_\bp with `-use', in which case the
+ default is `cur'). Hence, the user may have several message composi-
+ tions in progress simultaneously. Now, all of the _\bM_\bH tools are avail-
+ able on each of the user's message drafts (e.g., _\bs_\bh_\bo_\bw, _\bs_\bc_\ba_\bn, _\bp_\bi_\bc_\bk, and
+ so on). If the folder does not exist, the user is asked if it should be
+ created (just like with _\br_\be_\bf_\bi_\bl_\be ). Also, the last draft message the user
+ was composing is known as `cur' in the draft folder.
+
+ Furthermore, the _\bs_\be_\bn_\bd command has these switches as well. Hence,
+ from the shell, the user can send off whatever drafts desired using the
+ standard _\bM_\bH `msgs' convention with `-draftmessage msgs'. If no `msgs'
+ are given, it defaults to `cur'.
+
+ In addition, all five programs have a `-nodraftfolder' switch,
+ which undoes the last occurrence of `-draftfolder folder' (useful if the
+ latter occurs in the user's _\bM_\bH profile).
+
+ If the user does not give the `-draftfolder +folder' switch, then
+ all these commands act ``normally''. Note that the `-draft' switch to
+ _\bs_\be_\bn_\bd and _\bs_\bh_\bo_\bw still refers to the file called `draft' in the user's _\bM_\bH
+ directory. In the interests of economy of expression, when using _\bc_\bo_\bm_\bp
+ or _\bs_\be_\bn_\bd, the user needn't prefix the draft `msg' or `msgs' with `-draft-
+ message'. Both of these commands accept a `file' or `files' argument,
+ and they will, if given `-draftfolder +folder' treat these arguments as
+ `msg' or `msgs'.[2] Hence,
+
+ send -draftf +drafts first
+
+ is the same as
+
+ send -draftf +drafts -draftm first
+
+
+
+
+ [2] This may appear to be inconsistent, at first, but it saves a lot
+ of typing.
+
+
+
+
+
+
+
+
+
+
+
+
+ -156-
+
+
+ To make all this a bit more clear, here are some examples. Let's
+ assume that the following entries are in the _\bM_\bH profile:
+
+ Draft-Folder: +drafts
+ sendf: -draftfolder +drafts
+
+ Furthermore, let's assume that the program _\bs_\be_\bn_\bd_\bf is a (symbolic) link in
+ the user's $HOME/bin/ directory to _\bs_\be_\bn_\bd. Then, any of the commands
+
+ comp
+ dist
+ forw
+ repl
+
+ constructs the message draft in the `draft' folder using the `new' mes-
+ sage number. Furthermore, they each define `cur' in this folder to be
+ that message draft. If the user were to use the _\bq_\bu_\bi_\bt option at `What
+ now?' level, then later on, if no other draft composition was done, the
+ draft could be sent with simply
+
+ sendf
+
+ Or, if more editing was required, the draft could be edited with
+
+ comp -use
+
+ Instead, if other drafts had been composed in the meantime, so that this
+ message draft was no longer known as `cur' in the `draft' folder, then
+ the user could _\bs_\bc_\ba_\bn the folder to see which message draft in the folder
+ should be used for editing or sending. Clever users could even employ a
+ back-quoted _\bp_\bi_\bc_\bk to do the work:
+
+ comp -use `pick +drafts -to bug-mh`
+
+ or
+
+ sendf `pick +drafts -to bug-mh`
+
+ Note that in the _\bc_\bo_\bm_\bp example, the output from _\bp_\bi_\bc_\bk must resolve to a
+ single message draft (it makes no sense to talk about composing two or
+ more drafts with one invocation of _\bc_\bo_\bm_\bp ). In contrast, in the _\bs_\be_\bn_\bd
+ example, as many message drafts as desired can appear, since _\bs_\be_\bn_\bd
+ doesn't mind sending more than one draft at a time.
+
+ Note that the argument `-draftfolder +folder' is not included in
+ the profile entry for _\bs_\be_\bn_\bd, since when _\bc_\bo_\bm_\bp, et. al., invoke _\bs_\be_\bn_\bd
+ directly, they supply _\bs_\be_\bn_\bd with the UNIX pathname of the message draft,
+ and not a `draftmessage msg' argument. As far as _\bs_\be_\bn_\bd is concerned, a
+ _\bd_\br_\ba_\bf_\bt _\bf_\bo_\bl_\bd_\be_\br is not being used.
+
+ It is important to realize that _\bM_\bH treats the draft folder like a
+ standard _\bM_\bH folder in nearly all respects. There are two exceptions:
+
+
+
+
+
+
+
+
+
+
+
+ -157-
+
+
+ first\b\b\b\b\b_____, under no circumstancs will the `-draftfolder folder' switch cause
+ the named folder to become the current folder.[3] Second\b\b\b\b\b\b______, although con-
+ ceptually _\bs_\be_\bn_\bd deletes the `msgs' named in the draft folder, it does not
+ call `delete-prog' to perform the deletion.
+
+
+ _\bW_\bh_\ba_\bt _\bH_\ba_\bp_\bp_\be_\bn_\bs _\bi_\bf _\bt_\bh_\be _\bD_\br_\ba_\bf_\bt _\bE_\bx_\bi_\bs_\bt_\bs
+
+ When the _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl commands are invoked and the
+ draft you indicated already exists, these programs will prompt the user
+ for a reponse directing the program's action. The prompt is
+
+ Draft ``/usr/src/uci/mh/mhbox/draft'' exists (xx bytes).
+ Disposition?
+
+ The appropriate responses and their meanings are: replace\b\b\b\b\b\b\b_______: deletes the
+ draft and starts afresh; list\b\b\b\b____: lists the draft; refile\b\b\b\b\b\b______: files the draft
+ into a folder and starts afresh; and, quit\b\b\b\b____: leaves the draft intact and
+ exits. In addition, if you specified `-draftfolder folder' to the com-
+ mand, then one other response will be accepted: new\b\b\b___: finds a new draft,
+ just as if `-draftmessage new' had been given. Finally, the _\bc_\bo_\bm_\bp com-
+ mand will accept one more response: use\b\b\b___: re-uses the draft, just as if
+ `-use' had been given.
+
+
+ _\bT_\bh_\be _\bP_\bu_\bs_\bh _\bO_\bp_\bt_\bi_\bo_\bn _\ba_\bt _\bW_\bh_\ba_\bt _\bn_\bo_\bw? _\bL_\be_\bv_\be_\bl
+
+ The _\bp_\bu_\bs_\bh option to the "What now?" query in the _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw,
+ and _\br_\be_\bp_\bl commands, directs the command to _\bs_\be_\bn_\bd the draft in a special
+ detached fashion, with all normal output discarded. If _\bp_\bu_\bs_\bh is used and
+ the draft can not be sent, then _\bM_\bH will send the user a message, indi-
+ cating the name of the draft file, and an explanation of the failure.
+
+ The user can also invoke _\bs_\be_\bn_\bd from the shell with the `-push'
+ switch, which makes _\bs_\be_\bn_\bd act like it had been _\bp_\bu_\bs_\bh 'd by one of the com-
+ position commands.
+
+ By using _\bp_\bu_\bs_\bh, the user can free the shell to do other things,
+ because it appears to the shell that the _\bM_\bH command has finished. As a
+ result the shell will immediately prompt for another command, despite
+ the fact that the command is really still running. Note that if the
+ user indicates that annotations are to be performed (with `-annotate' to
+
+
+ [3] Obviously, if the folder appeared in the context of a standard
+ `+folder' argument to an _\bM_\bH program, as in
+
+ scan +drafts
+
+ it might become the current folder, depending on the context changes of
+ the _\bM_\bH program in question.
+
+
+
+
+
+
+
+
+
+
+
+
+ -158-
+
+
+ _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, or _\br_\be_\bp_\bl), the annotations will be performed after the mes-
+ sage has been successfully sent. This action will appear to occur asyn-
+ chronously. Obviously, if one of the messages that is to be annotated
+ is removed before the draft has been successfully sent, then when _\bM_\bH
+ tries to make the annotations, it won't be able to do so. In previous
+ versions of _\bM_\bH, this resulted in an error message mysteriously appearing
+ on the user's terminal. In _\bm_\bh._\b5 and later versions, in this special
+ circumstance, no error will be generated.
+
+ If send is _\bp_\bu_\bs_\bh 'd, then the `-forward' switch is examined if a
+ failure notice is generated. If given, then the draft is forwarded with
+ the failure notice sent to the user. This allows rapid _\bb_\bu_\br_\bs_\bt 'ing of
+ the failure notice to retrieve the unsent draft.
+
+
+ _\bO_\bp_\bt_\bi_\bo_\bn_\bs _\ba_\bt _\bW_\bh_\ba_\bt _\bn_\bo_\bw? _\bL_\be_\bv_\be_\bl
+
+ By default, the message composition programs call a program called
+ _\bw_\bh_\ba_\bt_\bn_\bo_\bw before the initial draft composition. The _\bM_\bH user can specify
+ any program for this. Following is some information about the default
+ "What now?" level. More detailed information can be found in the _\bw_\bh_\ba_\bt_\b-
+ _\bn_\bo_\bw (1) manual entry.
+
+ When using the _\bc_\bo_\bm_\bp, _\bd_\bi_\bs_\bt, _\bf_\bo_\br_\bw, and _\br_\be_\bp_\bl commands at "What now?"
+ level, the _\be_\bd_\bi_\bt, _\bl_\bi_\bs_\bt, _\bh_\be_\ba_\bd_\be_\br_\bs, _\br_\be_\bf_\bi_\bl_\be, and (for the _\bd_\bi_\bs_\bt and _\br_\be_\bp_\bl com-
+ mands) the _\bd_\bi_\bs_\bp_\bl_\ba_\by options will pass on any additional arguments given
+ them to whatever program they invoke.
+
+ In _\bm_\bh._\b1 (the original RAND _\bM_\bH ) and _\bm_\bh._\b2 (the first UCI version of
+ _\bM_\bH ), _\bM_\bH used a complicated heuristic to determine if the draft should
+ be deleted or preserved after an unsuccessful edit. In _\bm_\bh._\b3, _\bM_\bH was
+ changed to preserve the draft always, since _\bc_\bo_\bm_\bp, et. al., could usually
+ look at a draft, apply another set of heuristics, and decide if it was
+ important or not. With the notion of a _\bd_\br_\ba_\bf_\bt _\bf_\bo_\bl_\bd_\be_\br, in which one by
+ default gets a `new' message draft, the edit deletion/preservation algo-
+ rithm was re-implemented, to keep the draft folder from being cluttered
+ with aborted edits.
+
+ Also, note that by default, if the draft cannot be successfully
+ sent, these commands return to "What now?" level. But, when _\bp_\bu_\bs_\bh is
+ used, this does not happen (obviously). Hence, if these commands were
+ expected to annotate any messages, this will have to be done by hand,
+ later on, with the _\ba_\bn_\bn_\bo command.
+
+ Finally, if the `-delete' switch is not given to the _\bq_\bu_\bi_\bt option,
+ then these commands will inform the user of the name of the unsent draft
+ file.
+
+
+ _\bD_\bi_\bg_\be_\bs_\bt_\bs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -159-
+
+
+ The _\bf_\bo_\br_\bw command has the beginnings of a digestifying facility,
+ with the `-digest list', `-issue number', and `-volume number' switches.
+
+ If _\bf_\bo_\br_\bw is given "list" to the `-digest' switch as the name of the dis-
+ cussion group, and the `-issue number' switch is not given, then _\bf_\bo_\br_\bw
+ looks for an entry in the user's _\bM_\bH context called "_\bd_\bi_\bg_\be_\bs_\bt-issue-list"
+ and increments its value to use as the issue number. Similarly, if the
+ `-volume number' switch is not given, then _\bf_\bo_\br_\bw looks for
+ "_\bd_\bi_\bg_\be_\bs_\bt-volume-list" (but does not increment its value) to use as the
+ volume number.
+
+ Having calculated the name of the digest and the volume and issue
+ numbers, _\bf_\bo_\br_\bw will now process the components file using the same format
+ string mechanism used by _\br_\be_\bp_\bl. The current `%'-escapes are:
+
+ _\be_\bs_\bc_\ba_\bp_\be _\bt_\by_\bp_\be _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn
+ digest string digest name
+ msg integer issue number
+ cur integer volume number
+
+ In addition, to capture the current date, any of the escapes valid for
+ _\bd_\bp (8) are also valid for _\bf_\bo_\br_\bw.
+
+ The default components file used by _\bf_\bo_\br_\bw when in digest mode is:
+
+ From: %{digest}-Request
+ To: %{digest} Distribution: dist-%{digest};
+ Subject: %{digest} Digest V%(cur) #%(msg)
+ Reply-To: %{digest}
+ --------
+ %{digest} Digest %(weekday{date}), %2(mday{date}) %(month{date}) 19%02(year{date})
+ Volume %(cur) : Issue %(msg)
+
+ Today's Topics:
+
+ Hence, when the `-digest' switch is present, the first step taken by
+ _\bf_\bo_\br_\bw is to expand the format strings in the component file. The next
+ step is to compose the draft using the standard digest encapsulation
+ algorithm (even putting an "End of list Digest" trailer in the draft).
+ Once the draft is composed by _\bf_\bo_\br_\bw, _\bf_\bo_\br_\bw writes out the volume and issue
+ profile entries for the digest, and then invokes the editor.
+
+ Naturally, when composing the draft, _\bf_\bo_\br_\bw will honor the
+ `-filter filterfile' switch, which is given to _\bm_\bh_\bl to filter each mes-
+ sage being forwarded prior to encapsulation in the draft. A good filter
+ file to use, which is called _\bm_\bh_\bl._\bd_\bi_\bg_\be_\bs_\bt, is:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -160-
+
+
+ width=80,overflowoffset=10
+ leftadjust,compress,compwidth=9
+ Date:formatfield="%<(nodate{text})%{text}%|%(tws{text})%>"
+ From:
+ Subject:
+ :
+ body:nocomponent,overflowoffset=0,noleftadjust,nocompress
+
+
+
+ _\bF_\bO_\bL_\bD_\bE_\bR _\bH_\bA_\bN_\bD_\bL_\bI_\bN_\bG
+
+ There are two interesting facilities for manipulating folders:
+ relative folder addressing, which allows a user to shorten the typing of
+ long folder names; and the folder-stack, which permits a user to keep a
+ stack of current folders.
+
+
+ _\bR_\be_\bl_\ba_\bt_\bi_\bv_\be _\bF_\bo_\bl_\bd_\be_\br _\bA_\bd_\bd_\br_\be_\bs_\bs_\bi_\bn_\bg
+
+ By default, when `+folder' is given, and the folder name is not
+ absolute (does not start with /, ./, or ../), then the UNIX pathname of
+ the folder is interpreted relative to the user's _\bM_\bH directory. Although
+ this mechanism works fine for top-level folders and their immediate
+ sub-folders, once the depth of the sub-folder tree grows, it becomes
+ rather unwieldly:
+
+ scan +mh/mh.4/draft/flames
+
+ is a lot of typing. _\bM_\bH can't do anything if the current folder was
+ "+inbox", but if the current folder was, say, "+mh/mh.4/draft", _\bM_\bH has a
+ short-hand notation to reference a sub-folder of the current folder.
+ Using the `@folder' notation, the _\bM_\bH user can direct any _\bM_\bH program
+ which expects a `+folder' argument to look for the folder relative to
+ the current folder instead of the user's _\bM_\bH directory. Hence, if the
+ current folder _\bw_\ba_\bs "+mh/mh.4/draft", then
+
+ scan @flames
+
+ would do the trick handily. In addition, if the current folder _\bw_\ba_\bs
+ "+mh/mh.4/draft",
+
+ scan @../pick
+
+ would scan the folder "+mh/mh.4/pick", since, in the UNIX fashion, it
+ references the folder "pick" which is a sub-folder of the folder that is
+ the parent of the current folder. Since most advanced _\bM_\bH users seem to
+ exhibit a large degree of locality in referencing folders when they pro-
+ cess mail, this convention should receive a wide range of uses.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -161-
+
+
+ _\bT_\bh_\be _\bF_\bo_\bl_\bd_\be_\br-_\bS_\bt_\ba_\bc_\bk
+
+ The _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk mechanism in _\bM_\bH gives the _\bM_\bH user a facility simi-
+ lar to the _\bC_\bS_\bh_\be_\bl_\bl 's directory-stack. Simply put,
+
+ folder -push +foo
+
+ makes "foo" the current folder, saving the folder that was previously
+ the current folder on the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk. As expected,
+
+ folder -pop
+
+ takes the top of the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk and makes it the current folder. Each
+ of these switches lists the _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk when they execute. It is sim-
+ ple to write a _\bp_\bu_\bs_\bh_\bf command as a shell script. It's one line:
+
+ exec folder -push $@
+
+ Probably a better way is to link _\bf_\bo_\bl_\bd_\be_\br to the $HOME/bin/ directory
+ under the name of _\bp_\bu_\bs_\bh_\bf and then add the entry
+
+ pushf: -push
+
+ to the .mh_profile.
+
+ The manual page for _\bf_\bo_\bl_\bd_\be_\br discusses the analogy between the _\bC_\bS_\bh_\be_\bl_\bl
+ directory stack commands and the switches in _\bf_\bo_\bl_\bd_\be_\br which manipulate the
+ _\bf_\bo_\bl_\bd_\be_\br-_\bs_\bt_\ba_\bc_\bk. The _\bf_\bo_\bl_\bd_\be_\br command uses the context entry `Folder-Stack:'
+ to keep track of the folders in the user's stack of folders.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Appendix A
+ _\bC_\bO_\bM_\bM_\bA_\bN_\bD _\bS_\bU_\bM_\bM_\bA_\bR_\bY
+
+
+
+
+ ali [-alias aliasfile] [-list] [-nolist] [-normalize]
+ [-nonormalize] [-user] [-nouser] aliases ... [-help]
+
+ anno [+folder] [msgs] [-component field] [-inplace] [-noinplace]
+ [-date] [-nodate] [-text body] [-help]
+
+ bbc [bboards ...] [-topics] [-check] [-read] [-quiet] [-verbose]
+ [-archive] [-noarchive] [-protocol] [-noprotocol]
+ [-mshproc program] [switches for _\bm_\bs_\bh_\bp_\br_\bo_\bc] [-rcfile rcfile]
+ [-norcfile] [-file BBoardsfile] [-user BBoardsuser] [-help]
+
+ burst [+folder] [msgs] [-inplace] [-noinplace] [-quiet] [-noquiet]
+ [-verbose] [-noverbose] [-help]
+
+ comp [+folder] [msg] [-draftfolder +folder] [-draftmessage msg]
+ [-nodraftfolder] [-editor editor] [-noedit] [-file file]
+ [-form formfile] [-use] [-nouse] [-whatnowproc program]
+ [-nowhatnowproc] [-help]
+
+ dist [+folder] [msg] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-form formfile] [-inplace]
+ [-noinplace] [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ /usr/local/lib/mh/fmtdump [-form formatfile] [-format string]
+ [-help]
+
+ folder [+folder] [msg] [-all] [-fast] [-nofast] [-header]
+ [-noheader] [-pack] [-nopack] [-recurse] [-norecurse] [-total]
+ [-nototal] [-print] [-noprint] [-list] [-nolist] [-push]
+ [-pop] [-help]
+
+ folders
+
+ forw [+folder] [msgs] [-annotate] [-noannotate]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-filter filterfile]
+ [-form formfile] [-format] [-noformat] [-inplace] [-noinplace]
+ [-whatnowproc program] [-nowhatnowproc] [-help]
+
+ forw [+folder] [msgs] [-digest list] [-issue number]
+ [-volume number] [other switches for _\bf_\bo_\br_\bw] [-help]
+
+
+
+
+
+ -162-
+
+
+
+
+
+
+
+
+
+
+
+
+ inc [+folder] [-audit audit-file] [-noaudit] [-changecur]
+ [-nochangecur] [-file name] [-form formatfile]
+ [-format string] [-silent] [-nosilent] [-truncate]
+ [-notruncate] [-width columns] [-help]
+
+ mark [+folder] [msgs] [-sequence name ...] [-add] [-delete] [-list]
+ [-public] [-nopublic] [-zero] [-nozero] [-help]
+
+ /usr/local/lib/mh/mhl [-bell] [-nobell] [-clear] [-noclear]
+ [-folder +folder] [-form formfile] [-length lines]
+ [-width columns] [-moreproc program] [-nomoreproc] [files ...]
+ [-help]
+
+ mhmail [ addrs ... [-body text] [-cc addrs ...] [-from addr]
+ [-subject subject]] [-help]
+
+ mhparam [profile-components] [-components] [-nocomponents] [-all]
+ [-help]
+
+ mhpath [+folder] [msgs] [-help]
+
+ msgchk [-date] [-nodate] [-notify all/mail/nomail]
+ [-nonotify all/mail/nomail] [users ...] [-help]
+
+ msh [-prompt string] [-scan] [-noscan] [-topcur] [-notopcur] [file]
+ [-help]
+
+ next [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ packf [+folder] [msgs] [-file name] [-help]
+
+ pick [+folder] [msgs] [-and ...] [-or ...] [-not ...]
+ [-lbrace ... -rbrace] [--component pattern] [-after date]
+ [-before date] [-datefield field] [-sequence name ...]
+ [-public] [-nopublic] [-zero] [-nozero] [-list] [-nolist]
+ [-help]
+
+
+ prev [+folder] [-header] [-noheader] [-showproc program]
+ [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc] [-help]
+
+ prompter [-erase chr] [-kill chr] [-prepend] [-noprepend] [-rapid]
+ [-norapid] [-doteof] [-nodoteof] file [-help]
+
+ /usr/local/lib/mh/rcvstore [+folder] [-create] [-nocreate]
+ [-sequence name ...] [-public] [-nopublic] [-zero] [-nozero]
+ [-help]
+
+
+
+
+
+ -163-
+
+
+
+
+
+
+
+
+
+
+
+
+ refile [msgs] [-draft] [-link] [-nolink] [-preserve] [-nopreserve]
+ [-src +folder] [-file file] +folder ... [-help]
+
+ repl [+folder] [msg] [-annotate] [-noannotate] [-cc all/to/cc/me]
+ [-nocc all/to/cc/me] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-editor editor]
+ [-noedit] [-fcc +folder] [-filter filterfile] [-form formfile]
+ [-inplace] [-noinplace] [-query] [-noquery]
+ [-whatnowproc program] [-nowhatnowproc] [-width columns]
+ [-help]
+
+ rmf [+folder] [-interactive] [-nointeractive] [-help]
+
+ rmm [+folder] [msgs] [-help]
+
+ scan [+folder] [msgs] [-clear] [-noclear] [-form formatfile]
+ [-format string] [-header] [-noheader] [-width columns]
+ [-reverse] [-noreverse] [-file filename] [-help]
+
+ send [-alias aliasfile] [-draft] [-draftfolder +folder]
+ [-draftmessage msg] [-nodraftfolder] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-forward] [-noforward]
+ [-msgid] [-nomsgid] [-push] [-nopush] [-verbose] [-noverbose]
+ [-watch] [-nowatch] [-width columns] [file ...] [-help]
+
+ show [+folder] [msgs] [-draft] [-header] [-noheader]
+ [-showproc program] [-noshowproc] [switches for _\bs_\bh_\bo_\bw_\bp_\br_\bo_\bc]
+ [-help]
+
+ sortm [+folder] [msgs] [-datefield field] [-textfield field]
+ [-notextfield] [-limit days] [-nolimit] [-verbose]
+ [-noverbose] [-help]
+
+ vmh [-prompt string] [-vmhproc program] [-novmhproc]
+ [switches for _\bv_\bm_\bh_\bp_\br_\bo_\bc] [-help]
+
+ whatnow [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [-editor editor] [-noedit] [-prompt string] [file] [-help]
+
+ whom [-alias aliasfile] [-check] [-nocheck] [-draft]
+ [-draftfolder +folder] [-draftmessage msg] [-nodraftfolder]
+ [file] [-help]
+
+ /usr/local/lib/mh/ap [-form formatfile] [-format string]
+ [-normalize] [-nonormalize] [-width columns] addrs ...
+ [-help]
+
+ /usr/local/lib/mh/conflict [-mail name] [-search directory]
+ [aliasfiles ...] [-help]
+
+
+
+
+ -164-
+
+
+
+
+
+
+
+
+
+
+
+
+ /usr/local/lib/mh/dp [-form formatfile] [-format string]
+ [-width columns] dates ... [-help]
+
+ /usr/local/lib/mh/install-mh [-auto] [-compat]
+
+ /usr/local/lib/mh/post [-alias aliasfile] [-filter filterfile]
+ [-nofilter] [-format] [-noformat] [-msgid] [-nomsgid]
+ [-verbose] [-noverbose] [-watch] [-nowatch] [-width columns]
+ file [-help]
+
+ /usr/local/lib/mh/slocal [address info sender] [-addr address]
+ [-info data] [-sender sender] [-user username] [-mailbox mbox]
+ [-file file] [-maildelivery deliveryfile] [-verbose]
+ [-noverbose] [-debug] [-help]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -165-
+
+
+
+
+
+
+
+
+
+
+
+
+ Appendix B
+ _\bM_\bE_\bS_\bS_\bA_\bG_\bE _\bN_\bA_\bM_\bE _\bB_\bN_\bF
+
+
+
+
+
+ msgs := msgspec |
+ msgs msgspec
+
+ msgspec := msg |
+ msg-range |
+ msg-sequence |
+ user-defined-sequence
+
+ msg := msg-name |
+ <number>
+
+ msg-name := "first" |
+ "last" |
+ "cur" |
+ "." |
+ "next" |
+ "prev"
+
+ msg-range := msg"-"msg |
+ "all"
+
+ msg-sequence := msg":"signed-number
+
+ signed-number := "+"<number> |
+ "-"<number> |
+ <number>
+
+ user-defined-sequence := <alpha> |
+ <alpha><alphanumeric>*
+
+
+ Where <number> is a decimal number greater than zero.
+
+ Msg-range specifies all of the messages in the given range and must not
+ be empty.
+
+ Msg-sequence specifies up to <number> of messages, beginning with "msg"
+ (in the case of first, cur, next, or <number>), or ending with "msg" (in
+ the case of prev or last). +<number> forces "starting with msg", and
+ -<number> forces "ending with number". In all cases, "msg" must exist.
+
+ User-defined sequences are defined and manipulated with the _\bp_\bi_\bc_\bk and
+ _\bm_\ba_\br_\bk commands.
+
+
+
+ -166-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bR_\bE_\bF_\bE_\bR_\bE_\bN_\bC_\bE_\bS
+
+
+
+ 1. Crocker, D. H., J. J. Vittal, K. T. Pogran, and D. A. Henderson,
+ Jr., "Standard for the Format of ARPA Network Text Messages,"
+ _\bR_\bF_\bC_\b7_\b3_\b3, November 1977.
+
+ 2. Thompson, K., and D. M. Ritchie, "The UNIX Time-sharing System,"
+ _\bC_\bo_\bm_\bm_\bu_\bn_\bi_\bc_\ba_\bt_\bi_\bo_\bn_\bs _\bo_\bf _\bt_\bh_\be _\bA_\bC_\bM, Vol. 17, July 1974, pp. 365-375.
+
+ 3. McCauley, E. J., and P. J. Drongowski, "KSOS-The Design of a Secure
+ Operating System," _\bA_\bF_\bI_\bP_\bS _\bC_\bo_\bn_\bf_\be_\br_\be_\bn_\bc_\be _\bP_\br_\bo_\bc_\be_\be_\bd_\bi_\bn_\bg_\bs, National Computer
+ Conference, Vol. 48, 1979, pp. 345-353.
+
+ 4. Crocker, David H., _\bF_\br_\ba_\bm_\be_\bw_\bo_\br_\bk _\ba_\bn_\bd _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs _\bo_\bf _\bt_\bh_\be "_\bM_\bS" _\bP_\be_\br_\bs_\bo_\bn_\ba_\bl _\bM_\be_\bs_\b-
+ _\bs_\ba_\bg_\be _\bS_\by_\bs_\bt_\be_\bm, The RAND Corporation, R-2134-ARPA, December 1977.
+
+ 5. Thompson, K., and D. M. Ritchie, _\bU_\bN_\bI_\bX _\bP_\br_\bo_\bg_\br_\ba_\bm_\bm_\be_\br'_\bs _\bM_\ba_\bn_\bu_\ba_\bl, 6th ed.,
+ Western Electric Company, May 1975 (available only to UNIX licen-
+ sees).
+
+ 6. Crocker, D. H., "Standard for the Format of ARPA Internet Text Mes-
+ sages," _\bR_\bF_\bC_\b8_\b2_\b2, August 1982.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -167-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -i-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bR_\bE_\bA_\bD _\bT_\bH_\bI_\bS
+
+
+
+
+ Although the _\bM_\bH system was originally developed by the RAND Cor-
+ poration, and is now in the public domain, the RAND Corporation assumes
+ no responsibility for _\bM_\bH or this particular version of _\bM_\bH.
+
+ In addition, the Regents of the University of California issue the
+ following disclaimer in regard to the UCI version of _\bM_\bH:
+
+ "Although each program has been tested by its contributor, no war-
+ ranty, express or implied, is made by the contributor or the
+ University of California, as to the accuracy and functioning of the
+ program and related program material, nor shall the fact of distri-
+ bution constitute any such warranty, and no responsibility is
+ assumed by the contributor or the University of California in con-
+ nection herewith."
+
+ This version of _\bM_\bH is in the public domain, and as such, there are
+ no real restrictions on its use. The _\bM_\bH source code and documentation
+ have no licensing restrictions whatsoever. As a courtesy, the authors
+ ask only that you provide appropriate credit to the RAND Corporation and
+ the University of California for having developed the software.
+
+ _\bM_\bH is a software package that is supported neither by the RAND Cor-
+ poration nor the University of California. However, since we do use the
+ software ourselves and plan to continue using (and improving) _\bM_\bH, bug
+ reports and their associated fixes should be reported back to us so that
+ we may include them in future releases. The current computer mailbox
+ for _\bM_\bH is Bug-MH@ICS.UCI.EDU (in the ARPA Internet), and
+ ...!ucbvax!ucivax!bug-mh (UUCP). Presently, there are two Internet dis-
+ cussion groups, MH-Users@ICS.UCI.EDU and MH-Workers@ICS.UCI.EDU.
+ MH-Workers is for people discussing code changes to _\bM_\bH. MH-Users is for
+ general discussion about how to use _\bM_\bH. MH-Users is bi-directionally
+ gatewayed into USENET as comp.mail.mh.
+
+ _\bH_\bO_\bW _\bT_\bO _\bG_\bE_\bT _\bM_\bH
+
+ Since you probably already have _\bM_\bH, you may not need to read this
+ unless you suspect you have an old version. There are two ways to get
+ the latest release:
+
+ 1. If you can FTP to the ARPA Internet, use anonymous FTP to
+ ics.uci.edu [128.195.1.1] and retrieve the file pub/mh/mh-6.8.tar.Z.
+ This is a tar image after being run through the compress program
+ (approximately 1.8MB). There should also be a README file in that
+ directory which tells what the current release of _\bM_\bH is, and how to get
+ updates.
+
+
+
+ -i-
+
+
+
+
+
+
+
+
+
+ -ii-
+
+
+ This tar file is also available on louie.udel.edu [128.175.1.3] in
+ portal/mh-6.8.tar.Z. You may also find MH on various other hosts; to
+ make sure you get the latest version and don't waste your time re-fixing
+ bugs, it's best to get it from either ics.uci.edu or louie.udel.edu.
+
+ 2. You can send $75 US to the address below. This covers the cost
+ of a 6250 BPI 9-track magtape, handling, and shipping. In addition,
+ you'll get a laser-printed hard-copy of the entire MH documentation set.
+ Be sure to include your USPS address with your check. Checks must be
+ drawn on U.S. funds and should be made payable to:
+
+ Regents of the University of California
+
+ The distribution address is:
+
+ Computing Support Group
+ Attn: MH distribution
+ Department of Information and Computer Science
+ University of California, Irvine
+ Irvine, CA 92717
+
+ 714/856-7554
+
+ If you just want the hard-copies of the documentation, you still
+ have to pay the $75. The tar image has the documentation source (the
+ manual is in roff format, but the rest are in TeX format). Postscript
+ formatted versions of the TeX papers are available, as are crude tty-
+ conversions of those papers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bF_\bO_\bR_\bE_\bW_\bO_\bR_\bD
+
+
+
+
+ This document describes the RAND _\bM_\bH Message Handling System. Its
+ primary purpose is to serve as a user's manual. It has been heavily
+ based on a previous version of the manual, prepared by Bruce Borden,
+ Stockton Gaines, and Norman Shapiro.
+
+ _\bM_\bH is a particularly novel system, and thus it is often more prone
+ to change than other pieces of production software. As such, some
+ specific points in this manual may not be correct in the future. In all
+ cases, the on-line sections of this manual, available through the
+ UNIX[1] _\bm_\ba_\bn command, should present the most current information.
+
+ When reading this document as a user's manual, certain sections are
+ more interesting than others. The Preface and Summary are not particu-
+ larly interesting to those interested in learning _\bM_\bH. The Introduction
+ is slightly more interesting, as it touches upon the organization of the
+ remainder of this document. The most useful sections are the Overview,
+ Tutorial, and Detailed Description. The Overview should be read by all
+ _\bM_\bH users, regardless of their expertise (beginning, novice, advanced, or
+ hacker). The Tutorial should be read by all beginning and novice _\bM_\bH
+ users, as it presents a nice description of the _\bM_\bH system. The Detailed
+ Description should be read by the day-to-day user of _\bM_\bH, as it spells
+ out all of the realities of the _\bM_\bH system. The Advanced Features sec-
+ tion discusses some powerful _\bM_\bH capabilities for advanced users. Appen-
+ dix A is particularly useful for novices, as it summarizes the invoca-
+ tion syntax of all the _\bM_\bH commands.
+
+ There are also several other documents which may be useful to you:
+ _\bT_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bT_\bu_\bt_\bo_\br_\bi_\ba_\bl, which is a tutorial for
+ _\bM_\bH; _\bT_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bT_\bh_\be _\bU_\bC_\bI _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bF_\ba_\bc_\bi_\bl_\bi_\bt_\by, which
+ describes the BBoards handling under _\bM_\bH; _\bM_\bH._\b5: _\bH_\bo_\bw _\bt_\bo _\bp_\br_\bo_\bc_\be_\bs_\bs _\b2_\b0_\b0 _\bm_\be_\bs_\b-
+ _\bs_\ba_\bg_\be_\bs _\ba _\bd_\ba_\by _\ba_\bn_\bd _\bs_\bt_\bi_\bl_\bl _\bg_\be_\bt _\bs_\bo_\bm_\be _\br_\be_\ba_\bl _\bw_\bo_\br_\bk _\bd_\bo_\bn_\be, which was presented at
+ the 1985 Summer Usenix Conference and Exhibition in Portland, Oregon;
+ _\bM_\bH: _\bA _\bM_\bu_\bl_\bt_\bi_\bf_\ba_\br_\bi_\bo_\bu_\bs _\bU_\bs_\be_\br _\bA_\bg_\be_\bn_\bt, which has been accepted for publication
+ by Computer Networks; _\bM_\bZ_\bn_\be_\bt: _\bM_\ba_\bi_\bl _\bS_\be_\br_\bv_\bi_\bc_\be _\bf_\bo_\br _\bP_\be_\br_\bs_\bo_\bn_\ba_\bl _\bM_\bi_\bc_\br_\bo-_\bC_\bo_\bm_\bp_\bu_\bt_\be_\br
+ _\bS_\by_\bs_\bt_\be_\bm_\bs, which was presented at the First International Symposium on
+ Computer Message Systems in Nottingham, U.K.; and, _\bD_\be_\bs_\bi_\bg_\bn _\bo_\bf _\bt_\bh_\be _\bT_\bT_\bI
+ _\bP_\br_\bo_\bt_\bo_\bt_\by_\bp_\be _\bT_\br_\bu_\bs_\bt_\be_\bd _\bM_\ba_\bi_\bl _\bA_\bg_\be_\bn_\bt, which describes a proprietary "trusted"
+ mail system built on _\bM_\bH. There are also documents, mostly specific to
+ U.C. Irvine which you may find interesting: _\bM_\bH _\bf_\bo_\br _\bB_\be_\bg_\bi_\bn_\bn_\be_\br_\bs, and _\bM_\bH _\bf_\bo_\br
+ _\bM_\bM _\bU_\bs_\be_\br_\bs. All of these documents exist in the _\bm_\bh._\b6 distribution sent to
+ your site. There's also a document, _\bC_\bh_\ba_\bn_\bg_\be_\bs _\bt_\bo _\bt_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\b-
+ _\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bM_\bH._\b6, which describes user-visible changes made to _\bM_\bH
+ since the last major release.
+
+
+ [1] UNIX is a trademark of AT&T Bell Laboratories.
+
+
+ -iii-
+
+
+
+
+
+
+
+
+
+ -iv-
+
+
+ This manual is very large, as it describes a large, powerful system
+ in gruesome detail. The important thing to remember is:
+
+
+ _\bD_\bO_\bN'_\bT _\bP_\bA_\bN_\bI_\bC[_\b2]
+
+
+ As explained in the tutorial, you really need to know only 5 commands to
+ handle most of your mail.
+
+ Very advanced users may wish to consult _\bT_\bh_\be _\bR_\bA_\bN_\bD _\bM_\bH _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\ba_\bn_\b-
+ _\bd_\bl_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm: _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be, which is also present in the _\bm_\bh._\b6
+ distribution sent to your site.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [2] Note the large, _\bf_\br_\bi_\be_\bn_\bd_\bl_\by letters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bA_\bC_\bK_\bN_\bO_\bW_\bL_\bE_\bD_\bG_\bM_\bE_\bN_\bT_\bS
+
+
+
+
+ The _\bM_\bH system described herein is based on the original RAND _\bM_\bH
+ system. It has been extensively developed (perhaps too much so) by
+ Marshall T. Rose and John L. Romine at the University of California,
+ Irvine. Einar A. Stefferud, Jerry N. Sweet, and Terry P. Domae provided
+ numerous suggestions to improve the UCI version of _\bM_\bH. Of course, a
+ large number of people have helped _\bM_\bH along. The list of ``_\bM_\bH immor-
+ tals'' is too long to list here. However, Van Jacobson deserves a spe-
+ cial acknowledgement for his tireless work in improving the performance
+ of _\bM_\bH. Some programs have been speeded-up by a factor of 10 or 20. All
+ of users of _\bM_\bH, everywhere, owe a special thanks to Van. For this
+ release, numerous _\bM_\bH-_\bW_\bo_\br_\bk_\be_\br_\bs sent in fixes and other changes. A handful
+ of courageous _\bM_\bH-_\bW_\bo_\br_\bk_\be_\br_\bs volunteered to beta-test these changes; their
+ help is particularly appreciated.
+
+ This manual is based on the original _\bM_\bH manual written at RAND by
+ Bruce Borden, Stockton Gaines, and Norman Shapiro.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -v-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bP_\bR_\bE_\bF_\bA_\bC_\bE
+
+
+
+
+ This report describes a system for dealing with messages transmit-
+ ted on a computer. Such messages might originate with other users of
+ the same computer or might come from an outside source through a network
+ to which the user's computer is connected. Such computer-based message
+ systems are becoming increasingly widely used, both within and outside
+ the Department of Defense.
+
+ The message handling system _\bM_\bH was developed for two reasons. One
+ was to investigate some research ideas concerning how a message system
+ might take advantage of the architecture of the UNIX time-sharing
+ operating system for Digital Equipment Corporation PDP-11 and VAX com-
+ puters, and the special features of UNIX's command-level interface with
+ the user (the "shell"). The other reason was to provide a better and
+ more adaptable base than that of conventional designs on which to build
+ a command and control message system. The effort has succeeded in both
+ regards, although this report mainly describes the message system itself
+ and how it fits in with UNIX.
+
+ The present report should be of interest to three groups of
+ readers. First, it is a complete reference manual for the users of _\bM_\bH.
+ Second, it should be of interest to those who have a general knowledge
+ of computer-based message systems, both in civilian and military appli-
+ cations. Finally, it should be of interest to those who build large
+ subsystems that interface with users, since it illustrates a new
+ approach to such interfaces.
+
+ The original _\bM_\bH system was developed by Bruce Borden, using an
+ approach suggested by Stockton Gaines and Norman Shapiro. Valuable
+ assistance was provided by Phyllis Kantar in the later stages of the
+ system's implementation. Several colleagues contributed to the ideas
+ included in this system, particularly Robert Anderson and David Crocker.
+ In addition, valuable experience in message systems, and a valuable
+ source of ideas, was available to us in the form of a previous message
+ system for UNIX called MS, designed at RAND by David Crocker.
+
+ This report was originally prepared as part of the RAND project
+ entitled "Data Automation Research", sponsored by Project AIR FORCE.
+
+
+
+
+
+
+
+
+
+
+
+ -vi-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bS_\bU_\bM_\bM_\bA_\bR_\bY
+
+
+
+
+ Electronic communication of text messages is becoming commonplace.
+ Computer-based message systems-software packages that provide tools for
+ dealing with messages-are used in many contexts. In particular, message
+ systems are becoming increasingly important in command and control and
+ intelligence applications.
+
+ This report describes a message handling system called _\bM_\bH. This
+ system provides the user with tools to compose, send, receive, store,
+ retrieve, forward, and reply to messages. _\bM_\bH has been built on the UNIX
+ time-sharing system, a popular operating system developed for the DEC
+ PDP-11 and VAX classes of computers.
+
+ A complete description of _\bM_\bH is given for users of the system. For
+ those who do not intend to use the system, this description gives a gen-
+ eral idea of what a message system is like. The system involves some
+ new ideas about how large subsystems can be constructed.
+
+ The interesting and unusual features of _\bM_\bH include the following:
+ The user command interface to _\bM_\bH is the UNIX "shell" (the standard UNIX
+ command interpreter). Each separable component of message handling,
+ such as message composition or message display, is a separate command.
+ Each program is driven from and updates a private user environment,
+ which is stored as a file between program invocations. This private
+ environment also contains information to "custom tailor" _\bM_\bH to the
+ individual's tastes. _\bM_\bH stores each message as a separate file under
+ UNIX, and it utilizes the tree-structured UNIX file system to organize
+ groups of files within separate directories or "folders". All of the
+ UNIX facilities for dealing with files and directories, such as renam-
+ ing, copying, deleting, cataloging, off-line printing, etc., are appli-
+ cable to messages and directories of messages (folders). Thus, impor-
+ tant capabilities needed in a message system are available in _\bM_\bH without
+ the need (often seen in other message systems) for code that duplicates
+ the facilities of the supporting operating system. It also allows users
+ familiar with the shell to use _\bM_\bH with minimal effort.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -vii-
+
+
+
+
+
+
+
+
+
+
+
+
+ _\bC_\bO_\bN_\bT_\bE_\bN_\bT_\bS
+
+
+
+
+ READ THIS ......................................................... i
+
+ FOREWORD .......................................................... iii
+
+ ACKNOWLEDGMENTS ................................................... v
+
+ PREFACE ........................................................... vi
+
+ SUMMARY ........................................................... vii
+
+ Section
+
+ 1. INTRODUCTION ............................................... 1
+
+ 2. OVERVIEW ................................................... 4
+
+ 3. TUTORIAL ................................................... 7
+
+ 4. DETAILED DESCRIPTION ....................................... 10
+ THE USER PROFILE ............................................. 10
+ MESSAGE NAMING ............................................... 13
+ OTHER MH CONVENTIONS ......................................... 14
+ MH COMMANDS .................................................. 16
+ ALI ....................................................... 17
+ ANNO ...................................................... 19
+ BBC ....................................................... 21
+ BBOARDS ................................................... 24
+ BURST ..................................................... 26
+ COMP ...................................................... 28
+ DIST ...................................................... 30
+ FOLDER .................................................... 33
+ FORW ...................................................... 37
+ INC ....................................................... 41
+ MARK ...................................................... 44
+ MHL ....................................................... 46
+ MHMAIL .................................................... 51
+ MHOOK ..................................................... 53
+ MHPARAM ................................................... 55
+ MHPATH .................................................... 57
+ MSGCHK .................................................... 60
+ MSH ....................................................... 61
+ NEXT ...................................................... 65
+ PACKF ..................................................... 66
+ PICK ...................................................... 67
+ PREV ...................................................... 72
+ PROMPTER .................................................. 73
+ RCVSTORE .................................................. 76
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ REFILE .................................................... 78
+ REPL ...................................................... 80
+ RMF ....................................................... 84
+ RMM ....................................................... 86
+ SCAN ...................................................... 88
+ SEND ...................................................... 91
+ SHOW ...................................................... 94
+ SLOCAL .................................................... 97
+ SORTM ..................................................... 102
+ VMH ....................................................... 104
+ WHATNOW ................................................... 106
+ WHOM ...................................................... 108
+ MORE DETAILS ................................................. 110
+ MH-ALIAS .................................................. 111
+ MH-FORMAT ................................................. 115
+ MH-MAIL ................................................... 124
+ MH-PROFILE ................................................ 128
+ MH-SEQUENCE ............................................... 136
+ AP ........................................................ 140
+ CONFLICT .................................................. 142
+ DP ........................................................ 144
+ FMTDUMP ................................................... 146
+ INSTALL-MH ................................................ 147
+ POST ...................................................... 148
+
+ 5. REPORTING PROBLEMS ......................................... 150
+
+ 6. ADVANCED FEATURES .......................................... 151
+ USER-DEFINED SEQUENCES ....................................... 151
+ Pick and User-Defined Sequences ........................... 151
+ Mark and User-Defined Sequences ........................... 153
+ Public and Private User-Defined Sequences ................. 153
+ Sequence Negation ......................................... 153
+ The Previous Sequence ..................................... 154
+ The Unseen Sequence ....................................... 154
+ COMPOSITION OF MAIL .......................................... 155
+ The Draft Folder .......................................... 155
+ What Happens if the Draft Exists .......................... 157
+ The Push Option at What now? Level ........................ 157
+ Options at What now? Level ................................ 158
+ Digests ................................................... 159
+ FOLDER HANDLING .............................................. 160
+ Relative Folder Addressing ................................ 160
+ The Folder-Stack .......................................... 161
+
+ Appendix
+ A. Command Summary ............................................ 162
+ B. Message Name BNF ........................................... 166
+
+ REFERENCES ........................................................ 167
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THE RAND MH
+
+
+ MESSAGE HANDLING
+
+
+ SYSTEM:
+
+
+ USER'S MANUAL
+
+
+
+
+
+
+ UCI Version
+
+
+
+
+
+ Marshall T. Rose
+
+ John L. Romine
+
+
+
+
+ Based on the original manual by
+
+ Borden, Gaines, and Shapiro
+
+
+
+
+
+
+
+ November 30, 1993
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6.8.3 #1[UCI]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null
+The most recent versions of the documents in this directory were
+downloaded from ftp://ftp.vim.org/pub/mail/mh/doc/
+
+These older versions:
+ ADMIN-19910201.txt
+ MH-19910201.txt
+ MH-19921214.pdf
+ MH-19921214.txt
+were downloaded from ftp://munnari.oz.au/pub/mh/doc/
+
+designOfMH.pdf was downloaded from
+http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA257836
+
+The README below is retained in its original form for posterity. All
+of the txt (.doc and .tty) files have been renamed to .txt. All of
+the postscript (.ps) files have been converted to pdf using ps2pdf.
+
+D. Levine 28 Feb 2012
+
+------------------------------------------------------------------------
+------------------------------------------------------------------------
+
+mh/doc/README
+
+These are formatted versions of the major MH documents (written
+using the troff "-ms" and "-me" macro packages). The ".doc" files
+are formatted for 66 lines/page:
+
+ ADMIN.doc - The MH Administrator's Manual - how to configure MH
+ MH.doc - The MH User's Manual
+ changes.doc - Changes from MH 6.6 to MH 6.8
+ mh-gen.doc - The "READ-ME" file - how to generate MH (aka mh-gen(8))
+
+Postscript versions are also available:
+
+ ADMIN.ps - The MH Administrator's Manual - how to configure MH
+ MH.ps - The MH User's Manual
+ changes.ps - Changes from MH 6.6 to MH 6.8
+ mh-gen.ps - The "READ-ME" file - how to generate MH (aka mh-gen(8))
+
+------------------------------------------------------------------------
+
+These are postscript conversions of the MH papers which were written
+using the TeX typesetting language:
+
+ bboards.ps - The UCI BBoards Facility
+ beginners.ps - UCI MH for Beginners
+ mh4mm.ps - MH for MM users
+ mh6.ps - Changes from MH 6.0 to MH 6.5 for 4.3BSD
+ multifarious.ps - MH: A Multifarious User Agen
+ mznet.ps - MZnet - Mail Service for Personal Micro Comp. Sys.
+ realwork.ps - MH.5 - How to process 200 messages...
+ trusted.ps - Design of the TTI Prototype Trusted Mail Agent
+ tutorial.ps - The MH Tutorial
+
+These conversions have been provided because they may be of use to some
+sites who retrieved MH using FTP, and who do not have TeX to typeset
+the papers themselves. Of course, all recipients of an MH distribution
+tape receive a complete set of laser-printed manuals.
+
+These conversions were generated with the "dvips" program. I have
+printed them on an Imagen 5320 w/ Turboscript, and the output is
+identical to the original "dvi" versions of these papers.
+
+As yet, I have had no success downloading the postscript files to a Mac-
+intosh, and printing them on a Laserwriter. If you are able to generate
+copies of these papers which will print (identically to the originals or
+otherwise) on a Laserwriter, please contact "Bug-MH@ICS.UCI.EDU".
+
+------------------------------------------------------------------------
+
+These files are tty-readable conversions of the MH papers which were
+written using the TeX typesetting language:
+
+ bboards.tty - The UCI BBoards Facility
+ beginners.tty - UCI MH for Beginners
+ mh4mm.tty - MH for MM users
+ mh6.tty - Changes from MH 6.0 to MH 6.5 for 4.3BSD
+ multifarious.tty - MH: A Multifarious User Agen
+ mznet.tty - MZnet - Mail Service for Personal Micro Comp. Sys.
+ realwork.tty - MH.5 - How to process 200 messages...
+ trusted.tty - Design of the TTI Prototype Trusted Mail Agent
+ tutorial.tty - The MH Tutorial
+
+These conversions have been provided because they may be of use to some
+sites who retrieved MH using FTP, and who do not have TeX or a laser
+printer on which to print the papers. If you have a Postscript
+printer, you may want to retrieve the Postscript conversion of these
+papers, available in a different tar archive.
+
+Of course, all recipients of an MH distribution tape receive a complete
+set of laser-printed manuals, and these conversions are not a
+substitute for properly-formatted copies of the originals.
+
+The conversion was generated by the "dvi2tty" program. As full use of
+TeX's rich typesetting environment was used in writing many of these
+papers, and since the output is intended for a line printer, it is
+necessarily quite primitive.
+
+Font changes and special character representations are lost entirely.
+White-space between words may be deleted or expanded, especially near
+punctuation characters. Blank lines may be added or deleted.
+
+Since typeset lines are typically longer than 80 tty characters, the
+output has been generated for 132-colunm output devices. A typical
+page has about 76 lines. Pages are separated by a formfeed character.
+
+/JLR
--- /dev/null
+
+
+
+
+ The Rand MH Message Handling System:
+
+
+
+ The UCI BBoards Facility
+
+
+ Marshall T. Rosey
+
+ Wed May 21 21:03:57 PDT 1986
+
+
+
+ Abstract
+
+
+ This document discusses how to process BBoards using the
+
+ Rand MH system. In particular, this guide discusses: check-
+
+ ing the status of a BBoard, viewing new messages, archive
+
+ handling, composing mail destined for a BBoard, and reply-
+
+ ing to a message posted to a BBoard.
+
+
+ Although this document is based on the standard MH
+
+ user manual[MH], this document is meant to supplement, not
+
+ supersede, that lengthier work.
+
+
+ Comments concerning this documentation should be ad-
+
+ dressed to the Internet mailbox Bug-MH@ICS.UCI.EDU.
+
+
+
+_____________________________________
+y Computer Mail: MRose@NRTC.NORTHROP.COM.
+\f
+
+ The Rand MH Message Handling System:
+
+
+
+ The UCI BBoards Facility
+
+
+
+Acknowledgements
+
+ The MH system described herein is based on the original Rand MH system.
+
+It has been extensively developed (perhaps too much so) by Marshall Rose and
+
+John Romine at the University of California, Irvine. Einar Stefferud, Jerry Sweet,
+
+and Terry Domae provided numerous suggestions to improve the UCI version of
+
+MH.
+
+
+ In particular, the UCI BBoards facility, which was suggested by Einar
+
+Stefferud, has been in place at the University of California, Irvine (in one form or
+
+another) for the last two and one-half years. The UCI BBoards facilities runs under
+
+both MMDF and SendMail, and, in a more restricted form, under stand-alone MH.
+
+
+
+Disclaimer
+
+ The Regents of the University of California wish to make it known that:
+
+
+
+ "Although each program has been tested by its contributor, no warranty, express or
+ implied, is made by the contributor or the University of California, as to the accuracy
+ and functioning of the program and related program material, nor shall the fact of
+ distribution constitute any such warranty, and no responsibility is assumed by the
+ contributor or the University of California in connection herewith."
+
+
+
+Scope
+
+ This document explains how to use the UCI BBoards facility to a user
+
+familiar with MH and the UNIX1 operating system in general. A large degree of
+
+expertise is not assumed. This document does not attempt to introduce MH to the
+
+novice user (for that task, consult the MH tutorial known as [MH.TUT]). Additional
+
+information on the programs discussed here (particularly bbc) is to be found in
+
+[MH].
+
+
+
+_____________________________________
+1 UNIX is a trademark of AT&T Bell Laboratories.
+
+
+
+ 1
+\f 2
+
+
+Conventions
+
+ In this document, certain TEX-formatting conventions are adhered to:
+
+
+ 1. The names of UNIX commands, such as comp, are presented in text
+
+ italics.
+
+
+ 2. Arguments to programs, such as `msgs' , are presented in typewriter
+
+ style and delimited by single-quotes.
+
+
+ 3. UNIX pathnames and envariables, such as /usr/uci/ and $ SIGNATURE ,
+
+ are presented in slanted roman.
+
+
+ 4. Text presenting an example, such as
+
+
+ comp -editor zz
+
+
+ is presented in typewriter style.
+
+
+
+Introduction
+
+ MH is a very powerful message handling system that runs under the UNIX
+
+operating system. One of the many features which MH offers is an interface to
+
+the UCI BBoards facility. This facility permits the efficient distribution of interest
+
+group messages on a single host, a group of hosts under a single administration,
+
+and the ARPA Internet community.
+
+
+ Described simply, a interest group is composed of a number of subscribers
+
+with a common interest. These subscribers post mail to a single address, known
+
+as a distribution address. From this distribution address, a copy of the message
+
+is sent to each subscriber. Each group has a moderator, which is the person that
+
+runs the the group. This moderator can usually be reached at a special address,
+
+known as a request address. Usually, the responsibilities of the moderator are quite
+
+simple, since the mail system handles the distribution to subscribers automatically.
+
+In some cases, the interest group, instead of being distributed directly to its
+
+subscribers, is put into a digest format by the moderator and then sent to the
+
+subscribers. Although this requires more work on the part of the moderator, such
+
+groups tend to be better organized.
+
+
+ Unfortunately, there are a few problems with the scheme outlined above.
+
+First, if two users on the same host subscribe to the same interest group, two copies
+
+of the message get delivered. This is wasteful of both processor and disk resources.
+
+
+ Second, some of these groups carry a lot of traffic. Although subscription
+
+to an group does indicate interest on the part of a subscriber, it is usually not
+
+interesting to get 50 messages or so delivered to the user's private maildrop each
+
+day, interspersed with personal mail, that is likely to be of a much more important
+
+and timely nature.
+\f 3
+
+
+ Third, if a subscriber on the distribution list for a group becomes "bad"
+
+somehow, the originator of the message and not the moderator of the group is
+
+notified. It is not uncommon for a large list to have 10 or so bogus addresses
+
+present. This results in the originator being flooded with "error messages" from
+
+mailers across the ARPA Internet stating that a given address on the list was bad.
+
+Needless to say, the originator usually could not care less if the bogus addresses
+
+got a copy of the message or not. The originator is merely interested in posting a
+
+message to the group at large. Furthermore, the moderator of the group does care
+
+if there are bogus addresses on the list, but ironically does not receive notification.
+
+
+ To solve all of these problems, the UCI BBoards facility introduces a new
+
+entity into the picture: all interest group mail is handled by a special component of
+
+the mail system. The distribution address maps to a special channel that performs
+
+several actions. First, if local delivery is to be performed, then a copy of the
+
+message is placed in a global maildrop for the interest group with a timestamp
+
+and a unique number. Local users can read messages posted for the interest group
+
+by reading the file. Second, if further distribution is to take place, a copy of
+
+the message is sent to the distribution address in such a way that if any of the
+
+addresses are bogus, the failure notice is sent to the maintainer of the group and
+
+not the originator.
+
+
+ This scheme has several advantages: First, messages delivered to the host
+
+are processed and saved once in a globally accessible area. The UCI BBoards
+
+facility supports software which allows a user to query the interest group for
+
+new messages and to read those messages in the MH-style. Second, once a host
+
+subscribes to an interest group, a user can add or remove him/herself from the list
+
+without contacting the moderator. Third, a hierarchical distribution scheme can
+
+be constructed to further reduce the amount of message traffic. Fourth, errors are
+
+prevented from propagating. When an address on the distribution list goes bad,
+
+the request address immediately responsible for the address is notified. Usually,
+
+this is the local PostMaster and not the group moderator.
+
+
+ In addition to solving the problems outlined above, the UCI BBoards facility
+
+supports several other capabilities. BBoards may be automatically archived in
+
+order to conserve disk space and reduce processing time when reading them.
+
+
+ Special alias files may be generated which allow the MH user to shorten
+
+address type-in. For example, instead of sending to ``SF-Lovers@Rutgers'' ,
+
+a user of MH usually sends to ``SF-Lovers'' and the MH aliasing facility
+
+automatically makes the appropriate expansion in the headers of the outgoing
+
+message. Hence, one need only know the name of a interest group and not its
+
+address.
+\f 4
+
+
+ Finally, the UCI BBoards facility supports private interest groups using the
+
+UNIX group access mechanism. This allows a group of people on the same or
+
+different machines to conduct a private discussion.
+
+
+ The practical upshot of all this is that the UCI BBoards facility automates the
+
+vast majority of BBoards handling from the point of view of both the PostMaster
+
+and the user.
+
+
+
+BBoard Handling
+
+ Usually the term BBoard is used interchangeably with the terms discussion
+
+group and interest group. This is true of the discussion that follows.
+
+
+ The messages for a BBoard delivered locally are kept in the same format as a
+
+maildrop.2 Unlike the user's private maildrop however, the inc program is not run
+
+to incorporate new BBoard messages into the user's MH ``+inbox'' folder. The
+
+programs which are used will be discussed momentarily.
+
+
+ Each message in a BBoard maildrop has a unique number and a timestamp.
+
+The number, called the BBoard-ID, is always ascending. The BBoard-ID of a
+
+message should NOT be confused with the message number of a message, which
+
+can change as messages are removed from the BBoard. The BBoard-ID is a value
+
+which is unique for every message delivered locally to the BBoard.
+
+
+ To read BBoards, the MH user invokes bbc. The bbc program has several
+
+switches to direct it's action. The `-topics' switch to bbc tells the MH user about
+
+the status of a BBoard. The `-check' switch to bbc lets the MH user check on the
+
+activity of a BBoard. The `-read' switch to bbc invokes the msh program on the
+
+BBoard. msh is a monolithic program which contains most of the functionality of
+
+MH in a single program. These commands are now discussed in greater detail.
+
+
+BBoard status
+
+ The `-topics' option to the bbc program can be used to report information
+
+about a BBoard that does not pertain to the user's reading habits. If the MH users
+
+types
+
+
+ bbc -topics
+
+
+then bbc will list the following information for all BBoards received on the host:
+
+
+ - the official name of the BBoard
+
+
+ - the number of messages delivered to the BBoard (but not necessarily
+
+ present)
+
+
+_____________________________________
+2 Actually, your site might be running with all BBoards kept on a single host. MH supports the
+
+remote access of BBoards using a modified version of the ARPA Post Office Protocol (POP). This
+has the advantage that it saves a lot of disk space, and incurs only a modest performance penalty.
+\f 5
+
+
+ - the date and time of the last message delivered to the BBoard
+
+
+
+In addition to `-topics' , if the `-verbose' option is given to bbc, then more
+
+information is listed:
+
+
+ - any aliases the BBoard is known as
+
+
+ - the local leaders of the BBoard
+
+
+ - the file that the BBoard is locally delivered to
+
+
+ - the "global" distribution address
+
+
+ - the "global" request address
+
+
+ - the host that distributes the BBoard to the local host
+
+
+ - the addresses to which this host distributes
+
+
+ - miscellaneous information (presently only archiving status)
+
+
+
+Naturally, bbc can be invoked with the `-topics' option and one or more BBoard
+
+names listed on its command line. For example
+
+
+ bbc -topics unix-wizards
+
+
+is completely acceptable _ it tells bbc to report the status of the BBoard
+
+``unix-wizards'' .
+
+
+BBoard checking
+
+ The `-check' option to the bbc program can be used to check for new BBoard
+
+messages in a synchronous fashion (i.e., when you specifically ask for it). The MH
+
+users types
+
+
+ bbc -check
+
+
+and bbc consults the profile entry for ``bboards:'' in the user's .mh_profile file.
+
+For each BBoard listed, bbc prints one of several messages depending on the status
+
+of both the BBoard and the user's reading habits (for example, in the case of the
+
+mythical BBoard ``foo'' ):
+
+
+ 1. ``foo -- n items unseen''
+
+ This message indicates items in the BBoard have not been seen by the
+
+ user. When bbc is invoked with the ``quiet'' switch, this is the only
+
+ informative message that bbc will print out. Users of MH usually put
+
+
+ bbc -check -quiet
+
+
+ in their $ HOME/.login file.
+\f 6
+
+
+ 2. ``foo -- empty''
+
+ The BBoard is empty.
+
+
+ 3. ``foo -- n items (none seen)''
+
+ The BBoard has n items in it, but the user hasn't seen any.
+
+
+ 4. ``foo -- n items (all seen)''
+
+ The BBoard is non-empty, and the user has seen everything in it.
+
+
+ 5. ``foo -- n items seen out of m''
+
+ The BBoard has at most m n items that the user has not seen.
+
+
+
+It is important to note that bbc performs its calculations on BBoard-ID:s and not
+
+the messages actually present in a BBoard. This means that the numbers given by
+
+bbc are maximal end-points. When bbc says n, bbc means "at most n".
+
+
+ Naturally, bbc can be invoked with the `-check' option and one or more
+
+BBoards listed on its command line. For example
+
+
+ bbc -check info-c poli-sci
+
+
+is completely acceptable _ it tells bbc to check on the BBoards ``info-c'' and
+
+``poli-sci'' only.
+
+
+ There are two ways to check for new BBoard messages in an asynchronous
+
+fashion: using the CShell variable $ mail and running the useto program.
+
+
+Asynchronous Checking with the CShell
+
+ The CShell has a variable called $ mail . This variable can contain one or more
+
+words. Each word should be a filename where the shell should check for new mail.
+
+The check is performed after a specified time interval has elapsed just before the
+
+shell would prompt the user.
+
+
+ If the first word of $ mail is a number, then this number specifies a different
+
+checking interval, in seconds, than the default, which is 10 minutes.
+
+
+ Whenever the time interval elapses and the shell is ready to prompt the user,
+
+the shell looks at the file and decides if new messages have arrived. If so, it says
+
+
+ You have new mail.
+
+
+if only one file is present in $ mail . Otherwise, if more than one file is present in
+
+$ mail , then the shell says
+
+
+ New mail in foo.
+
+
+whenever there is new mail in the file called ``foo'' .
+\f 7
+
+
+ To find out what file is associated with a BBoard, say ``info-unix'' , the
+
+MH user types
+
+
+ bbc -topics -verbose info-unix
+
+
+Usually the local file for a BBoard has an extension of .mbox .
+
+
+Asynchronous Checking with Useto
+
+ In contrast to using the $mail variable in the CShell, the MH user might
+
+employ useto instead.3 The useto program is a continuous update display that
+
+prints information on the status line of your terminal. Needless to say, your
+
+terminal must support a status line in order to run useto. Not all terminals have
+
+this capability, but for those that do it's usually well worth the effort to run useto.
+
+
+ For example, users of MH could put
+
+
+ useto -bepf tcp-ip sftp % D % M % d % h:% m% z% b % n.tty% t:% l1
+
+
+in their $ HOME/.login file. This command line to useto says to inform the user of
+
+
+ - the current date and time
+
+
+ - new mail for the user
+
+
+ - new messages for the BBoards ``tcp-ip'' and ``sftp''
+
+
+ - the name of the host and tty that the user is logged in on
+
+
+ - the 5-minute load average of that host
+
+
+ The useto program is really quite amusing and useful.4
+
+
+BBoard reading
+
+ If bbc is not given either the `-check' or `-topics' option, the bbc program
+
+reads BBoard messages. For each BBoard listed in the MH user's profile entry for
+
+``bboards:'' , bbc checks to see if there is unread mail. If so, bbc starts msh on
+
+the BBoard, telling msh which messages haven't been seen.5
+
+
+ When msh starts it identifies the BBoard being read and indicates how many
+
+messages are present and how many the user has read. Usually, in the user's MH
+
+profile, the user has the entry
+
+
+ msh: -scan
+
+
+
+_____________________________________
+3 Not all sites have useto; contact the same people who supplied MH to get a copy.
+4 To be honest, the author considers computing environments without useto to be less than
+
+adequate.
+5 If the `-verbose' option is given to bbc, then bbc will start msh on the BBoard regardless of
+
+whether there are unseen messages there.
+\f 8
+
+
+ This says that when msh starts, it should print a scan listing of the messages which
+
+ the user hasn't seen yet.
+
+
+ The msh program now prompts the user for MH commands. The user may
+
+ type most of the normal MH command. The syntax and semantics of the commands
+
+ typed to msh are identical to their MH counterparts. For example, to reply to
+
+ a message on the BBoard, the MH user types ``repl'' ; other MH commands
+
+ likewise may be applied to BBoard messages. In cases where the nature of msh
+
+ would be inconsistent (e.g., specifying a `+folder' with some commands), msh
+
+ will duly inform the user. In addition to supporting most MH commands, msh also
+
+ has a ``help'' command which gives a brief overview.
+
+
+ The only command that behaves entirely differently in msh is the ``mark''
+
+ command when given no arguments. The msh program maintains a special
+
+ sequence, ``unseen'' , which it uses to keep track of the messages you've seen. If
+
+ the ``mark'' command is given without any arguments, then msh will interpret it
+
+ as
+
+
+ mark -sequence unseen -delete -nozero all
+
+
+ Hence, to discard all of the messages in the current BBoard being read, the MH
+
+ user types ``mark'' which says to remove all messages from sequence called
+
+ ``unseen'' .
+
+
+ To leave msh use the ``quit'' command. This tells msh to terminate and
+
+ bbc to go to the next BBoard. Instead, if the user types EOT (usually CTRL-D),
+
+ then bbc will exit as well, updating whatever information was appropriate.
+
+
+
+ Current BBoards
+
+ There are many, many active interest groups. Consult the BBoard called
+
+ ``list-of-lists'' for a comprehensive description. Here are a few of the more
+
+ popular:
+
+
+ system Important announcements for the local system are posted here.
+
+
+ mh-users A discussion group for users of MH.
+
+
+arpanet-bboards Redistribution address for all known BBoards on the ARPAnet.
+
+
+ editor-people Discussion of topics related to computerized text editing, display
+
+ editors, and human factors in man/machine interaction. The theoretical
+
+ discussion is catholic, but practical discussion focuses particularly on
+
+ Tops206 and UNIX.
+
+
+ franz-friends Discusses the Franz Lisp language.
+
+
+ _____________________________________
+ 6 Tops20 is a trademark of Digital Equipment Corporation.
+\f 9
+
+
+header-people Interest specifically in the format of message headers and related issues
+
+ such as inter-network mail formats/standards, etc.
+
+
+ human-nets Human-Nets has discussed many topics, all of them related in some
+
+ way to the theme of a world-wide computer and telecommunications
+
+ network usually called WorldNet. The topics have ranged very widely,
+
+ from something like tutorials, to state of the art discussions, to rampant
+
+ speculation about technology and its impact.
+
+
+ info-micro Information/discussion list on the general interest topic of microcom-
+
+ puters.
+
+
+ info-unix Info-UNIX is intended for question/answer discussion, where "novice"
+
+ system administrators can pose questions.
+
+
+ msggroup Interest in electronic mail, message formats, message systems, and the
+
+ sociological implications of the above.
+
+
+ poli-sci A permanent distributed political "bull" session.
+
+
+ sf-lovers Science Fiction lovers. SF-Lovers has discussed many topics, all of them
+
+ related in some way to the theme of science fiction or fantasy.
+
+
+ space Discussions (daily digest) on space-related topics.
+
+
+ telecom A broad spectrum moderated-digest-format discussion on telecommu-
+
+ nictions technology: the telephone system, modems, and other more
+
+ technical aspects of telecommunications systems.
+
+
+ unix-emacs Used for new release announcements and general discussions of Gosling's
+
+ EMACS.
+
+
+ unix-wizards Distribution list for people maintaining machines running the UNIX
+
+ operating system.
+
+
+
+ As discussed earlier, to find out about all of the BBoards that the local host
+
+ subscribes to, the MH users types
+
+
+ bbc -topics
+
+
+
+ More on BBoards
+
+ Finally, here are a few more operational details:
+
+
+ Creating a BBoard
+
+ Contact the PostMaster at your host to have a BBoard created. Be sure to
+
+ indicate its status (public or private) and scope (where distribution should occur).
+\f 10
+
+
+ Subscribing to a BBoard
+
+ If your local host already receives an interest group, then simply add the
+
+ name of the BBoard to the ``bboards:'' entry in your MH profile. If not, ask the
+
+ PostMaster to create the BBoard and contact the global request address for you.
+
+
+ BBoard Archives
+
+ BBoard messages are automatically archived on a weekly basis. Usually, this
+
+ results in messages older than 12 days being moved to an archive area. To read
+
+ the archives for a BBoard, the `-archive' option is used. For example,
+
+
+ bbc -archive telecom
+
+
+ tells bbc to invoke msh on the archives for the ``telecom'' BBoard.
+
+
+ Note that the archives may not be present for all BBoards on a given host;
+
+ also note that the archives may be periodically moved to tape and expunged from
+
+ the system. Contact your local PostMaster for the details.
+
+
+ BBoard Addresses
+
+ Each BBoard has associated with it 4 addresses (for example, in the case of
+
+ the mythical BBoard ``foo'' ):
+
+
+ foo The global distribution list
+
+ If you post a message addressed to foo then the message is distributed
+
+ to everyone who subscribes to ``foo'' .
+
+
+ dist-foo The local distribution list
+
+ If you post a message addressed to dist-foo then the message is
+
+ distributed to the local BBoard for ``foo'' and to any sites which the
+
+ local system distributes to.
+
+
+ foo-request The global moderator
+
+ If you post a message addressed to foo-request then the message is
+
+ sent to the moderator for the entire interest group called ``foo'' .
+
+
+local-foo-request The local moderator
+
+ If you post a message addressed to local-foo-request then the
+
+ message is sent to the person responsible for the BBoard ``foo'' on
+
+ the local system.
+
+
+
+ These addresses are defined by the MH alias facility. Users of the BBoards facility
+
+ who do not use MH may not be able to make use of them.
+
+
+ Leading a BBoard
+
+ Except for special circumstances, this task is wholly automated. For more
+
+ information though, see the manual entries for bbl (1) and bbleaders (8).
+\f 11
+
+
+Extra for Experts
+
+ Some clever MH users might ask why BBoards aren't kept as folders instead
+
+of pack'd files. This is a good question. Perhaps some future release of MH and the
+
+UCI BBoards facility will treat BBoards as a variant of read-only folders.
+
+
+ The problem with msh, of course, is that it's a monolithic program, and
+
+although it does support input/output redirection and a few other primitive
+
+shell-like properties, it's still not the CShell.
+\f 12
+
+
+ References
+
+
+
+[MH] M.T. Rose, J.L. Romine. The Rand MH Message Handling System:
+
+ User's Manual. UCI Version. Department of Information and Computer
+
+ Science, University of California, Irvine (July, 1984).
+
+
+
+[MH.TUT] M.T. Rose. The Rand MH Message Handling System: Tutorial.
+
+ Department of Computer and Information Sciences, University of
+
+ Delaware (October, 1984).
+\f
+
+
+
+ Contents
+
+
+
+ Page
+
+ Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
+
+ Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
+
+ Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
+
+ Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
+
+ Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
+
+ BBoard Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
+
+ BBoard status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
+
+ BBoard checking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
+
+ Asynchronous Checking with the CShell. . . . . . . . . . . . . . . . 6
+
+ Asynchronous Checking with Useto. . . . . . . . . . . . . . . . . . . 7
+
+ BBoard reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
+
+ Current BBoards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
+
+ More on BBoards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
+
+ Creating a BBoard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
+
+ Subscribing to a BBoard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
+
+ BBoard Archives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
+
+ BBoard Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
+
+ Leading a BBoard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
+
+ Extra for Experts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
+
+ References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
+
+
+
+ _____________________________________
+This document (version #2.6) was TEXset April 12, 1990 with DISS.STY v103.
+
+
+
+ i
--- /dev/null
+
+
+
+
+ MH for Beginners
+
+
+
+ Mary Hegardt Tim Morgan
+
+
+
+ April 12, 1990
+
+
+
+This document is intended to be an introduction for new users to the MH
+
+mail system. For more detailed information, users will want to read the
+
+document called The Rand MH Message Handling System: User's Manual
+
+by Marshall T. Rose and John L. Romine. It is available for Xeroxing in
+
+suite CS408.
+
+
+
+1 Using Electronic Mail
+
+
+
+Electronic mail (e-mail) is a quick, convenient way to send a message to
+
+another person (or persons). The message recipient can read and reply to
+
+the message at his convenience. E-mail is much faster than a paper memo
+
+and avoids inconveniences associated with the telephone such as unwanted
+
+interruptions and "phone tag."
+
+
+At UCI, one can send e-mail to people within the ICS department, people in
+
+other units on campus, and to people at some other institutions off campus
+
+(usually other universities).
+
+
+An electronic mail message consists of two parts: the headers and the body.
+
+The body comes after the headers and consists of the "message": whatever
+
+the sender types in. The headers are the lines at the top of the message
+
+including the subject and addresses of the people to whom the message is
+
+addressed. It is similar to the top lines of a memo: To:, From:, Subject:,
+
+and so on. The headers are separated from the body by a blank line. As in
+
+
+
+ 1
+\f
+
+
+
+memos, the people listed in the Cc: field are not intended to be the primary
+
+recipients of the message. The message is for their information only, and
+
+they are not expected to reply.
+
+
+E-mail is also useful for discussions among groups of people. This "bboards"
+
+(electronic bulletin boards) facility will be discussed later.
+
+
+An electronic mail address looks like "name @site ". The name is a person's
+
+"mail handle" _ usually his first initial followed by his last name. For
+
+example, Mary Hegardt's mail handle is "mhegardt". The site is the system
+
+where the addressee receives mail. Within the ICS Department, you need
+
+only know the person's mail handle; the mail system will automatically fill
+
+in the "@site " part.
+
+
+
+2 Why MH ?
+
+
+
+The MH system is very different from most mail user agents. Instead of
+
+running one large program which handles all mail functions and keeps mes-
+
+sages in one large file, MH is a collection of smaller single-purpose programs
+
+used to manipulate mail messages which are kept in individual files. MH
+
+may seem to be more complicated or harder to use than other mail systems
+
+(MM, for example), but MH has been designed to allow you to take full ad-
+
+vantage of existing Unix1 commands and programs in connection with mail
+
+messages. For example, you can use your usual text editor, spelling program,
+
+and printer commands on individual messages.
+
+
+
+3 The Basics
+
+
+
+The first time you use an MH command (probably inc), MH will create a
+
+directory called "Mail" in your home (login) directory. All your mail will be
+
+stored in directories beneath this one. It will also create a file in your home
+
+directory called .mh_profile. It is a file that allows you to tailor your MH
+
+environment. We'll discuss this more later.
+________________________________________________
+ 1 Unix is a trademark of AT&T Bell Laboratories
+
+
+
+ 2
+\f
+
+
+
+3.1 Reading Mail
+
+
+
+When someone sends a mail message to you, it is delivered to a file called
+
+your "mail drop" file. When you are ready to read your mail, you have to
+
+incorporate (or "inc") your mail messages from the mail drop area into your
+
+account.
+
+
+Everytime you log in to your Unix account, you will be told if you have
+
+new mail messages. When you are ready to read them, type inc. The inc
+
+program will copy your mail into your "inbox" and generate a "scan" listing
+
+of the new messages. For example,
+
+
+
+4.2 BSD UNIX #116: Mon Jul 15 14:03:21 PDT 1985
+You have new ZOTnet mail, type "inc" (or mail)
+
+TERM = (dm1520)
+
+% inc
+
+Incorporating new mail into inbox ...
+
+ 1+ 10/29 1732-PST Tim Morgan new bboard! <<Please add us to the uni
+ 2 11/12 0016-PST ROODE@uci-20b CP6 from the 20s <<What is (will be) t
+ 4 11/15 1909-EDT tts@tts Hello, got a few questions
+ 5 11/15 2134-PST Marshall Rose MH.6 on 750a <<Mary, I've left the dis
+ 6 11/16 0808-PST Mail Delivery Su Returned mail: Host unknown
+ 7 11/16 1021-PST Tim Morgan Unix-wizards/info-unix move
+ 8 11/18 0952-PST freeman@icsd.UCI Re:New system wide aliases for ICS facu
+ 9 11/18 1346-EDT tts@tts Have we got a problem?
+
+
+
+This is what a typical "inc" session for the Postmaster looks like. Inc copies
+
+my mail into my "inbox" folder, assigns a unique number to each message,
+
+and scans them for me. The numbers allow you to refer to each message
+
+individually. After the message number, you see the date and time the mes-
+
+sage was sent, the name of the sender, and the subject of the message. The
+
+"current" message is indicated by a "+" sign. To read it, type "show":
+
+
+
+% show
+
+ (Message inbox:1)
+ Received: from localhost by UCI.EDU id a005369; 29 Oct 85 17:32 PST
+ To: postmaster@UCI.EDU
+ Subject: new bboard!
+ Date: 29 Oct 85 17:32:24 PST (Tue)
+ From: Tim Morgan <morgan@UCI.EDU>
+
+
+
+ 3
+\f
+
+
+
+ Please add us to the unix-sw list. Also, if RAJ hasn't mentioned it,
+ and if it still exists, we should get on the Astronomy bboard.
+
+ Tim
+
+
+
+If the message is longer than one screenful, you will see the word "more" at
+
+the bottom_of_the_screen.__When you are ready to see "more" of the message,______
+
+press the __space_bar______ __to see another screenful, or press the __return____ _key to see
+
+just one more line.
+
+
+To see the next message, you could type a couple of different commands:
+
+
+ % next
+
+
+or
+
+
+ % show next
+
+
+or
+
+
+ % show 2
+
+
+All of these commands would have the same effect: to type out the next
+
+message in the list. The most efficient thing to do is to type "next". When
+
+You do that, message number 2 will be shown and become the "current
+
+message".
+
+
+
+% next
+
+
+(Message inbox:2)
+Received: from UCI-20B by UCI-ICSA id aa01222; 12 Nov 85 0:23 PST
+Date: 12 Nov 1985 0016-PST
+From: ROODE@uci-20b
+Subject: CP6 from the 20s
+To: zotnet@uci-20b
+cc: dana_roode%ucicp6@UCI.EDU
+
+
+What is (will be) the prescribed method of addressing for sending
+CP6 mail from the 20s? They dont seem to know about @CF, @UCICP6,
+but "Name_Name%UCICP6"@ICSA seems to fly.
+
+
+dana
+
+
+
+ 4
+\f
+
+
+
+3.2 Selecting Messages
+
+
+
+As you have seen, messages can be referred to by their message numbers.
+
+Some MH commands, such as show, can act upon more than one message
+
+at a time. A range of messages can be specified using the form "name1-
+
+name2 " where name is a message number or one of the reserved message
+
+names described below:
+
+
+
+ cur The current message (the last one that was handled)
+
+
+ next The next message (same as cur + 1)
+
+
+ prev The previous message (cur 1)
+
+
+ first The first message in the current folder
+
+
+ last The last message in the folder
+
+
+ all All messages (first last )
+
+
+
+If you do not name a specific message, the command will act upon the "cur-
+
+rent message".
+
+
+
+3.3 Sending Messages
+
+
+
+A mail message consists of two parts: the headers and the body. The headers
+
+are the lines at the top of the message that say "To:" and so on. The body
+
+is the actual text of the message (what you want to say). To send someone
+
+a message, you start with the comp command. This will start up an editor
+
+called prompter that will prompt you to fill in_the_headers._ You should type
+
+the requested information for that header or a __return____ _to_omit_it._ You should
+
+end the message by typing control-D (press down the key marked __ctrl__ __and
+
+strike the D key) at the beginning of a new line. Here's an example:
+
+
+
+% comp
+
+To: morgan, raj
+
+Cc:
+
+
+
+ 5
+\f
+
+
+
+Subject: Lunch
+
+---------
+
+Where are we going for lunch today ?
+
+
+
+Mary
+
+<control-D>
+
+--------
+
+What now ? send
+
+
+
+At the "What now ?" prompt you can type a ? to see what commands you
+
+can type next. One of the most useful options at this point is to edit the
+
+draft of the message to correct any mistakes. To do this you type:
+
+
+ What now ? edit vi
+
+
+This will put you in the vi editor to edit the message. If you use emacs or any
+
+other editor, just type "edit emacs" or whatever. When you have finished
+
+editing, just exit the editor as you would normally. You will then get another
+
+"What now ?" prompt. Here are some of the "What now" options:
+
+
+
+ edit editor Edit the message using the specified editor. When you
+
+ exit, you will be back at What now.
+
+
+ list Shows the message you just typed
+
+
+ whom -check Verifies that the addresses you have used are valid as far
+
+ as our system can tell
+
+
+ send Sends the message to the recipients
+
+
+ push Sends the message in the background
+
+
+ quit Quits without sending the message. Saves the text of
+
+ the message as a "draft". Type comp -use to get back
+
+ to that draft later.
+
+
+ quit -delete Quit, throwing away the draft
+
+
+
+Make sure you are happy with your message before typing send. There is no
+
+way to recall a message once it has been sent.
+
+
+
+ 6
+\f
+
+
+
+3.4 Replying to Messages
+
+
+
+To reply to the current message type repl. When you do this, the reply
+
+headers will be printed out and you will be put in the prompter editor to
+
+type in your reply text. When you are replying to a message, the name of
+
+the sender of the original message will appear in the "To:" field. Any people
+
+on the "To:" or "Cc:" lists will also be copied on your reply message. As
+
+with comp, when you have finished, type control-D and send (or whatever)
+
+at What now ?.
+
+
+
+3.5 Forwarding Messages
+
+
+
+If you receive a particularly interesting message and can't resist sharing
+
+it with others, you can forward it using the forw command. You will be
+
+prompted to fill in the headers (the address to which the message is to be
+
+forwarded, etc.). When you have done this, you will see the text of the mes-
+
+sage which you are forwarding and will be given the opportunity to add some
+
+enlightening text to the message. Exit with control-D and do whatever feels
+
+good at the What now ? prompt.
+
+
+
+3.6 The Advanced Features
+
+
+
+You will probably want to master the beginning MH concepts before you
+
+tackle the following. . .
+
+
+
+3.7 Folders
+
+
+
+Folders are really just directories for storing mail messages in an organized
+
+way. To store a message in a folder named "inbox", type:
+
+
+ % refile 5 +inventory
+
+
+If the folder doesn't exist yet, you will be asked if it should be created. To
+
+access messages in another folder, you can change your current folder from
+
+
+
+ 7
+\f
+
+
+
+"inbox" to something else. If you want to look at all the messages pertaining
+
+to the inventory, you type:
+
+
+ % folder +inventory
+
+
+and now you use scan, show, etc., to manipulate the messages in that folder.
+
+To change back to inbox, type:
+
+
+ % folder +inbox
+
+
+Using the inc command will change your current folder to be the "inbox"
+
+automatically.
+
+
+
+4 Mailing files
+
+
+
+Mailing files is usually not a good idea, especially for large files. The mail
+
+system was never designed for moving big files. You can use the cp file to
+
+move the file to another account much more efficiently:
+
+
+ % cp "frated/desired-file "./newfile
+
+
+This will copy the file from frated's account to the current directory and call
+
+it "newfile".
+
+
+You can also copy files across the network using rcp:
+
+
+ % rcp icsd:frated/desired-file ./newfile
+
+
+This copies frated's file on the system icsd to the current directory.
+
+
+If you really have to mail a file, you use the mhmail program. To mail a file
+
+"myfile" to another user "frated", with "MyFile" as the subject type:
+
+
+ % mhmail frated -subject MyFile < myfile
+
+
+
+5 Searching for messages
+
+
+
+The pick program allows you to search your inbox (or any other) folder to
+
+find messages which contain a certain word. If you want to list all messages
+
+
+
+ 8
+\f
+
+
+
+from Smith you can type:
+
+
+ % pick -from smith -list
+
+
+and it will list the numbers of all messages from Smith that are in the cur-
+
+rent folder. You can pick messages according to any of the headers (-to
+
+-from -subj -cc or -date) or just search all the messages for a given word
+
+(-search).
+
+
+
+6 The MH Profile
+
+
+
+Each MH user has a file in his directory called .mh_profile. This file contains
+
+a list of user-specified default options for MH programs. The only required
+
+entry is the name of your MH directory:
+
+
+ Path: Mail
+
+
+or
+
+
+ Path: mhbox
+
+
+To make a change to your .mh_profile, you edit the file and add a line for
+
+the applicable program. For example, if you would like to use vi instead of
+
+prompter as your initial editor when composing messages, you would add
+
+this line to your .mh_profile:
+
+
+ comp: -editor vi
+
+
+or, if you want to have a format file for scan to use, you should have:
+
+
+ scan: -form formatfile
+
+
+Almost all of the MH programs have options that can be set using the
+
+.mh_profile. You should consult the MH User's Manual for more infor-
+
+mation about this.
+
+
+Many people will want to add a signature line to their .mh_profile. This
+
+line will appear as your signature on the From: line in messages you send. It
+
+looks like this:
+
+
+
+ 9
+\f
+
+
+
+ Signature: John Q. Public
+
+
+Occasionally people express an interest in getting rid of some of the header
+
+lines in their mail messages. They don't want to see the "Received from",
+
+"Via" information, or some other header. It is possible to prevent these
+
+and other annoying headers from being displayed by changing your show
+
+processor to be mhless. To do this you must add this line
+
+
+ showproc: mhless
+
+
+to your .mh_profile. You also must create a file called ".mhlessrc" contain-
+
+ing the words which appear at the beginning of the lines you don't want to
+
+see.
+
+
+The typical ".mhlessrc" file will look like this:
+
+
+
+Received
+
+Via
+
+BB-Posted
+
+Return-Path
+
+
+
+The ".mhlessrc" file must be in your home directory.
+
+
+
+7 BBoards
+
+
+
+Electronic bulletin boards (BBoards) are a convenient way for a group of peo-
+
+ple to discuss a particular topic. Messages are sent to an address where they
+
+can be read and replied to by all interested parties. In the ICS department
+
+we have some "local" BBoards which involve only people in the department.
+
+We also subscribe to many nationally distributed BBoards. BBoards are
+
+read using the bbc program which will allow you to read the messages with
+
+an MH-like interface.
+
+
+One very important BBoard is "system". It contains vital news about
+
+changes in software, system downtime, new programs, and other informa-
+
+tion useful to all users.
+
+
+
+ 10
+\f
+
+
+
+To read a BBoard, you type "bbc BBoard__name ". The bbc program will
+
+check to see if there are new messages in the named BBoard and if there are,
+
+it will start up msh so you can read them. The msh program allows you to
+
+use regular MH commands when reading BBoards. Type "show" to see the
+
+current message, "next" to see the next message, and so on. Type "quit" to
+
+quit reading the current BBoard. If you have named more than one BBoard
+
+on the command line or in your .mh_profile, bbc will continue processing
+
+the next BBoard in the list.
+
+
+Here is an example of using bbc to read the system BBoard:
+
+
+
+ 11
+\f
+
+
+
+% bbc system
+Reading system, currently at message 1 of 22
+(msh) show
+
+
+(Message 1, BBoard-ID: 1360)
+BBoard-ID: 1360
+BB-Posted: Wed, 29 Jan 86 15:36:39 PST
+Received: from localhost by UCI.EDU id a006693; 29 Jan 86 15:20 PST
+To: network@UCI.EDU
+Subject: Imagen 24300
+Date: Wed, 29 Jan 86 15:19:43 -0800
+From: Tinh Tang <ttang@UCI.EDU>
+
+
+The Imagen 24300 is now operating normally. It was broken down
+due to the paper jammed in the drum. Luckily, it didn't cause
+any damage.
+
+
+/ttang
+
+
+(msh) next
+
+
+(Message 4, BBoard-ID: 1363)
+BBoard-ID: 1363
+BB-Posted: Fri, 31 Jan 86 13:33:37 PST
+Received: from localhost by UCI.EDU id a001631; 31 Jan 86 13:30 PST
+To: msgs@UCI.EDU
+Subject: uci.edu down 2/7/86 17:10 - 2/7/86 20:30
+Date: Fri, 31 Jan 86 13:30:27 -0800
+From: root@UCI.EDU
+
+
+The uci.edu will be down from
+February 7,1986 17:10 till February 7,1986 20:30.
+The reason for the downtime is:
+Both, the Computing Facility and the Physical Sciences Dataswitches
+will be unavailable from 5:10pm until 8:30pm on Friday, February 7th.
+Therefore all the Computers attached to those switches and the
+corresponding tandem link will be unavailable to users on
+the specified time. (RJ).
+
+
+Downtime Scheduler
+
+
+(msh) quit
+%
+
+
+
+ 12
+\f
+
+
+
+You can see a list of all the available BBoards by typing:
+
+
+ % bbc -topics
+
+
+You can also put a line in your ".mh_profile" listing all the BBoards you
+
+want to read on a regular basis:
+
+
+ bboards: system movies mh-users events
+
+
+Then you only need to type "bbc" to read all your BBoards.
+
+
+
+8 Checking for Mail
+
+
+
+Under Unix, there are many different ways to check for new mail. The easiest
+
+way to do it is to set the csh variable named "mail" to tell csh to check for
+
+new mail for you periodically. To do this, add the line
+
+
+ set mail=(60 /usr/spool/mail/$USER)
+
+
+to the .login file in your home directory. This command says to check for
+
+mail if csh is about to prompt you with a % sign, and if it has been at least
+
+60 seconds since it last checked for mail. The advantage of this method of
+
+mail notification, besides simplicity, is that you will never be interrupted by
+
+a mail notification. You will only be notified about new mail when you are
+
+between commands.
+
+
+If you want asynchronous mail notification, which will print to your terminal
+
+regardless of what you are currently doing, you may make use of a "receive
+
+mail hook" called "rcvtty". To do this, create a file in your home directory
+
+called ".maildelivery". In this file, put the line
+
+
+ * - pipe R /usr/uci/lib/mh/rcvtty
+
+
+Then, each time mail arrives, you will receive a one-line "scan" listing of
+
+the mail if your terminal is world-writable. For more information on mail
+
+delivery files, type:
+
+
+ % man 5 maildelivery
+
+
+
+ 13
+\f
+
+
+
+This will tell you about all the options available to you if you use maildelivery
+
+files.
+
+
+
+9 Aliases
+
+
+
+Using MH, you may specify your own private mail aliases. This feature allows
+
+you to store lists of addresses or long internet addresses of people with whom
+
+you frequently correspond in one file, and then to address them using short
+
+mnemonic names. Typically, you will call your alias file "aliases"; it must
+
+be stored in your MH directory. The format of this file is simple. The alias
+
+is given, followed by a colon, followed by one or more legal mail addresses
+
+separated by commas. For example, you might for some reason have an alias
+
+for all the users named "Rose" in the ICS department:
+
+
+ roses: prose, srose, mrose, drose
+
+
+In addition to your "aliases" file, you will need to modify your
+
+.mh_profile in order to use aliases. You should add the flag "-alias
+
+aliases" to the entries for the commands ali, whom, send, and push, cre-
+
+ating entries for these programs if they aren't already in your .mh_profile.
+
+Now, messages addressed to "roses" will be distributed to all the people
+
+listed in the alias.
+
+
+The ali command is used to show you what an alias expands to. You just
+
+type
+
+
+ % ali alias
+
+
+and ali will respond with the expansion of the alias. Ali searches the system
+
+aliases file in addition to your private ones.
+
+
+
+10 Blind Lists
+
+
+
+There are two different types of so-called "blind addressing" of messages.
+
+The BCC: field allows you to add recipients to your message just like those
+
+who are CC'd, but the normal recipients will not see that the BCC recipients
+
+
+
+ 14
+\f
+
+
+
+were copied on the message, their replies will not go to the blind recipients,
+
+and the blind recipients cannot (easily) reply to the message.
+
+
+The second type of blind mailing is actually called a "group address list",
+
+although it is commonly referred to as a "blind list". The format of this type
+
+of address is
+
+
+ phrase : address__list ;
+
+
+where the "phrase " is any English phrase of one or more words, and the
+
+address__list consists of one or more addresses separated by commas. The
+
+recipients of a message addressed in this fashion will see simply
+
+
+ phrase : ;
+
+
+so when they reply to the message, their reply will come only to the sender
+
+(or the Reply-To: field, if one was specified), rather than going to all the
+
+recipients of the original list. For example, to use a group address list for the
+
+"roses" alias you would type:
+
+
+ To: People Named Rose: roses;
+
+
+This type of group address is very useful for making up lists of related people,
+
+such as all the people working on a particular research project.
+
+
+
+ 15
--- /dev/null
+
+
+
+
+
+
+
+
+
+ Changes to
+ The RAND MH Message Handling System:
+ UCI version MH 6.8
+
+
+ John L. Romine
+
+ Computing Support Group
+ Department of Information and Computer Science
+ University of California, Irvine
+ Irvine, CA 92717-3425
+ Bug-MH@ICS.UCI.EDU
+
+
+ _\bA_\bB_\bS_\bT_\bR_\bA_\bC_\bT
+
+
+ This document describes the changes to the
+ UCI version of the RAND MH system from MH 6.6 to
+ this release of MH 6.8. This document is meant to
+ supplement, not supersede, the standard MH User's
+ manual and MH Administrator's manual.
+
+ Comments concerning this documentation should
+ be addressed to the mailbox Bug-MH@ICS.UCI.EDU, or
+ ucbvax!ucivax!bug-mh.
+
+
+
+ _\bA_\bC_\bK_\bN_\bO_\bW_\bL_\bE_\bD_\bG_\bE_\bM_\bE_\bN_\bT_\bS
+
+ The _\bM_\bH system described herein is based on the original RAND
+ _\bM_\bH system. It has been extensively developed (perhaps too
+ much so) by Marshall T. Rose and John L. Romine at the
+ University of California, Irvine. Einar A. Stefferud, Jerry
+ N. Sweet, and Terry P. Domae provided numerous suggestions
+ to improve the UCI version of _\bM_\bH.
+
+ Of course, a large number of people have helped _\bM_\bH
+ along. The list of "_\bM_\bH immortals" is too long to list here.
+ For this release, numerous _\bM_\bH-_\bW_\bo_\br_\bk_\be_\br_\bs sent in fixes and
+ other changes. A handful of courageous _\bM_\bH-_\bW_\bo_\br_\bk_\be_\br_\bs volun-
+ teered to beta-test these changes; their help is particu-
+ larly appreciated.
+
+
+
+
+
+
+
+
+
+
+ December 1, 1993
+
+
+
+
+
+ Changes to MH 6.8 2
+
+
+
+ _\bD_\bI_\bS_\bC_\bL_\bA_\bI_\bM_\bE_\bR
+
+ The Regents of the University of California wish to make it
+ known that:
+
+ Although each program has been tested by its con-
+ tributor, no warranty, express or implied, is made
+ by the contributor or the University of Califor-
+ nia, as to the accuracy and functioning of the
+ program and related program material, nor shall
+ the fact of distribution constitute any such war-
+ ranty, and no responsibility is assumed by the
+ contributor or the University of California in
+ connection herewith.
+
+ _\bC_\bO_\bN_\bV_\bE_\bN_\bT_\bI_\bO_\bN_\bS
+
+ In this document, certain formatting conventions are adhered
+ to:
+
+ The names of UNIX commands, such as _\bc_\bo_\bm_\bp are presented
+ in _\bi_\bt_\ba_\bl_\bi_\bc_\bs.
+
+ Arguments to programs, such as `msgs' and `-nobell' are
+ delimited by single-quotes.
+
+ Text that should be typed exactly as-is, such as com-
+ mand lines (e.g., "folder -pack"), are delimited by
+ double-quotes.
+
+ UNIX pathnames and envariables, such as /usr/uci and
+ $SIGNATURE, are presented in bold font.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ December 1, 1993
+
+
+
+
+
+ Changes for MH 6.8.3 3
+
+
+ _\bC_\bH_\bA_\bN_\bG_\bE_\bS _\bF_\bO_\bR _\bM_\bH _\b6._\b8._\b3
+
+ The MH 6.8.3 maintenance release contains few user-visible
+ changes. Most of the changes are internal to the multi-
+ media display program _\bm_\bh_\bn to support RFC 1521 (the new MIME
+ standard). This is the current version of MH as of December
+ 1, 1993.
+
+ _\bR_\bu_\bn_\bt_\bi_\bm_\be _\bT_\ba_\bi_\bl_\bo_\br_\bi_\bn_\bg
+
+ When posting mail using the SMTP, _\bp_\bo_\bs_\bt does not normally
+ send the HELO command. This is because _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl would fail
+ if the host name given in the HELO command was the local
+ host. Later versions of _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl will now complain if you
+ omit the HELO command.
+
+ If you specify a hostname with the clientname: option
+ in the _\bm_\bt_\bs_\bt_\ba_\bi_\bl_\bo_\br file, _\bp_\bo_\bs_\bt will give the HELO command with
+ that name, otherwise no HELO command is given. See _\bm_\bh-
+ _\bt_\ba_\bi_\bl_\bo_\br(5) for more details.
+
+ _\bU_\bs_\be_\br _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\bP_\br_\bo_\bg_\br_\ba_\bm_\bs
+
+ folder The _\bf_\bo_\bl_\bd_\be_\br command now has `-create' and `-nocreate'
+ options. See _\bf_\bo_\bl_\bd_\be_\br(1) for details.
+
+ inc A bug where `-host' would not override the pophost
+ as set in the _\bm_\bt_\bs_\bt_\ba_\bi_\bl_\bo_\br file has been fixed. This
+ bug was also fixed in _\bm_\bs_\bg_\bc_\bh_\bk.
+
+ mhn The _\bm_\bh_\bn command has several changes: updates for
+ conformance with RFC 1521, addition of two caches:
+ public and private, addition of two caching poli-
+ cies: one for reading and one for writing, support
+ for storing multipart entities, and a few bug fixes.
+ See _\bm_\bh_\bn(1) for complete details.
+
+ _\bC_\bH_\bA_\bN_\bG_\bE_\bS _\bF_\bO_\bR _\bM_\bH _\b6._\b8._\b2
+
+ The MH.6.8.2 patch release contains only internal changes to
+ support the BSD 4.4 and 386BSD versions of UNIX. This ver-
+ sion of _\bM_\bH was released August 25, 1993, but was not widely
+ distributed.
+
+ _\bC_\bH_\bA_\bN_\bG_\bE_\bS _\bF_\bO_\bR _\bM_\bH _\b6._\b8._\b1
+
+ The MH.6.8.1 patch release is a maintenance release. This
+ is the current released version of _\bM_\bH as of August 20, 1993.
+
+ This release includes a small number of bug fixes, a
+ few minor enhancements, some changes for the new MIME stan-
+ dard, and support for ESMTP (RFC 1425). Support for BSD 4.4
+ and 386BSD is planned for the next release.
+
+
+
+
+ December 1, 1993
+
+
+
+
+
+ Changes for MH 6.8.3 4
+
+
+ Many other fixes which have already been received are
+ still being merged. If you've sent an update for MH 6.8 to
+ Bug-MH@ics.uci.edu and it isn't in this release, it'll prob-
+ ably appear in the next release.
+
+ _\bF_\bi_\bx_\be_\bs _\ba_\bn_\bd _\bE_\bn_\bh_\ba_\bn_\bc_\be_\bm_\be_\bn_\bt_\bs
+
+ Many minor documentation corrections were made. There are
+ also a few program changes:
+
+ mhn The `-cache policy', `-[no]check', and `-[no]pause'
+ switches have been added. Some other minor changes
+ have been made to comply with the new MIME standard.
+ See _\bm_\bh_\bn(1) for complete details.
+
+ post When posting mail with SendMail, _\bp_\bo_\bs_\bt will not use the
+ ONEX command when it is posting a message with BCCs.
+
+ scan _\bs_\bc_\ba_\bn will now work with big width values.
+
+ _\bF_\bo_\br_\bm_\ba_\bt _\bS_\bt_\br_\bi_\bn_\bg_\bs
+
+ One new function has been added:
+
+ %(profile arg) This function looks up a component in the
+ .mh_profile or context files and returns the
+ value of that component.
+
+ _\bC_\bo_\bn_\bf_\bi_\bg_\bu_\br_\ba_\bt_\bi_\bo_\bn
+
+ Two new configuration options are present:
+
+ GCOS_HACK The so-called "gcos" field of the password file
+ is used as a last resort to find the user's
+ full name (see _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be(5) for details).
+ Enable this option if your _\bp_\ba_\bs_\bs_\bw_\bd(5) man page
+ notes that the `&' character in the "gcos"
+ field stands for the login name.
+
+ NORUSERPASS Tells _\bM_\bH that your system doesn't have the
+ _\br_\bu_\bs_\be_\br_\bp_\ba_\bs_\bs(3) routine; _\bM_\bH will include its own
+ copy of this routine in its library.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ December 1, 1993
+
+
+
+
+
+ Changes for MH 6.8 5
+
+
+ _\bC_\bH_\bA_\bN_\bG_\bE_\bS _\bF_\bO_\bR _\bM_\bH _\b6._\b8
+
+ This is the current released version of _\bM_\bH as of December
+ 14, 1992. This release includes a number of bug fixes and
+ internal changes to make the code more portable. Two new
+ authentication methods are provided for the POP, and support
+ for SVR4 shared libraries is complete.
+
+ The major user-visible change in this release is the
+ incorporation of support for multi-media mail as specified
+ by the Multi-purpose Internet Mail Extensions (MIME)
+ RFC 1341. This allows you to include things like audio,
+ graphics, and the like, in your mail messages. A new com-
+ mand, _\bm_\bh_\bn, has been provided to support MIME and a detailed
+ man page is provided in _\bm_\bh_\bn(1).
+
+ _\bD_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn
+
+ The documentation has some general improvements, and the
+ READ-ME document has been re-organized to help _\bM_\bH adminis-
+ trators find the appropriate configuration options for their
+ system. The Makefiles in the papers/ hierarchy have been
+ changed to invoke _\bT_\be_\bX as "tex" (instead of "tex82").
+
+ The following new man pages are also available:
+
+ _\bm_\bh_\bn(1) _\bm_\bh_\bn helps the user process multi-media mail.
+
+ _\bm_\bh_\bp_\ba_\br_\ba_\bm(1) _\bm_\bh_\bp_\ba_\br_\ba_\bm lets the user extract information from
+ the _\bM_\bH profile.
+
+ _\bp_\bo_\bp_\ba_\bu_\bt_\bh(8) the APOP database administration program (see
+ below).
+
+ _\bp_\bo_\bp_\bi(1) the POP initiator (see below).
+
+ _\bs_\bl_\bo_\bc_\ba_\bl(1) fully documents _\bs_\bl_\bo_\bc_\ba_\bl. The _\bm_\bh_\bo_\bo_\bk(1) man page
+ now documents only the _\bM_\bH receive-mail hooks.
+
+ _\bI_\bn_\bt_\be_\br_\bn_\ba_\bl _\bC_\bh_\ba_\bn_\bg_\be_\bs
+
+ The _\bM_\bH source code is in the process of being cleaned up to
+ make pedantic ANSI C compilers happy. Occurrences of "NULL"
+ have been replaced by "0" where appropriate. Extra tokens
+ after "#else" and "#endif" have been put inside comments
+ (this is still in progress). The code should now compile
+ cleanly on many more systems, specifically, more variants of
+ SVR4.
+
+ The version of tws/dtimep.c which was included in MH
+ 6.7.2 was incompatible with the _\bl_\be_\bx library on some systems,
+ and has been removed.
+
+ A bug in the handling of blind lists inside alias files
+
+
+
+ December 14, 1992
+
+
+
+
+
+ Changes for MH 6.8 6
+
+
+ has been fixed.
+
+ _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl
+
+ There were three new options added to the POP.
+
+ APOP This option indicates that the POP daemon will support
+ the non-standard APOP command which provides a
+ challenge-based authentication system using the MD5
+ message digest algorithm.
+
+ This option also causes the _\bp_\bo_\bp_\ba_\bu_\bt_\bh program to be in-
+ stalled, which allows the administrator to manipulate
+ the APOP authorization database.
+
+ KPOP Support for KERBEROS with POP. This code builds _\bp_\bo_\bp_\bd,
+ _\bi_\bn_\bc and _\bm_\bs_\bg_\bc_\bh_\bk to support only the "kpop" protocol.
+ This code is still expiremental, but is available for
+ those sites wishing to test it.
+
+ MPOP This option indicates that the POP daemon will support
+ the non-standard XTND SCAN command which provides per-
+ formance enhancements when using the POP over low-
+ speed connections.
+
+ This option also causes an interactive POP client pro-
+ gram, _\bp_\bo_\bp_\bi, to be compiled and installed. A man page
+ for the _\bp_\bo_\bp_\bi program is also provided. This option
+ requires the configuration to have "bboards: pop".
+
+ The APOP and MPOP non-standard POP facilities are documented
+ in _\bT_\bh_\be _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be (ISBN 0-13-092941-7), a book by
+ Marshall T. Rose. For more details, see support/pop/pop-
+ more.txt and the _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be. The APOP option
+ peacefully co-exists with the standard POP, KPOP completely
+ replaces the standard POP, and MPOP requires "bboards: pop".
+
+ _\bF_\bi_\bl_\be _\bL_\bo_\bc_\bk_\bi_\bn_\bg
+
+ The file locking code has been cleaned up to support three
+ kinds of kernel-level file locking. As appropriate for your
+ system, include the LOCKF, FCNTL or FLOCK option. For more
+ details, see _\bm_\bh-_\bt_\ba_\bi_\bl_\bo_\br(5).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ December 14, 1992
+
+
+
+
+
+ Changes for MH 6.8 7
+
+
+ Configuration Directives
+
+ A number of new configuration directives have been added or
+ changed. The full details are given in the READ-ME.
+
+ cp: The command used to install new files if not
+ "cp".
+
+ ln: The command used to link files together in the
+ source tree if not "ln".
+
+ mts: Full support for ZMAILER has been added.
+
+ popdir: The directory where _\bp_\bo_\bp_\bd will be installed if not
+ /usr/etc.
+
+ regtest: Set to "on" to prevent the hostname and compile
+ date from being included in _\bM_\bH binaries.
+
+ sharedlib: You may now specify "sun4" or "sys5" (for SVR4)
+ shared libraries.
+
+ signal: Specifies the base type of the function returned
+ by _\bs_\bi_\bg_\bn_\ba_\bl(). This was previously defined with
+ "options TYPESIG".
+
+ Several `-D' options to _\bc_\bc have been added or changed:
+
+ APOP Authenticated POP (see above).
+
+ AUX Support for A/UX systems.
+
+ DBMPWD The DBM option has been renamed DBMPWD.
+
+ HESIOD Support for the HESIOD name server.
+
+ KPOP KERBEROS POP (see above).
+
+ LOCALE Support for local characters sets; uses the _\bs_\be_\bt_\b-
+ _\bl_\bo_\bc_\ba_\bl() function.
+
+ MAILGROUP Makes _\bi_\bn_\bc set-group-id. You may need this option
+ if your /usr/spool/mail is not world-writeable.
+
+ MIME Multi-media mail.
+
+ MPOP Mobile POP (see above).
+
+ MSGID Enables _\bs_\bl_\bo_\bc_\ba_\bl to detect and surpress duplicate
+ messages.
+
+ OSF1 Support for DEC OSF1 systems. May be incomplete.
+
+ RENAME Include this option if your system has a _\br_\be_\bn_\ba_\bm_\be()
+
+
+
+ December 14, 1992
+
+
+
+
+
+ Changes for MH 6.8 8
+
+
+ system call.
+
+ SVR4 Support for System 5 Release 4 or newer systems.
+
+ TYPESIG This option has been dropped. See `signal'
+ above.
+
+ UNISTD Include this option if your system has the
+ include file <unistd.h>.
+
+ VSPRINTF Include this option if your system has the
+ _\bv_\bs_\bp_\br_\bi_\bn_\bt_\bf() library routine; otherwise, __\bd_\bo_\bp_\br_\bn_\bt()
+ will be used.
+
+ YEARMOD Forces the _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt `year' function to return
+ 2-digit values. Use this option during a brief
+ transition period if you have local _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt
+ files which need to be converted to support 4-
+ digit years.
+
+ _\bF_\bU_\bN_\bC_\bT_\bI_\bO_\bN_\bA_\bL _\bC_\bH_\bA_\bN_\bG_\bE_\bS
+
+ In addition to the configuration changes mentioned above, a
+ number of functional changes have been made to the system.
+ Many programs have new features added and a few new programs
+ have are provided. Each command's manual page gives complete
+ information about the its operation. Here is a short sum-
+ mary of the changes.
+
+ _\bM_\bH _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ A larger number of user-defined sequences are available.
+ Previously, this number had been 10. On 32-bit systems, 26
+ user-defined sequences are available.
+
+ _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
+
+ _\bM_\bH programs will now complain if the .mh_profile does not
+ end in a newline. Also, one enhancement and one new profile
+ component are provided:
+
+ Aliasfile: Multiple filenames may now be given.
+
+ Inbox: New; the default folder (for _\bi_\bn_\bc, etc.) if not
+ "inbox".
+
+
+
+
+
+
+
+
+
+
+
+
+ December 14, 1992
+
+
+
+
+
+ Changes for MH 6.8 9
+
+
+
+ _\bF_\bo_\br_\bm_\ba_\bt _\bS_\bt_\br_\bi_\bn_\bg_\bs
+
+ A few minor bugs were fixed in format string handling, and a
+ few new features were added. See _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt(5) for complete
+ details.
+
+ Addresses An attempt is made to decipher X.400
+ RFC 987-style addresses.
+
+ Comments Comments may be added to _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt files; a
+ comment begins with the 2-character sequence
+ "%;", and ends with an un-escaped newline.
+
+ %(modulo n) The `modulo' function escape has been added.
+
+ %(year{date}) The date parser has been enhanced to under-
+ stand more illegal date formats; `year' now
+ returns a 4-digit number.
+
+ _\bU_\bs_\be_\br _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\bP_\br_\bo_\bg_\br_\ba_\bm_\bs
+
+ A number of _\bM_\bH commands have minor changes:
+
+ ali The output with `-user -list' was changed to match
+ the output with `-nouser -list'.
+
+ burst Will no longer drop the last message of a digest.
+
+ inc Accepts the `-apop' switch for authenticated POP
+ (see above); will attempt to detect write errors
+ (e.g., no space left on device) when incorporating
+ mail; no longer replaces newline characters with
+ NULLs.
+
+ folder The `-noprint' option was broken and has been
+ dropped.
+
+ forw Supports `-mime' to use MIME-style multi-part mes-
+ sages.
+
+ mhl Will no longer put an extra space at the end of
+ the `%{text}' in a formatfield.
+
+ mhn New; manipulates multi-media (MIME) messages; a
+ detailed man page is provided.
+
+ mhparam New; reads the _\bM_\bH profile (and context) and writes
+ the values of the specified components on the
+ standard output; useful in programmatic con-
+ structs.
+
+ msgchk Supports `-apop' (see above).
+
+
+
+
+ December 14, 1992
+
+
+
+
+
+ Changes for MH 6.8 10
+
+
+ packmbox New; packs an _\bM_\bH folder into a UUCP-style mailbox.
+
+ popi New; a client-side POP initiator; available only
+ if you built _\bM_\bH with the MPOP option (see above).
+
+ refile A bug where the `rmmproc' did not remove all
+ specified message files has been fixed.
+
+ scan The `-file' option is fully supported and will no
+ longer complain about empty folders.
+
+ send Supports `-mime' and `-split' to split large mes-
+ sages into multiple partial messages using MIME.
+
+ _\bS_\bu_\bp_\bp_\bo_\br_\bt _\bP_\br_\bo_\bg_\br_\ba_\bm_\bs
+
+ fmtdump Can now read a format file, or a format string
+ given on the command line.
+
+ popauth New; manages the APOP authorization database (see
+ above).
+
+ sendmail The _\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl replacement will be installed only if
+ your `mts' setting uses the `/smtp' option.
+
+ slocal A new man page for _\bs_\bl_\bo_\bc_\ba_\bl is available; the new
+ `mbox' action is available to write a file in
+ _\bp_\ba_\bc_\bk_\bf format; a bug where extra `>' characters
+ were written to MMDF-style maildrops has been
+ fixed; if compiled with the MSGID option, can
+ detect and suppress reception of duplicate mes-
+ sages.
+
+ viamail New; bundles a directory (like _\bs_\bh_\ba_\br) and sends it
+ through multi-media mail.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ December 14, 1992
+
+
+
+
+
+ Changes for MH 6.7.2 11
+
+
+ _\bC_\bH_\bA_\bN_\bG_\bE_\bS _\bF_\bO_\bR _\bM_\bH _\b6._\b7._\b2
+
+ The MH.6.7.2 patch release is a maintenance release. This
+ is the current released version of _\bM_\bH as of February 1,
+ 1992.
+
+ This release now supports the NCR Tower running SYS5R4.
+ The WP changes installed in MH.6.7.0 have been removed.
+
+ _\bS_\bh_\ba_\br_\be_\bd _\bL_\bi_\bb_\br_\ba_\br_\bi_\be_\bs
+
+ Support for SYS 5 shared libraries is in progress.
+
+ Support for Sun OS 4.0 shared libraries had been
+ improved. The _\bM_\bH library has been modified to move initial-
+ ized data into a data definition file. The shared library
+ will now consist of a libmh.so and libmh.sa file. The
+ shared library version number will no longer track the _\bM_\bH
+ patch release number, and its numbering begins with version
+ `1.1' with this release.
+
+ _\bR_\be_\bp_\bl_\ba_\bc_\be_\bm_\be_\bn_\bt _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl
+
+ Since many standard system programs expect to post mail by
+ invoking /usr/lib/sendmail, a minimal replacement _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl
+ is provided in this release. This replacement is meant to
+ be installed on (e.g., diskless) client workstations which
+ post mail using SMTP, and do not run a message transport
+ system. It will call _\bp_\bo_\bs_\bt to post mail; be sure you have
+ configured _\bM_\bH with the `/smtp' mts option. This sendmail
+ replacement is installed in your _\bM_\bH etc directory, and you
+ should link /usr/lib/sendmail to it.
+
+ _\bF_\bo_\br_\bm_\ba_\bt _\bS_\bt_\br_\bi_\bn_\bg_\bs
+
+ A manual page for the _\bf_\bm_\bt_\bd_\bu_\bm_\bp format string disassembler is
+ supplied, and some new format functions were added:
+
+ folder In _\bs_\bc_\ba_\bn, this component escape contains the name of
+ the current folder. It is not defined for other _\bM_\bH
+ commands.
+
+ getenv This function escape returns the value of an en-
+ vironment variable.
+
+ There will be some additional changes in these routines
+ in the next patch release.
+
+
+
+
+
+
+
+
+
+
+ Feb 1, 1992
+
+
+
+
+
+ Changes for MH 6.7.2 12
+
+
+
+ _\bO_\bt_\bh_\be_\br _\bB_\bu_\bg _\bF_\bi_\bx_\be_\bs _\ba_\bn_\bd _\bE_\bn_\bh_\ba_\bn_\bc_\be_\bm_\be_\bn_\bt_\bs
+
+ In addition to some other minor enhancements, some bugs were
+ fixed which in general were not user-visible:
+
+ Blind lists Users may now specify RFC822 address groups in
+ their alias files. These groups are imple-
+ mented by _\bM_\bH as blind lists.
+
+ date parsing A number of sites have brain-damaged versions
+ of lex. _\bM_\bH will now come with the date parser
+ already run through lex.
+
+ mark A bug dealing with _\bm_\ba_\br_\bk and the sequence named
+ `cur' is fixed. This was previously a problem
+ for mh-e users.
+
+ MH.doc The _\bM_\bH nroff version of the manual no longer
+ contains teletype escape sequences.
+
+ scan Can now handle headers as long as 512 bytes.
+
+ Signals _\bM_\bH programs will no longer catch the HUP and
+ TERM signals while waiting for a sub-process.
+ This was causing hung processes when your ter-
+ minal line was was dropped unexpectedly.
+
+ Signature If your signature is not defined, _\bM_\bH will use
+ the value of the gecos field of your
+ /etc/passwd entry as your signature.
+
+ version.sh A bug in the awk script in config/version.sh
+ was fixed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Feb 1, 1992
+
+
+
+
+
+ Changes for MH 6.7.1a 13
+
+
+ _\bC_\bH_\bA_\bN_\bG_\bE_\bS _\bF_\bO_\bR _\bM_\bH _\b6._\b7._\b1_\ba
+
+ The MH.6.7.1a patch was made available on January 25, 1991
+ for limited distribution only. (This release had some known
+ bugs, and so was not widely distributed.) This release
+ incorporates several new features of particular note to
+ users of sequences and format strings, as well as some gen-
+ eral documentation improvements. There are a few minor
+ enhancements and internal bug fixes also. Complete documen-
+ tation of these changes is given in the individual manual
+ pages, and the READ-ME file.
+
+ _\bM_\be_\bs_\bs_\ba_\bg_\be _\bS_\be_\bq_\bu_\be_\bn_\bc_\be_\bs
+
+ A new manual page, _\bm_\bh-_\bs_\be_\bq_\bu_\be_\bn_\bc_\be (5), has been added. This
+ manual page attempts to completely document the syntax and
+ semantics of _\bM_\bH message sequence specifications.
+
+ A powerful new feature is the ability to specify mes-
+ sage ranges with user-defined sequences. The specification
+ "name:n" may be used, and it designates up to the first `n'
+ messages (or last `n' messages for `-n') which are
+ elements of the user-defined sequence `name'.
+
+ The message specifications "name:next" and "name:prev"
+ may also be used, and they designate the next or previous
+ message (relative to the current message) which is an ele-
+ ment of the user-defined sequence `name'. The specifica-
+ tions "name:first" and "name:last" are equivalent to
+ "name:1" and "name:-1", respectively. The specification
+ "name:cur" is not allowed (use just "cur" instead).
+
+ These specifications allow the user to step through a
+ sequence with a command like "show name:next".
+
+ _\bF_\bo_\br_\bm_\ba_\bt _\bS_\bt_\br_\bi_\bn_\bg_\bs
+
+ _\bM_\bH format strings now support an if-then-elseif-else clause
+ (the `elseif' is new). This will make format strings with
+ multi-case conditions somewhat less complex.
+
+ A new format function `addr' had been added. This
+ function takes an address header name as its argument, and
+ returns a rendering of the address contained in that header
+ as "user@host" or "host!user".
+
+ Format widths now may be specified as a negative
+ number. This causes the output to be right-justified within
+ the format width.
+
+
+
+
+
+
+
+
+ January 25, 1991
+
+
+
+
+
+ Changes for MH 6.7.1a 14
+
+
+
+ _\bO_\bt_\bh_\be_\br _\bC_\bh_\ba_\bn_\bg_\be_\bs
+
+ Along with a few minor enhancements, some bugs were fixed
+ which in general were not user-visible:
+
+ fmtdump This new program produces an pseudo-language
+ representation of an _\bM_\bH format file, vaguely remin-
+ iscent of assembly language. While this output
+ format is not explicitly documented, it can still
+ be useful when debugging _\bM_\bH format files.
+
+ refile Now takes a `-[no]rmmproc' switch. This makes it
+ easier to avoid loops when your "rmmproc" calls _\br_\be-
+ _\bf_\bi_\bl_\be.
+
+ slocal A problem with the UUCP-style mailboxes, the
+ `RPATHS' configuration option, and the "Return-
+ Path:" header was fixed.
+
+ sortm Will ensure that no messages are lost if it is in-
+ terrupted.
+
+ whatnow Will now tell you where it is leaving the draft,
+ when interrupted in the initial edit. Previously
+ the draft was simply unlinked.
+
+ _\bC_\bo_\bm_\bp_\bi_\bl_\ba_\bt_\bi_\bo_\bn _\bO_\bp_\bt_\bi_\bo_\bn_\bs
+
+ LOCKF This option causes _\bM_\bH to use the lockf() system
+ call for locking (if available), instead of
+ flock().
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ January 25, 1991
+
+
+
+
+
+ Changes for MH 6.7.1 15
+
+
+ _\bC_\bH_\bA_\bN_\bG_\bE_\bS _\bF_\bO_\bR _\bM_\bH _\b6._\b7._\b1
+
+ The MH.6.7.1 patch release is a maintenance release, and as
+ such, provides few changes from the previous release. This
+ is the current released version of _\bM_\bH as of December 14,
+ 1990.
+
+ _\bU_\bs_\be_\br-_\bV_\bi_\bs_\bi_\bb_\bl_\be _\bC_\bh_\ba_\bn_\bg_\be_\bs
+
+ The major change in this release is to the POP daemon
+ (popd). In _\bM_\bH 6.7, it was changed to be able to read both
+ UUCP and MMDF-style mailboxes. This did not work as
+ reported. The code has now been changed to parse MMDF-style
+ mailboxes if you are configuring MH to run with MMDF as your
+ message transport system. Otherwise, UUCP-style mailboxes
+ are expected.
+
+ Since there are number of client programs available for
+ only the POP2 protocol instead of POP3, popd has been
+ updated to support both protocols. This is a major win. If
+ you are compiling with POP turned on, add the `POP2' option
+ to your _\bM_\bH config file, and the POP daemon will respond to
+ POP2 or POP3 commands. If you're using POP, there's no rea-
+ son not to include this option; it does not affect the
+ existing support for POP3.
+
+ _\bI_\bn_\bt_\be_\br_\bn_\ba_\bl _\bC_\bh_\ba_\bn_\bg_\be_\bs
+
+ Some bugs were fixed which in general were not user-visible:
+
+ context Errors when writing out sequences are detected
+ correctly.
+
+ inc No longer inserts extra blank lines into mes-
+ sages.
+
+ mh-format A nil pointer bug in the address parser was
+ fixed.
+
+ repl, etc. The malloc/free problem has been fixed.
+
+ rmf A spelling error in the `-nointeractive' switch
+ has been corrected.
+
+ rcvtty Will not print the message size if not available
+ (i.e., zero).
+
+ send/post Illegal signatures (those containing unquoted
+ "."s) will be quoted.
+
+
+
+
+
+
+
+
+ December 14, 1990
+
+
+
+
+
+ Changes for MH 6.7.0 16
+
+
+ _\bG_\bE_\bN_\bE_\bR_\bA_\bL _\bC_\bH_\bA_\bN_\bG_\bE_\bS _\bF_\bO_\bR _\bM_\bH _\b6._\b7._\b0
+
+ The author is pleased to announce that there are very few
+ user-visible changes to _\bM_\bH 6.7 from the previous _\bM_\bH 6.6 dis-
+ tribution. The majority of development was in the form of
+ bug fixes and slight enhancements. In addition, this
+ release is slightly faster than the previous release. With
+ a few minor exceptions, it is backward-compatible with the
+ previous release. _\bM_\bH 6.7.0 is the current released version
+ of _\bM_\bH as of April 12, 1990.
+
+ The changes were made mainly to generalize the source
+ code to be compatible with a larger range of systems and
+ compilers. There were many small changes to add declara-
+ tions for ANSI C compliance. The System 5 support has been
+ brought up to SYS5 R3, and there is support for Sun OS 4.0.
+
+ _\bU_\bs_\be_\br-_\bV_\bi_\bs_\bi_\bb_\bl_\be _\bC_\bh_\ba_\bn_\bg_\be_\bs
+
+ Here a quick summary of the changes that were made which are
+ not backward-compatible with the previous release of _\bM_\bH:
+
+ repl The `-format' and `-noformat' switches have not been
+ functional since _\bM_\bH 5, and have been removed. Any
+ users who have these switches in their .mh_profile,
+ will have to remove them.
+
+ sortm Previously, in most cases _\bs_\bo_\br_\bt_\bm would fill-in any
+ gaps in the numbering of a folder, by renumbering the
+ messages starting with `1'. This will no longer
+ occur; for this behavior, use "folder -pack".
+
+
+ _\bU_\bs_\bi_\bn_\bg _\bA_\bl_\bi_\ba_\bs_\be_\bs
+
+ A new profile entry `Aliasfile:' has been added. The _\ba_\bl_\bi,
+ _\bs_\be_\bn_\bd, and _\bw_\bh_\bo_\bm programs will look for this profile entry and
+ treat it as they would an argument to `-alias'. This should
+ make it easier for novice _\bM_\bH users to begin using aliases.
+
+
+ _\bR_\be_\ba_\bd_\bi_\bn_\bg _\bN_\be_\bt_\bw_\bo_\br_\bk _\bN_\be_\bw_\bs & _\bB_\bB_\bo_\ba_\br_\bd_\bs
+
+ The UCI BBoards facility can read local BBoards, and if com-
+ piled with the `bboards: pop' and `pop: on' options, can
+ also read remote BBoards using the Post Office Protocol (POP
+ ver. 3). With this release, _\bM_\bH can instead be compiled to
+ read the Network News (i.e., USENET) using the Network News
+ Transfer Protocol (NNTP).
+
+ This capability is enabled by compiling _\bM_\bH with the
+ `bboards: nntp' and `pop: on' options. Unfortunately, read-
+ ing remote BBoards via the POP and reading the Network News
+ via the NNTP are mutually exclusive options.
+
+
+
+ April 12, 1990
+
+
+
+
+
+ Changes for MH 6.7.0 17
+
+
+ To support the NNTP, a new module, uip/pshsbr.c, is
+ compiled and loaded into _\bb_\bb_\bc and _\bm_\bs_\bh instead of
+ uip/popsbr.c. The default BBoard is changed from "system"
+ to "general" for the NNTP.
+
+ When reading BBoards, _\bb_\bb_\bc will first look for local
+ BBoards, and then contact the NNTP server to read the Net-
+ work News. The location of the NNTP server should be speci-
+ fied with the `nntphost:' entry in the mtstailor file (see
+ the _\bM_\bH Administrator's Guide for details), or may be speci-
+ fied on the command line with the `-host' switch.
+
+
+ _\bF_\bo_\br_\bm_\ba_\bt _\bS_\bt_\br_\bi_\bn_\bg_\bs
+
+ The manual page _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5) has been rewritten to give a
+ better explanation of how to write format strings, and how
+ they are interpreted by _\bM_\bH. A line-by-line description of
+ the default _\br_\be_\bp_\bl form file (replcomps) is now included in
+ that manual page.
+
+ Some new format functions were added, and others were aug-
+ mented:
+
+ trim Strips any leading and trailing white-space from
+ the current string value.
+
+ date2local Will coerce the date to the local timezone.
+
+ date2gmt Will coerce the date to GMT.
+
+ divide Divides the current numeric value by its argu-
+ ment. This could be useful for building _\bs_\bc_\ba_\bn
+ format strings which print large message sizes
+ in "Kb" or "Mb".
+
+ friendly If the address field cannot be parsed, this
+ function will return the text of the address
+ header, instead of a null string.
+
+ szone A flag indicating whether the timezone was ex-
+ plicit in the date string.
+
+ _\bP_\bR_\bO_\bG_\bR_\bA_\bM _\bC_\bH_\bA_\bN_\bG_\bE_\bS
+
+ In addition to the general changes mentioned above, many
+ programs have specific new features added, either by new
+ switches or by expanded functionality. Each command's
+ manual page gives complete information about its new
+ options. Here is a short summary.
+
+ _\bU_\bs_\be_\br _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\bP_\br_\bo_\bg_\br_\ba_\bm_\bs
+
+ anno Accepts a `-nodate' switch which inhibits the date
+
+
+
+ April 12, 1990
+
+
+
+
+
+ Changes for MH 6.7.0 18
+
+
+ annotation, leaving only the body annotation.
+
+ folder When invoked with the `-pack' switch and the new
+ `-verbose' switch, _\bf_\bo_\bl_\bd_\be_\br will give information
+ about the actions taken to renumber the folder.
+
+ On most systems, _\bf_\bo_\bl_\bd_\be_\br can now create any
+ non-existing parent folders of a new sub-folder.
+
+ forw When making digests, _\bf_\bo_\br_\bw will put the issue and
+ volume numbers in addition to the digest list
+ name, in the digest trailer.
+
+ inc Detects NFS write failures, and will not zero your
+ maildrop in that event.
+
+ msh Supports a variant of the new _\bs_\bo_\br_\bt_\bm.
+
+ prompter Considers a period on a line by itself to signify
+ end-of-file when the `-doteof' switch is speci-
+ fied.
+
+ repl The `-[no]format' switches have not been used
+ since _\bM_\bH 5 and have been deleted. _\br_\be_\bp_\bl will now
+ find filter files in the _\bM_\bH library area.
+
+ scan With the `-file msgbox' switch, _\bs_\bc_\ba_\bn can list a
+ _\bp_\ba_\bc_\bk_\bf'd-format file directly (without using _\bm_\bs_\bh).
+
+ Lists messages in reverse order with the
+ `-reverse' switch. This should be considered a
+ bug.
+
+ sortm Now has the options: `-textfield field', `-notext-
+ field', `-limit days', and `-nolimit'.
+
+ With these options, _\bs_\bo_\br_\bt_\bm can be instructed to
+ sort a folder based on the contents of an arbi-
+ trary header such as "subject".
+
+ _\bs_\bo_\br_\bt_\bm minimizes renaming messages, and will no
+ longer arbitrarily pack folders; for this
+ behavior, use "folder -pack".
+
+ whatnow Deletes the draft by renaming it with leading
+ comma, instead of unlinking it.
+
+ _\bM_\bH _\bS_\bu_\bp_\bp_\bo_\br_\bt _\bP_\br_\bo_\bg_\br_\ba_\bm_\bs
+
+ The following support programs also have changes or enhance-
+ ments:
+
+ mhl Will now accept a format string on any component,
+ not just on addresses and dates.
+
+
+
+ April 12, 1990
+
+
+
+
+
+ Changes for MH 6.7.0 19
+
+
+ popd Will use _\bs_\bh_\ba_\bd_\bo_\bw passwords if compiled with the SHA-
+ DOW option. It can now also read UUCP-style mail-
+ drops directly.
+
+ rcvtty If given no arguments, _\br_\bc_\bv_\bt_\bt_\by will produce a scan
+ listing as specified by a format string or file; a
+ default format string is used if one is not speci-
+ fied.
+
+ Before the listing is written to the users terminal,
+ the terminal's bell is rung and a newline is output.
+ The `-nobell' and the `-nonewline' options inhibit
+ these functions.
+
+ _\br_\bc_\bv_\bt_\bt_\by will obey terminal write notification set by
+ _\bm_\be_\bs_\bg. With the `-biff' switch, _\br_\bc_\bv_\bt_\bt_\by will also
+ obey the mail notification status set by _\bb_\bi_\bf_\bf.
+
+ On BSD43 systems, as with _\bw_\br_\bi_\bt_\be, _\br_\bc_\bv_\bt_\bt_\by will be
+ installed set-group-id to the group "tty".
+
+ slocal Understands UUCP-style "From " lines and will write
+ output files using this format if appropriate.
+ Before invoking a delivery program, _\bs_\bl_\bo_\bc_\ba_\bl will
+ strip such lines unless compiled with the RPATHS
+ option, in which case it will will convert such
+ lines into "Return-Path:" headers.
+
+ _\bs_\bl_\bo_\bc_\ba_\bl has a new result code "N", for use in .mail-
+ delivery files. With this result code, _\bs_\bl_\bo_\bc_\ba_\bl will
+ perform the action only if the message has not been
+ delivered and the previous action succeeded. This
+ allows for performing an action only if multiple
+ conditions are true.
+
+ _\bD_\bO_\bC_\bU_\bM_\bE_\bN_\bT_\bA_\bT_\bI_\bO_\bN
+
+ Several of the older _\bM_\bH papers have been difficult to format
+ because they depended on an older version of PhDTeX which
+ was not supplied. These papers have been updated, and some
+ TeX library files are supplied in papers/doclib/, so that
+ these papers may be generated on any system with TeX.
+
+ Many of the manual pages have been revised to include
+ documentation of new command options, and some have been
+ expanded to give more detail. All are now slightly refor-
+ matted at installation time to make them more compatible
+ with programs like _\bm_\ba_\bk_\be_\bw_\bh_\ba_\bt_\bi_\bs.
+
+
+ _\bM_\bH _\bA_\bD_\bM_\bI_\bN_\bI_\bS_\bT_\bR_\bA_\bT_\bI_\bO_\bN
+
+ This section describes changes in configuring, compiling and
+ installing _\bM_\bH 6.7 and should not be of interest to casual _\bM_\bH
+
+
+
+ April 12, 1990
+
+
+
+
+
+ Changes for MH 6.7.0 20
+
+
+ users. The READ-ME file has been considerably revised and
+ expanded to give more detail about the configuration and
+ compilation options which have been included in this
+ release. Some compilation options have been removed, and
+ many new options have been added.
+
+ All _\bM_\bH Makefiles have been updated to work around some
+ incompatibilities introduced in newer versions of _\bm_\ba_\bk_\be. _\bM_\bH
+ programs will no longer be installed with the sticky-bit
+ turned on.
+
+ Reading this section not a substitute for carefully
+ reading the READ-ME file before attempting to compile _\bM_\bH
+
+
+ _\bB_\bu_\bg _\bF_\bi_\bx_\be_\bs
+
+ Some bugs were fixed which in general were not user-visible:
+
+ address parser Fixed to allow use of the "AT" domain, and
+ some minor bugs were fixed pertaining to ad-
+ dress groups.
+
+ date parser Improved to accept more forms of illegal
+ dates. Military timezones were removed.
+
+ dynamic memory Many problems with corruption of the dynamic
+ memory pool have been fixed.
+
+ locking Will open files for write, if necessary to
+ enable locking.
+
+ nil pointers All reported nil pointer problems have been
+ fixed.
+
+ replcomps The "In-Reply-To:" header had quotes added
+ around the date field to comply with RFC822.
+
+ _\bW_\bh_\bi_\bt_\be _\bP_\ba_\bg_\be_\bs
+
+ If _\bM_\bH is compiled with the WP option, _\bs_\be_\bn_\bd recognizes an
+ address between "<<" and ">>" characters such as:
+
+ To: << rose -org psi >>
+
+ to be a name meaningful to a whitepages service. In order
+ to expand the name, _\bs_\be_\bn_\bd must be invoked interactively
+ (i.e., not from _\bp_\bu_\bs_\bh). For each name, _\bs_\be_\bn_\bd will invoke a
+ command called _\bf_\br_\be_\bd in a special mode asking to expand the
+ name.
+
+ To get a copy of the white pages service, contact
+ wpp-manager@psi.com.
+
+
+
+
+ April 12, 1990
+
+
+
+
+
+ Changes for MH 6.7.0 21
+
+
+ _\bC_\bo_\bn_\bf_\bi_\bg_\bu_\br_\ba_\bt_\bi_\bo_\bn _\bO_\bp_\bt_\bi_\bo_\bn_\bs
+
+ Some configuration options have been added or changed:
+
+ cc To specify an alternate C compiler.
+
+ ccoptions Defaults to `-O'.
+
+ bboards May now be defined as "on", "off", "pop", or
+ "nntp".
+
+ bbdelivery Determines whether the bboard delivery agent and
+ library files should be installed.
+
+ lex To specify an alternate version of _\bl_\be_\bx.
+
+ mailgroup If defined, _\bi_\bn_\bc will be made set-group-id to
+ this group.
+
+ sharedlib For SUN40 systems; if "on", makes libmh.a into a
+ shared library.
+
+ slibdir The directory where the above shared library
+ should be installed.
+
+ sprintf Set this to "int" if that's what your
+ _\bs_\bp_\br_\bi_\bn_\bt_\bf (3) library routine returns.
+
+ _\bC_\bo_\bm_\bp_\bi_\bl_\ba_\bt_\bi_\bo_\bn _\bO_\bp_\bt_\bi_\bo_\bn_\bs
+
+ For different configurations, several `-D' options to _\bc_\bc
+ have been added or changed:
+
+ BERK This disables the address and date parsing rou-
+ tines. If you want to do much with
+ _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt (5), don't enable this.
+
+ BSD43 Will make _\br_\bc_\bv_\bt_\bt_\by set-group-id to the group
+ "tty".
+
+ DBM For sites with a dbm-style password file (such
+ as with Yellow Pages), _\bM_\bH will not read the
+ entire passwd file into a cache. At one site
+ that runs YP on a large passwd file, using this
+ showed a 6:1 performance improvement.
+
+ NETWORK This option has been deleted. See SOCKETS.
+
+ NOIOCTLH Tells _\bM_\bH not to include the file sys/ioctl.h.
+ Use this if this file is not present on your
+ system.
+
+ NTOHLSWAP On systems with TCP/IP networking, _\bm_\bs_\bh will try
+ to use the ntohl() macro from the file
+
+
+
+ April 12, 1990
+
+
+
+
+
+ Changes for MH 6.7.0 22
+
+
+ netinet/in.h to byte-swap the binary map files
+ it writes.
+
+ SENDMAILBUG Some versions of _\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl return a 451 (failure)
+ reply code when they don't mean to indicate
+ failure. This option considers that code to be
+ equivalent to 250 (OK).
+
+ SHADOW Causes _\bp_\bo_\bp_\bd to read the file /etc/shadow for
+ encrypted passwords instead of /etc/passwd. Use
+ this if you have a shadow password file (such as
+ on newer versions of SYSTEM 5).
+
+ SOCKETS Enable this if you are on a non-BSD system with
+ a socket interface for TCP/IP networking compa-
+ tible with 4.2BSD UNIX.
+
+ SUN40 Use on Suns running Sun OS 4.0 and later.
+
+ SYS5 This option has been updated to refer to SYS5 R3
+ and later systems.
+
+ SYS5DIR Use this if your system uses "struct dirent"
+ instead of "struct direct". This should be true
+ for systems based on SYS5 R3 and later.
+
+ TYPESIG Defines the base type for the _\bs_\bi_\bg_\bn_\ba_\bl system
+ call. This defaults to "int", but should be
+ defined as "void" if appropriate for your sys-
+ tem.
+
+ WP Enables support for the White Pages service.
+
+ _\bI_\bn_\bs_\bt_\ba_\bl_\bl_\ba_\bt_\bi_\bo_\bn
+
+ _\bM_\bH will now explicitly set the protection mode on every file
+ it installs.
+
+ Previously any existing file installed by _\bM_\bH would be
+ backed up into the source tree, and then overwritten. Now,
+ a few system-dependent files will not be overwritten, and
+ your changes will have to be merged in by hand. See the
+ READ-ME file for more details.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ April 12, 1990
+
+
--- /dev/null
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+NAME
+ mh-gen - generating the MH system
+
+READ THIS
+ This documentation describes how to configure, generate, and
+ install the UCI version of the RAND _\bM_\bH system. Be certain
+ to read this document completely before you begin. You
+ probably will also want to familiarize yourself with the _\bM_\bH
+ Administrator's Guide before you install _\bM_\bH. A copy can be
+ found in the file doc/ADMIN.doc is the _\bM_\bH sources.
+
+DISCLAIMER
+ Although the _\bM_\bH system was originally developed by the RAND
+ Corporation, and is now in the public domain, the RAND Cor-
+ poration assumes no responsibility for _\bM_\bH or this particular
+ modification of _\bM_\bH.
+
+ In addition, the Regents of the University of California
+ issue the following disclaimer in regard to the UCI version
+ of _\bM_\bH:
+ "Although each program has been tested by its contribu-
+ tor, no warranty, express or implied, is made by the
+ contributor or the University of California, as to the
+ accuracy and functioning of the program and related
+ program material, nor shall the fact of distribution
+ constitute any such warranty, and no responsibility is
+ assumed by the contributor or the University of Cali-
+ fornia in connection herewith."
+
+ This version of _\bM_\bH is in the public domain, and as such,
+ there are no real restrictions on its use. The _\bM_\bH source
+ code and documentation have no licensing restrictions what-
+ soever. As a courtesy, the authors ask only that you pro-
+ vide appropriate credit to the RAND Corporation and the
+ University of California for having developed the software.
+
+GETTING HELP
+ _\bM_\bH is a software package that is neither supported by the
+ RAND Corporation nor the University of California. However,
+ since we do use the software ourselves and plan to continue
+ using (and improving) _\bM_\bH, bug reports and their associated
+ fixes should be reported back to us so that we may include
+ them in future releases. The current computer mailbox for
+ _\bM_\bH is Bug-MH@ICS.UCI.EDU (in the ARPA Internet), and
+ ...!ucbvax!ucivax!bug-mh (UUCP).
+
+ Presently, there are two Internet discussion groups,
+ MH-Users@ICS.UCI.EDU and MH-Workers@ICS.UCI.EDU. MH-Workers
+ is for people discussing code changes to _\bM_\bH. MH-Users is
+ for general discussion about how to use _\bM_\bH. MH-Users is
+ bi-directionally gatewayed into USENET as comp.mail.mh.
+
+
+
+
+[mh.6] Last change: MH.6.8.3 1
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+HOW TO GET MH
+ Since you probably already have _\bM_\bH, you may not need to read
+ this unless you suspect you have an old version. There are
+ two ways to get the latest release:
+
+ 1. If you can FTP to the ARPA Internet, use anonymous FTP
+ to ftp.ics.uci.edu [128.195.1.1] and retrieve the file
+ pub/mh/mh-6.8.tar.Z. This is a tar image after being run
+ through the compress program (approximately 1.8MB). There
+ should also be a README file in that directory which tells
+ what the current release of _\bM_\bH is, and how to get updates.
+
+ This tar file is also available on louie.udel.edu
+ [128.175.1.3] in portal/mh-6.8.tar.Z. You may also find MH
+ on various other hosts; to make sure you get the latest ver-
+ sion and don't waste your time re-fixing bugs, it's best to
+ get it from either ftp.ics.uci.edu or louie.udel.edu.
+
+ 2. You can send $75 US to the address below. This covers
+ the cost of a 6250 BPI 9-track magtape, handling, and ship-
+ ping. In addition, you'll get a laser-printed hard-copy of
+ the entire MH documentation set. Be sure to include your
+ USPS address with your check. Checks must be drawn on U.S.
+ funds and should be made payable to:
+
+ Regents of the University of California
+
+ The distribution address is:
+
+ Univeristy of California at Irvine
+ Office of Academic Computing
+ 360 Computer Science
+ Irvine, CA 92717 USA
+
+ +1 714 856 5153
+
+ Sadly, if you just want the hard-copies of the documenta-
+ tion, you still have to pay the $75. The tar image has the
+ documentation source (the manual is in roff format, but the
+ rest are in TeX format). Postscript formatted versions of
+ the TeX papers are available, as are crude tty-conversions
+ of those papers.
+
+SYNOPSIS
+ MAKE
+
+DESCRIPTION
+ This is a description of how one can bring up an _\bM_\bH system.
+ It is assumed that you have super-user privileges in order
+ to (re-)install _\bM_\bH. Super-user privileges are not required
+ to configure or generate _\bM_\bH.
+
+
+
+
+[mh.6] Last change: MH.6.8.3 2
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ Become the super-user and cd to /usr/src/local/ (or whatever
+ you keep your local sources). The distribution tape con-
+ tains the hierarchy for the mh.6-8/ directory. Bring the
+ sources on-line:
+
+ # cd /usr/src/local
+ % tar xv
+ % cd mh-6.8
+
+CONFIGURATION
+ First, go to the conf/ directory.
+
+ % cd conf/
+
+ This directory contains files that will produce source files
+ tailored for your choice of _\bM_\bH configuration. You should
+ edit only the file MH. This file contains configuration
+ directives. These configuration directives are read by the
+ _\bm_\bh_\bc_\bo_\bn_\bf_\bi_\bg program to produce customized files.
+
+ For examples of various configurations, look in the direc-
+ tory conf/examples/. The file MH provided in conf/ is a
+ reasonable default. Lines beginning with `#' are comments,
+ and are not otherwise interpreted.
+
+ Here are the _\bM_\bH configuration directives available. Be sure
+ to read through this list completely before attempting to
+ decide what directives are appropriate for your system.
+
+ More information on some of these options is available in
+ the the _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be. If you do not have a printed
+ copy, you should configure your system with the default con-
+ figuration file, MH, then generate and print a copy of the
+ guide (as described below).
+
+ Installation paths
+ bin: /usr/local
+ The directory where user-invoked programs go (see
+ manual section 1).
+
+ etc: /usr/local/lib/mh
+ The directory where pgm-invoked programs go (see manual
+ section 8).
+
+ mail: /usr/spool/mail
+ The directory where the maildrops are stored. If this
+ pathname is absolute (i.e., begins with a / ), then the
+ user's maildrop is a file called $USER in this direc-
+ tory. If the pathname is not absolute, then the user's
+ maildrop is in the user's home directory under the
+ given name.
+
+
+
+
+[mh.6] Last change: MH.6.8.3 3
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ mandir: /usr/man
+ The parent directory of the manual entries.
+
+ manuals: standard
+ Where manual entries should be installed, relative to
+ the directory given with "mandir". Either "local" to
+ install manual entries under manl/, or "new" to install
+ manual entries under mann/, or "old" to install manual
+ entries under mano/, or "standard" to install manual
+ entries under man?/, or "bsd44" to install manual
+ entries as man?/_\bp_\ba_\bg_\be.0, or "gen" to generate but not
+ install them, or "none" to neither generate nor install
+ them.
+
+ Any of these values may have the suffix "/cat" appended
+ to it. In that case, the manual entries will be for-
+ matted with "nroff -man" and they will be installed in
+ the corresponding "cat?" directories.
+
+ For example, to install manual entries under
+ /usr/man/u_man/man?, use "standard" and /usr/man/u_man
+ for "mandir". To install formatted manual entires
+ under /usr/contrib/man/cat?, use "standard/cat" and
+ /usr/contrib/man for "mandir". To install formatted
+ manual entries using the BSD44 convention, use
+ "bsd44/cat".
+
+ chown: /etc/chown
+ The location of the _\bc_\bh_\bo_\bw_\bn(8) on your system. If _\bc_\bh_\bo_\bw_\bn
+ is in your search path, just use the value of "chown".
+ On SYS5 systems, this should probably be "/bin/chown".
+
+ cp: cp
+ The command to copy files when installing, if not "cp".
+ (Some sites use "cp -p".)
+
+ ln: ln
+ The command to link files together in the source tree,
+ if not "ln". If you're using something like lndir to
+ keep your compile tree separate from your source tree,
+ set this to "ln -s" or "cp".
+
+ remove: mv -f
+ How _\bM_\bH should make backup copies of existing files when
+ installing new files. To simply remove the old files,
+ use "rm -f".
+
+ Compiler/loader
+ cc: cc
+ The name of your C compiler, if not "cc".
+
+ ccoptions: -O
+
+
+
+[mh.6] Last change: MH.6.8.3 4
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ Options given directly to _\bc_\bc(1). The most common is
+ "-M" if you're running _\bM_\bH on an ALTOS. This defaults
+ to "-O". If you define this and want to keep "-O", be
+ sure to include it explicitly. If you're using the _\bG_\bN_\bU
+ C compiler, it should include `-traditional'. See
+ "options:" for `-D' options.
+
+ curses: -lcurses -ltermlib
+ This should be the loader option required to load the
+ _\bt_\be_\br_\bm_\bc_\ba_\bp(3) and _\bc_\bu_\br_\bs_\be_\bs(3) libraries on your system. On
+ SYS5 systems, it probably should be just "-lcurses".
+ Some sites have reported that both "-lcurses" and
+ "-ltermlib" are necessary.
+
+ ldoptions: -s
+ Options given directly to _\bl_\bd(1) (via _\bc_\bc) at the begin-
+ ning of the command line. Useful for machines which
+ require arguments to tell _\bl_\bd to increase the stack
+ space (e.g. the Gould, which uses "-m 8"). Usually,
+ "-s" is a good choice in any event.
+
+ ldoptlibs:
+ Options given directly to _\bl_\bd(1) (via _\bc_\bc) at the end of
+ the command line. The two most common are: "-ldbm" if
+ you're running MMDF with the _\bd_\bb_\bm package; and, "-lndir"
+ if you are generating _\bM_\bH on a system which does not
+ load the new directory access mechanism by default
+ (e.g., 4.1BSD, SYS5). If you don't have _\bl_\bi_\bb_\bn_\bd_\bi_\br on
+ your system, the sources are in miscellany/libndir/.
+
+ lex: lex -nt
+ Alternative version of _\bl_\be_\bx. Used in zotnet/tws/.
+
+ oldload: off
+ This controls how _\bM_\bH will try to process library object
+ files to eliminate local symbols. Support for the
+ ALTOS loader if "on". Support for loaders not handling
+ `-x -r' correctly if "none".
+
+ ranlib: on
+ Support for systems with _\br_\ba_\bn_\bl_\bi_\bb(1). For SYSTEM 5 sys-
+ tems, this should be "off" which tells _\bM_\bH to use _\bl_\bo_\br_\bd_\be_\br
+ and _\bt_\bs_\bo_\br_\bt instead. Some SYSTEM 5 sites reported that
+ running this isn't always sufficient. If this is the
+ case, then you should edit conf/makefiles/uip to
+ include ../sbr/libmh.a and ../zotnet/libzot.a twice in
+ the LIBES variable.
+
+ Message Transport System
+ mts: sendmail
+ Which message transport system to use. Either "mmdf"
+ to use _\bM_\bM_\bD_\bF as the transport system, "mmdf2" to use
+
+
+
+[mh.6] Last change: MH.6.8.3 5
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ _\bM_\bM_\bD_\bF-_\bI_\bI as the transport system, "sendmail" to have
+ _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl as the transport system, "zmailer" to have
+ _\bZ_\bM_\bA_\bI_\bL_\bE_\bR as the transport system, or, "mh" to have _\bM_\bH as
+ the transport system.
+
+ On UNIX systems supporting TCP/IP networking via sock-
+ ets you can add the suffix "/smtp" to the mts setting.
+ This often yields a superior interface as _\bM_\bH will post
+ mail with the local _\bS_\bM_\bT_\bP server instead of interacting
+ directly with _\bM_\bM_\bD_\bF or _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl. Hence, for TCP/IP UNIX
+ systems, the "/smtp" suffix to either "sendmail" or
+ "mmdf2" is the preferred MTS configuration. The
+ "/smtp" suffix is described in detail in the
+ _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be; be sure to set "servers:" as
+ described in _\bm_\bh-_\bt_\ba_\bi_\bl_\bo_\br(8) if you use this option.
+
+ mf: off
+ Support for mail filtering on those systems in which
+ the message transport system isn't integrated with _\bU_\bU_\bC_\bP
+ This option is strictly for an _\bM_\bH system using either
+ _\bM_\bM_\bD_\bF-_\bI as its transport system or one using
+ "stand-alone delivery".
+
+ UCI BBoards Facility
+ bboards: off
+ If "on", include support for the UCI BBoards facility.
+ BBoards may be enabled with any mts setting. If "off",
+ the BBoard reading program _\bb_\bb_\bc will not be installed.
+ If "nntp", include support for the UCI BBoards facility
+ to read the Network News via the NNTP. If "pop" (form-
+ erly "popbboards: on"), include support for the UCI
+ BBoards facility via the POP3 service; this setting
+ requires "pop: on".
+
+ bbdelivery: off
+ If "off", the BBoards delivery agent and library files
+ will not be installed. If "on", and you set "bboards:"
+ to something besides "off", then the BBoards delivery
+ agent and library files will be installed in the _\bb_\bb_\bh_\bo_\bm_\be
+ directory (see below). To read remote BBoards, the
+ usual configuration would have _\bb_\bb_\bc talk to a _\bP_\bO_\bP_\b3 or
+ _\bN_\bN_\bT_\bP server. However, it may be useful to set this to
+ "off" if you NFS mount the _\bb_\bb_\bh_\bo_\bm_\be directory from
+ another host and want to use _\bb_\bb_\bc to read those files
+ directly.
+
+ bbhome: /usr/spool/bboards
+ The home directory for the BBoards user.
+
+
+
+
+
+
+
+[mh.6] Last change: MH.6.8.3 6
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ Post Office Protocol
+ pop: off
+ Support for POP service. This allows local delivery
+ for non-local users (a major win). See
+ support/pop/pop.rfc for more information on the POP.
+ This option currently works only on UNIX systems with
+ TCP/IP sockets. (It doesn't hurt to enable this option
+ regardless of whether or not you intend to use POP.)
+ See also "bboards: pop" to enable reading bboards with
+ the POP.
+
+ popdir: /usr/etc
+ The directory where the POP daemon (popd) will be
+ installed.
+
+ options:
+ `-D' options to _\bc_\bc(1).
+
+ APOP='"/etc/pop.auth"'
+ This option indicates that the POP daemon will sup-
+ port the non-standard APOP command, and specifies the
+ name of APOP authorization database. The APOP com-
+ mand provides a challenge-based authentication system
+ using the MD5 message digest algorithm. This facil-
+ ity is documented in _\bT_\bh_\be _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be (ISBN
+ 0-13-092941-7), a book by Marshall T. Rose.
+
+ This option also causes the popauth program to be
+ installed, which allows the administrator to manipu-
+ late the APOP authorization database. For more
+ details, see support/pop/pop-more.txt and the
+ _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be.
+
+ DPOP
+ This option indicates that POP subscribers do not
+ have entries in the _\bp_\ba_\bs_\bs_\bw_\bd(5) file, and instead have
+ their own separate database (a win).
+
+ KPOP
+ Support for KERBEROS with POP. This code builds
+ _\bp_\bo_\bp_\bd, _\bi_\bn_\bc and _\bm_\bs_\bg_\bc_\bh_\bk to support only the "kpop" pro-
+ tocol. This code is still experimental, but is
+ available for those sites wishing to test it.
+
+ MPOP
+ This option indicates that the POP daemon will sup-
+ port the non-standard XTND SCAN command which pro-
+ vides performance enhancements when using the POP
+ over low-speed connections. This option also causes
+ an interactive POP client program, popi, to be com-
+ piled and installed. A man page for the popi program
+ is also provided.
+
+
+
+[mh.6] Last change: MH.6.8.3 7
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ These extensions are described in _\bT_\bh_\be _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bM_\be_\bs_\b-
+ _\bs_\ba_\bg_\be, a book by Marshall T. Rose. For more details,
+ see support/pop/pop-more.txt. Note: this option
+ requires "bboards: pop".
+
+ POP2
+ Have the POP daemon understand the older POP2 proto-
+ col as well as the _\bM_\bH POP3 protocol - a major win.
+ The POP daemon auto-magically determines which POP
+ protocol your client is using. If you're enabling
+ POP service, there's no reason not to enable this
+ option as well. See also _\bP_\bO_\bP_\bS_\bE_\bR_\bV_\bI_\bC_\bE.
+
+ POPSERVICE
+ The port name the _\bM_\bH POP will use. For historical
+ reasons, this defaults to "pop".
+
+ In 1987, the _\bM_\bH POP protocol (POP version 3) was pub-
+ lished as RFC1081 and was assigned its own port
+ number (110), which differs from the original POP
+ (version 1 and 2) port number (109).
+
+ To have _\bM_\bH POP use the new assigned port number, set
+ POPSERVICE='"pop3"', and be sure that this service
+ name is listed in your /etc/services file on both POP
+ client and server hosts as "110/tcp". If you enable
+ _\bP_\bO_\bP_\b2, you can safely leave _\bP_\bO_\bP_\bS_\bE_\bR_\bV_\bI_\bC_\bE undefined
+ unless you are using POP3 clients besides _\bM_\bH.
+
+ RPOP
+ This option indicates that support for the UNIX vari-
+ ant of POP, RPOP, which uses privileged sockets for
+ authentication be enabled. This peacefully co-exists
+ with the standard POP.
+
+ SHADOW
+ Indicates that the popd POP server can find encrypted
+ passwords in the /etc/shadow file (and not in the
+ /etc/passwd file). It should be used only for some
+ (newer) SYSTEM 5 systems.
+
+ The "APOP" and "MPOP" non-standard POP facilities are
+ documented in _\bT_\bh_\be _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be (ISBN 0-13-092941-7),
+ a book by Marshall T. Rose. For more details, see
+ support/pop/pop-more.txt. The "APOP" option peacefully
+ co-exists with the standard POP. The "MPOP" option
+ requires "bboards: pop".
+
+ Shared libraries
+ sharedlib: off
+ If "sun4", makes libmh.a into a SunOS 4.0 (and later)
+ shared library. If you enable this, be sure to also use
+
+
+
+[mh.6] Last change: MH.6.8.3 8
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ "options SUN40". If "sys5", makes libmh.a into a SYS5
+ R4 (and later) shared library. If you enable this, be
+ sure to also use "options SVR4".
+
+ slflags: -pic
+ The compiler flags to produce position independent code.
+
+ slibdir: /usr/local/lib
+ The directory where the _\bM_\bH shared library should go.
+
+ Under SunOS (sun4)
+ Since some _\bM_\bH programs are setuid, they'll only look for
+ the library in "trusted" locations. Putting the library
+ somewhere besides /usr/lib or /usr/local/lib is not
+ advisable.
+
+ If you must do this, be sure that you add the path given
+ by slibdir to the compiler's library search list (e.g.,
+ "ldoptions: -L/usr/mh/lib") and make sure the path
+ starts with a leading `/'.
+
+ You may need to run _\bl_\bd_\bc_\bo_\bn_\bf_\bi_\bg(8) manually whenever a new
+ shared object is installed on the system. See _\bl_\bd(1) for
+ more information about using shared libraries.
+
+ Under Solaris 2.0 (and newer)
+ The above instructions for SunOS apply, except you
+ should set the run-time library search path using `-R'
+ instead of `-L' (e.g., "ldoptions: -R/usr/mh/lib").
+
+ General System Dependencies
+ You should include the following directives which are
+ appropriate for your version of UNIX. If you don't know what
+ an option does, it probably doesn't apply to you.
+
+ mailgroup: off
+ If set, _\bi_\bn_\bc is made set-group-id to this group name.
+ Some SYS5 systems want this to be set to "mail". Set
+ this if your /usr/spool/mail is not world-writeable.
+
+ Note that slocal doesn't know how to deal with this, and
+ will not work under these systems; just making it set-
+ group-id will open a security hole. If you're using
+ "mailgroup", you should remove slocal (and its man page)
+ from your system.
+
+ signal: int
+ The base type (int or void) of the function
+ parameter/return value of _\bs_\bi_\bg_\bn_\ba_\bl(2). The default is
+ int. Set "signal void" on systems which use this type
+ (e.g., SYSTEM 5 V3.0 and later or Sun OS 4.0 and later).
+
+
+
+
+[mh.6] Last change: MH.6.8.3 9
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ sprintf: char *
+ The return value of the _\bs_\bp_\br_\bi_\bn_\bt_\bf library routine. This
+ defaults to "char *". Set this to "int" if you have an
+ older version of SYSTEM 5 which has this routine return
+ an "int" type.
+
+ options:
+ `-D' options to _\bc_\bc(1).
+
+ ALTOS
+ Use on XENIX/v7 systems. Also, be sure to use
+ "options V7".
+
+ ATTVIBUG
+ This option causes _\bM_\bH to return to the "What now?"
+ prompt if your initial editor is vi and it exits with
+ non-zero status. Use on Sun OS 4.1 and other systems
+ where the /usr/ucb/vi editor was changed to exit with
+ its status equal to the number of pseudo-"errors"
+ encountered during the edit. This causes a problem
+ for programs that test the exit status of their editor
+ and abort if the status is non-zero. (This includes
+ _\bM_\bH and programs like /usr/etc/vipw).
+
+ AUX
+ Use with AUX systems.
+
+ BIND
+ If you are running with the BIND code on UNIX systems
+ with TCP/IP sockets (e.g. 4.{2,3}BSD), be sure to
+ define this.
+
+ BSD41A
+ Use on 4.1a Berkeley UNIX systems.
+
+ BSD42
+ Use on Berkeley UNIX systems on or after 4.2BSD.
+
+ BSD43
+ Use on 4.3 Berkeley UNIX systems. Also, be sure to
+ use "options BSD42". If _\bo_\bp_\be_\bn_\bl_\bo_\bg(3) (see "man 3 sys-
+ log") takes three arguments instead of two, and your
+ _\bw_\br_\bi_\bt_\be(1) command is set-group-id to group "tty", use
+ this option. If only one of these conditions is true,
+ you lose.
+
+ BSD44
+ Use on Berkeley UNIX systems on or after 4.4BSD.
+ Also, be sure to use "options BSD43" and "options
+ BSD42".
+
+ DBMPWD
+
+
+
+[mh.6] Last change: MH.6.8.3 10
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ Use this option if your _\bg_\be_\bt_\bp_\bw_\be_\bn_\bt(3) routines read a
+ dbm database (such as with Yellow Pages) instead of
+ doing a sequential read of /etc/passwd. Without
+ DBMPWD the entire passwd file is read into memory one
+ entry at a time for alias expansion. This is a per-
+ formance improvement when reading a standard
+ /etc/passwd file, but is _\bv_\be_\br_\by slow on systems with a
+ dbm database. At one site that runs YP on a large
+ passwd file, it showed a 6:1 performance improvement.
+
+ GCOS_HACK
+ The so-called "gcos" field of the password file is
+ used as a last resort to find the user's full name
+ (see _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be(5) for details). Enable this option
+ if your _\bp_\ba_\bs_\bs_\bw_\bd(5) man page notes that the `&' charac-
+ ter in the "gcos" field stands for the login name.
+
+ FCNTL
+ Directs _\bM_\bH to use the fcntl() system call for kernel-
+ level locking. If you're using a SYS5 system, you may
+ want this option. (See also `FLOCK' and `LOCKF').
+
+ FLOCK
+ Directs _\bM_\bH to use the flock() system call for kernel-
+ level locking. If you're on a BSD42 system, and
+ you're not using NFS to read or write maildrops, you
+ should enable this option. (See also `FCNTL' and
+ `LOCKF').
+
+ HESIOD
+ Support for HESIOD. This code was contributed, and
+ included no documentation.
+
+ LOCKF
+ Directs _\bM_\bH to use the lockf() system call for kernel-
+ level locking. If you're using NFS to read or write
+ maildrops, you should enable this option. (See also
+ `FLOCK' and `FCNTL').
+
+ locname
+ Hard-wires the local name for the host _\bM_\bH is running
+ on. For example, locname='"PICKLE"'. It's probably
+ better to either let UNIX tell _\bM_\bH this information, or
+ to put the information in the host specific mtstailor
+ file.
+
+ MORE
+ Defines the location of the _\bm_\bo_\br_\be(1) program. On
+ ALTOS and DUAL systems, set MORE='"/usr/bin/more"'.
+ The default is "/usr/ucb/more".
+
+ NDIR
+
+
+
+[mh.6] Last change: MH.6.8.3 11
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ For non-Berkeley UNIX systems, this _\bM_\bH will try to
+ find the new directory access mechanism by looking in
+ <ndir.h> if this option is given. Otherwise, _\bM_\bH will
+ try <dir.h>. If you still can't get this to work on
+ your system, edit h/local.h as appropriate. (See also
+ `SYS5DIR'.)
+
+ NFS
+ Tells _\bM_\bH to hack around a problem in the NFS C
+ library. If you get an undefined symbol "ruserpass"
+ when compiling _\bM_\bH, you probably need this option. If,
+ however, you include this option and get an undefined
+ symbol "__ruserpass" when compiling, then you should
+ omit this option. (See also `NORUSERPASS'.)
+
+ NOIOCTLH
+ Tells _\bM_\bH not to include the file <sys/ioctl.h>. To be
+ used on systems where this file is not present.
+
+ NORUSERPASS
+ Tells _\bM_\bH that your system doesn't have the _\br_\bu_\bs_\be_\br_\b-
+ _\bp_\ba_\bs_\bs(3) routine; _\bM_\bH will include its own copy of this
+ routine in its library. (See also `NFS'.)
+
+ NTOHLSWAP
+ Tells _\bM_\bH to use the ntohl() macro when processing _\bm_\bs_\bh
+ binary map files. _\bM_\bH can use this macro on systems
+ with the include file netinet/in.h, to byte-swap the
+ binary information in these map files. If you're
+ using the same map files on machines of different
+ architectures, enable this option.
+
+ RENAME
+ Include this option if your system has a rename()
+ library call. This is true on BSD42 and newer and
+ some SYS5 systems.
+
+ SENDMAILBUG
+ Causes SMTP reply code 451 (failure) to be considered
+ the same as code 250 (OK). Since this might cause
+ problems, only enable this if you are certain that
+ your SendMail will return this code even when it
+ doesn't mean to indicate a failure.
+
+ SOCKETS
+ Indicates the availability of a socket interface for
+ TCP/IP networking that is compatible with 4.{2,3}BSD
+ UNIX. It is not necessary to define this when BSD42
+ is already defined, but it might be useful for SYSTEM
+ 5 or HPUX systems with TCP/IP sockets.
+
+ SUN40
+
+
+
+[mh.6] Last change: MH.6.8.3 12
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ Use on Sun OS 4.0 (and later?) systems. You also will
+ need "options BSD42", "options BSD43", and "signal
+ void".
+
+ If you're using Sun's brain-damaged approach to offer-
+ ing Domain Name Service through NIS, be sure to
+ include "options BIND" and "ldoptions -lresolv" to
+ work around some NIS/DNS bugs.
+
+ SYS5
+ Use on AT&T SYSTEM 5 R3 (and newer?) UNIX systems.
+ See also _\bm_\ba_\bi_\bl_\bg_\br_\bo_\bu_\bp.
+
+ SYS5DIR
+ Define this if your system uses "struct dirent"
+ instead of "struct direct". This is true of System V
+ Release 3.0 and later. Uses include file <dirent.h>
+ and the routines _\bm_\bk_\bd_\bi_\br, _\br_\bm_\bd_\bi_\br and _\bg_\be_\bt_\bc_\bw_\bd.
+
+ SVR4
+ Use on AT&T SYSTEM 5 R4 (and newer?) UNIX systems. You
+ should also include "options SYS5" and "options
+ SYS5DIR". See also _\bm_\ba_\bi_\bl_\bg_\br_\bo_\bu_\bp. You will also need to
+ include "oldload none" if your ld doesn't handle
+ `-x -r' correctly.
+
+ TERMINFO
+ Define TERMINFO if you have it. You get it automati-
+ cally if you're running SYS5, and you don't get it if
+ you're not. (If you're not SYS5, you probably have
+ termcap.)
+
+ TZNAME
+ Use time zone names from the _\bt_\bz_\bn_\ba_\bm_\be variable, set via
+ _\bt_\bz_\bs_\be_\bt. Only applicable on SYSTEM 5 systems and only
+ effective when you have asked for alpha-timezones (see
+ the ATZ option). See also ZONEINFO.
+
+ UNISTD
+ Include this option if your system has the file
+ <unistd.h>. If not specified, the LOCKF option will
+ include <sys/fcntl.h>.
+
+ V7
+ Use on V7 UNIX systems. Also, be sure to use "options
+ void=int".
+
+ VSPRINTF
+ Include this option if your system has the _\bv_\bs_\bp_\br_\bi_\bn_\bt_\bf(3)
+ library routine; otherwise, __\bd_\bo_\bp_\br_\bn_\bt(3) will be used.
+
+ WAITINT
+
+
+
+[mh.6] Last change: MH.6.8.3 13
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ BSD42 based systems call the _\bw_\ba_\bi_\bt(2) system routine
+ with a pointer to type _\bu_\bn_\bi_\bo_\bn _\bw_\ba_\bi_\bt. Include this
+ option if you included "options BSD42", but your sys-
+ tem calls the _\bw_\ba_\bi_\bt(2) system routine with a pointer to
+ type _\bi_\bn_\bt (the non-BSD42 default).
+
+ ZONEINFO
+ Specify this if you have a BSD43 based system that
+ keeps time zone information /etc/zoneinfo or
+ /usr/lib/zoneinfo (SunOS), and where the _\bs_\bt_\br_\bu_\bc_\bt _\bt_\bm
+ returned by _\bl_\bo_\bc_\ba_\bl_\bt_\bi_\bm_\be(3) contains a _\bt_\bm__\bg_\bm_\bt_\bo_\bf_\bf element
+ (see /usr/include/time.h). With this fix the GMT
+ offset specified in outgoing mail will be corrected
+ when the TZ enviornment variable is set to a different
+ time zone. See also TZNAME.
+
+Site Preferences
+ These options change the default behavior of _\bM_\bH or enable
+ optional features. Add the options which are appropriate for
+ your configuration or your site preferences.
+
+ editor: prompter
+ The default editor for _\bM_\bH.
+
+ options:
+ `-D' options to _\bc_\bc(1).
+
+ ATZ
+ Directs _\bM_\bH to use alpha-timezones whenever possible.
+ You should not use this option if you are on the Inter-
+ net, since it will make your host non-compliant with
+ RFC-1123 (Requirements for Internet Hosts).
+
+ ATHENA
+ Makes _\br_\be_\bp_\bl `-nocc all' the default instead of
+ `-cc all'. You may want to enable this if you're using
+ _\bx_\bm_\bh.
+
+ BANG
+ Directs _\bM_\bH to favor `!' over `@' in addressing.
+
+ BERK
+ Optional for for 4.{2,3}BSD sites running SendMail.
+ Disables nearly all of the RFC822 address and header-
+ parsing routines in favor of recognizing such formats
+ as ASCnet, and so on. If you don't need to disable the
+ parser for this reason, you probably want to use
+ "options DUMB" instead.
+
+ COMPAT
+ If you previously ran a version of _\bM_\bH earlier than mh.4
+ use this option. After a short grace period, remove it
+
+
+
+[mh.6] Last change: MH.6.8.3 14
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ and re-{configure,generate,install} everything.
+
+ DUMB
+ Directs _\bM_\bH not to try and rewrite addresses to their
+ "official" form.
+
+ FOLDPROT
+ Defines the octal value for default folder-protection.
+ For example, FOLDPROT='"0700"'. The default is "0711".
+
+ ISI
+ When using "repl -ccme", only "cc:" the first address
+ found which belongs to the user; any other _\bA_\bl_\bt_\be_\br_\bn_\ba_\bt_\be-
+ _\bM_\ba_\bi_\bl_\bb_\bo_\bx_\be_\bs do not receive "cc:"s.
+
+ LINK
+ Defines the filename for alternate file name for _\bd_\bi_\bs_\bt
+ and _\br_\be_\bp_\bl. For example, LINK='"\\043"' to use the
+ pound-sign character. The default is "@".
+
+ MHE
+ Enables crude support for Brien Reid's MHE interface.
+ Recommended for use with the GNU Emacs mh-e package.
+
+ MHRC
+ Enables _\bM_\bH to recognize the _\bC_\bS_\bh_\be_\bl_\bl's `~'-construct.
+ This is useful for sites that run with a ~/.mhrc for
+ their users.
+
+ MIME
+ Enables support for multi-media messages, as specified
+ in RFC 1341 -- a major win. This allows you to include
+ things like audio, graphics, and the like, in your mail
+ messages. Several _\bM_\bH commands are extended to support
+ these multi-media messages, and the _\bm_\bh_\bn command is pro-
+ vided to encode and decode MIME messages. For more
+ details, see miscellany/multi-media/READ-ME and _\bm_\bh_\bn(1).
+
+ MSGID
+ Enables slocal to detect and surpress duplicate mes-
+ sages received. This code uses the <ndbm.h> library,
+ and requires "options BSD42" since it uses the _\bf_\bl_\bo_\bc_\bk(2)
+ system call for locking. (Note that this means its
+ database locking does not work over NFS.) It has only
+ been tested under SUN40.
+
+ MSGPROT
+ Defines the octal value for default folder-protection.
+ For example, MSGPROT='"0600"'. The default is "0644".
+
+ NOMHSEQ
+ Directs _\bM_\bH to make private sequences the default.
+
+
+
+[mh.6] Last change: MH.6.8.3 15
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ OVERHEAD
+ Enable _\bM_\bH commands to read profile/context from open
+ fd:s without doing an open(); see _\bm_\bh-_\bp_\br_\bo_\bf_\bi_\bl_\be(5) for the
+ details.
+
+ RPATHS
+ Directs _\bi_\bn_\bc to note UNIX "From " lines as Return-Path:
+ info.
+
+ SBACKUP
+ Defines the prefix string for backup file names. For
+ example, SBACKUP='"\\043"'. The default is ",".
+
+ TMA
+ Support for the TTI _\bt_\br_\bu_\bs_\bt_\be_\bd _\bm_\ba_\bi_\bl _\ba_\bg_\be_\bn_\bt (TMA). Although
+ the TTI TMA is not in the public domain, the _\bM_\bH support
+ for the TTI TMA is in the public domain. You should
+ enable this option only if you are licensed to run the
+ TMA software (otherwise, you don't have the software in
+ your _\bM_\bH source tree).
+
+ TTYD
+ Support for TTYD. This is no longer in wide use, and
+ is not recommended.
+
+ UCI
+ First, "_" and "#" are recognized as the prefixes for
+ scratch files. Second, support for the UCI
+ group-leadership mechanism is enabled in _\bc_\bo_\bn_\bf_\bl_\bi_\bc_\bt.
+ Third, the first line of the file file $HOME/.signature
+ is used as the _\bF_\bu_\bl_\bl _\bN_\ba_\bm_\be part of your "From:" header.
+ This may conflict with the interpretation of this file
+ by _\bN_\be_\bw_\bs. If you're not at UCI, you probably don't want
+ this option.
+
+ UK
+ Directs the _\bs_\bc_\ba_\bn program to generate UK-style dates by
+ default.
+
+ WHATNOW
+ Enable certain _\bM_\bH commands to act differently when
+ $mhdraft set.
+
+ YEARMOD
+ This option makes the _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt %(year) function always
+ return a value less than 100. Enable this option if
+ you have local _\bm_\bh-_\bf_\bo_\br_\bm_\ba_\bt(5) files which cannot handle
+ 4-digit years. You should convert these files to use a
+ 4-character field width, or use the %(modulo 100) func-
+ tion to obtain a 2-digit year value. After a short
+ grace period, remove `YEARMOD' and re-
+ {configure,generate,install} everything.
+
+
+
+[mh.6] Last change: MH.6.8.3 16
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+Testing/debugging
+ debug: off
+ Support for debug mode of _\bM_\bH. Don't use this unless you
+ know what you're doing, which isn't likely if you're read-
+ ing this document!
+
+ regtest: off
+ Set this to "on" if you are doing regression testing among
+ different compilations of _\bM_\bH, and you do not want the
+ hostname and compile date included in _\bM_\bH binaries.
+
+
+
+ Now edit conf/config/mtstailor, depending on your choice of
+ the setting for mts in the _\bM_\bH configuration file. for an
+ mts setting of "mh", look at the file conf/tailor/mhmts; for
+ an mts setting of "sendmail", "sendmail/smtp", "mmdf/smtp",
+ or "mmdf2/smtp", look at the file conf/tailor/sendmts; and,
+ for an mts setting of "mmdf", or "mmdf2", look at the file
+ conf/tailor/mmdf.
+
+ Now install the configured files into the source areas. (On
+ SYS5 systems, or other systems where you get complaints
+ about "_index" and "_rindex" being undefined, you should use
+ "make sys5" to compile mhconfig.)
+
+ % make
+ % ./mhconfig MH
+
+ Before proceeding, you should familiarize yourself with the
+ _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be. To generate an _\bn_\br_\bo_\bf_\bf version, go to
+ the doc/ directory and type:
+
+ % (cd ../doc/; make ADMIN.doc)
+
+
+ If you're already running _\bM_\bH at your site, you should also
+ read the _\bm_\bh changes document CHANGES. The source is in
+ papers/changes/.
+
+ After reading the _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be, you may decide to
+ change your MH configuration. If so, cd back to the conf/
+ directory, re-edit the files MH and conf/config/mtstailor,
+ and re-run _\bm_\bh_\bc_\bo_\bn_\bf_\bi_\bg.
+
+ You now proceed based on your choice of a transport system
+ (the setting for mts above). The best interface is achieved
+ with "sendmail" followed by "mmdf" or ("mmdf2"), and then
+ "mh" (stand-alone delivery, not recommended).
+
+ SENDMAIL
+ If you have not enabled BBoards or POP then no further
+
+
+
+[mh.6] Last change: MH.6.8.3 17
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ MTS-specific action is required on your part!
+
+ If you have enabled POP, but you want to let _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl
+ deliver mail POP mail using its standard delivery program
+ /bin/mail, then, again, no further MTS-specific action is
+ required on your part!
+
+ Otherwise, go to the mts/sendmail/ directory.
+
+ % cd ../mts/sendmail/
+
+ This directory contains files whose definitions correspond
+ to the configuration of your _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl system. If you have
+ enabled BBoards or POP service, then you will need to
+ re-configure _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl. First, in the "local info" section
+ of your site's _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl configuration file, choose a free
+ macro/class (B is used in this distribution), and add these
+ lines:
+
+ # BBoards support
+ DBbboards
+ CBbboards
+
+ Second, immediately after the inclusion of the zerobase
+ file, in the "machine dependent part of ruleset zero" sec-
+ tion, add these lines:
+
+ # resolve names for the BBoards system
+ R$+<@$=B> $#bboards$@$2$:$1 topic@bboards
+
+ Be sure to use tabs when separating these fields. Third,
+ add the line
+
+ include(bboardsMH.m4)
+
+ after the line
+
+ include(localm.m4)
+
+ in your site's _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl configuration file. Finally, you
+ should link the file mts/sendmail/bboardsMH.m4 into your
+ _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl cf/ directory and re-configure _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl.
+
+ If you have enabled POP service, a similar procedure must be
+ used on the POP service host, to re-configure _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl.
+ First, in the "local info" section of your site's _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl
+ configuration file, choose a free macro/class (P is used in
+ this distribution), and add these lines:
+
+ # POP support
+ DPpop
+ CPpop
+
+
+
+[mh.6] Last change: MH.6.8.3 18
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ Second, immediately after the inclusion of the zerobase
+ file, in the "machine dependent part of ruleset zero" sec-
+ tion, add these lines:
+
+ # resolve names for the POP system
+ R$+<@$=P> $#pop$@$2$:$1 subscriber@pop
+
+ Be sure to use tabs when separating these fields. Third,
+ add the line
+
+ include(popMH.m4)
+
+ after the line
+
+ include(localm.m4)
+
+ in your site's _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl configuration file. Finally, you
+ should link the file mts/sendmail/popMH.m4 into your _\bS_\be_\bn_\bd_\b-
+ _\bM_\ba_\bi_\bl cf/ directory and re-configure _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl.
+
+ MMDF
+ If you want _\bM_\bM_\bD_\bF to be your transport service, and have NOT
+ specified "mmdf/smtp" (or "mmdf2/smtp") as your mts setting,
+ then go to the mmdf/ directory. (If you're using
+ "mmdf/smtp" or "mmdf2/smtp" as your mts setting, then skip
+ to the next section.)
+
+ % cd ../mts/mmdf/
+
+ This directory contains files whose definitions correspond
+ to the configuration of your _\bM_\bM_\bD_\bF system.
+
+ If you're running _\bM_\bM_\bD_\bF-_\bI, then copy the following files from
+ wherever you keep the _\bM_\bM_\bD_\bF sources to this directory:
+ mmdf/h/ch.h, mmdf/h/conf.h, utildir/conf_util.h,
+ utildir/ll_log.h, mmdf/h/mmdf.h, utildir/util.h,
+ mmdf/mmdf_lib.a, and utildir/util_lib.a.
+
+ If you're running _\bM_\bM_\bD_\bF-_\bI_\bI, then copy the following files
+ from where you keep the _\bM_\bM_\bD_\bF sources to this directory:
+ h/ch.h, h/conf.h, h/dm.h, h/ll_log.h, h/mmdf.h, h/util.h,
+ and lib/libmmdf.a
+
+ If you have enabled bboards, then the directories
+ support/bboards/mmdfI and support/bboards/mmdfII contain
+ information you'll need to put a UCI BBoards channel in your
+ _\bM_\bM_\bD_\bF configuration. Similarly, if you have enabled option
+ "mf" and are running _\bM_\bM_\bD_\bF-_\bI, then the zotnet/mf/mmdfI/
+ directory contains information you'll need to put a _\bU_\bU_\bC_\bP
+ channel in your _\bM_\bM_\bD_\bF-_\bI configuration. Finally, the direc-
+ tory support/pop/mmdfII contains information you'll need to
+ put a POP channel in your _\bM_\bM_\bD_\bF-_\bI_\bI configuration.
+
+
+
+[mh.6] Last change: MH.6.8.3 19
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ Note that _\bM_\bM_\bD_\bF-_\bI_\bI is distributed with the BBoards channel,
+ although the version in the _\bM_\bH distribution might be more
+ current, the version in the _\bM_\bM_\bD_\bF-_\bI_\bI distribution has been
+ tested with that revision of _\bM_\bM_\bD_\bF.
+
+ MMDF/SMTP
+ If you are using "mmdf/smtp" as your mts setting, then no
+ further MTS-specific action is required on your part!
+
+ MMDF2/SMTP
+ If you are using "mmdf2/smtp" as your mts setting, then no
+ further MTS-specific action is required on your part!
+
+ STAND-ALONE DELIVERY
+ If, instead, you want _\bM_\bH to handle its own mail delivery,
+ then no further MTS-specific action is required on your
+ part!
+
+GENERATION
+ Go to the _\bM_\bH top-level directory and generate the system.
+
+ % cd ../; make
+
+ This will cause a complete generation of the _\bM_\bH system. If
+ all goes well, proceed with installation. If not, complain,
+ as there "should be no problems" at this step.
+
+INSTALLATION
+ If the directories you chose for the user-programs,
+ support-programs and manuals ("bin", "etc", "popdir", "slib-
+ dir", and "mandir" in the conf/MH file) don't exist, you
+ should create them at this point.
+
+ Next, if you enabled support for the UCI BBoards facility,
+ then create a login called "bboards" with the following
+ characteristics: home directory is /usr/spool/bboards/ with
+ mode 755 (actually, use the value for "bbhome" given in the
+ _\bM_\bH configuration file), login shell is /bin/csh (or
+ /bin/sh), and, encrypted password field is "*". The
+ "bboards" login should own the /usr/spool/bboards/ direc-
+ tory. In addition to creating /usr/spool/bboards/, also
+ create /usr/spool/bboards/etc/ and
+ /usr/spool/bboards/archive/. These directories should also
+ be owned by the "bboards" login.
+
+ If you enabled support for POP, then on the POP service
+ host, create a login called "pop" with the following charac-
+ teristics: home directory is /usr/spool/pop/ with mode 755,
+ login shell is /bin/csh, and, encrypted password field is
+ "*". If you don't have /bin/csh on your system (V7), then
+ /bin/sh is just fine. The "pop" login should own the
+ /usr/spool/pop/ directory. You'll also need to add a line
+
+
+
+[mh.6] Last change: MH.6.8.3 20
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ to the /etc/services file and the /etc/rc.local file, see
+ the _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be for more details.
+
+ If this is not the first time you have installed _\bM_\bH, these
+ files will need particular attention:
+
+ _\bD_\bi_\br_\be_\bc_\bt_\bo_\br_\by _\bF_\bi_\bl_\be_\bs
+ "etc/" MailAliases, BBoardAliases, mtstailor
+ /usr/spool/bboards/ BBoards, .cshrc, .mh_profile
+ /usr/spool/bboards/etc/ *
+
+ The MailAliases, BBoardAliases, mtstailor and BBoards files
+ will NOT be installed over existing copies; you will need to
+ edit these by hand and merge in any changes from your previ-
+ ous _\bM_\bH release. The other files under /usr/spool/bboards/
+ will be overwritten if they exist. You may wish to preserve
+ your old versions of these before installing _\bM_\bH.
+
+ As the super-user, and from the mh.6/ directory, install the
+ system.
+
+ # make inst-all
+
+ This will cause the _\bM_\bH processes and files to be transferred
+ to the appropriate areas with the appropriate attributes.
+
+TAILORING
+ See the _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be for information on tailoring
+ _\bM_\bH for the MTS, BBoards, and POP.
+
+DOCUMENTATION
+ In addition to this document, the _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be, and
+ the _\bU_\bs_\be_\br'_\bs _\bM_\ba_\bn_\bu_\ba_\bl, there are several documents referenced by
+ the user's manual which may be useful. The sources for all
+ of these can be found under the papers/ directory.
+
+OTHER THINGS
+ Consult the directory miscellany/ for the sources to a
+ number of things which aren't part of the mainstream _\bM_\bH dis-
+ tribution, but which are still quite useful.
+
+FILES
+ Too numerous to mention. Really.
+
+SEE ALSO
+ make(1)
+
+BUGS
+ The _\bm_\bh_\bc_\bo_\bn_\bf_\bi_\bg program should be smarter.
+
+ There's no way to print the _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be until
+ after you have configured the system; it is difficult to
+
+
+
+[mh.6] Last change: MH.6.8.3 21
+
+
+
+
+
+
+MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8)
+
+
+
+ configure the system without the _\bA_\bd_\bm_\bi_\bn_\bi_\bs_\bt_\br_\ba_\bt_\bo_\br'_\bs _\bG_\bu_\bi_\bd_\be.
+
+ The Makefiles should know when _\bm_\bh_\bc_\bo_\bn_\bf_\bi_\bg has been run and
+ force "make clean" behavior.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[mh.6] Last change: MH.6.8.3 22
+
+
+
--- /dev/null
+
+
+
+
+ MH for MM Users
+
+
+
+ Mary Hegardt Tim Morgan
+
+
+
+ April 12, 1990
+
+
+
+1 Introduction
+
+
+
+This document is another in a continuing series on use of the MH mail system
+
+at UCI. It is intended for those users accustomed to the mm "user agent"
+
+(mail program) under Tops-20 and who are already familiar with network
+
+mail, but who may not be experienced Unix users. For an introduction
+
+to MH, see "MH For Beginners" by Mary Hegardt and Tim Morgan. For
+
+complete, detailed information on the MH system, see The Rand MH Message
+
+Handling System: User's Manual by Marshall T. Rose and John L. Romine.
+
+Both documents are available for Xeroxing in suite CS408.
+
+
+
+1.1 UNIX Versus Tops-20
+
+
+
+The Unix1 paradigm is that each command, or program, should perform
+
+only one function. An extension of this idea is that the operating system
+
+implements only those functions which are necessary, but it does so in a
+
+very general way so that programs may still accomplish their functions. This
+
+philosophy probably evolved because the original versions of Unix ran on
+
+PDP-11 minicomputers which had only a small memory space for each pro-
+
+cess.
+________________________________________________
+ 1 Unix is a trademark of AT&T Bell Laboratories
+
+
+
+ 1
+\f
+
+
+
+Consequently, all commands in Unix, with a very few exceptions, are in
+
+actuality programs. On Tops-20, in contrast, many of the most frequently
+
+used commands are built into the user's shell, or exec. Both the Exec and
+
+csh, which is typically the user's command interface on Unix, will accept
+
+and parse command lines, attempting to invoke a command as a program if
+
+it is not one of the built-in commands. Unix and Tops-20 are surprisingly
+
+similar internally: the use of the shell, separate processes for each command
+
+or program to execute, standard input and output for each program, and
+
+many other ideas are common to both operating systems. Users should be
+
+familiar with the capabilities of the shell, which is described in the document
+
+"Introduction to the Csh."
+
+
+
+1.2 The MH User Interface
+
+
+
+The MH mail "user agent" is different from most other mail systems. mm,
+
+for example, is a monolithic system because one program implements all the
+
+mail-related functions. The disadvantages of monolithic systems are that
+
+(a) they are large, so they tend to put more burden on the computer system,
+
+and (b) they allow for much less flexibility. In contrast, MH implements each
+
+mail command as a separate program: there is no single program called mh.
+
+This approach facilitates interspersing mail commands with other, perhaps
+
+unrelated, commands.
+
+
+Another unique feature of MH is that it takes advantage of the facilities
+
+provided by the operating system. Most mail agents, such as mm, maintain
+
+a file containing the user's mail in a special, usually undocumented, format.
+
+When a message is deleted, mm must take care of compacting the mail file.
+
+It must be able to distinguish the separate messages contained in the file.
+
+mm must also implement a simple text editor to allow the user to enter and
+
+modify a message while it is being composed. These functions are essentially
+
+those provided by the operating system when separate files are stored within
+
+a directory. Therefore, the approach taken by MH is that each message is
+
+kept in a separate file. This file simply contains the message, with no other
+
+special formatting characters or requirements. All the messages are stored
+
+within a normal Unix directory. This approach makes it easy to add new
+
+MH commands, to edit messages using standard text editors, etc.
+
+
+
+ 2
+\f
+
+
+
+All your MH related files are stored in a directory within your home directory.
+
+Usually this directory is called Mail or mhbox, although you are free to name
+
+it as you choose. Another file in your home directory called .mh_profile is
+
+equivalent to the MM.INIT file under mm. It contains all the options which
+
+you prefer for the various MH commands. It also contains the name of the
+
+MH directory and the name that you want on your outgoing mail in the
+
+From: field (your "signature ").
+
+
+
+2 Getting Started
+
+
+
+2.1 Incorporating Mail
+
+
+
+Another important difference between mm and MH is the concept of the mail-
+
+drop file. Under Tops-20, the mail transport system delivers new messages
+
+directly into the recipient's MAIL.TXT file, where they may then be processed
+
+with mm. In contrast, the Unix mail transport system, called MMDF-II,
+
+makes no assumptions about the user agent used by the recipient. Instead,
+
+it puts all new mail into a special file called the maildrop. This file is in the
+
+/usr/spool/mail directory. When you log in, if there is new mail for you
+
+in your maildrop, you will be so notified by the message
+
+
+ You have new ZOTnet mail -- type inc (or mail)
+
+
+When you are ready to process this new mail, you may type the command
+
+
+ % inc
+
+
+("incorporate") which will copy the new mail into separate files, one per mes-
+
+sage, stored in your "inbox" folder. A folder is a subdirectory beneath your
+
+MH directory which is used to store related messages. Additional information
+
+on folders is given in Section 4.5, page 13. The "inbox" is a distinguished
+
+folder because by default inc will always copy new mail into that folder,
+
+removing it from the maildrop.
+
+
+If this is the first time you have used inc or any other MH command, the
+
+mh-install program will inform you that it is creating your Mail directory.
+
+It will also create the "inbox" folder directory, and .mh_profile.
+
+
+
+ 3
+\f
+
+
+
+2.2 Message Numbers
+
+
+
+As inc processes each message, it prints a "scan" listing showing the message
+
+number, the date the message was sent, the name of the sender, the subject,
+
+and sometimes the initial part of the text of the message. A "scan" listing
+
+is thus similar to the output of the HEADERS command in mm. Each message
+
+within a folder is given a number, starting with 1, by which it can be ref-
+
+erenced. Inc will display the numbers assigned to each new message in its
+
+"scan" listing.
+
+
+As in mm, there is a "current message" number which usually identifies the
+
+message most recently manipulated by the user. With most MH commands,
+
+this will be the default message if no messages are explicitly specified in
+
+a command. Inc makes the first new message the current message, which
+
+is indicated by a "+" character in the scan listing, just after the message
+
+number.
+
+
+Many MH commands take a list of messages to process. A message desig-
+
+nation is either a single message number, two message numbers separated
+
+by a dash. The dash format indicates a range of messages including the
+
+endpoints. A message list consists of one or more message designations sep-
+
+arated by spaces. For example, messages 11 through 15 and message 17 may
+
+be indicated by typing
+
+
+ 11-15 17
+
+
+as the argument to some command. There are also several predefined names
+
+for messages or lists of messages which may be used in place of message
+
+numbers:
+
+
+ cur The current message (the last one that was handled). Equivalent
+
+ to "." or "CURRENT" in mm.
+
+ next The next message
+
+ prev The previous message
+
+ first The first message in the current folder.
+
+ last The last message in the folder. Equivalent to % or * in mm.
+
+ all All messages (first last ). Same as in mm.
+
+
+It is also possible for you to define your own named sequences of messages.
+
+
+
+ 4
+\f
+
+
+
+See the pick command description for more details.
+
+
+
+3 Processing Messages
+
+
+
+This section contains a list of the common mm commands and their equiva-
+
+lents in the in MH mail system. A short textual note describes how the MH
+
+commands differ from their mm counterparts.
+
+
+
+3.1 Listing Messages
+
+
+
+As mentioned in Section 2.2, the scan command may be used to summarize
+
+the messages in a folder, similar to the HEADERS command in mm. Unlike
+
+most MH commands, however, scan defaults to all the messages in the current
+
+folder unless you specify one or messages on the command line to be scanned.
+
+So simply typing
+
+
+ % scan
+
+
+is equivalent to typing HEADERS ALL (or H A) in mm.
+
+
+
+3.2 Reading Mail
+
+
+
+Unlike the READ command in mm, in MH there is no special mail-reading
+
+mode (indicated in mm by the R> prompt). The command to read messages
+
+in MH is show. If no message list is specified, then the current message
+
+is displayed. The message is displayed by your "showproc", as specified in
+
+the .mh_profile, described in Section 4.2. Normally, your "showproc" will
+
+be more or mhless. Both of these programs__will__display_ your messages one
+
+screenful at a time. You press the __space_bar______ __on your terminal to see the
+ ____________
+next screenful, or the __return____ _key to see the next line.
+
+
+The command
+
+
+ % show next
+
+
+
+ 5
+\f
+
+
+
+(which will display the first message following the current message in the
+
+current folder) can be abbreviated as simply
+
+
+ % next
+
+
+Similarly, the command "show prev" can be abbreviated as simply "prev".
+
+
+To get a paper copy of a mail message, take the output from the show com-
+
+mand and pipe it into the imprint command.
+
+
+ % show 5 _ imprint
+
+
+See the manual page for imprint for more information.
+
+
+
+3.3 Deleting Messages
+
+
+
+The equivalent of the DELETE command in mm is rmm in MH (remove mes-
+
+sages). It acts on the current message unless messages are specified on the
+
+command line. Unlike mm, the deleted messages will no longer show up in
+
+a "scan" listing. But the messages are not completely removed; they are
+
+renamed to have a comma prepended to the name of the file containing the
+
+message within its folder directory. Therefore, if you need to recover a mes-
+
+sage, it is possible to go into the directory and rename the message back.
+
+Be careful in doing this not to overwrite a new message with the same mes-
+
+sage number! It is a Unix convention that files whose names begin with a
+
+comma will be removed from disk (expunged ) early each morning. Therefore,
+
+your deleted messages will be available for the rest of the day, unless you re-
+
+move another message subsequently which has the same message. Then the
+
+previously deleted message is gone.
+
+
+
+3.4 Replying to Mail
+
+
+
+The equivalent of the REPLY command in mm is repl in MH. Repl may be
+
+given the number of the message to which you wish to reply, or it will default
+
+to the current message. When replying in mm, you are prompted asking
+
+if you wish to reply to all the recipients of the message to which you are
+
+replying, or only to its sender. In MH, normally the reply will be constructed
+
+
+
+ 6
+\f
+
+
+
+to be sent to all the recipients. You may select which recipients receive copies
+
+of your reply by using the -query option on repl, or by putting this option
+
+in your .mh_profile, as described in Section 4.2. If you wish a reply to go
+
+to everyone but yourself, you can use repl -nocc me.
+
+
+
+3.5 Sending Mail
+
+
+
+The equivalent of the SEND mm command is comp ("compose") in MH. These
+
+two commands are fairly similar, except that the recipient of the message
+
+cannot be specified on the comp command line. The comp program invokes
+
+a simple editor called prompter which will prompt you for the To:, Cc:, and
+
+Subject: fields of the message. Then a line of dashes is typed, and you
+
+may enter the__body__of your message (its text,__in__mm_ terms). When you are
+
+finished, type __ctrl__-__D (equivalent to typing __ESC_______or control-Z in mm). Then
+
+you'll receive the prompt
+
+
+ What now?
+
+
+which is similar to mm's S> prompt. You may receive a list__of__the_ options
+
+that you have at this point by typing "?" followed by __return____._ Here is a
+
+short list of the options and their meanings. Notice that, unlike mm, there
+
+are very few commands to modify the message (such as the TEXT, TO, CC, etc.,
+
+commands which may be typed at the S> prompt in mm). In place of these
+
+commands, you use the edit command to invoke your favorite text editor
+
+on the message, and you use it to make the equivalent changes. You also use
+
+your editor to include other files into the body of the message, rather than
+
+using control-B, as in mm. One additional use of the edit command is for
+
+spelling checking. In mm, you may use the command SPELL for this purpose.
+
+In MH, you type "edit spell"2 instead. This will cause the spelling checker
+
+to be run, giving you a list of the possibly misspelled words in your message.
+
+
+
+ edit editor Edit the message using the specified editor. When you
+
+ exit, you will be back at What now?.
+________________________________________________
+ 2 Actually, any program named after the "edit" command will be invoked with what-
+
+ever arguments you have given and a path to the file containing the message you are
+editing.
+
+
+
+ 7
+\f
+
+
+
+ list Shows the message you just typed
+
+
+ whom -check Verifies that the addresses you have used are valid as far
+
+ as our system can tell
+
+
+ send Sends the message to the recipients
+
+
+ push Sends the message in the background
+
+
+ quit Quits without sending the message. Saves the text of
+
+ the message as a "draft". Type comp -use to get back
+
+ to that draft later.
+
+
+ quit -delete Quit, throwing away the draft
+
+
+
+3.6 Forwarding Mail
+
+
+
+The forw command is used in MH to forward messages. It will take a list
+
+of messages on the command line to be forwarded, or it will default to the
+
+current message if none are specified. It will prompt you like comp does
+
+for the To:, Cc:, and Subject: fields. Note that, unlike mm's FORWARD
+
+command, forw will not construct a subject line automatically. Also as with
+
+comp, you will have the opportunity to add additional text to the message(s)
+
+which you are forwarding, ended with a control-D.
+
+
+
+3.7 Resending Mail
+
+
+
+The equivalent of the RESEND command in mm is the dist ("distribute")
+
+command in MH. Dist works very much like the forw command, except
+
+that the prompts will be Resend-To:, Resend-Cc:, etc. After filling in the
+
+headers, a line of dashes is typed giving the impression that additional text
+
+can be entered. Nothing could be further from the truth; if you add any text
+
+at this point the dist will fail. Your only opportunity to add text is in the
+
+Resend-Note: field.
+
+
+
+ 8
+\f
+
+
+
+4 Advanced Topics
+
+
+
+4.1 Selecting Messages
+
+
+
+In mm, you may use several reserved command words to select messages
+
+in place of an explicit list of message numbers. For example, you can
+
+type "DELETE FROM SMITH" to remove all the messages from a user named
+
+"Smith". Rather than building such a capability into each MH program
+
+which can process message lists, a special program called pick is used in-
+
+stead. Just as there are predefined sequences of messages, such as "all",
+
+"cur", etc., you may use pick to define your own sequences. Pick is capable
+
+of selecting messages from a folder based on the To:, From:, Subject:, Cc:,
+
+or Date: fields, or by searching the body of the message. The patterns to
+
+be searched for may include full regular expressions (see the "man" page for
+
+ed(1) for more information) or simple strings.
+
+
+Pick may be used in one of two ways. First, it may output the sequence of
+
+message numbers which match the search parameters. Using the backquot-
+
+ing mechanism of the shell, these message numbers may then become the
+
+arguments to other MH programs. The second way to use pick is to have it
+
+define a new sequence name which will be the messages which were selected.
+
+Only this second method of using pick will be described here; see pick(l) if
+
+you wish to use the first method.
+
+
+In your .mh_profile, add the line
+
+
+ pick: -seq sel
+
+
+Then each time you use the pick command, it will define the resulting se-
+
+quence of messages to be called "sel". Then to "pick" all the messages in the
+
+current folder which are from "Smith", just type
+
+
+ % pick -from smith
+
+
+To see a summary of those messages, type
+
+
+ % scan sel
+
+
+Then to the remove the messages, type the command
+
+
+
+ 9
+\f
+
+
+
+ % rmm sel
+
+
+You can pick messages according to any of the headers (-to -from -subj
+
+-cc or -date) or just search all the messages for a given word (-search).
+
+
+
+4.2 Customizing Your Mail Environment
+
+
+
+In mm, you use the PROFILE command to tailor your mail environment.
+
+This command writes a file called MM.INIT in your home directory which
+
+is then read by subsequent executions of mm. In the MH system, the file
+
+.mh_profile serves the same purpose. It is edited with any normal text
+
+editor, rather than using a special-purpose command to modify it. The
+
+format of the file is line oriented, one line per MH program or MH option to
+
+be set. The only required line in the profile is the name of the primary MH
+
+mail directory, which is by default Mail. This information is specified by the
+
+line
+
+
+ Path: Mail
+
+
+The textual name you would like to have on your outgoing mail is specified
+
+by the Signature: line. For example,
+
+
+ Signature: Mary Hegardt
+
+
+The BBoards which you like to read should also be listed in the .mh_profile
+
+(see Section 4.6, page 14, for additional information). For example, if you
+
+read the "system" BBoard (where all important announcements are posted),
+
+as well as "whimsey" and "imagen-users" BBoards, your .mh_profile should
+
+contain the line
+
+
+ bboards: system whimsey imagen-users
+
+
+Other options may be specified on a per-program basis. The format for these
+
+lines is the same. First, the program name is given followed by a colon. Then
+
+any flags which are to be the default options for that program are given. Here
+
+is a short list of the most common options which you may want to set in your
+
+.mh_profile:
+
+
+ showproc: mhless
+
+
+
+ 10
+\f
+
+
+
+The showproc is the program used to show messages to you. By default, it
+
+is the more command. Mhless is the same as more except that it omits the
+
+headers of the messages which you indicate that you wish not to see. Type
+
+
+ % man mhless
+
+
+for more information about this program.
+
+
+ msh: -scan
+
+
+Selecting this option causes an automatic scan of new messages on BBoards to
+
+be made when reading BBoards with bbc, similar to the scan listing produced
+
+by inc.
+
+
+ repl: -query
+
+
+causes repl to ask for each address in the message being replied to if it should
+
+be included in the To: or Cc: fields of the reply being composed.
+
+
+ pick: -seq sel
+
+
+This line will cause messages "picked" by the pick command to be put into
+
+a sequence named "sel". This sequence name may then be used just as the
+
+built-in sequences ("last", "first", etc.).
+
+
+
+4.3 Aliases
+
+
+
+Using MH, you may specify your own private mail aliases. This feature allows
+
+you to store lists of addresses or long internet addresses of people with whom
+
+you frequently correspond in one file, and then to address them using short
+
+mnemonic names. Typically, you will call your alias file "aliases"; it must
+
+be stored in your MH directory. The format of this file is simple. The alias
+
+is given, followed by a colon, followed by one or more legal mail addresses
+
+separated by commas. For example, you might for some reason have an alias
+
+for all the users named "Rose" in the ICS department:
+
+
+ roses: prose, srose, mrose, drose
+
+
+In addition to your "aliases" file, you will need to modify your .mh_profile
+
+in order to use aliases. You should add the flag "-alias aliases" to the
+
+
+
+ 11
+\f
+
+
+
+entries for the commands ali, whom, send, and push, creating entries for
+
+these programs if they aren't already in your .mh_profile. Now, messages
+
+addressed to "roses" will be distributed to all the people listed in the alias.
+
+
+The ali command is used to show you what an alias expands to. You just
+
+type
+
+
+ % ali alias
+
+
+and ali will respond with the expansion of the alias. Ali searches the system
+
+aliases file in addition to your private ones.
+
+
+
+4.4 Blind Lists
+
+
+
+There are two different types of so-called "blind addressing" of messages.
+
+Users of mm may already be familiar with the "Blind Carbon Copy", or
+
+BCC: field. It allows you to add recipients to your message just like those
+
+who are CC'd, but the normal recipients will not see that the BCC recipients
+
+were copied on the message, their replies will not go to the blind recipients,
+
+and the blind recipients cannot (easily) reply to the message.
+
+
+The second type of blind mailing is actually called a "group address list",
+
+although it is commonly referred to as a "blind list". The format of this type
+
+of address is
+
+
+ phrase : address__list ;
+
+
+where the "phrase " is any English phrase of one or more words, and the
+
+address__list consists of one or more addresses separated by commas. The
+
+recipients of a message addressed in this fashion will see simply
+
+
+ phrase : ;
+
+
+so when they reply to the message, their reply will come only to the sender
+
+(or the Reply-To: field, if one was specified), rather than going to all the
+
+recipients of the original list. For example, to use a group address list for the
+
+"roses" alias you would type:
+
+
+ To: People Named Rose: roses;
+
+
+
+ 12
+\f
+
+
+
+This type of group address is very useful for making up lists of related people,
+
+such as all the people working on a particular research project.
+
+
+
+4.5 Folders
+
+
+
+As mentioned previously, folders are directories within your MH directory
+
+used to store related messages. There is no equivalent of the folder concept
+
+in the mm system. Usually, you will use only the folder "inbox", so you won't
+
+have to worry about folders. However, if you process a large volume of mail,
+
+then folders become invaluable in managing the messages which you wish to
+
+keep for future reference.
+
+
+Just as there is a "current message," MH maintains a "current folder," which
+
+will normally be "inbox". You can change folders either by specifying the
+
+folder on the command line of MH programs which take a list of messages as
+
+an argument, or by using the folder command:
+
+
+ % folder +folder__name
+
+
+In general, the folder name is indicated by a "+" sign followed immediately
+
+by the folder name, all preceeding any list of messages. For example, you
+
+may read the most recent message in a folder called "job__offers" using the
+
+command
+
+
+ % show +job__offers last
+
+
+This command will have the side-effect of setting the current folder to be
+
+"job__offers". You may move messages from the current folder into the
+
+"job__offers" folder using the command
+
+
+ % refile +job__offers messages
+
+
+where, as usual, the messages list will default to the current message in the
+
+current folder if none are specified. Note that, in contrast with the show
+
+command and most other MH commands, the messages are not considered
+
+to be in the folder "job__offers". You may obtain a summary of all your folders
+
+by typing the command
+
+
+ % folders
+
+
+
+ 13
+\f
+
+
+
+When you remove messages from a folder using the rmm command, the
+
+deleted messages will show up as a "hole" in the message numbering. The
+
+command
+
+
+ % folder -pack
+
+
+will cause all the messages within one folder to be renumbered starting with 1.
+
+Similarly, the command
+
+
+ % folders -pack
+
+
+will do the same thing for all your folders.
+
+
+To remove an empty folder, use the command
+
+
+ % rmf +folder
+
+
+
+4.6 Reading BBoards
+
+
+
+Two special-purpose programs are utilized in reading BBoards. The first is
+
+bbc, which is used to check a list of BBoards for new messages. The list of
+
+messages may be given on the command line, or if not, it will be taken from
+
+the BBoards: list in your .mh_profile. You may obtain a list of all the
+
+available BBoards by typing the command
+
+
+ % bbc -topics
+
+
+For each BBoard with unseen messages, bbc will invoke the MH shell, msh,
+
+whose prompt is
+
+
+ (msh)
+
+
+The msh program allows you to read BBoard mail as if it were normal mes-
+
+sages in one of your folders. Almost all the MH commands will work just
+
+as the normally do. Typing the command "quit" to msh causes it to stop
+
+reading the current BBoard and go on to the next one containing unseen
+
+messages, or to exit if there are no more such BBoards. Typing control-D
+
+causes msh to exit unconditionally. The command mark followed by a mes-
+
+sage number causes msh to act as if you have seen that message and all
+
+previous ones.
+
+
+
+ 14
+\f
+
+
+
+4.7 Checking for Mail
+
+
+
+Under Unix, there are about a dozen different ways to check for new mail.
+
+The easiest way to do it is to set the csh variable named "mail" to tell csh
+
+to check for new mail for you periodically. To do this, add the line
+
+
+ set mail=(60 /usr/spool/mail/$USER)
+
+
+to your .login file in your home directory. This command says to check
+
+for mail if csh is about to prompt you with a % sign, and if it has been at
+
+least 60 seconds since it last checked for mail. The advantage of this method
+
+of mail notification, besides simplicity, is that you will never be interrupted
+
+by a mail notification. You will only be notified of new mail when you are
+
+between commands, when the shell is about to prompt you.
+
+
+If you desire asynchronous mail notification, which will print to your terminal
+
+regardless of what you are currently doing, you may make use of a "Receive
+
+Mail Hook" called "rcvtty". To do this, create a file in your home directory
+
+called ".maildelivery". In this file, put the line
+
+
+ * - pipe R /usr/uci/lib/mh/rcvtty
+
+
+Then each time new mail arrives, you will receive a one-line "scan" listing
+
+of the mail if your terminal is world-writable. For more information on
+
+"maildelivery" files, type:
+
+
+ % man 5 maildelivery
+
+
+
+4.8 Saving Drafts
+
+
+
+Normally when you use comp, it creates the message being composed in a
+
+file called "draft" in your MH directory. If you use the "quit" option at
+
+the "What now?" prompt, this file will remain there. You may later use the
+
+command
+
+
+ % comp -use
+
+
+to resume composing the message.
+
+
+
+ 15
+\f
+
+
+
+If you begin composing a new message and there is already a "draft" file,_you___
+
+will be asked for the disposition of this file. Typing ? __return____ _will give you
+
+a list of the options at this point. Normally you will either replace (delete)
+
+the old draft and begin a new one or use the old one.
+
+
+The -file switch to comp may be used to specify the name of a draft other
+
+than "draft". For example, one might type
+
+
+ % comp -file mary
+
+
+to begin composing a message maintained in the draft file "mary". Typing
+
+
+ % comp -file mary -use
+
+
+would cause comp to resume composing this same draft after a "quit" com-
+
+mand to the "What now?" prompt.
+
+
+Very advanced users of MH maintain multiple draft files in a draft folder.
+
+This is a normal folder which holds all your drafts, rather than having just
+
+one draft in your MH directory named "draft". If you feel that you need to
+
+use draft folders, you should consult the MH User's Manual for additional
+
+information.
+
+
+
+ 16
--- /dev/null
+
+
+
+
+ Changes to
+
+
+ The Rand MH Message Handling System:
+
+
+ MH #6.5 for 4.3BSD UNIX
+
+
+
+ Marshall T. Rose
+
+ Northrop Research and Technology Center
+
+ One Research Park
+
+ Palos Verdes Peninsula, CA 90274
+
+
+
+ April 12, 1990
+
+
+
+ Abstract
+
+ This document describes the user-visible change to the UCI ver-
+ sion of the Rand MH system that were made from mh.5 to MH #6.5.
+ It is based on the mh.6 changes document, but has been updated to
+ accurately reflect the MH distributed with 4.3bsd UNIX1 . This docu-
+ ment does not describe bug-fixes, per se, or internal changes, unless
+ these activities resulted in a visible change for the MH user.
+ This document is meant to supplement, not supersede, the stan-
+ dard MH User's manual[MRose85 ].
+ Comments concerning this documentation should be addressed to
+ the Internet mailbox Bug-MH@ICS.UCI.EDU.
+
+
+
+________________________________________________
+ T0his document (version #2.10) was LaTEX set April 12, 1990 with lplain v2.09-10/29/85.
+ 1 UNIX is a trademark of AT&T Bell Laboratories.
+
+
+
+ 1
+\f
+
+
+
+Acknowledgements
+
+
+The MH system described herein is based on the original Rand MH system.
+
+It has been extensively developed (perhaps too much so) by Marshall T. Rose
+
+and John L. Romine at the University of California, Irvine. Einar A. Stef-
+
+ferud, Jerry N. Sweet, and Terry P. Domae provided numerous suggestions
+
+to improve the UCI version of MH . Of course, a large number of people have
+
+helped MH along. The list of "MH immortals" is too long to list here. How-
+
+ever, Van Jacobson deserves a special acknowledgement for his tireless work
+
+in improving the performance of MH . Some programs have been speeded-up
+
+by a factor of 10 or 20. All of users of MH , everywhere, owe a special thanks
+
+to Van.
+
+
+
+Disclaimer
+
+
+The Regents of the University of California wish to make it known that:
+
+
+ Although each program has been tested by its contributor, no
+
+ warranty, express or implied, is made by the contributor or the
+
+ University of California, as to the accuracy and functioning of
+
+ the program and related program material, nor shall the fact of
+
+ distribution constitute any such warranty, and no responsibility
+
+ is assumed by the contributor or the University of California in
+
+ connection herewith.
+
+
+
+ 2
+\f
+
+
+
+Conventions
+
+
+In this document, certainaL TE X -formatting conventions are adhered to:
+
+
+ 1. The names of UNIX commands, such as comp , are presented in text
+
+ italics.
+
+
+ 2. Arguments to programs, such as `msgs', are presented in typewriter
+
+ style and delimited by single-quotes.
+
+
+ 3. UNIX pathnames and envariables, such as
+
+
+ /usr/uci/ and $SIGNATURE ;
+
+
+ are presented in slanted roman.
+
+
+ 4. Text presenting an example, such as
+
+
+
+ comp -editor zz
+
+
+
+ is presented in typewriter style.
+
+
+
+ 3
+\f
+
+
+
+General Changes
+
+
+Unlike the changes between mh.4 and mh.5 , a large number of user-visible
+
+changes have been made in mh.6 . These changes have been in the form of
+
+bug fixes and several generalizations. The majority of these will not affect
+
+novice users. In addition, mh.6 is a great deal faster than mh.5 : all programs
+
+have been speeded-up significantly, thanks to work done by Van Jacobson as
+
+part of the process of including mh.6 in the 4.3bsd UNIX distribution.
+
+ This document describes all user-visible changes to mh.5 from it's initial
+
+release to the intermediate release of MH #6.5.
+
+
+
+System-5 Support
+
+
+In addition to support for bsd UNIX, V7 UNIX and Xenix2 variants of UNIX,
+
+MH finally has support for the AT&T variant of UNIX, System 5. Hopefully
+
+this will greatly expand the number of system which can run MH . Ironically,
+
+it appears that five ports of earlier versions of MH (including mh.5 ) were
+
+done, but news of the work was not widespread.3
+
+
+
+Documentation
+
+
+Several new documents have been included in the mh.6 distribution: The
+
+paper MH.5: How to process 200 messages a day and still get some real work
+
+done was presented at the 1985 Summer Usenix Conference and Exhibition
+
+in Portland, Orgeon. Another paper, MH: A Multifarious User Agent, has
+
+been accepted for publication by Computer Networks. Both describe MH , the
+
+former from a more technical and somewhat humorous perspective, the latter
+
+from a more serious and research-oriented perspective. In addition, a third
+
+paper has been included, Design of the TTI Prototype Trusted Mail Agent,
+
+which describes a so-called "trusted" mail agent built on top of MH . This
+
+paper was presented at the Second International Symposium on Computer
+
+Message Systems in Washington, D.C. A fourth paper, MZnet: Mail Service
+
+for Personal Micro-Computer Systems, is also included. This paper, which
+________________________________________________
+ 2 Xenix is a trademark of Microsoft Corporation.
+ 3 In fact, three groups in one large organization ported MH independently, each without
+
+knowledge of the others' work.
+
+
+
+ 4
+\f
+
+
+
+was presented at the First International Symposium on Computer Message
+
+Systems in Nottingham, U.K., describes a CP/M4 -based version of MH .
+
+ In addition, the MH tutorial, The Rand MH Message Handling System:
+
+Tutorial, and, The Rand MH Message Handling System: The UCI BBoards
+
+Facility, have both been updated by Jerry N. Sweet.
+
+ For MH administrators (PostMasters and the like), there's an entirely
+
+new document, The Rand MH Message Handling System: Administrator's
+
+Guide. It explains most of the "ins and outs" of maintaining an MH system.
+
+ Finally, all of the manual entries and the MH manual have had a thorough
+
+working over. The documentation is expanded, more accurate, and more
+
+detailed.
+
+
+
+Help Listings
+
+
+When any MH command is invoked with the `-help' switch, in addition to
+
+listing the syntax of the command and version information, the MH config-
+
+uration options will be listed. MH has so many configuration options, that
+
+when debugging problems, this information is invaluable.
+
+
+
+The MH Profile
+
+
+There are two new profile entries worth noting: MH-Sequences tells MH the
+
+name of the file to record public sequences in. Users of vm , a proprietary,
+
+visual front-end to MH , make use of this to disable the public sequences
+
+feature of MH .
+
+ The profile entry Unseen-Sequence names those sequences which should
+
+be defined as those messages recently incorporated by inc . The show program
+
+knows to remove messages from this sequence once it thinks they have been
+
+seen. If this profile entry is not present, or is empty, then no sequences are
+
+defined. Otherwise, for each name given, the sequence is first zero'd and then
+
+each message incorporated is added to the sequence. As such, this profile
+
+entry is rather analogous to the Previous-Sequence entry in the user's MH
+
+profile.
+
+ In addition, the Alternate-Mailboxes entry in the profile has been ex-
+
+panded to support simple wild-carding. Also, the default for this profile entry
+________________________________________________
+ 4 CP/M is a trademark of Digital Research Corporation.
+
+
+
+ 5
+\f
+
+
+
+is now the user's mail-id at any host. This change was made since MH can
+
+no longer reliably figure out what the user's real outgoing address looks like.
+
+ Finally, when the install-mh program is automatically invoked by MH , it
+
+won't prompt the user for information. Instead, it notes that it's setting up
+
+the default environment. In addition, the MH administrator may set-up a
+
+file called mh.profile in the MH library area which is consulted by install-mh
+
+when initializing the user's .mh__profile .
+
+
+
+The MH Context
+
+
+The folder , scan , and show programs have been modified to update the user's
+
+MH context prior to writing to the user's terminal. This allows the MH user
+
+interrupt output to the terminal and still have the expected context. This is
+
+especially useful to interrupt long scan listings. This change also introduces
+
+a subtle bug between show and messages denoted by the Unseen-Sequence.
+
+See show (1) for the details.
+
+
+
+Addresses and 822 support
+
+
+MH now fully supports the RFC-822 routing syntax for addresses (it used to
+
+recognize the syntax, but ignore the information present). In addition, there
+
+are three major modes for support of non-822 addressing in MH :
+
+
+ - BERK
+
+ This is useful on sites running SendMail . It doesn't support full 822-
+
+ style addressing, in favor of recognizing such formats as ACSnet, and
+
+ so on. For sites that can't run in an 822-compliant environment, this is
+
+ the option to use (at the price of sacrificing some of the power of 822-
+
+ style addressing). This also drastically reduces the address formatting
+
+ facilities described below.
+
+
+ - DUMB
+
+ Although not as liberal as BERK, the DUMB option is useful on sites
+
+ in which the message transport system conforms to the 822 standard,
+
+ but wants to do all the defaulting itself.
+
+
+ - BANG
+
+ From out in left field, the BANG option favors UUCP -style addressing
+
+
+
+ 6
+\f
+
+
+
+ over 822-style addressing. Hopefully when all the UUCP sites around
+
+ get around to adopting domain-style addresses, this option won't be
+
+ needed.
+
+
+ The ap program (mentioned momentarily) and the ali program both sup-
+
+port a `-normalize' switch indicate if addresses should be resolved to their
+
+"official" hostnames.
+
+
+
+New Programs
+
+
+There are five new programs available: The ap program is the MH stand-
+
+alone address parser. It's useful for printing address in various formats (and
+
+for debugging address strings). The dp program is similar, but works on
+
+dates instead of addresses.
+
+ The msgchk program checks for new mail, possibly using the Post Office
+
+Protocol, POP, described below.
+
+ A new receive mail hook, the rcvstore program, which was written by
+
+Julian L. Onions is available.
+
+ Finally, a visual front-end to msh called vmh has been included. (This
+
+program is discussed in greater detail later on.)
+
+
+
+Message Numbering
+
+
+MH now no longer restricts the number of messages which may reside in a
+
+folder (beyond that of system memory constraints). This means that message
+
+numbers larger than 2000 are permissible. Hopefully this will make life easier
+
+for people reading the network news using MH .
+
+
+
+The WhatNow Shell
+
+
+In mh.6 , there is now the concept of a unified What now? processor that
+
+the four composition programs, comp , dist , forw , and repl all invoke. This
+
+permits a greater flexibility in building mail applications with MH . As a
+
+result, there's a new program, whatnow , which acts as the default What now?
+
+program. Consult the whatnow (1) manual entry for all the details. The only
+
+important user-visible change is the headers option went away, which wasn't
+
+used that much anyway.
+
+
+
+ 7
+\f
+
+
+
+ The only other thing worth noting is that unless MH has been compiled
+
+with the UCI option, the user's $HOME/.signature file is not consulted for
+
+the user's personal name.
+
+
+
+Format Strings
+
+
+A general format string facility has been added to allow MH users to tailor
+
+the output of certain commands.
+
+ The inc , scan , ap , and dp programs all consult a file containing format
+
+strings. Format strings, which look a lot like printf (3) strings, give these MH
+
+commands precise instructions on how to format their output.
+
+ As a result, the inc and scan programs no longer have the `-size', `-
+
+nosize', `-time', `-notime', `-numdate', and `-nonumdate' switches. These
+
+switches have been replaced with the `-form formatfile' switch and the
+
+`-format string' switch. The former directs the program to consult the
+
+named file for the format strings. The latter directs the program to use the
+
+named string as the format. To get the behavior of the old `-time' option,
+
+use the `-form scan.time' option. Similarly, to get the effect of `-size', use
+
+`-form scan.size'.
+
+ A fun form to use is `-form scan.timely' with scan . Try it sometime.
+
+ The repl command uses a file containing format files to indicate how the
+
+reply draft should be constructed. Note that reply templates prior to mh.6
+
+are incompatible with mh.5 .5 Don't worry though, it's quite easy to convert
+
+the templates by hand. (Those clever enough to have written a reply template
+
+to begin with won't have any problem.)
+
+ Similarly, when the forw program is constructing a digest, it uses a file
+
+containing format strings to indicate how to build the encapsulating draft.
+
+ Finally, you can use these facilities in mhl as well.
+
+
+
+News
+
+
+The depreciated MH news system (from mh.1 ) is now de-supported. Use the
+
+"hoopy" BBoards facility instead.
+________________________________________________
+ 5 In fact, reply templates between mh.6 and MH #6.5 are imcompatible.
+
+
+
+ 8
+\f
+
+
+
+BBoards
+
+
+MH maintainers take note: the default home directory for the bboards login
+
+has changed from /usr/bboards/ to /usr/spool/bboards/ . Use the bbhome
+
+directive in your MH configuration file to set it back to the old value if you
+
+wish.
+
+ In addition, the aliases field for a BBoard in the BBoards file is now
+
+deemed useful only for addressing, not for user input to bbc . This means
+
+when giving the name of a BBoard to bbc , only the official name should be
+
+used.
+
+ A final note for mailsystem maintainers: the MMDF-II BBoards chan-
+
+nel and the SendMail BBoards mailer have been modified to use the stan-
+
+dard message encapsulation format when returning failed messages to the list
+
+maintainer. This means that the failure notices that the maintainer receives
+
+can simply be burst .
+
+
+
+New Switches in bbc
+
+
+The bbc program permits you to specify the mshproc to use on the command
+
+line by using the `-mshproc program' option. There's also a `-rcfile file'
+
+option which does "the obvious thing". In addition, options which aren't
+
+understood by bbc are passed along to the mshproc.
+
+ In addition, the following commands pass any unrecognized switches on
+
+to the program that they invoke: bbc , next , show , prev , and vmh .
+
+
+
+Distributed BBoards
+
+
+If both BBoards and POP (see the next section) are enabled, then distributed
+
+BBoards can be supported on top of the POP service. This allows the MH
+
+user to read BBoards on a server machine instead of the local host (which
+
+saves a lot of wasted disk space when the same BBoards are replicated sev-
+
+eral times at a site with several hosts). See the Administrator's Guide for
+
+information on how this can be made completely transparent to the MH user.
+
+ If you have several machines at your site running 4.2bsd UNIX and con-
+
+nected by an Ethernet6 (or other high-speed LAN), you want this software.
+________________________________________________
+ 6 Ethernet is a trademark of the Xerox Corporation.
+
+
+
+ 9
+\f
+
+
+
+Visual Front-End to msh
+
+
+A simple window management protocol has been implemented for MH pro-
+
+grams that might wish to act as a back-end to a sophisticated visual front-
+
+end.
+
+ The first implementation of a server side (front-end) program is vmh ,
+
+which uses curses (3) to maintain a split-screen interface. Perhaps look for a
+
+mhtool program for the SUN next!
+
+ The msh program has been modified to speak the client side (back-end)
+
+of this protocol, if so directed. At present, msh is the only program in the
+
+MH distribution which implements the client side of the window management
+
+protocol.
+
+
+
+Updates in msh
+
+
+Prior to quitting, the msh command now asks if the packf 'd file you've been
+
+perusing should be updated if you've modified it and the file is writable by
+
+you. The file can be modified by using burst , rmm , rmm , or sortm commands.
+
+The file can also be modified by using the refile command without the `-link'
+
+option. (Or course, the `-link' option doesn't actually link anything to the
+
+file.)
+
+
+
+Distributed Mail
+
+
+MH now contains a powerful facility for doing distributed mail (having MH
+
+reside on a host different than the message transport agent). For general
+
+information, consult either the MH.5: How to process 200 messages a day
+
+and still get some real work done paper, or the MH: A Multifarious User
+
+Agent paper. For specific information, consult the Administrator's Guide.
+
+Here's a brief synopsis:
+
+ This POP facility in MH is based on a modification of the ARPA Post
+
+Office Protocol (POP). A POP subscriber is a remote user, on a POP client
+
+host, that wishes to pick-up mail on a POP service host.
+
+ There are two ways to administer POP:
+
+
+ - Naive Mode
+
+ Each user-id in the passwd (5) file is considered a POP subscriber. No
+
+
+
+ 10
+\f
+
+
+
+ changes are required for the mailsystem on the POP service host. How-
+
+ ever, this method requires that each POP subscriber have an entry in
+
+ the password file. The POP server will fetch the user's mail from wher-
+
+ ever maildrops are kept on the POP service host. This means that if
+
+ maildrops are kept in the user's home directory, then each POP sub-
+
+ scriber must have a home directory.
+
+
+ - Smart Mode
+
+ This is based on the notion that the list of POP subscribers and the
+
+ list of login users are completely separate name spaces. A separate
+
+ database (similar to the BBoards (5) file) is used to record information
+
+ about each POP subscriber. Unfortunately, the local mailsystem must
+
+ be changed to reflect this. This requires two changes (both of which
+
+ are simple):
+
+
+ 1. Aliasing
+
+ The aliasing mechanism is augmented so that POP subscriber ad-
+
+ dresses are diverted to a special delivery mechanism. MH comes
+
+ with a program, popaka (8), which generates the additional infor-
+
+ mation to be put in the mailsystem's alias file.
+
+ 2. Delivery
+
+ A special POP delivery channel (for MMDF-II ) or POP mailer (for
+
+ SendMail ) performs the actual delivery (mh.6 supplies both). All
+
+ it really does is just place the mail in the POP spool area.
+
+
+ Clever mailsystem people will note that the POP mechanism is really
+
+ a special case of the more general BBoards mechanism.
+
+
+These two different philosophies are not compatible on the same POP service
+
+host: one or the other, but not both, may be run.
+
+ In addition, there is one user-visible difference, which the administrator
+
+controls the availability of. The difference is whether the POP subscriber
+
+must supply a password to the POP server:
+
+
+ - ARPA standard method
+
+ This uses the standard ARPA technique of sending a username and a
+
+ password. The appropriate programs (inc , msgchk , and possibly bbc )
+
+ will prompt the user for this information.
+
+
+
+ 11
+\f
+
+
+
+ - UNIX remote method
+
+ This uses the Berkeley UNIX reserved port method for authentication.
+
+ This requires that the two or three mentioned above programs be setuid
+
+ to root. (There are no known holes in any of these programs.)
+
+
+These two different philosophies are compatible on the same POP service
+
+host: to selectively disable RPOP for hosts which aren't trusted, either mod-
+
+ify the .rhosts file in the case of POP subscribers being UNIX logins, or zero
+
+the contents of network address field of the pop (5) file for the desired POP
+
+subscribers.
+
+ The inc command also has two other switches when MH is enabled for
+
+POP: `-pack file' and `-nopack'. Normally, inc will use the POP to incor-
+
+porate mail from a POP service host into an MH folder (+inbox). However,
+
+there are some misguided individuals who prefer to msh to read their mail-
+
+drop. By using the `-pack file' option, these individuals can direct inc to
+
+fetch their maildrop from the POP service host and store it locally in the
+
+named file. As expected, inc will treat the local file as a maildrop, performing
+
+the appropriate locking protocols. And, if the file doesn't exist, the user is
+
+now asked for confirmation.
+
+
+
+Rcvmail hooks
+
+
+In order to offer users of MH increased rcvmail hook functionality, the slocal
+
+program has been upgraded to support the semantics of the MMDF-II mail-
+
+delivery mechanism. This means that users of mh.6 can maintain identi-
+
+cal .maildelivery files regardless of the underlying transport system. See
+
+mhook (1) for all the details.
+
+
+
+Change in rcvdist
+
+
+The rcvdist rcvmail hook now uses the MH formatting facility when redis-
+
+tributing a message.
+
+
+
+Field change in rcvpack
+
+
+The rcvpack rcvmail hook now adds the field name Delivery-Date: instead
+
+of Cron-Date: to messages it pack s.
+
+
+
+ 12
+\f
+
+
+
+GNU Emacs Support
+
+
+James Larus' mh-e macro package for GNU Emacs (version 17) is included
+
+in the distribution. When loaded in Emacs, this provides a handy front-end.
+
+
+
+Other Changes
+
+
+Here's the miscellany:
+
+
+
+Continuation Lines
+
+
+Alias files used by MH , display templates used by mhl , and format files used
+
+by forw , repl , and scan all support a standard continuation line syntax. To
+
+continue a line in one of these files, simply end the line with the backslash
+
+character (`n'). All the other files used by MH are in 822-format, so the
+
+822-continuation mechanism is used.7
+
+
+
+Default Date Format
+
+
+MH now uses numeric timezones instead of locally-meaningful alpha time-
+
+zones when generating mail. This change was made to encourage the use
+
+of unambiguous, globally-meaningful timezone strings. A local configura-
+
+tion option can disable this correct behavior. All of the mhl templates have
+
+been modified to use locally-meaningful alpha timezones when displaying
+
+messages.
+
+
+
+New switch in ali
+
+
+The ali command now has a `-noalias' switch to prevent system-wide aliases
+
+from being interpreted.
+
+
+
+Modifications to show
+
+
+The `-format', `-noformat', `-pr', and `-nopr' options to show have gone away
+
+in favor of a more general mechanism. The `-showproc program' option tells
+________________________________________________
+ 7 Looking back, it would have been best had all files in MH used the 822-format.
+
+
+
+ 13
+\f
+
+
+
+show (or next or prev ) to use the named program as the showproc. The
+
+`-noshowproc' option tells show , et. al., to use the cat (1) program instead of
+
+a showproc. As a result, the profile entry prproc is no longer used.
+
+
+
+Switch change in inc
+
+
+The `-ms ms-file' switch in inc has been changed to `-file name' to be
+
+more consistent.
+
+
+
+Front-End to mhl
+
+
+When outputting to a terminal, the mhl program now runs the program
+
+denoted by the profile entry moreproc. If this entry is not present, the
+
+default is the UCB more program. If the entry is non-empty, then that
+
+program is spliced between mhl and the user's terminal. The author uses the
+
+less program as his moreproc.
+
+ Of course, if mhl isn't outputting to a terminal, then moreproc is not
+
+invoked.
+
+ Finally, to aid in the construction of replies, a prefix string may be speci-
+
+fied for the body component of the message being replied-to. Simply use the
+
+component= construct in mhl for body:.
+
+
+
+Confirmation in packf
+
+
+If the file specified by the `-file name' switch doesn't exist, the user is now
+
+asked for confirmation.
+
+
+
+Complex Expressions in pick
+
+
+The pick command now handles complex boolean expressions.
+
+
+
+Defaults change in prompter and burst
+
+
+The `-prepend' option is now the default in prompter . The `-noinplace'
+
+option is now the default in burst .
+
+
+
+ 14
+\f
+
+
+
+Fcc:s and post
+
+
+If multiple Fcc:s for a message are specified during posting, post will try much
+
+harder to preserve links.
+
+
+
+Interactive option in rmf
+
+
+The rmf program has been changed to support an `-interactive' switch.
+
+If given, then the user is prompted regarding whether the folder should be
+
+deleted. If the folder to be removed is not given by the user, this switch is
+
+defaulted to on.
+
+
+
+Trusted Mail Interface
+
+
+MH now has an interface for so-called "trusted mail" applications. Although
+
+the modifications to MH to support this are in the public domain, the actual
+
+library that MH uses is not. Contact Professor David J. Farber (Farber@UDel)
+
+for more information.
+
+
+
+References
+
+
+[MRose85] Marshall T. Rose and John L. Romine. The Rand MH Message
+
+ Handling System: User's Manual. Department of Information
+
+ and Computer Science, University of California, Irvine, mh.6 edi-
+
+ tion, November, 1985. UCI Version.
+
+
+
+ 15
--- /dev/null
+
+
+
+
+ MH: A Multifarious User Agent
+
+
+ Marshall T. Rose
+
+ Member, Research Technical Staff
+
+ Northrop Research and Technology Centery
+
+
+
+ Einar A. Stefferud
+
+ President, Network Management Associatesz
+
+ and Visiting Lecturer, University of California, Irvine
+
+
+
+ Jerry N. Sweet
+
+ Member, Technical Staff
+
+ Local Network Systems./
+
+
+
+ Abstract
+
+
+The UCI version of the Rand Message Handling System (MH) is discussed, including
+
+important extensions. MH is a powerful user agent which operates in the ARPA
+
+Internet and UUCP environments. In addition to the basic functions provided
+
+by a user agent, such as reading and sending mail, MH has several distinguishing
+
+characteristics which give the user additional message handling capabilities. In
+
+particular, MH provides mechanisms for organizing messages, tailoring its own
+
+behavior, and extending its functions.
+
+
+This document describes MH from several perspectives. Particular emphasis is
+
+given to: the MH user environment, advanced features of MH which have proven to
+
+be particularly useful for sophisticated users of electronic mail, MH's potential as
+
+a record manager, and MH as a part of a distributed mail environment. Although
+
+MH as been widely used since its creation in 1979, a discussion of its perspectives
+
+and functionality has not appeared in the open literature.
+
+
+________________________________________
+y One Research Park, Palos Verdes Peninsula, CA 90274. Telephone: 213/377-4811.
+
+Computer mail: MRose% NRTC@USC-ECL
+z 17301 Drey Lane, Huntington Beach, CA 92647. Telephone: 714/842-3711.
+
+Computer mail: EStefferud@ICS.UCI.EDU
+./ 130 McCormick Avenue, Suite 102, Costa Mesa, CA 92626. Telephone: 714/754-6631.
+
+Computer mail: JSweet@ICS.UCI.EDU
+\f
+
+ MH: A Multifarious User Agent
+
+
+
+Introduction
+
+ The UCI version of the Rand Message Handling System, MH, is a user agent.
+
+In the interests of brevity, we dispense with the usual definition of terms, refer the
+
+reader to Figure 1, and simply note that MH is not responsible for delivering mail.
+
+Rather, it interacts with a message transport system, MTS, at two interfaces: it
+
+sends mail by placing it through a posting slot to the MTS, and it receives mail by
+
+retrieving it through a delivery slot from the MTS. Besides these two MTS-specific
+
+activities, the tasks which MH addresses are: the composition of messages (which
+
+may, or may not, be in reference to previously sent messages), the reading of
+
+messages, and the organization of messages.
+
+
+ MH was originally developed by the Rand Corporation, and initially was
+
+proprietary software. The Department of Information and Computer Science
+
+at University of California, Irvine, shortly after joining the Computer Science
+
+Network (CSnet), acquired a copy of MH, and began additional development of
+
+the software. Since that time, the Rand Corporation has declared MH to be in the
+
+public domain, and the UCI version of MH has passed through four major releases.
+
+
+ Much credit must be given to the initial designers and implementors of MH:
+
+Bruce Borden, Stockton Gaines, and Norman Shapiro. Although MH has suffered
+
+significant development at UCI since Rand's initial release, the fundamental
+
+concepts of MH's environs have remained nearly unchanged. In addition, the
+
+current maintainers of MH gratefully acknowledge the comments of the many sites
+
+which have run various releases of MH in the past.
+
+
+ MH runs on different versions of the UNIX1 operating system (such as
+
+4.2bsd UNIX and various flavors of v7 UNIX). In addition, MH supports four
+
+different MTS interfaces: SendMail[EAllm83], the standard mailer for 4.2bsd
+
+systems; MMDF[DCroc79] and MMDF-II[DKing84], the Multi-Channel Memo
+
+Distribution Facility developed by the University of Delaware which forms the
+
+software-backbone for CSnet[DCome83] mail relays service; SMTP, the ARPA
+
+Internet Simple Mail Transfer Protocol[SMTP]; and, a stand-alone delivery system.
+
+
+ The organization of this paper is straight-forward, given space considerations.
+
+Initially, the MH philosophy of mail handling is presented, along with a description
+
+of the environment which the MH user is given to process mail. Following this,
+
+certain advanced features of MH are discussed in more detail. In particular, the
+
+
+________________________________________
+1 UNIX is a trademark of AT&T Bell Laboratories.
+
+
+
+ Copyright fcl1985, North Holland Publishing Company 1
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 2
+______________________________________________________________________________________________________________________
+
+
+
+ UA UA
+
+
+
+ POSTING RECEIPT
+
+
+
+ MTS
+
+
+
+ MTA MTA : : : : : : MTA
+
+ RELAYING
+
+
+
+ Figure 1
+
+___________________________________________________MTS_model__________________________________________________________
+
+
+
+notion of a draft folder is introduced, which permits the handling of multiple drafts
+
+during composition. In addition, message selection facilities are described. Next,
+
+two different aspects of MH's power as a software system are discussed: record
+
+handling, in which MH facilitates record processing systems; and, how MH can be
+
+employed in a distributed mail environment. This latter section raises questions
+
+as to the location of the posting and delivery slots, along with authentication
+
+mechanisms. Finally, we conclude by discussing areas of future development which
+
+MH may endure.
+
+
+ Although familiarity with MH is not assumed on the part of the reader,
+
+some knowledge of the UNIX operating system is useful. Appendix A gives a short
+
+synopsis of the MH commands.
+
+
+
+The MH Philosophy
+
+ Although MH has many traits which tend to differ it from other user agents,
+
+the design aspect which fundamentally influences the interface between MH and
+
+the user is that it is composed of many small programs instead of one very large
+
+one. This architecture gives MH much of its strength, since intermediate and
+
+advanced users are able to take advantage of this flexibility.
+
+
+ The key to this flexibility is that the UNIX shell (usually the C shell or the
+
+Bourne shell), is the user's interface to MH. This means that when handling mail,
+
+the entire power of the shell is at the user's disposal in addition to the facilities
+
+which MH provides. Hence, the user may intersperse mail handling commands
+
+with other commands in an arbitrary fashion, making use of command handling
+
+capabilities that the user's shell provides.
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 3
+
+
+ Furthermore, rather than storing messages in a complicated data structure
+
+within a monolithic file, in MH, each message is a UNIX file, and each folder (an
+
+object which holds groups of messages) is a UNIX directory. That is, the directory
+
+and file structure of UNIX is used directly. As a result, any UNIX file-handling
+
+command can be applied to any message.
+
+
+ To the novice, this may not make much sense or may not seem important.
+
+From three years of observation, we have seen that as users of MH have become
+
+more experienced they have found this capability to be quite attractive. In
+
+addition, this approach is often quite pleasing to system implementors, because
+
+it minimizes the amount of coding to be performed and, given a modular design,
+
+changes to the software system can be maintained easily. Our empirical findings
+
+confirm our theoretical expectations regarding the MH architecture.
+
+
+ Having described how MH fits into the UNIX environment, we now discuss
+
+the mail handling environment which is available to the MH user.
+
+
+The MH Environs
+
+ MH provides a complementary environment to the user's shell. While the
+
+shell maintains a context related to the user's focus in the file system (a current
+
+working directory ), mail handling is performed in a separate mail folder context.
+
+Operations on mail can therefore be performed entirely without regard to the
+
+current file system context, although MH does not prevent the user from making
+
+use of that context. Certain mail handling functions do make use of information
+
+maintained by the shell. For instance, by setting certain shell parameters, called
+
+environment variables, alternate mail handling contexts can be selected.
+
+
+ MH conventions often have direct analogs to shell or file system conventions.
+
+The shell has a current working directory; MH has a current mail folder. When
+
+the user begins a session on the system, the user's "home directory" is the base
+
+context; MH's default base area, the Mail directory, is found under the user's home
+
+directory. The user's default shell parameters are set upon beginning a new session
+
+from a startup profile (called .profile for sh users or .cshrc for csh users); the default
+
+parameters for MH commands are taken from a file called .mh_profile in the user's
+
+home directory. The shell has an environment ; MH has a context file. Each of the
+
+user's directories has files; each of the user's MH folders has messages.
+
+
+ These parallels have a basis not only in MH's high level mail handling model,
+
+but also in the way low level shell and file system conventions have been abstracted
+
+to implement MH conventions. Directories are folders; files are messages. The Mail
+
+directory forms the root of a virtual file subsystem within which the user operates
+
+on mail without disturbing files outside this mail handling domain.
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 4
+______________________________________________________________________________________________________________________
+
+
+
+ $HOME/ (user's home directory)
+
+
+
+ .mh_profile Mail
+
+
+
+ context inbox/ mhl.format replcomps drafts/ chron/
+
+
+
+ 1 2 3 1
+ sequences yr.1984/ yr.1985/
+
+
+
+ Figure 2
+
+ MH File Subsystem
+
+__________________________________________(directories_are_shaded)____________________________________________________
+
+
+
+The MH Profile
+
+ The .mh_profile contains plaintext that describes the user's default mail
+
+handling parameters. An example of an elaborated profile is shown in Figure 3.
+
+
+ Each line in the profile consists of an MH parameter name terminated with
+
+a colon (`:') followed by parameter values. In this example, "global" parameters
+
+are listed in the first few lines, with program-specific parameters following. Each
+
+MH program examines global parameters as well as any parameter with the same
+
+name by which the program was invoked. For example, the comp program, which
+
+is used to compose new messages to be sent, examines the entries:
+
+
+
+ Path___: The path parameter specifies the name of the MH root directory.
+
+ This is normally named Mail.
+
+
+ Editor____: The editor parameter specifies which text editor is first invoked
+
+ to create the header information and body of a message draft. In
+
+ most cases, this editor is the MH default editor, prompter.
+
+
+ Draft-Folder______: This parameter specifies a folder within which new message drafts
+
+ are to be created. The draft folder mechanism is an advanced
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 5
+______________________________________________________________________________________________________________________
+
+Path: Mail
+Editor: prompter
+prompter-next: emacs
+Folder-Protect: 700
+Msg-Protect: 600
+Previous-Sequence: pseq
+Alternate-Mailboxes: jsweet@uci-icse, jsweet@uci-750a
+Draft-Folder: drafts
+Sequence-Negation: not
+bbc: -quiet
+bboards: system mh-workers sf-lovers whimsey
+comp: -form mycomponents
+dist: -annotate -inplace
+folder: -noheader
+forw: -annotate -inplace -format
+mhl: -noclear
+next: -noheader
+prev: -noheader
+prompter: -prepend
+repl: -annotate -inplace -cc me
+send: -format -msgid
+scan: -noheader -time
+show: -noheader -format
+showproc: mhl
+
+
+ Figure 3
+
+___________________________________________Elaborated_MH_Profile______________________________________________________
+
+
+
+ feature of MH that is given separate treatment in a later segment
+
+ of this paper.
+
+
+ comp____: The program-specific parameter examined by comp lists user-
+
+ default options.
+
+
+
+Other programs invoked by comp (e.g. prompter and send ) would examine their
+
+own profile entries as well. MH programs have reasonable compiled-in defaults
+
+and also permit options to be specified on the shell command line with which the
+
+programs are invoked. The order of override precedence is: command line options
+
+first, .mh_profile options second, and compiled-in defaults last.
+
+
+ Each program option is prefixed by a dash (`-') following the UNIX convention.
+
+Unlike most UNIX-style options, however, the options are words rather than single
+
+letters. An option may be abbreviated to an unambiguous prefix. Each MH
+
+program has a `-help' option that displays a brief summary of the program's
+
+available options.
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 6
+
+
+Folders and Messages
+
+ In a typical paper-oriented office, new correspondence arrives and is stacked
+
+in an "in box", while outgoing correspondence is placed in an "out box". Processed
+
+material is stored in appropriately labelled folders and filed away for future
+
+reference. This state of affairs is modelled in MH with folders and messages, which
+
+are simply text files (one message per file) stored under the folder directories. Most
+
+of the user's folders are kept under the Mail directory.
+
+
+ A folder is given an alphanumeric name permissible within the UNIX file
+
+system structure, and each message stored therein is given a numeric name in the
+
+range 1..1999. The upper bound on message numbers was selected for efficient
+
+access to an internal representation, an array of bits (a "bit set"), with each bit
+
+indicating the presence or absence of a message with a number in the range 1..1999.
+
+This internal representation also restricts the order of multiple message reference
+
+to an ascending numerical sequence. Other representations have been studied
+
+(e.g., an unsorted sparse array of integers), but have been rejected for reasons of
+
+efficiency. Folders may contain subfolders, corresponding to UNIX tree-structured
+
+directories. For the sake of completeness, it might be said that "sub-messages"
+
+exist insofar as message "digests", which nest messages inside other messages, are
+
+supported by certain advanced MH functions.
+
+
+ The current working folder is the default folder selected for almost all MH
+
+commands. To select explicitly a folder for mail handling commands entails
+
+specifying the name of the folder, prefixing the name with a plus-symbol (`+'). An
+
+example is:
+
+
+ refile 1 2 3 +chron/yr.1984
+
+
+This command re-files the selected messages (1 , 2, and 3 here) from the current
+
+working folder to a subfolder under the folder chron named yr.1984 . To see the
+
+folder/subfolder relationship, refer to Figure 2.
+
+
+ The plus-symbol notation is specific to those folders immediately subordinate
+
+to the Mail directory. This is analogous to "absolute pathnames" in UNIX_those
+
+files whose positions in the file system hierarchy are given starting with the system
+
+root, names prefixed with the slash character (`/'). To specify folders subordinate to
+
+the current working folder, an at-sign (`@') is substituted for (`+'). It is permitted
+
+to use UNIX dot notation to specify parent folders. Referring to Figure 2, if the
+
+current working folder were ``+chron/yr.1985'' , then the command
+
+
+ folder @../yr.1984
+
+
+selects the subfolder yr.1984 in the parent directory chron , as the new current
+
+working folder. While the current working folder is normally the default, it may
+
+be specified explicitly as ``@.'' .
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 7
+______________________________________________________________________________________________________________________
+
+To: <reply-to_from>
+cc: <?to_cc_me><to>,<cc>,<me>
+Subject: <?subject>Re: <subject>
+In-reply-to: <?date><?message-id>Your message of <date>.
+ <message-id>
+In-reply-to: <?date><!message-id>Your message of <date>.
+Fcc: <?fcc><fcc>
+--------
+
+
+ Figure 4
+
+_______________________________________Elaborated_Reply_Template______________________________________________________
+
+
+
+The Context File
+
+ The .mh_profile contains static information about the user's preferences. A
+
+context file, contained in the Mail directory, contains the current mail handling
+
+environment information, which changes as different folders, messages, and named
+
+message lists (called message sequences ) are selected, created, and updated. This
+
+information is retained between invocations of MH commands, and is preserved
+
+across system sessions.
+
+
+Templates
+
+ The message draft composition functions (comp, repl, forw, and dist ) use
+
+certain default header formats, which may be changed by the user through the use
+
+of message templates. The exact format of a template may vary among commands.
+
+An example of an elaborated template for the reply command repl is shown in
+
+Figure 4.
+
+
+ This template specifies how the automatically-generated header for a draft
+
+message in reply to a source message is to be formatted. The syntax is capable of
+
+directing output of header lines based on the presence or absence of other header
+
+lines in the source message.
+
+
+ Other kinds of templates are used to specify the display formats of messages,
+
+or to specify the way that messages are to be included in other messages. This is
+
+similar to the functionality provided by BBN Hermes[HERMES], another powerful
+
+mail handling system for Tops202 based systems.
+
+
+Explaining All This to New Users
+
+ There do exist people who do not like MH.3 The emerging pattern of
+
+complaints from such people indicates that MH accentuates their perceptions of
+
+the deficiencies of UNIX, to wit, lack of interactivity and lack of easily found help
+
+facilities. Also, some feel that the proximity of the mail handling environment
+
+to the operating system is a distraction, rather than an asset. There have been
+
+________________________________________
+2 Tops20 is a trademark of Digital Equipment Corporation.
+3 At UCI, these people are reported to be weeded out at an early stage and quietly taken to the
+
+Ministry of Love to be made uncrimethinkful.
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 8
+
+
+some attempts to make MH more accessible to users who prefer menu-oriented or
+
+monolithic mail system interfaces.4
+
+
+ In truth, users new to UNIX do not always acclimate to MH easily. The
+
+command set is undistinguishably mixed in with all other UNIX utilities, and it
+
+is not easy, without aid of a manual, to pick out the necessary commands. MH
+
+does not provide any "hand-holding" to guide the user through a minimally useful
+
+command subset.
+
+
+ Another problem is that the initial default user profile is too often sparse,
+
+containing only a ``Path:'' parameter. MH commands will perform adequately
+
+without specific information in the profile, so new users often neglect optionally
+
+useful MH capabilities, eventually becoming frustrated with the limited default
+
+capabilities, yet unable to determine without researching through the user's
+
+manual, the necessary options that would solve their problems.
+
+
+ The currently available means for learning how to use MH are:
+
+
+
+ - One-on-one tutoring by knowledgeable MH users, which has so far
+
+ shown the best results with new users.
+
+
+ - Consulting the MH Tutorial [MRose84b], or the MH User's
+
+ Manual [MRose85a].
+
+
+ - Using the msh ("MH shell") program as a training shell to read
+
+ bulletin boards. The msh command is an interactive program that
+
+ provides some help messages and can list available MH commands.
+
+
+
+No on-line tutorial materials are presently distributed with the mh.5 system,
+
+although there are some plans in the works to provide a program to help with
+
+setting up the user profile that would also provide operational tips for MH and
+
+UNIX.
+
+
+ It should be noted that these perceived defects of MH do not affect its utility
+
+any more than analogous problems with any operating system will diminish its
+
+actual capabilities. Users may quarrel with the means chosen for orchestrating
+
+MH, but the fact remains that MH is a very useful set of mail handling tools that
+
+is flexible, infinitely interoperable with other UNIX text handling tools, and yet
+
+simple enough for new users to grasp once they are given the proper start. The
+
+fact that better tutorial materials and training do not exist only means that some
+
+further work needs to be done in the area of user-education.
+
+
+
+________________________________________
+4 For example, mhe from Brian Reid of Stanford University and emh from Marshall Rose are
+
+instances of macro packages for James Gosling's EMACS extensible editor, while the hm program
+from Jim Guyton of the Rand Corporation is a monolithic MH interface. As of this writing, none
+of these programs is documented in the literature.
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 9
+
+
+A Few Advanced Features
+
+ We now consider certain advanced features in MH. These features have been
+
+chosen to demonstrate some useful capabilities available to the MH user. It should
+
+be noted that many capabilities of MH, such as shell scripts for extensibility, mail
+
+delivery hooks, the personal aliasing facility, and so forth, are not described here
+
+for lack of space.
+
+
+Draft Folders
+
+ The draft folder facility provides a method by which several message drafts can
+
+be simultaneously composed and maintained until sent. The rationale for this is that
+
+partially composed message drafts, perhaps elaborate sets of separate messages,
+
+can be incrementally completed, while a folder provides a consistent organization
+
+for drafts in progress. This is comparable to similar situations in the "paper world"
+
+where contracts, business correspondence, and other communications, rather than
+
+being created serially with each posted in turn before composing the next, are
+
+usually left in various stages of completion before they are eventually mailed.
+
+
+ The ``Draft-Folder:'' parameter value in the MH profile is used to specify
+
+a default draft folder, where each draft is given a number and an "artificial" date
+
+stamp. Provided that the proper header fields have been completed, a scan listing
+
+of the draft folder provides a summary of each draft in progress: to whom the
+
+message is to be sent, the subject, the date of the draft's initial creation and
+
+optionally, the current size of the draft in terms of characters. Experienced users
+
+of MH may often keep as many as five to ten unfinished drafts in their draft folder.
+
+"Draft clutter" can be remedied easily with the rmm command.
+
+
+Message Selection
+
+ MH commands accept message sequence specifications to specify which `msg'
+
+or `msgs' are to be operated upon. Here are some examples:
+
+
+ scan 1 3 5 19 185
+
+
+to get a scan listing of messages 1, 3, 5, 19 and 185.
+
+
+ scan pseq
+
+
+to get a scan listing of whatever message sequence was given to the previous MH
+
+command (in this case 1, 3, 5, 19, and 185).
+
+
+ show first last
+
+
+to get a display of the first and last messages in the folder. The MH sequences
+
+named ``first'' and ``last'' are system defined pseudo sequences which act like
+
+explicit sequences when given to MH commands. Others are ``cur'' , ``next'' ,
+
+``prev'' , and ``all'' which respectively specify the "current" message, the
+
+"next" after cur, the "previous" message before cur, or "all" messages in the
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 10
+
+
+current-folder. The scan assumes ``all'' while show assumes ``cur'' , unless
+
+overridden on the command line. Over-ride precedence is: command-line first,
+
+.mh_profile second, and compiled-in default last.
+
+
+ Users can define additional sequences for similar use, but must avoid using
+
+reserved names. A few optional sequence names have been preempted by MH, such
+
+as ``pseq'' to mean the "sequence used by the previous MH command," and
+
+``unseen'' to mean the "messages not yet seen by the user." Sometimes these
+
+preempted names can be changed by resetting them in the user's MH profile, but
+
+these facilities are beyond the scope of this discussion.
+
+
+ The mark command can be used to set the values for user-defined sequences:
+
+
+ mark 1 3 5 -seq zzz
+
+ mark 4 5 9 -seq zzz -nozero
+
+
+will create a user-sequence named ``zzz'' and put the sequence ``1 3 5'' in it.
+
+The mark command assumes that any prior content in an existing user-sequence
+
+should be "zeroed" before the new sequence value is recorded. This can be
+
+prevented with a `-nozero' switch on the command line, to add ``4 5 9'' to
+
+the original ``1 3 5'' to yield ``1 3 4 5 9'' .
+
+
+ mark pseq zzz -seq zzznew
+
+
+will create a new sequence named ``zzznew'' and set its value to the combined
+
+(inclusive or) of the existing user-sequences in ``pseq'' and ``zzz'' for its value.
+
+
+ Another more powerful way to set the values of a user-sequence is with the
+
+pick command, which provides full string search capabilities:
+
+
+ pick -from mrose -seq yyy
+
+ pick -from mrose -seq yyy -list
+
+
+will search though all the ``From:'' fields in the current folder for the string
+
+``mrose'' and place the list of "hits" in the sequence named ``yyy'' . The
+
+`-list' switch will cause the resulting list to also be displayed on the user's
+
+terminal. If no `-seq name' switch is given, pick will assume `-list' and will
+
+simply display the resulting list of hits on the user's terminal.
+
+
+ This `-list' behavior of pick allows users to take advantage of the UNIX
+
+backquoting facility to embed searches in other MH commands.
+
+
+ scan `pick -from mrose`
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 11
+
+
+will produce a scan listing of `-from mrose' hits because the UNIX shell will
+
+spawn a process to execute the ``pick -from mrose'' segment and return the
+
+`-list' results as the message sequence to be scanned.
+
+
+ mark pseq -seq zzz
+
+
+could then be used to capture the "previous sequence" in zzz for later use.
+
+
+ One last facility should be mentioned here. It is also possible to negate a
+
+sequence to specify a new sequence. The default negation string is ``not'' .
+
+
+ scan notzzz
+
+ mark notzzz -seq zzznot
+
+
+will give the user a scan listing of all the messages in the current folder that are
+
+not included in the sequence ``zzz'' . The mark example will of course record
+
+the negation of zzz in zzznot. It is a bad idea to use the string ``not'' as the
+
+beginning of any user-sequence name, if ``not'' is defined as the negation string.
+
+(Users can choose a different negation string.)
+
+
+ From this discussion, it should be clear that MH provides a uniform set of
+
+ways to capture and use sequences to augment the user's short- and long-term
+
+memory and to manipulate lists of interesting messages. User-sequences are
+
+normally stored as RFC822 labeled text lines in a file (e.g., sequences) in the folder
+
+with the messages referred to in the sequence. If a user does not have write access
+
+to a folder, then the MH mark and pick commands will create a "private" sequence
+
+in the user's context file. Switches are available to give the user control over the
+
+choice of `-private' or `-public' sequence options.
+
+
+ Since user-sequences are stored as ordinary text lines in RFC822 labeled fields,
+
+there is no prohibition against someone writing programs to perform any kind of
+
+useful manipulation on MH sequences. Boolean operators can be implemented,
+
+or complex indexing structures could be developed to serve special purposes. If a
+
+DBMS can utilize UNIX pathnames or MH `+folder' and message names, then
+
+the full power of the DBMS might be applied. The intention of MH development
+
+teams has always been to leave open the widest possible array of options for
+
+later extension. The only restrictions should be the user's ingenuity, programming
+
+prowess, and the available machine resources. Unfortunately these resources always
+
+seem to be available in limited quantities.
+
+
+Distribution Lists
+
+ MH has a convenient interface to the UCI BBoards facility[MRose84a].5 This
+
+facility permits the efficient distribution of interest group messages on a single
+
+
+
+________________________________________
+5 The UCI BBoards facility can run under either the MMDF or SendMail, or in a more restricted
+
+form under stand-alone MH.
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 12
+
+
+host, to a group of hosts under a single administration, and to the ARPA Internet
+
+community.
+
+
+ Described simply, an interest group is composed of a number of subscribers
+
+with a common interest. These subscribers post mail to a single address, known
+
+as a distribution address (e.g., MH-Workers@UCI). From this distribution address,
+
+a copy of the message is sent to each subscriber. Each group has a moderator,
+
+which is the person that runs the group. This moderator can usually be reached
+
+at a special address, known as a request address (e.g., MH-Workers-Request@UCI).
+
+Usually, the responsibilities of the moderator are quite simple, since the mail
+
+system handles distribution to subscribers automatically. In some interest groups,
+
+instead of each separate message being distributed directly to subscribers, a batch
+
+of (related) messages are put into a digest format by the moderator and then sent
+
+to the subscribers. Although this requires more work on the part of the moderator
+
+and introduces delays, such groups tend to be better organized.
+
+
+ Unfortunately, some problems arise with the scheme outlined above. First, if
+
+two users on the same host subscribe to the same interest group, two copies of the
+
+message will be delivered. This is wasteful of both processor and disk resources at
+
+that host.
+
+
+ Second, some groups carry a lot of traffic. Although subscription to a group
+
+does indicate interest on the part of a subscriber, it is usually not interesting to get
+
+50 messages or so delivered to the user's private maildrop each day, interspersed
+
+with personal mail, that is likely to be of a much more important and timely
+
+nature.
+
+
+ Third, if a subscriber's address in a distribution list becomes "bad" somehow
+
+and causes failed mail to be returned, the originator of the message is normally
+
+notified. It is not uncommon for a large list to have several bogus addresses. This
+
+results in the originator being flooded with "error messages" from mailers across
+
+the Internet stating that a given address on the list was bad. Needless to say, the
+
+originator usually does not care if the bogus addresses got a copy of the message
+
+or not. The originator is merely interested in posting a message to the group at
+
+large. On the other hand, the moderator of the group does care if there are bogus
+
+addresses on the list, but ironically does not receive notification.
+
+
+ To solve all of these problems, the UCI BBoards facility introduces a new
+
+entity into the picture: all interest group mail is handled by a special component of
+
+the mail system. The distribution address maps to a special channel that performs
+
+several actions. First, if local delivery is to be performed, then a copy of the
+
+message is placed in a global maildrop for the interest group with a timestamp and
+
+a unique number. Local users can read messages posted for the interest group by
+
+reading this "public" maildrop. Second, if further distribution is to take place, a
+
+copy of the message is sent to the distribution address in such a way that if any of
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 13
+
+
+the addresses are bogus, failure notices will be returned to the local maintainer of
+
+the group address list, rather than the originator of the message.
+
+
+ This scheme has several advantages: First, messages delivered to the local
+
+host are processed and saved once in a globally accessible area. The UCI BBoards
+
+facility supports software which allows a user to query an interest group for new
+
+messages and to read and process those messages in the MH-style. Second, once
+
+a host administrator subscribes to an interest group, each user can join or quit
+
+the list's readership without contacting anyone. Third, a hierarchical distribution
+
+scheme can be constructed to reduce the amount of delivery effort. Fourth, errors
+
+are prevented from propagating. When an address on the distribution list goes
+
+bad, the list moderator who is immediately responsible for the address is notified.
+
+If a local moderator does not exist, then the local PostMaster is notified (not the
+
+global group moderator).
+
+
+ In addition to solving the problems outlined above, the UCI BBoards facility
+
+supports several other capabilities. BBoards may be automatically archived in
+
+order to conserve disk space and reduce processing time when reading current
+
+items. Also, the archives can be separately maintained on tape for access by
+
+interested researchers.
+
+
+ Special alias files may be generated which allow the MH user to shorten
+
+address type-in. For example, instead of sending to SF-Lovers@Rutgers, a user
+
+of MH usually sends to ``SF-Lovers'' and the MH aliasing facility automatically
+
+makes the appropriate expansion in the headers of the outgoing message. Hence,
+
+the user need only know the name of an interest group and not its global network
+
+address.
+
+
+ Finally, the UCI BBoards facility supports private interest groups using the
+
+UNIX group access mechanism. This allows a group of people on the same or
+
+different machines to conduct a private discussion.
+
+
+ The practical upshot of all this is that the UCI BBoards facility automates the
+
+vast majority of BBoards handling from the point of view of both the PostMaster
+
+and the user.
+
+
+ MH provides three programs to deal with interest groups. The bbc program
+
+is used to check on the status of one or more groups, and to optionally start an
+
+MH shell on those groups which the user is interested in. The bbl program can be
+
+used to perform manual maintenance on a discussion group beyond the normal
+
+automatic capabilities of the UCI BBoards facility. Finally, the msh program
+
+implements an MH shell for reading BBoards, in which nearly all of the MH
+
+commands are implemented in a single program.
+
+
+ Observant readers may note that the use of msh is contrary to the MH
+
+philosophy of using relatively small, single-purposed programs. Sadly, the authors
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 14
+
+
+admit that this is true. In an effort to avoid some problems with shared-access and
+
+message naming conventions (which are beyond the scope of this paper), BBoards
+
+are kept in maildrop format (monolithic) instead of folders. Some research has
+
+gone into overcoming this problem in order to restore MH's purity of purpose, but
+
+all solutions proposed to date are either unworkable or require significant recoding
+
+of MH's internals.
+
+
+Encapsulation
+
+ As described above, some interest groups appear in digest form. This
+
+means that the messages which appear in such a forum actually encapsulate other
+
+messages in their body. It turns out that the generation of a digest is not at
+
+all unlike the generation of a draft which forwards one or more messages. In
+
+RFC934[MRose85b], a method is proposed to standardize message encapsulation
+
+for the ARPA Internet community. MH uses this method for the generation of
+
+digests, forwardings, and blind-carbon-copies.
+
+
+ A key requisite for using an encapsulation technique for digests and
+
+forwardings is the ability to later decapsulate the contents. Without this ability,
+
+the forwarded messages are of little use to the recipients because they can not be
+
+distributed, forwarded, replied-to, searched-for, or otherwise processed as separate
+
+individual messages. In the case of a digest, a bursting capability is especially
+
+useful. Not only does the ability to burst a digest permit a recipient of the digest
+
+to reply to an individual digestified message, but it also allows the recipient to
+
+selectively process the other messages encapsulated in the digest.
+
+
+ For example, a single digest issue usually contains more than one topic. A
+
+subscriber may only be interested in a subset of the topic discussed in a particular
+
+issue. With a bursting capability, the subscriber can burst the digest, scan the
+
+headers, and process those messages which are of interest. The others can be
+
+ignored, if the user so desires.
+
+
+ Note that with proper encapsulation technology, one can argue for the
+
+re-distribution of messages simply becoming special cases of message forwarding.
+
+For example, the NBS Standard for Mail Interchange[FIPS98] and the recent
+
+CCITT draft on Mail Handling Systems standards[X.400] both discourage the
+
+re-distribution facility in favor of forwarding by encapsulation.
+
+
+Encapsulation and Blind-Carbon-Copies
+
+ Many user agents support a blind-carbon-copy facility. MH implements this
+
+using a form of encapsulation. It may not be apparent to the reader as to why
+
+encapsulation of the original message is a good way to deliver blind-carbon-copies.
+
+With a blind-carbon-copy facility, two types of addressees are possible in the draft
+
+to be sent: visible and blind. The visible recipients are listed as addresses in the
+
+``To:'' and ``cc:'' fields, and the blind recipients are listed in the ``Bcc:''
+
+fields of the draft. The idea behind this facility is that copies of the draft which are
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 15
+
+
+delivered to the ``To:'' and ``cc:'' recipients should show the visible recipients
+
+only.
+
+
+ A major concern with a blind-carbon-copy facility is that blind recipients
+
+should be prevented from accidentally replying to the message in such a way that
+
+the visible recipients are included as addressees in the reply.
+
+
+ There are several methods to implement this facility. Most rely on posting
+
+two drafts with the MTS. One draft is destined for visible recipients, and simply
+
+lacks the ``Bcc:'' fields of the original draft. The second draft is destined for the
+
+blind recipients. The question then arises as to what form this latter draft posted
+
+should take.
+
+
+ One approach might be to disable the ``To:'' and ``cc:'' fields of the
+
+draft sent to the blind recipients (e.g., by prefixing the string ``BCC-'' to these
+
+fields). Unfortunately, this is often very confusing to the blind recipients because
+
+it differs from what the visible recipients got. Although accidental replies are not
+
+possible, it is often difficult to tell that the message received is the result of a
+
+blind-carbon-copy.
+
+
+ The method used by MH is to post two drafts, a visible draft for the visible
+
+recipients, and a blind draft for the blind recipients. The visible draft consists
+
+of the original draft without any ``Bcc:'' fields. The blind draft contains the
+
+visible message as a forwarded message. The headers for the blind draft contain
+
+the minimal RFC822 headers (``From:'' and ``Date:'' ) and, if the original
+
+draft had a "Subject:" field, then this header field is also included. In addition,
+
+MH alerts the recipient that the message is a blind-carbon-copy by placing this
+
+information in the initial encapsulation information in the blind recipient's copy.
+
+This scheme prevents inadvertent replies while allowing the recipient full access to
+
+an exact copy of what was sent to the visible recipients.
+
+
+
+MH as a Record Handler
+
+ Although message format standards such as RFC822 (and its predecessors)
+
+were originally devised to facilitate computer processing of interpersonal messages,
+
+there is no special reason why the concept should be limited to interpersonal
+
+message processing. Messages are just one of a variety of useful record forms that
+
+might be created in one place and transfered to another for processing. In this
+
+regard, RFC822 wisely left open the option for higher level applications to use
+
+arbitrary header names or field contents by proscribing MTS use of header names
+
+beginning with ``X-'' .
+
+
+ MH carries though on this idea by allowing the pick command to accept any
+
+arbitrary field name for string searches, so MH users can select on any arbitrary
+
+field name without prior definition. Beyond this, since all messages are simply files
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 16
+
+
+in UNIX directories, applications can be developed to apply any programmable
+
+process to any selected message.
+
+
+ For example, a Time Card Form might be called up by an MH user with
+
+
+ comp -form timecomps
+
+
+to enter time and attendance information into ``X-time: : ::'' fields in a draft
+
+message record. The timecomps form would include the address of a supervisor
+
+who should validate the information, along with empty fields to be filled in with
+
+data. In fancy applications, this might be done with a sophisticated interactive
+
+data entry tool which would validate entered information, but this is an open choice
+
+within the MH framework. Another alternative would be to use a received message
+
+as the blank form to add a degree of central control over time and attendance
+
+reporting forms.
+
+
+ Receiving supervisors could simply register approval by using the MH dist
+
+command to resend subordinates' time cards to higher approval levels, or to send
+
+them to a time card collection address. The MH dist command automatically
+
+inserts "ReSent" header fields showing who resent it and the resending date.
+
+Alternatively, the MH forw command could be used to transfer a batch of approved
+
+time cards to the next processing station. If desired, a new "approval" command
+
+could be programmed to provide a more trusted authentication, perhaps with
+
+encryption of the content. Trusted mail systems, such as Trusted Mail6 [MRose85c],
+
+are becoming available for this purpose.
+
+
+ At the final collection destination, an automated User Agent could be
+
+programmed to directly load the data into the Time and Attendance DBMS by
+
+parsing and decoding the data contained in the ``X-time: : ::'' fields. It might be
+
+noted that while the RFC822 does not restrict the internal forms of messages, it is
+
+necessary to conform to the interchange standard if specialized filters for message
+
+headers are not to be built to serve as export laundries (a term originating with
+
+Stephen H. Willson to describe conformance transformations in Ada7 ).
+
+
+Mapping Between Record Modes (DBMS/MHS)
+
+ This time and attendance example suggests that it is possible to define one-to-
+
+one mappings between RFC822 fields and DBMS data elements. For every DBMS
+
+data element definition, there is a potential corresponding RFC822 transferable
+
+equivalent definition which can facilitate mail transfers of record information.
+
+Indeed, a large portion of the definitional work is already done where a Data Base
+
+has already been defined. All that remains is to define the RFC822 equivalents.
+
+
+
+________________________________________
+6 Trusted Mail is a trademark of Trusted Technologies, Incorporated.
+7 Ada is a trademark of the Department of Defense (Ada Joint Program Office).
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 17
+
+
+ The suggestion that a batch of time cards be forwarded inside a "cover"
+
+message implies that it is possible in the MH framework to recursively bundle
+
+messages within messages, and be able to recover the originals for separate
+
+processing at a receiving destination. The MH burst command can be applied
+
+recursively for this purpose because MH encapsulation uses an unambiguous scheme
+
+to delimit messages that are enclosed inside other messages. Thus, it should be
+
+possible to extract a structured set of records from a DBMS and mail the set to a
+
+foreign site for processing, or reinsertion into another DBMS. As long as the DBMS
+
+data element definitions correctly correspond to the RFC822 definitions, it is not
+
+even necessary for the source and destination DBMS systems to be the same.
+
+
+ From this discussion, it is concluded that the MH framework can be useful
+
+for building distributed record handling systems where people at widely scattered
+
+locations must create and submit record forms for processing at distant locations.
+
+This might prove to be especially effective when a mail system is also needed
+
+for other communication purposes. A network of sales offices is a good example,
+
+where general message service would be used for communications with remote
+
+manufacturing and distribution centers, and could also be used for an order entry
+
+system.
+
+
+ Another example might be for structured communications, as occur in
+
+requisition and purchasing systems. Requisitions could be filled in and mailed to
+
+approval offices, and resent or forwarded to others for action. At some point, the
+
+requisitions could flow into other other more suitable processing systems as needed.
+
+At the very least, the ability to originate requisitions can be distributed to anyone
+
+with access to a mail system that can originate a proper requisition form.
+
+
+ As a last example, MH already supports group discussions with its BBoard
+
+facilities which allow for automatic sorting of mail by group address, with shared
+
+private or public group access to contributed items. As has been shown to be
+
+possible with administrative record systems, there is no obvious limit to the ways
+
+that group discussion traffic might be organized into structured collections with
+
+indices, annotations, or reference pointers to aid in making conference archives
+
+more useful. Indeed, MH tools could even be used to feed discussion items into
+
+existing conference systems.
+
+
+
+Distributed Mail
+
+ Next, we consider how MH might be used in a distributed mail environment.
+
+Two schemes are discussed: one in which connectivity is high and connections
+
+are relatively "cheap", and one in which connectivity is low and connections are
+
+"expensive".
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 18
+
+
+The ARPA Internet Environs
+
+ The ARPA Internet community consists of many types of heterogeneous
+
+nodes. Some hosts are large mainframe computers, others are personal work-
+
+stations. All communicate using the milstd TCP/IP protocol suite[IP, TCP].
+
+Messages which conform to the Standard for the Format of ARPA Internet Text
+
+Messages[DCroc82] are exchanged using the Simple Mail Transfer Protocol[SMTP].
+
+
+ On smaller nodes in the ARPA Internet it is often impractical to maintain
+
+a message transport agent. For example, a workstation may not have sufficient
+
+resources (cycles, disk space) in order to permit an SMTP server and associated
+
+local mail delivery system to be kept resident and continuously running.
+
+Furthermore, the workstation could be off-net for extended periods of time.
+
+Similarly, it may be expensive (or impossible) to keep a personal computer
+
+interconnected to an IP-style network for long periods of time. In other words, the
+
+node is lacking the resource known as "connectivity".
+
+
+ Despite this, it is often desirable to be able to process mail with MH on
+
+these smaller nodes, and they often support a user agent to aid the tasks of mail
+
+handling. To solve this problem, a network node which can support a message
+
+transport entity (known as service host) offers a maildrop service to these less
+
+endowed nodes (known as client hosts). The Post Office Protocol[JReyn84] (POP)
+
+is intended to permit a workstation to dynamically access a maildrop on a service
+
+host to pick-up mail.8 The level of access includes the ability to determine the
+
+number of messages in the maildrop and the size of each message, as well as to
+
+retrieve and delete individual messages. More sophisticated implementations of the
+
+POP server are able to distinguish between the header and body portion of each
+
+message, and send n lines of a message to the POP client. This capability is useful
+
+in thinly connected environments where conservation of bandwidth is important.
+
+By utilizing a more intelligent POP client, a user may generate "scan listings" and
+
+dynamically decide which messages are worth taking delivery on. The philosophy
+
+of the POP is to put intelligence in the POP clients and not the POP servers.
+
+
+ The underlying paradigm in which the POP functions is that of a split-
+
+slot/remote-UA model. The client host (such as a workstation) is without a
+
+co-resident message transport agent (MTA), and thus makes use of a service host
+
+with an MTA to obtain posting (SMTP) and delivery (POP) services. The entity
+
+which supports this type of environment is called a remote-UA since the user agent
+
+resides on a different host than its associated message transport agent.
+
+
+
+________________________________________
+8 Actually, there are three different descriptions of the POP. The first, cited in [JReyn84], was the
+
+original description of the protocol, which suffered from certain problems. Since then, two alternate
+descriptions have been developed. The official revision of the POP[MButl85], and the revision of the
+POP which MH uses (which is documented in an internal memorandum in the MH release). This
+paper considers the POP in the context of the MH release.
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 19
+
+
+ One very important issue which must be raised at this point is one of
+
+authentication. The POP requires that a client identify itself to the server using
+
+a server-specific user-id and a server/user-specific password. This authentication
+
+is required to prevent unauthorized entities from accessing a maildrop on a POP
+
+service host. It must be emphasized that the POP client is not a "trusted" entity
+
+of the MTS in any sense at all.
+
+
+ Ideally, one would also like to authenticate mail as it is posted on the POP
+
+service host using the SMTP. Currently, in the ARPA Internet community, no
+
+authentication is done with SMTP transactions. This is considered a shortcoming
+
+by those interested in researching the split-UA model of distributed mail. The
+
+MZnet environment, discussed in the next section, has authentication facilities for
+
+posting mail.
+
+
+ The current release of MH supports the above model fully: a POP client
+
+program is available to retrieve a maildrop on a POP service host. In addition,
+
+using the SMTP configuration for delivery in MH, a user is able to specify a
+
+search-list of service hosts (and networks) with which to try to post mail. Using
+
+this search-list, when an MH user posts a draft, the post program will attempt
+
+to establish an SMTP connection with each host in the list to post the message
+
+until it succeeds. Initial experimentation with the split-UA in a local network
+
+environment has proved quite successful.
+
+
+The MZnet Environs
+
+ In 1983, the MZnet project[EStef84] at the University of California, Irvine
+
+set out to study the problems involved with bringing Internet-class mail handling
+
+facilities to personal computers. The project used Apple II computers running the
+
+CP/M 2.2 operating system. Programming was done in a subset of the C language
+
+called BDS C. The transport system was based on the MMDF PhoneNet software,
+
+and implemented a split-slot arrangement between a personal computer and a
+
+larger, centralized mail distribution system that performed user authentication and
+
+provided a relatively secure mail transfer channel. The user agent, CP/MH, was
+
+based on MH.
+
+
+ A conclusion of the experiment was that small personal computer systems
+
+with dial-up phone connections constrain user agent systems design in ways that
+
+require use of a split-slot interface between the UA and its supporting MTA, and that
+
+this interface best provides the required services if it has error controlled command
+
+and data transfer facilities, with interactive behavior. Another conclusion indicated
+
+that a good design for a user agent in such a small personal computer environment
+
+could be based on a very modular architecture, such as MH. A final conclusion was
+
+that session-level authentication of the client UA is required for both posting and
+
+delivery.
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 20
+
+
+ It should be noted that the MZnet project had a profound influence on the
+
+development of the POP used by MH. A somewhat more detailed discussion of
+
+the relations between the two environments can be found in the POP description
+
+contained in the MH release.
+
+
+
+A Final Note
+
+ With the fifth major release of the MH system, it has become clear that most
+
+major increases in functionality can come only at the expense of either efficiency or
+
+portability. Although there has been great effort to keep MH portable to a number
+
+of UNIX implementations,9 the divergence in process management facilities, file
+
+system enhancements, and even C compiler capabilities has already presented
+
+obstacles to some attempts to rehost the MH code.
+
+
+ There has been some discussion of implementing specialized MH daemons
+
+that maintain context information over one or more sessions, thus decreasing the
+
+amount of overhead involved in starting each MH command. Unfortunately, even
+
+if such daemons were to be implemented, they would be very difficult to move to
+
+versions of UNIX without sophisticated process management facilities, and even
+
+then the differences in "philosophies" of process management[WJoy83, EOlse84]
+
+would tend to keep such daemons system specific. A better solution seems to be
+
+simply to tune existing code.
+
+
+
+Acknowledgements
+
+ The authors would like to thank Norman Z. Shapiro and Phyllis Kantar of
+
+the Rand Corporation for their invaluable comments during the preparation of this
+
+paper.
+
+
+
+Distribution Information
+
+ For information concerning distribution mechanics for the current release of
+
+MH, please contact:
+
+
+ Support Group
+
+ Attn: MH Distribution
+
+ Department of Information and Computer Science
+
+ University of California, Irvine
+
+ Irvine, CA 92717 USA
+
+
+
+ 714/856-6852
+
+
+
+________________________________________
+9 As of this writing, there are approximately 75 sites running mh.5 on five different implementations
+
+of UNIX.
+\f
+
+ References
+
+
+
+[DCome83] D. Comer. The Computer Science Research Network CSnet: A
+
+ History and Status Report. Communications of the ACM 26, 10
+
+ (October, 1983), 747-753.
+
+
+
+[DCroc79] D.H. Crocker, E.S. Szurkowski, D.J. Farber. An Internetwork
+
+ Memo Distribution Facility _ MMDF. Appearing in Proceedings,
+
+ Sixth Data Communications Symposium, Asilomar, 1979, pp. 18-25.
+
+
+
+[DCroc82] D.H. Crocker. Standard for the Format of ARPA Internet Text
+
+ Messages. Request for Comments 822. ARPA Internet Network
+
+ Information Center (NIC), SRI International (August, 1982).
+
+
+
+[DKing84] D.P. Kingston, III. MMDFII: A Technical Review. Appearing in
+
+ Proceedings Usenix Summer '84 Conference, Salt Lake City, Utah,
+
+ 1984, pp. 32-41.
+
+
+
+[EAllm83] E. Allman. SENDMAIL _ An Internetwork Mail Router.
+
+ Britton-Lee, Inc., Berkeley, California (July, 1983).
+
+
+
+[EOlse84] E.W. Olsen. NetOS Concepts and Facilities. Local Network Systems,
+
+ Inc., Costa Mesa, California (August, 1984).
+
+
+
+[EStef84] E.A. Stefferud, J.N. Sweet, T.P. Domae. MZnet: Mail Service for
+
+ Personal Micro-Computer Systems. Appearing in Proceedings, Second
+
+ International Symposium on Computer Message Systems, Nottingham,
+
+ U.K, 1984, pp. 293-302.
+
+
+
+[FIPS98] Specification for Message Format for Computer Based Message
+
+ Systems. National Bureau of Standards (January, 1983).
+
+
+
+[HERMES] Bolt, Beranek, and Newman. Hermes User's Manual. for TOPS-20.
+
+ Bolt, Beranek, and Newman, Boston, MA (January, 1979).
+
+
+
+[IP] Internet Protocol. Request for Comments 791 (milstd 1777).
+
+ Appearing in Internet Protocol Transition Workbook, ARPA Internet
+
+ Network Information Center (NIC), SRI International, 1981.
+
+
+
+[JReyn84] J.K. Reynolds. Post Office Protocol. Request for Comments 918.
+
+ ARPA Internet Network Information Center (NIC), SRI International
+
+ (October, 1984).
+
+
+
+ Copyright fcl1985, North Holland Publishing Company 21
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 22
+
+
+[MButl85] M. Butler, J.B. Postel, et. al. Post Office Protocol - Version 2.
+
+ Request for Comments 937. ARPA Internet Network Information
+
+ Center (NIC), SRI International (February, 1985).
+
+
+
+[MRose84a] M.T. Rose. The Rand MH Message Handling System: The UCI
+
+ BBoards Facility. Department of Computer and Information Sciences,
+
+ University of Delaware (October, 1984).
+
+
+
+[MRose84b] M.T. Rose. The Rand MH Message Handling System: Tutorial.
+
+ Department of Computer and Information Sciences, University of
+
+ Delaware (October, 1984).
+
+
+
+[MRose85a] M.T. Rose, J.L. Romine. The Rand MH Message Handling System:
+
+ User's Manual. UCI Version. Department of Information and Computer
+
+ Science, University of California, Irvine (January, 1985).
+
+
+
+[MRose85b] M.T. Rose, E.A. Stefferud. Proposed Standard for Message
+
+ Encapsulation. Request for Comments 934. ARPA Internet Network
+
+ Information Center (NIC), SRI International (January, 1985).
+
+
+
+[MRose85c] M.T. Rose, D.J. Farber, S.T. Walker. Design of the TTI Prototype
+
+ Trusted Mail Agent. Appearing in Proceedings, Second International
+
+ Symposium on Computer Message Systems, Washington, D.C., 1985
+
+ (to appear).
+
+
+
+[SMTP] Simple Mail Transfer Protocol. Request for Comments 821. ARPA
+
+ Internet Network Information Center (NIC), SRI International
+
+ (August, 1982).
+
+
+
+[TCP] Transmission Control Protocol. Request for Comments 793 (milstd
+
+ 1778). Appearing in Internet Protocol Transition Workbook, ARPA
+
+ Internet Network Information Center (NIC), SRI International, 1981.
+
+
+
+[WJoy83] W.N. Joy, E. Cooper, R.S. Fabry, S.J. Leffler, K. McKusick,
+
+ D. Mosher. 4.2bsd System Manual. Technical Report Number 5.
+
+ Computer Systems Research Group, University of California, Berkeley.
+
+
+
+[X.400] Message Handling Systems: System Model-Service Elements,
+
+ Recommendation X.400, International Telegraph and Telephone
+
+ Consultative Committee (CCITT).
+\f
+
+ Appendix A
+
+ MH Commands
+
+
+
+ MH is composed of several UNIX programs, which in theory are fairly simple
+
+ and single-purposed. These commands are functionally grouped below:
+
+
+ Composing_Mail__________
+
+ comp: compose a message
+
+ A program to originate a message. Usually, a special prompting editor front-
+
+ end, prompter, is used to fill-in a composition template with the addressees
+
+ of the message, subject, and so forth.
+
+
+ dist : redistribute a message to additional addresses
+
+ A program that re-enters a message previously received by the user into the
+
+ message transport system. Only new addresses are added; the body of the
+
+ message is not changed in any way.
+
+
+ forw : forward messages
+
+ A program that encapsulates one or more messages in a new message draft.
+
+ In addition, the user may add initial and/or closing comments.
+
+
+ repl : reply to a message
+
+ A program that constructs a reply to a message using a reply template. The
+
+ template mechanism has sufficient generality to permit the user to "program"
+
+ the form of the reply draft based on the contents of the message being
+
+ replied-to.
+
+
+ send : send a message
+
+ A program that posts a draft with the message transport system. The
+
+ send program is usually invoked by one of the four preceding programs, and
+
+ performs simple front-end pre-processing prior to invoking the post program.
+
+ For example, if invoked in push'd mode, send will immediately relinquish
+
+ control of the user's terminal and post the message in the background. If
+
+ the posting fails, send will send back a failure notice to the user. If the user
+
+ had push'd the sending of the draft, then by default the draft being sent is
+
+ encapsulated in the failure notice. This permits easy burst'ing of the failure
+
+ notice to retrieve the original draft. Otherwise, if the posting was successful,
+
+ the draft is marked as having been sent.
+
+
+whatnow : prompting front-end for send
+
+ A program which is called by comp, et. al., after the initial draft has been
+
+
+
+ Copyright fcl1985, North Holland Publishing Company 23
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 24
+
+
+ generated. The MH user can specify a different whatnow program, which
+
+ yields considerable extensibility.
+
+
+ whom: report to whom a message would go
+
+ A program which examines the addresses of the draft and expands all user-
+
+ defined aliases contained therein. Optionally, whom may actually interact
+
+ with the message transport system to determine the validity of the final
+
+ addresses. This program is also usually invoked by comp, et. al.
+
+
+ Posting_Mail_______
+
+ ali : list mail aliases
+
+ A simple front-end to the MH aliasing mechanism.
+
+
+ ap: parse addresses 822-style
+
+ A useful debugging tool for PostMasters who wish to examine how MH
+
+ interprets an Internet address.
+
+
+ conflict : search for alias/password conflicts
+
+ Another program used by system administrators to check the consistency of
+
+ MH alias files, and portions of the local message transport agent.
+
+
+install-mh: initialize the MH environment
+
+ A program which is automatically executed the first time a user issues an MH
+
+ command. This program performs once-only initialization of the user's MH
+
+ environment.
+
+
+ mhmail : send or read mail
+
+ A simple program generally used by other programs to generate messages.
+
+ The mhmail command is similar in purpose to the old BellMail program.
+
+
+ post : deliver a message
+
+ A complex MH back-end that interacts with the local message transport
+
+ agent to enter messages through the posting slot. (See the description of send
+
+ above).
+
+
+ Reading_Mail________
+
+ inc: incorporate new mail
+
+ A program that interacts with the local message transport agent to retrieve
+
+ messages from the user's maildrop.
+
+
+ msgchk : check for waiting mail
+
+ A program which reports the status of mail waiting in the user's maildrop.
+
+
+ show : show (list) messages
+
+ A program which lists messages to its standard output (usually the user's
+
+ terminal), possibly invoking another program to do the actual listing. Most
+
+ users of MH have show automatically call the mhl program to format the
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 25
+
+
+ message. The next and prev programs are simply ``show next'' and
+
+ ``show prev'' , respectively.
+
+
+ mhl : produce formatted listings of MH messages
+
+ A program which displays a message as directed by a template. This permits
+
+ the user to filter out uninteresting headers and re-arrange other headers to a
+
+ particular preference. In addition to being invoked by show, the mhl program
+
+ is optionally also invoked by forw to format each message being forwarded;
+
+ invoked by repl to format the body of a message being replied-to, if that
+
+ message is being included in the reply draft; and, invoked by post to format
+
+ a message being sent as a blind-carbon-copy.
+
+
+ rmm: remove messages
+
+ A program that removes messages from an MH folder, optionally running a
+
+ user-defined program instead of deleting them. If no program is given, the
+
+ messages are "softly" removed, so they may possibly be recovered later.
+
+
+ scan: produce a one-line-per-message scan listing
+
+ A program that generates a scan listing for messages. Each line of the listing
+
+ contains date, source, subject, and possibly the initial body of the message.
+
+
+ Folder_Handling________
+
+ folder : set/list current folder/message
+
+ A program used to list information concerning the current folder, or set the
+
+ current folder and/or message.
+
+
+folders : list all folders
+
+ A program to list information on all folders (actually, just a special case of
+
+ the folder command). Since the MH folder structure may be recursive, the
+
+ user can indicate that folders should recursively examine all folders.
+
+
+ refile: file message(s) in (an)other folder(s)
+
+ A program to move (or copy) messages from a source folder to one or more
+
+ destination folders.
+
+
+ rmf : remove folder
+
+ A program that deletes a folder and all messages therein.
+
+
+ Message_Selection_________
+
+ anno: annotate messages
+
+ A program to arbitrarily annotate messages. If the user so desires, after
+
+ distributing, forwarding, or replying-to a message, MH will automatically
+
+ attach an annotation to the original message indicating the date and addresses.
+
+
+ mark : mark messages
+
+ A program to manipulate user-defined sequences (lists of messages). Usually,
+
+ mark is not employed directly by the MH user.
+\f Reprinted from Computer Networks and ISDN Systems, 10(2), September, 1985 26
+
+
+ pick : select messages by content
+
+ A program to examine a list of messages and choose those which meet
+
+ a particular selection criterion. The pick program is often used in UNIX
+
+ back-quoted operations to pass message sequences to other MH commands.
+
+
+ sortm: sort messages
+
+ A program to sort a list of messages according to the date given in a particular
+
+ field.
+
+
+ Distribution_List_Handling____________
+
+ bbc: check on BBoards
+
+ A front-end to run msh on a list of distribution lists which the user isn't
+
+ current on.
+
+
+ bbl : manage a BBoard
+
+ A (depreciated) program used to manually manage the local archives of
+
+ a distribution list. These functions (archiving, expunging) are performed
+
+ automatically by MH.
+
+
+ burst : explode digests into messages
+
+ A program used to decapsulate messages from ARPA Internet digests. In
+
+ addition, messages which have been encapsulated during forwarding (i.e.,
+
+ with forw ) can also be decapsulated using burst.10
+
+
+ msh: MH shell (and BBoard reader)
+
+ A monolithic program used to implement MH commands on messages
+
+ arranged in a single file (maildrop format). Useful since distribution lists are
+
+ kept in this format to minimize consumption of system resources.
+
+
+ pack : compress a folder into a single file
+
+ A program which takes messages stored in MH format and places them in a
+
+ single file (using the same format known by msh).
+
+
+ Interface_to_the_UNIX_File_System________________
+
+mhpath: print full pathnames of MH messages and folders
+
+ A program which maps MH-style names into the UNIX file naming convention.
+
+
+
+ ________________________________________
+ 10 Similarly, blind-carbon-copies may be decapsulated, though only socially mature users should do
+
+ so.
+\f
+
+
+
+ Contents
+
+
+
+ Page
+
+Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*
+ * 1
+
+The MH Philosophy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
+
+ The MH Environs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
+
+ The MH Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
+
+ Folders and Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
+
+ The Context File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
+
+ Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *
+ * 7
+
+ Explaining All This to New Users . . . . . . . . . . . . . . . . . . . . . . . 7
+
+A Few Advanced Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
+
+ Draft Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *
+ * 9
+
+ Message Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
+
+ Distribution Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
+
+ Encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *
+ *14
+
+ Encapsulation and Blind-Carbon-Copies . . . . . . . . . . . . . . . . . . . 14
+
+MH as a Record Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
+
+ Mapping Between Record Modes (DBMS/MHS) . . . . . . . . . . . . . . 16
+
+Distributed Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *
+ * 17
+
+ The ARPA Internet Environs . . . . . . . . . . . . . . . . . . . . . . . . . . 18
+
+ The MZnet Environs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
+
+A Final Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *
+ * 20
+
+Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
+
+Distribution Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
+
+References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *
+ *. 21
+
+Appendix A: MH Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
+
+
+
+________________________________________
+This document (version #1.54) was TEXset April 12, 1990 with DISS.STY v103.
+
+
+
+ i
--- /dev/null
+
+
+
+
+ MZnet: Mail Service for Personal
+
+
+ Micro-Computer Systems
+
+
+
+ Einar Stefferud
+
+ President,
+
+ Network Management Associates
+
+ and
+
+ Visiting Lecturer,
+
+ in Information and Computer Science
+
+ University of California at Irvine
+
+
+
+ Jerry Sweet
+
+Department of Information and Computer Science
+
+ University of California at Irvine
+
+
+
+ Terrance Domae
+
+ School of Engineering
+
+ University of California at Los Angeles
+
+
+
+ 0
+\f
+
+
+
+ Abstract
+
+ Traditional computer mail systems involve a co-resident User Agent
+(UA) and Mail Transfer System (MTS) on a time-shared host com-
+puter which may be connected to other hosts in a network, with new
+mail posted or delivered directly through co-resident mail-slot pro-
+grams. To introduce personal micro-computers (PCs) into this envi-
+ronment requires modification of the traditional mail system architec-
+ture. To this end, the MZnet project uses a split-slot model, placing
+UA programs on the PCs while leaving MTA programs on a mail relay
+host which can provide authentication and buffering. The split-slot
+arrangement might be viewed as a new protocol level which operates
+somewhere between the currently defined MTS-MTS and UA-UA lev-
+els.
+\f
+
+
+
+Introduction
+
+
+Mail systems were born and have grown up on large central time sharing
+
+systems, often imbedded in large networks of inter-operating computers with
+
+a set of distributed processes automatically transferring mail between users.
+
+This is certainly the case with the U.S. Department of Defense (DoD) Ad-
+
+vanced Research Projects Agency Network (ARPANET) [1 ] where much of
+
+the original computer network mail systems research and development has
+
+taken place. Other mail networks such as the Computer Science Network
+
+[2 ] sponsored by the U.S. National Science Foundation, have also used rela-
+
+tively large shared computers lodged in an institutional setting, though they
+
+are often connected together with ordinary dial-up telephone links to form a
+
+large geographic network. Another U.S. example is USENET [3 ] which con-
+
+nects thousands of Unix1 systems together with informally-supported dial
+
+telephone links. Although there have been several attempts, there appear to
+
+be no successful mail networks based on small personal computers, such as
+
+those that use the CP/M2 or MS-DOS3 operating systems.
+
+ The accepted architectural model (see Figure 1) for computer network
+
+mail (first articulated by the IFIP 6.5 Systems Environment Working Group)
+
+involves a User Agent (UA) which posts new mail items through a mail slot
+
+[4 , 5, 6, 7] to a Mail Transfer Agent (MTA) which delivers posted items to
+
+designated UA recipients through corresponding delivery slots. When mail
+
+is to be delivered to a UA on another host, it is transferred first to another
+
+MTA on the recipient user's host, which in turn puts the mail item through
+
+its local delivery slot. In this model, a Mail Transfer System (MTS) may
+
+be viewed as a collection of MTAs with network connections among them to
+
+provide Mail Transfer Services for a large number of users on different host
+
+computers.
+
+ Replicating this UA/MTA/MTS model on a personal micro-computer
+
+(PC) is not an easy task. Aspects of PCs that make support of this model
+
+difficult include limited storage capacities, limited processing capabilities,
+
+and the fact that PCs are geared to support a single user rather than several
+
+users at once. A PC with limited secondary diskette storage and limited
+________________________________________________
+ 1 UNIX is a Trademark of Bell Laboratories, Inc.
+ 2 CP/M is a Trademark of Digital Research, Inc.
+ 3 MS-DOS is a Trademark of Microsoft Corporation.
+
+
+
+ 1
+\f
+
+
+
+processing capacity (often single-thread) is not well suited to support the full
+
+range of automatic interactions between a UA and an MTA, or the necessary
+
+interactions between MTAs in an MTS. For example, we do not see any way
+
+to certify PC systems for authentication of posted mail. A PC can change
+
+its entire character and behavior with insertion of a new program diskette,
+
+suggesting that it is the operating system diskettes and their users that must
+
+be certified, rather than the computers. Review of certification issues shows
+
+that it is not the computer, but its operators and managers that must be
+
+certified, and this involves the notions of central management and control.
+
+All this is lost in the maze of PCs that we see proliferating on and off our
+
+campuses, in and out of our offices and homes.
+
+ Thus, we see a need for a new arrangement with the UA separated from
+
+its MTA, and using communication protocols to interact with it in ways
+
+that resemble MTA-to-MTA interactions. The UA is placed on the PC end,
+
+while the more complex tasks performed by the MTA are relegated to the
+
+remote host end. The remote MTA must authenticate mail items offered by
+
+the PC-based UA, just as it would for a co-located UA, but the task is more
+
+difficult because the PC UA is potentially anyone among the public telephone
+
+connectable population. This can be handled with password systems, but
+
+recognition and identification are not the only services to be provided at the
+
+posting slot. Posting also requires some validation of recipient addresses,
+
+and validation of the syntax and semantics of certain header fields. Example
+
+standards are provided by the U.S. National Bureau of Standards (NBS) and
+
+the U.S. DoD ARPANET for the format of mail to be transferred [8 , 9 , 10 ].
+
+ The new arrangement described in this paper might be called a split mail
+
+slot in that the UA side of the slot is split away from the MTA side. Although
+
+the UA and MTA may be on opposite ends of a telephone connection, they
+
+must still act together as a single processing unit to move mail from one
+
+to the other, with all that this may entail. This gives rise to a number of
+
+new MTA/UA requirements such as error control for service requests, user
+
+intervention to select items for delivery, and user postponement or rejection
+
+of delivery without triggering failure notices to senders. These are not serious
+
+problems when both MTA and UA are programs running on a single host.
+
+For example, with both UA and MTA on the same host, unwanted junk mail
+
+is simply deleted at low cost, compared to the cost of deletion after a long
+
+delivery transmission time. Better that our PC users be able to discard items
+
+without delivery transmission.
+
+
+
+ 2
+\f
+
+
+
+Overview of the MZnet Environment
+
+
+The MZnet project is an undergraduate student effort sponsored within the
+
+Information and Computer Science (ICS) Department of the University of
+
+California at Irvine (UCI) in Southern California. For the past 2 years, the
+
+UCI mail network, known as ZOTnet, has been connected into the Computer
+
+Science Network (CSnet) and in 1984, has joined the DoD ARPA Internet
+
+with a Split-Gateway connection [11 ] to the University of Southern California
+
+Information Sciences Institute (USC-ISI). The MZnet split-slot arrangement
+
+may have some similarities to the Split-Slot Internet Gateway at least in
+
+name, but the problems and the implementations are quite different.
+
+ The UCI ZOTnet environment [13 ] gives the MZnet project a full-fledged
+
+Internet-class mail system as its foundation. The MZnet project objective is
+
+to extend this class of mail service to personal computers located in student
+
+and faculty residences, offices and laboratories, without waiting for full-blown
+
+local area networking to first provide connections. This follows a pattern of
+
+making the most of existing facilities to provide a reasonable level of service.
+
+ The UCI ZOTnet uses the CSnet-provided MMDF (Multi-channel Memo
+
+Distribution Facility) software [12 ] from the University of Delaware to inter-
+
+connect two VAX 750 Unix systems with two DEC TOPS-20 systems through
+
+a port selector, with dial telephone connection to a CSnet relay [14 ]. The
+
+ZOTnet has since evolved into an ethernet-connected local area network with
+
+the aforementioned gateway connection into the DoD Internet. The ZOTnet
+
+also connects to USENET with the UUCP protocols, and provides format
+
+transformations for mail flowing between protocol domains [15 , 16 ]. Adding
+
+to the reach of the ZOTnet with MZnet is a natural part of its evolution4 .
+
+ To this point we have set the context of the MZnet project. The remainder
+
+of this paper is devoted to relatively technical discussions of implementation
+
+of the PC user agent programs and the split-slot UA/MTA interface.
+________________________________________________
+ 4 For those who are properly curious about such things, the name "ZOTnet" derives
+
+from the cry of the UCI mascot which is the Anteater from the B.C. comic strip, and
+MZnet is simply a contraction for Micro-ZOTnet.
+
+
+
+ 3
+\f
+
+
+
+The MZnet User Agent: CP/MH
+
+
+CP/MH is a collection of programs designed to work in conjunction with
+
+the Micro ZOTnet (MZnet) as an extension of the UCI ZOTnet. CP/MH
+
+programs permit a user of a CP/M 2.2-based microcomputer to send and re-
+
+ceive ZOTnet mail messages, as well as to manipulate them locally on floppy
+
+disks. The CP/MH programs are written in the C programming language
+
+and should be portable to similar operating environments, such as MS-DOS,
+
+etc.
+
+ CP/MH is based on the UCI version of the Rand MH message handling
+
+system [17 ] for the Unix operating system. The major philosophical dif-
+
+ferences between CP/MH and typical user agents such as MSG [4 ] and its
+
+descendants are those of modularity and of user interface. In CP/MH (as
+
+in MH) the user does not invoke a single monolithic program to deal with
+
+mail, but rather invokes individual, non-interactive programs with common
+
+knowledge of the way messages are stored. Each program has default behav-
+
+ior which can be modified by using Unix-style command line options at time
+
+of invocation or through a user profile. Help messages can also be evoked
+
+from CP/MH programs.
+
+
+
+Messages and Folders
+
+
+The format of a CP/MH message adheres more or less to the syntax described
+
+in RFC 822 in which a message consists of headers containing information
+
+pertaining to the message source and destination, and the message body,
+
+separated from the headers by a blank line. An example of such a message
+
+might be:
+
+
+
+ Date: 02 Nov 83 23:04:53 PST (Wed)
+
+ To: Toto <dog@Univ-Kansas>
+
+ From: The Great And Powerful Oz <Oz@Emerald-City>
+
+ Subject: What Be Your Excuse?
+
+
+
+ What's the matter? I ask you for a simple thing like
+
+ "distribute this to Witch@Oz-West," and you can't do it.
+
+ You undergrads will do anything to get out of work!
+
+
+
+ 4
+\f
+
+
+
+ --ozzie
+
+
+ Following the MH convention, each message is kept in a separate file.
+
+Since a message is simply ASCII text, it can be operated upon by non-
+
+CP/MH programs (such as text editors, in particular).
+
+ Collections of messages are called folders. Under CP/MH, folders are
+
+represented by several files: an info file, containing maintenance information
+
+about the folder, and a set of message files with the same name as the info
+
+file, but with unique numeric suffixes (extensions in CP/M parlance). An
+
+example of this naming scheme might be:
+
+
+DRAFT the info file for the DRAFT folder
+
+
+DRAFT.001 message 1 in the folder
+
+
+DRAFT.002 message 2 in the folder
+
+
+DRAFT.003 message 3 in the folder
+
+
+ The number of messages that may be stored in a folder is limited primarily
+
+by the storage capacity of a floppy disk, but also by the three-digit limit of
+
+a CP/M extension.
+
+ The info file contains a field named CURRENT: specifying the current mes-
+
+sage number. The current message number signifies the default message
+
+operated upon by CP/MH commands using a particular folder. The current
+
+message number may be modified by some commands. An example of the
+
+contents of the info file DRAFT might be
+
+
+ CURRENT: 3
+
+
+ This indicates that the file DRAFT.003 would be operated upon when
+
+default conditions apply (i.e. when no message number is explicitly given to
+
+a CP/MH command).
+
+ Possible future uses for the info file include named message sequences (a
+
+set of messages to which commands may be applied as a whole) and user
+
+profile information for application to particular folders (there is presently a
+
+single user profile, described shortly).
+
+ A floppy diskette may contain more than one folder, but folders do not
+
+extend over more than one floppy diskette; therefore two different diskettes
+
+may contain folders with the same name.
+
+
+
+ 5
+\f
+
+
+
+CP/MH Commands
+
+
+Commands operating on messages can be divided into several general cate-
+
+gories:
+
+
+
+Transporting: sending, receiving
+
+
+Viewing: selecting for display, showing header summaries
+
+
+Creating: composing, replying, forwarding
+
+
+Archiving: categorizing, refiling, deleting, sorting
+
+
+
+ The architecture of CP/MH permits the simulation of some of these cat-
+
+egories using standard CP/M commands when CP/MH, in its present prim-
+
+itive state, does not cover them.
+
+ A minimal functionality is presently provided by the following four com-
+
+mands:
+
+
+
+COMP composes mail items: creates a file containing header information
+
+ taken from a standard or user-specified template. This newly-created
+
+ file may be edited to fill in the header fields and body.
+
+
+REPL replies to mail items: creates a file containing header information
+
+ appropriate for answering a given mail item. This newly-created file
+
+ may be edited to change header fields and fill in the body.
+
+
+SEND sends mail items: posts selected items through the split-slot from a
+
+ draft folder.
+
+
+INC receives mail items: takes delivery of selected items across the split-
+
+ slot, incorporating them into a mailbox folder.
+
+
+
+These commands, with a few enhancements and modifications appropriate
+
+to the CP/M environment, are functionally almost identical to their Unix
+
+MH counterparts.
+
+ CP/MH commands are invoked like any other CP/M commands such as
+
+ED, PIP, or DIR. Command line options are generally preceded by a dash
+
+(e.g. -editor A:ED), and may be abbreviated. Folder names are preceded
+
+
+
+ 6
+\f
+
+
+
+by a plus (e.g. +B:DRAFT). Messages are identified by numbers or by the
+
+special names first, last, current, next, and previous.
+
+ An example of use of a CP/MH command is:
+
+
+
+ comp -edit a:ed -use last +b:draft -log
+
+
+
+ This particular example will edit the last-composed message (the -use
+
+last option) in the folder DRAFT on disk drive B: (the +b:draft option),
+
+using the standard CP/M editor ED on disk drive A: (the -edit a:ed op-
+
+tion), and prompting the user when it is appropriate to change disks (the
+
+-log option).
+
+ All CP/MH commands have a -help option which displays all available
+
+options for the particular command invoked. Another common option is
+
+-log which permits the user to change (relog) diskettes after invoking a
+
+command, for purposes of selecting diskettes with message folders or with
+
+editor programs. This is particularly useful on single-drive systems or on
+
+systems with diskettes of low storage capacity.
+
+
+
+The Profile
+
+
+If there are options commonly used with a particular CP/MH command,
+
+they may be entered in the user profile contained in the file called (naturally
+
+enough) PROFILE, which must exist on the same diskette on which CP/MH
+
+commands reside and from which the commands are invoked. A profile entry
+
+consists of a program name followed by a colon and the options to be used
+
+with that program, for example:
+
+
+
+ comp: -editor A:VEDIT +B:outbox -log
+
+ repl: -editor A:VEDIT -log
+
+ send: +B:outbox
+
+ inc: +B:inbox -log
+
+
+
+ Individual profile components are overridden by options given at the time
+
+of invocation (e.g. -noedit given on the command line will override the
+
+-editor profile component for a particular command).
+
+
+
+ 7
+\f
+
+
+
+The MZnet Split-Slot Mail Transfer System
+
+
+The MZnet split-slot software implements a peer-to-peer communication pro-
+
+tocol between a time-sharing host's MTA and a personal micro-computer
+
+(PC) UA. This MZnet protocol extends the UA/MTA/UA model of computer-
+
+based message systems (CBMS) to provide a split gateway function between
+
+individual PCs and the ZOTnet similar to the UCI ICS split Internet gateway
+
+described previously (see Figure 2).
+
+
+
+The Structure of the Split-Slot
+
+
+The MZnet Split Gateway consists of three distributed processing compo-
+
+nents:
+
+
+
+ - A PC running a UA (in MZnet, CP/MH) acting as the mail server.
+
+
+ - A mini/mainframe host running a full MTA (MMDF in MZnet) pro-
+
+ viding mail relay services.
+
+
+ - A communication protocol (a modified version of MMDF PhoneNet)
+
+ to connect the two ends of the split-slot.
+
+
+
+Although this combination may not be unique, the method by which the
+
+MZnet split-slot bonds these parts together uniquely deals with the prob-
+
+lems of remote user agents. In addition to overcoming limited storage and
+
+processing capacities, remote user agents must deal with noisy modem lines,
+
+mail software certification, and mail system security problems. The MZnet
+
+architecture appears to solve these problems with a clean mail interface for
+
+PCs.
+
+
+
+The MZnet Mail Server
+
+
+The split-slot mail server consists of a set of command packet programs run
+
+from the PC. These programs simply present commands through the Phone-
+
+Net communication protocol to the mail relay slave program on the host.
+
+Some basic commands are:
+
+
+
+PostMail posts mail drafts to MTA
+
+
+
+ 8
+\f
+
+
+
+GetMail accepts mail from MTA
+
+
+RemoteScan displays information about waiting mail
+
+
+Quit drops connection between PC and Host
+
+
+
+ Each command has the form:
+
+
+
+ Command Request
+
+ Data Transmission
+
+ Command Termination
+
+
+
+ For example, the PostMail command is a small program that:
+
+
+
+ - initiates a command with the Mail Slave by sending the command name
+
+ (PostMail) encoded within a PhoneNet packet;
+
+
+ - sends a series of PhoneNet packets that contain pieces of the mail item
+
+ to be posted;
+
+
+ - finally sends a command termination signal to end the transaction with-
+
+ out terminating the connection between host and PC.
+
+
+
+The MZnet Channel To MMDF
+
+
+The MZnet Channel runs on the MTA host under the University of Delaware's
+
+MMDF (Version 1) and is responsible for both delivery of received mail to
+
+MZnet users, and posting of MZnet user-originated mail. The MMDF MZnet
+
+channel maintains a unique message queue for each registered MZnet user.
+
+As new mail items arrive, they are posted to the appropriate queues, where
+
+MZnet holds the mail items for pickup by their registered recipients.
+
+ To send or receive mail, the MZnet user must attach to the host, log into
+
+the public MZnet account, and identify (authenticate) himself. During the
+
+MZnet session with the host, the user has access only to that restricted set
+
+of functions provided by the MZnet split gateway protocol: he may request
+
+delivery of queued mail with GetMail, or post new mail with PostMail. Prior
+
+to taking delivery of queued mail, a survey of waiting mail also may be
+
+
+
+ 9
+\f
+
+
+
+requested with RemoteScan to obtain message size information (among other
+
+data) to allow intelligent disposition of mail in the queue.
+
+ Hidden within these activities are issues of security and certification. To
+
+certify and establish the identity of the user, a second password is requested
+
+after logging into the public MZnet account. This certification procedure
+
+allows MZnet to certify the source of originated mail. A relatively secure
+
+environment is provided by MZnet, as it is the only interface to the host
+
+permitted to MZnet users (once beyond the public login procedure), and it
+
+offers only the severely restricted set of PhoneNet-encoded commands. Aside
+
+from security issues, using a single account to handle all MZnet users reduces
+
+demands on system resources.
+
+
+
+The MZnet-PhoneNet Protocol
+
+
+A unique facet of the MZnet system derives from the PhoneNet File Transfer
+
+Protocol (FTP). PhoneNet FTP is a simple error-checked packet protocol
+
+which transfers ASCII plaintext. PhoneNet encodes any non-plaintext char-
+
+acter (or any other character "forbidden" by the idiosyncrasies of the com-
+
+municating systems) by mapping it onto an "accepted" character set. The
+
+accepted character set mapping is determined by a "negotiating" session be-
+
+tween the two systems at the start of the PhoneNet session.
+
+ MZnet transfers all information (both commands and data) in PhoneNet
+
+packets to obtain error control. The MZnet-PhoneNet command FTP toler-
+
+ates noise with a high degree of success, and in effect, connects both ends of
+
+the Split Slot together with a reliable set of virtual wires.
+
+
+
+MZnet Session Example
+
+
+Here, a typical MZnet session is presented, with the UA commands issued
+
+from the PC side of the connection printed in a typewriter typeface, and
+
+the responses from the host side printed in an italic typeface. PhoneNet
+
+interactions are indented. The initial connection to the host is accomplished
+
+with the term program, which provides a simple terminal emulation function.
+
+The prompt of the PC for a UA command is "Ai". Note that passwords are
+
+never echoed by the host system.
+
+
+
+ Ai term
+
+
+
+ 10
+\f
+
+
+
+ login: mznet
+
+ password:
+
+ MZ-Password:
+
+ PhoneNet packet negotiation
+
+ Connected.
+
+ exit terminal mode
+
+ Ai send cur
+
+ PostMail command
+
+ message text packet transmission
+
+ command terminator
+
+ Ai quit
+
+ Quit command
+
+ Disconnecting.
+
+
+
+Conclusions
+
+
+The main conclusions of this paper are that small personal computer systems
+
+with dial-up phone connections constrain User Agent systems design in ways
+
+that require use of a split-slot interface between the UA and its supporting
+
+Mail Transfer Agent (MTA), and that this interface will best provide the re-
+
+quired services if it has error controlled command and data transfer facilities,
+
+with interactive behavior.
+
+ It is also believed that a good design for the small PC UA is based on
+
+a very modular architecture, such as the Rand MH system, which has been
+
+used as a pattern for the MZnet UA.
+
+ By bringing these concepts together, we expect MZnet to provide reliable
+
+UA/MTA service to a distributed set of small personal computers, to match
+
+the quality of service that is normally only available from larger mainframe
+
+host systems with co-resident UA/MTA pairs.
+
+
+
+References
+
+
+ [1] SRI-NIC, ARPANET Directory, Network Information Center, SRI In-
+
+ ternational, Menlo Park, California (November 1980).
+
+
+
+ 11
+\f
+
+
+
+ [2] Comer, D., A Computer Science Research Network CSNET: A History
+
+ and Status Report, Communications of the ACM, volume 26, number 10
+
+ (October 1983) 747-753.
+
+
+ [3] Emerson, S. L., USENET: A Bulletin Board for Unix Users. BYTE,
+
+ volume 8, number 10 (October 1983) 219-236.
+
+
+ [4] Vittal, J., MSG: A Simple Message System, in: Uhlig (editor), Proceed-
+
+ ings of the IFIP TC-6 International Symposium on Computer Message
+
+ Systems (North-Holland, April 1981).
+
+
+ [5] Deutsch, D., Design of a Message Format Standard, in: Uhlig (editor),
+
+ Proceedings of the IFIP TC-6 International Symposium on Computer
+
+ Message Systems (North-Holland, April 1981).
+
+
+ [6] v.Bochmann, G. and Pickens, J. R., A Methodology for the Specifica-
+
+ tion of a Message Transport System, in: Uhlig (editor), Proceedings of
+
+ the IFIP TC-6 International Symposium on Computer Message Systems
+
+ (North-Holland, April 1981).
+
+
+ [7] Kerr, I. H., Interconnection of Electronic Mail Systems, in: Uhlig (edi-
+
+ tor), Proceedings of the IFIP TC-6 International Symposium on Com-
+
+ puter Message Systems (North-Holland, April 1981).
+
+
+ [8] Crocker, D., Standard for the Format of ARPA Internet Text Messages
+
+ (RFC 822) Network Information Center, SRI International, Menlo Park,
+
+ California (August 1982).
+
+
+ [9] NBS, Message Format for Computer-Based Message Systems, U.S. Na-
+
+ tional Bureau of Standards FIPS Publication 98 (March 1983).
+
+
+[10] CCITT Study Group VII/5, Draft Recommendation X.MHS1: Mes-
+
+ sage Handling Systems: System Model_Service Elements (version 2),
+
+ Technical Report, International Telegraph and Telephone Consultative
+
+ Committee (CCITT) (December 1982).
+
+
+[11] Rose, M., Low Tech Connections into the ARPA Internet: The Raw-
+
+ Packet Split-Gateway, University of California Irvine Techical Report
+
+ number 216 (February 1984).
+
+
+
+ 12
+\f
+
+
+
+[12] Crocker, D., Szurkowski, E., Farber, D. J., An Internet Memo Distribu-
+
+ tion Facility_MMDF, Proceedings of the Sixth IEEE Data Communi-
+
+ cations Symposium (November 1979).
+
+
+[13] Rose, M., The ZOTnet_A Local Area Mailing Network, University of
+
+ California Irvine Technical Report number 200 (January 1983).
+
+
+[14] CSNET-CIC, Focus on the University of California, Irvine, CSNET
+
+ News 2, Bolt, Beranek, and Newman, Cambridge, Massachusetts (Octo-
+
+ ber 1983).
+
+
+[15] Rose, M., Achieving Interoperability Between Two Domains_
+
+ Connecting the ZOTnet and UUCP Computer Mail Networks, University
+
+ of California Irvine Technical Report number 201 (January 1983).
+
+
+[16] Rose, M., Proposed Standard for Message Munging (RFC 886), Network
+
+ Information Center, SRI International, Menlo Park, California (Decem-
+
+ ber 1983).
+
+
+[17] Borden, B. S., Gaines, R. S., and Shapiro, N.Z., The Rand MH Message
+
+ Handling System: User's Manual (Rand Corporation, March 1983).
+
+
+
+ 13
+\f
+
+
+
+________________________________________________________________________________________________________________________
+
+Any Host Relay Host Any Other Host
+
+
+
+ user user
+
+
+
+ UA UA
+
+
+
+ slot slot
+
+
+
+ MTA MTA MTA MTA
+
+
+
+PhoneNet PhoneNet PhoneNet PhoneNet
+
+
+
+ modem modem modem modem
+
+
+
+_______________________________________Figure_1:__The_MHS_Model_________________________________________________________
+
+
+
+ 14
+\f
+
+
+
+________________________________________________________________________________________________________________________
+
+Any Host MZnet Host PC
+
+
+
+ user user
+
+
+
+ UA UA
+
+
+
+ slot split slot
+ MZnet MZnet
+
+
+
+ MTA MTA
+
+
+
+PhoneNet PhoneNet PhoneNet PhoneNet
+
+
+
+ modem modem modem modem
+
+
+
+____________________________________Figure_2:__The_Split-Slot_Model_____________________________________________________
+
+
+
+ 15
--- /dev/null
+
+
+
+
+ MH.5:
+
+ How to process 200 messages a day
+
+ and still get some real work done./
+
+
+ Marshall T. Rose
+
+ Member, Research Technical Staff
+
+ Northrop Research and Technology Centery
+
+
+
+ John L. Romine
+
+ Computing Support Group
+
+ Department of Information and Computer Science
+
+ University of California, Irvinez
+
+
+
+ Abstract
+
+
+ The UCI version of the Rand Message Handling System (MH) is dis-
+
+ cussed. MH is a powerful user agent which operates in the ARPA Internet
+
+ and UUCP environments. In addition to the usual functions provided
+
+ by similar programs, MH has several distinguishing characteristics which
+
+ give the user additional message handling capability. In particular, MH
+
+ provides mechanisms for maintaining an organized mail environment,
+
+ tailoring its behavior, and extending its functions.
+
+
+ This document describes MH from several perspectives. Particular em-
+
+ phasis is given to: the MH user environment, advanced features of MH
+
+ which have proven to be particularly useful for sophisticated users of
+
+ electronic mail, the user interface issues in MH, and the mh.5 distribu-
+
+ tion. The paper concludes with a summary of the authors' experiences
+
+ with MH, and a discussion of future areas of enhancement.
+
+
+
+_____________________________________
+./ Alternate title: MH: Your Key to Success.
+y One Research Park, Palos Verdes Peninsula, CA 90274. Telephone: 213/377-4811.
+
+Computer mail: MRose% NRTC@USC-ECL, : : :!fucbvax!ucivax,trwrbg!nrtc!mrose.
+z University of California at Irvine, Irvine, CA 92717. Telephone: 714/856-6852.
+
+Computer mail: J-Romine@USC-ECL, : : :!fucbvax,trwrbg!ucivax!jromine.
+\f
+
+ MH.5:
+
+ How to process 200 messages a day
+
+ and still get some real work done
+
+
+
+Introduction
+
+ The UCI version of the Rand Message Handling System, MH, is a software
+
+system that performs two functions: first_, it interfaces a user to a message
+
+transport system, so the user may receive and send mail; second___, it permits the
+
+user to maintain an organized mail environment to facilitate the composition of
+
+new messages and the reading of old messages. In short, while not responsible for
+
+the delivery of messages, MH aids the user in handling mail.
+
+
+ MH was originally developed by the Rand Corporation, and initially was
+
+proprietary software. The Department of Information and Computer Science
+
+at University of California, Irvine, shortly after joining the Computer Science
+
+Network (CSnet), acquired a copy of MH, and began additional development of
+
+the software. Since that time, the Rand Corporation has declared MH to be in the
+
+public domain, and the UCI version of MH has passed through four major releases.
+
+The current version, mh.5, is available from U.C. Irvine for a nominal distribution
+
+fee, or may be retrieved from the University of Delaware via anonymous FTP.
+
+
+ Much credit must be given to the initial designers and implementors of MH:
+
+Bruce Borden, Stockton Gaines, and Norman Shapiro. Although MH has suffered
+
+significant development at UCI since Rand's initial release, the fundamental
+
+concepts of MH's environs have remained nearly unchanged. In addition, the
+
+authors of the current release gratefully acknowledge the comments of the many
+
+sites which have run various releases of MH in the past. In particular, the dozen
+
+or so beta test sites for mh.5 provided tremendous help in stabilizing the current
+
+release.
+
+
+ MH runs on different versions of the UNIX1 operating system (such as
+
+Berkeley 4.2bsd and various flavors of v7). In addition, MH supports four
+
+different message transport interfaces: SendMail[EAllm83], the standard mailer
+
+for 4.2bsd systems; MMDF[DCroc79] and MMDF-II[DKing84], the Multi-Channel
+
+Memo Distribution Facility developed by the University of Delaware which forms
+
+the software-backbone for CSnet[DCome83] mail relay service; SMTP, the ARPA
+
+Internet Simple Mail Transfer Protocol[SMTP]; and, a stand-alone delivery system.
+
+
+
+_____________________________________
+1 UNIX is a trademark of AT&T Bell Laboratories.
+
+
+
+ 1
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 2
+
+
+ This paper is organized in a straight-forward fashion: Initially, the MH
+
+philosophy of mail handling is presented, along with a description of the
+
+environment which the MH user is given to process mail. Following this, certain
+
+advanced features of MH are discussed in more detail, such as facilities for selecting
+
+messages, and "advanced" concepts in draft handling. In addition, user interface
+
+issues in mail handling are addressed, and the merits of MH's approach is critically
+
+examined. Next, the mh.5 distribution package is described. Finally, we conclude
+
+by discussing the authors' experience with MH development and introducing areas
+
+where MH may be further developed.
+
+
+ Although familiarity with MH is not assumed on the part of the reader,
+
+some knowledge of the UNIX operating system is useful. Appendix A gives a short
+
+synopsis of the MH commands.
+
+
+
+The MH Philosophy
+
+ Although MH has many traits which tend to distinguish it from other systems
+
+which handle mail, there is a single fundamental design decision which influences
+
+the interface between MH and the user: MH differs from most other systems in
+
+that it is composed of many small programs instead of one very large one. This
+
+architecture gives MH much of its strength, since intermediate and advanced users
+
+are able to take advantage of this flexibility.
+
+
+ The key to this flexibility is that the UNIX shell (usually the C shell or the
+
+Bourne shell), is the user's interface to MH. This means that when handling mail,
+
+the entire power of the shell is at the user's disposal, in addition to the facilities
+
+which MH provides. Hence, the user may intersperse mail handling commands
+
+with other commands in an arbitrary fashion, making use of command handling
+
+capabilities which the user's shell provides.
+
+
+ Furthermore, rather than storing messages in a complicated data structure
+
+within a monolithic file, each message in MH is a UNIX file, and each folder (an
+
+object which holds groups of messages) in MH is a UNIX directory. That is,
+
+the directory- and file-structure of UNIX is used directly. As a result, any UNIX
+
+file-handling command can be applied to any message.
+
+
+ To the novice, this may not make much sense or may not seem important.
+
+However, as users of MH become more experienced, they find this capability
+
+attractive. In addition, this approach is often quite pleasing to system implemen-
+
+tors, because it minimizes the amount of coding to be performed, and given a
+
+modular design, changes to the software system can be maintained easily. There
+
+are, however, performance penalties to be paid with this scheme. This issue is
+
+considered later in the paper.
+
+
+ Having described how MH fits into the UNIX environment, we now discuss
+
+the mail handling environment which is available to the MH user.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 3
+
+
+The MH Environs
+
+ In the $ HOME directory of each MH user, a file named .mh_profile contains
+
+static information about the user's MH environment, and default arguments for
+
+MH programs. For the latter case, each line of profile takes the form:
+
+
+ program-name: options
+
+
+Each MH program consults the user's .mh_profile for its options. These options
+
+are consulted prior to evaluating any command-line arguments, and so provide the
+
+MH user the capability to customize the defaults for each command. Futher, by
+
+using the UNIX link facility, different names can be given to the same command.
+
+Since each MH command looks in the .mh_profile for a component with the name
+
+by which it was invoked, it's possible to have different defaults for the same
+
+program. For example, it is not uncommon to link prompter (a simple prompting
+
+editor front-end) under the name rapid in the user's bin/ directory, and add to the
+
+.mh_profile :
+
+
+ rapid: -prepend -rapid
+
+
+As a result, when prompter is invoked as rapid, it automatically uses the `-prepend'
+
+and `-rapid' options.
+
+
+ The profile component ``Path:'' is the path to the user's MH-directory,
+
+usually Mail. In addition to containing the user's folders, the MH-directory also
+
+contains skeletons and templates used by the MH programs, and the user's context
+
+file. This latter file has the same format as the user's .mh_profile , and contains the
+
+dynamic, context-dependent information about the user's environment. Whenever
+
+MH looks for an MH-specific file, such as a template or skeleton, it first consults
+
+the user's MH-directory, and then a system-wide library area.
+
+
+ The MH user always has a current folder, which is the folder in which the user
+
+is currently (or was last) working. Since any MH program which deals with folders
+
+implicitly manipulates this information, the name of the current folder is stored in
+
+the context component ``Current-Folder:'' . Every folder has a current message
+
+known as `cur' . These values are the defaults for MH commands which accept
+
+folder and/or messages arguments.
+
+
+ MH programs make use of a set of envariables which further customize their
+
+behavior. The $ MH envariable, if present, specifies the name of an alternate profile
+
+for the user. This allows a user of MH to easily maintain multiple mail-handling
+
+environments.
+
+
+ In terms of command syntax, most MH commands accept an optional folder
+
+argument, such as `+outbox' . Unlike most UNIX commands, all MH commands
+
+have switches which are words, rather than single letters. Switches may be
+
+abbreviated to the least unambiguous prefix. All MH commands also support
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 4
+ _______________________________________________________________________________________________________________
+
+ 1 % inc
+ 2 Incorporating new mail into inbox...
+ 3
+ 4 1+ 03/16 Rand MH System MH transcript <<Here's the body of a sample m
+ 5
+ 6 % show
+ 7 (Message inbox:1)
+ 8 To: jromine@uci-icsa
+ 9 Subject: MH transcript
+10 Date: 16 Mar 85 18:28:59 PST (Sat)
+11 From: Rand MH System <mh@uci-icsa>
+12
+13 Here's the body of a sample message.
+14 % repl
+15 To: Rand MH System <mh@uci-icsa>
+16 cc: jromine@uci-icsa
+17 Subject: Re: MH transcript
+18 In-reply-to: Your message of 16 Mar 85 18:28:59 PST (Sat).
+19 --------
+20 Thanks for the test.
+21
+22 /JLR
+23 ^D
+24
+25 What now? send
+26 % comp
+27 To: MRose@UCI
+28 cc:
+29 Subject: sample comp
+30 --------
+31 Here's a sample compose for the MH transcript.
+32
+33 /JLR
+34 ^D
+35
+36 What now? send -verbose
+37 -- Posting for All Recipients --
+38 -- Local Recipients --
+39 MRose: address ok
+40 -- Recipient Copies Posted --
+41 Message Processed
+
+
+ Figure 1
+
+ _____________________________________________An_MH_Session_____________________________________________________
+
+
+
+ a `-help' switch, which lists the syntax of the command along with available
+
+ switches, and the version number of the command. Most MH commands also take
+
+ a `msg' or `msgs' argument which takes the form of a message number (``1'' ), a
+
+ message range (``1-2'' ), a standard sequence name (``cur'' ), or a user-defined
+
+ sequence name (``select'' ).
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 5
+
+
+An MH Transcript
+
+ Figure 1 contains a transcript of a simple MH session. First, inc is run to
+
+incorporate the new mail into the user's ``+inbox'' folder.
+
+
+ A scan listing of the mail is printed while it is being incorporated. (The
+
+user could run scan explicitly to generate additional scan listings later on.) The
+
+scan listing gives the message number, followed by the date, message sender,
+
+and subject. (If the message originated from the user generating the listing, the
+
+``to:'' addressee is displayed instead of the sender.) If the subject is short, the
+
+first part of the message body is displayed after the characters ``<<'' . The plus
+
+sign (`+') after the message number indicates the current message.
+
+
+ The user show s the message, and decides to repl y. A reply draft is created
+
+using the headers of the message being replied-to, using the default replcomps
+
+template. The default editor, prompter, is called to edit the draft. When an
+
+EOT is typed, prompter exits and the user is left at the What now? prompt. The
+
+option send is chosen. Since there were no problems in posting the draft with the
+
+message transport system, no additional output is produced. (MH is not verbose
+
+by default.)
+
+
+ The user then decides to compose a new message. The default skeleton,
+
+components , is copied to the draft, and prompter is once again called. After
+
+entering the addresses, subject, and body, the user then send s the draft from the
+
+What now? prompt, using ``send -verbose'' , which causes MH to list out the
+
+message addresses as it submits them to the message transport system.
+
+
+
+Some MH Features
+
+ We now consider certain advanced features in MH. These features have been
+
+chosen to demonstrate some useful capabilities available to the MH user.
+
+
+Message Sequences and Selection
+
+ MH has several built-in message sequence names, which may be used
+
+anywhere a `msg' or `msgs' argument is expected. These are: `cur' , `next' ,
+
+`prev' , `first' , `last' , and `all' . Message ranges may also be specified. For
+
+example, `all' is actually `first-last' , and `+mh last:5' references the last
+
+five messages in your `+mh' folder. A powerful capability of MH is the ability to use
+
+not only the pre-defined message sequence names, but also arbitrary user-defined
+
+message sequence names.
+
+
+ Although all MH programs recognize user-defined sequences when appropriate,
+
+the pick and mark commands can create and modify user-defined message
+
+sequences. The mark command allows low-level manipulation of sequences, and is
+
+not particularly interesting in our discussion.
+
+
+ The pick command selects certain messages out of a folder. The criteria used
+
+for selection may be a search string and/or a date range.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 6
+
+
+ Searching is performed on either a specific header in the message (e.g.,
+
+``To:'' ), or anywhere within the message. By default, pick lists out the message
+
+numbers that matched the selection criteria. Thus, pick is useful in backquoted
+
+operations to the shell. For example, to scan all the messages in the current folder
+
+from "frated", the MH user issues the command:
+
+
+ scan `pick -from frated`
+
+
+To perform more complicated message selection, user-defined sequences are
+
+employed. Supplying a `-sequence name' argument to pick, will cause it to define
+
+the sequence `name' as those messages matched.
+
+
+ Giving pick a list of messages causes it to limit its search to just those
+
+messages. For example, to find all the messages in the current folder from "frated"
+
+also dated before friday:
+
+
+ pick -from frated -sequence select
+
+ pick select -before friday -sequence select
+
+
+With the first pick command, the sequence ``select'' is defined to be all those
+
+messages from "frated". In the second command, only those messages already in
+
+the ``select'' sequence are searched, and the ``select'' sequence is redefined
+
+to be only those messages which are also dated before friday. Those messages could
+
+then be show n with:
+
+
+ show select
+
+
+When a `-sequence name' argument is given to pick, the default behavior _
+
+listing the message numbers matched _ is inhibited. To re-enable this behavior,
+
+the `-list' option may be given. As a result, advanced users of MH often put the
+
+following line in their .mh_profile :
+
+
+ pick: -sequence select -list
+
+
+which allows them to easily make use of the `select' sequence as the messages
+
+last selected with pick.
+
+
+ Often it is desirable to act upon those messages which are not members of
+
+a given sequence. For this purpose, the ``Sequence-Negation:'' profile entry
+
+is useful. If the name of a user-defined sequence is prefixed with the value of the
+
+sequence-negation profile entry, MH commands will operate upon those messages
+
+which are not members of that sequence. For example, given a profile entry of:
+
+
+ Sequence-Negation: not
+
+
+those messages which are not in the `select' sequence could be scan'd with:
+
+
+ scan notselect
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 7
+
+
+ Obviously, some confusion could result if an attempt was made to define a se-
+
+quence name which began with the sequence-negation string (e.g., ``notselect'' ).
+
+For this reason, MH users will often use a single character, which their shell doesn't
+
+interpret, as their sequence-negation string (e.g., up-caret (`^') for C Shell users,
+
+and exclamation-mark (`!') for Bourne shell users).
+
+
+ MH also provides a way of automatically remembering the last message list
+
+given to an MH command. This facility is implemented by using a profile entry
+
+called ``Previous-Sequence:'' .
+
+
+Draft Handling
+
+ After the initial edit of a message draft, the comp, dist, forw, and repl
+
+programs give the user a What now? prompt. The valid responses include: edit to
+
+re-edit the draft, quit to exit without sending the draft, send to send the draft, and
+
+push to send the draft in the background.
+
+
+ When the send option is given, the draft is posted with the message transport
+
+system. If there problems posting the draft, the What now? prompt is re-issued, so
+
+errors in the draft may be corrected.
+
+
+ Since posting the draft can be slow, the push option allows the MH user to
+
+send the draft in the background, and return immediately to the shell. If there are
+
+problems posting the message, the user will not see the diagnostics produced by
+
+the message transport system. For this reason, if push is used instead of send, and
+
+the message is not successfully posted, MH mails a message to the user containing
+
+any diagnostics which the message transport system produced along with a copy
+
+of the message. Later, the draft may be re-edited by entering ``comp -use'' .
+
+
+ A relatively new feature of MH is the ability to use a folder to store multiple
+
+drafts. These drafts are kept in an ordinary MH folder, and may be operated upon
+
+by MH commands. To enable this feature, the MH user selects a folder-name for
+
+the draft-folder, and creates an entry in the .mh_profile :
+
+
+ Draft-Folder: +foldername
+
+
+From this point on, when a message is composed, the draft will be created as a
+
+message in that folder, instead of using the draft file in the user's MH directory.
+
+Unfortunately, if posting problems occur on a message which has been push'd, it
+
+may be difficult to re-edit the draft with ``comp -use'' . This might be the case
+
+if the user had started composing another message, while that first draft was being
+
+posted. In that event, the current-message in the draft-folder would no longer
+
+point to the failed draft.
+
+
+ There is a solution for this problem, however. By default, push assumes the
+
+`-forward' option, which says that if the message draft fails to be posted, it
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 8
+
+
+should be forwarded back to the user in the error report which push generates.
+
+The failed draft may then be extracted with the burst program (discussed later).
+
+
+BBoards
+
+ MH has a convenient interface to the UCI BBoards facility[MRose84a].2 This
+
+facility permits the efficient distribution of interest group messages on a single
+
+host, to a group of hosts under a single administration, and to the ARPA Internet
+
+community.
+
+
+ Although most readers are probably familiar with the concept of an interest
+
+group in the Internet context, a brief description is now given. Observant readers
+
+will notice that the distributed nature of the "network news" (a.k.a. USENET)
+
+tends to avoid many of the problems described below.
+
+
+ Described simply, an interest group is composed of a number of subscribers
+
+with a common interest. These subscribers post mail to a single address, known
+
+as the distribution address (e.g., MH-Workers@UCI. From this distribution address,
+
+a copy of the message is sent to each subscriber. Each group has a moderator,
+
+who is the person that runs the group. This moderator can usually be reached at
+
+a special address, known as the request address (e.g., MH-Workers-Request@UCI).
+
+Usually, the responsibilities of the moderator are quite simple, since the mail
+
+system handles distribution to subscribers automatically. In some interest groups,
+
+instead of each separate message being distributed directly to subscribers, a batch
+
+of (hopefully related) messages are put into a digest format by the moderator and
+
+then sent to the subscribers. (This is similar to a newsletter format.) Although
+
+this requires more work on the part of the moderator and introduces delays, such
+
+groups tend to be better organized.
+
+
+ Unfortunately, some problems arise with the scheme outlined above. First,
+
+if two users on the same host subscribe to the same interest group, two copies of
+
+the message are delivered. This is wasteful of both processor and disk resources at
+
+that host.
+
+
+ Second, some groups carry a lot of traffic. Although subscription to a group
+
+does indicate interest on the part of a subscriber, it is usually not interesting to get
+
+50 or so messages delivered each day to the user's private maildrop, interspersed
+
+with personal mail, which is likely to be of a much more important and timely
+
+nature.
+
+
+ Third, if a subscriber's address in a distribution list becomes "bad" somehow
+
+and causes failed mail to be returned, the originator of the message is normally
+
+notified. It is not uncommon for a large list to have several bogus addresses. This
+
+results in the originator being flooded with "error messages" from mailers across
+
+
+_____________________________________
+2 The UCI BBoards facility can run under either the MMDF or SendMail, or in a more restricted
+
+form under stand-alone MH.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 9
+
+
+the Internet stating that a given address on the list was bad. Needless to say, the
+
+originator usually does not care if the bogus addresses got a copy of the message
+
+or not. The originator is merely interested in posting a message to the group at
+
+large. On the other hand, the moderator of the group does care if there are bogus
+
+addresses on the list, but ironically does not receive notification.
+
+
+ To solve these problems, the UCI BBoards facility introduces a new entity
+
+into the picture: a distribution channel. All interest group mail is handled by the
+
+special mail system component. The distribution address for an interest-group
+
+maps mail for that interest-group to the distribution channel, which then performs
+
+several actions. First, if local delivery is to be performed, a copy of the message is
+
+placed in a global maildrop for the interest group with a timestamp and a unique
+
+number. Local users can read messages posted for the interest group by reading
+
+this "public" maildrop. Second, if further distribution is to take place, a copy of
+
+the message is sent to the distribution address in such a way that if any of the
+
+addresses are bogus, failure notices will be returned to the local maintainer of the
+
+group address list, rather than the originator of the message.
+
+
+ This scheme has several advantages: First, messages delivered to the local
+
+host are processed and saved once in a globally accessible area. The UCI BBoards
+
+facility supports software which allows a user to query an interest group for new
+
+messages and to read and process those messages in the MH-style. Second, once
+
+a host administrator subscribes to an interest group, each user may join or quit
+
+the list's readership without contacting anyone. Third, a hierarchical distribution
+
+scheme can be constructed to reduce the amount of delivery effort. Finally, errors
+
+are prevented from propagating. When an address on the distribution list goes
+
+bad, the list moderator who is responsible for the address is notified. If a local
+
+moderator does not exist, then the local PostMaster is notified (not the global
+
+group moderator).
+
+
+ In addition to solving the problems outlined above, the UCI BBoards facility
+
+supports several other capabilities. BBoards may be automatically archived in
+
+order to conserve disk space and reduce processing time when reading current
+
+items. Also, the archives can be separately maintained on tape for access by
+
+interested researchers.
+
+
+ Special alias files may be generated which allow the MH user to shorten
+
+address entry. For example, instead of sending to SF-Lovers@Rutgers, a user of
+
+MH usually sends to ``SF-Lovers'' and the MH aliasing facility automatically
+
+makes the appropriate expansion in the headers of the outgoing message. Hence,
+
+the user need only know the name of an interest group and not its global network
+
+address.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 10
+
+
+ Finally, the UCI BBoards facility supports private interest groups using the
+
+UNIX group access mechanism. This allows a group of people on the same or
+
+different machines to conduct a private discussion.
+
+
+ The practical upshot of all this is that the UCI BBoards facility automates the
+
+vast majority of BBoards handling from the point of view of both the PostMaster
+
+and the user.
+
+
+ MH provides three programs to deal with interest groups. The bbc program
+
+is used to check on the status of one or more groups, and to optionally start an
+
+MH shell on those groups which the user is interested in. The bbl program can be
+
+used to manually perform maintenance on a discussion group beyond the normal
+
+automatic capabilities of the UCI BBoards facility. Finally, the msh program
+
+implements an MH shell for reading BBoards, in which nearly all of the MH
+
+commands are implemented in a single program.
+
+
+ Observant readers may note that the use of msh is contrary to the MH
+
+philosophy of using relatively small, single-purpose programs. Sadly, the authors
+
+admit that this is true. In an effort to minimize use of system resources however,
+
+BBoards are kept in maildrop format instead of folders.3 Some research has gone
+
+into overcoming this problem to restore MH's purity of purpose, but all solutions
+
+proposed to date are either unworkable or require significant recoding of MH's
+
+internals.
+
+
+Bursting
+
+ Internet interest group mail is often sent out in digest form. The experienced
+
+MH user may wish to deal with the digest messages on an individual basis, however.
+
+The burst program allows the MH user to extract these digest messages, and store
+
+each as an individual MH message.
+
+
+ Burst will also extract forwarded messages generated by forw (or the forwarded
+
+message in the error report generated by push, as described above). Although
+
+burst cannot always decapsulate messages encapsulated by sites not running MH,
+
+it adheres to the proposed standard described in [MRose85b].
+
+
+
+_____________________________________
+3 When the message transport system delivers a message to a user it stores it in a single file, called
+
+a maildrop. Since many messages may be present in a single maildrop, (in theory) there is a unique
+string acting as a separator between messages in the maildrop. Although this is convenient for
+storage of messages, it makes retrieval more difficult unless a separate index into the maildrop is
+kept. This latter approach is taken by the msg program available with MMDF-II and by msh as well.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 11
+
+
+Distributed Mail
+
+ The ARPA Internet community consists of many types of heterogeneous
+
+nodes. Some hosts are large mainframe computers, others are personal work-
+
+stations. All communicate using the milstd TCP/IP protocol suite[IP, TCP].
+
+Messages which conform to the Standard for the Format of ARPA Internet Text
+
+Messages[DCroc82] are exchanged using the Simple Mail Transfer Protocol[SMTP].
+
+
+ On smaller nodes in the ARPA Internet, it is often impractical to maintain
+
+a message transport system (e.g., SendMail). For example, a workstation may not
+
+have sufficient resources (cycles, disk space) in order to permit an SMTP server
+
+and associated local mail delivery system to be kept resident and continuously
+
+running. Furthermore, the workstation could be off-net for extended periods of
+
+time. Similarly, it may be expensive (or impossible) to keep a personal computer
+
+interconnected to an IP-style network for long periods of time. In other words, the
+
+node is lacking the resource known as "connectivity".
+
+
+ Despite this, it is often desirable to be able to manage mail with MH on
+
+these smaller nodes, and they often support a user agent to aid the tasks of mail
+
+handling. To solve this problem, a network node which can support a message
+
+transport entity (known as service host) offers a maildrop service to these less
+
+endowed nodes (known as client hosts). The Post Office Protocol[JReyn84] (POP)
+
+is intended to permit a workstation to dynamically access a maildrop on a service
+
+host to pick-up mail.4 The level of access includes the ability to determine the
+
+number of messages in the maildrop and the size of each message, as well as to
+
+retrieve and delete individual messages. More sophisticated implementations of the
+
+POP server are able to distinguish between the header and body portion of each
+
+message, and send n lines of a message to the POP client. This capability is useful
+
+in thinly connected environments where conservation of bandwidth is important.
+
+By utilizing a more intelligent POP client, a user may generate "scan listings" and
+
+decide dynamically which messages are worth taking delivery on. The philosophy
+
+of the POP is to put intelligence in the POP clients and not the POP servers.
+
+
+ The current release of MH supports the above model fully. A POP client
+
+program is available to retrieve a maildrop from a POP service host. In addition,
+
+using the SMTP configuration for delivery in MH (either in conjunction with
+
+SendMail or the MMDF), a user is able to specify a search-list of service hosts
+
+(and/or networks) to try to post mail. Using this search-list, when an MH user
+
+posts a draft, the post program will attempt to establish an SMTP connection
+
+with each host in the search-list to post the message until it succeeds. Initial
+
+
+_____________________________________
+4 Actually, there are three different descriptions of the POP. The first, cited in [JReyn84], was the
+
+original description of the protocol, which suffered from certain problems. Since then, two alternate
+descriptions have been developed. The official revision of the POP[MButl85], and the revision of the
+POP which MH uses (which is documented in an internal memorandum in the MH release). This
+paper considers the POP in the context of the MH release.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 12
+
+
+experimentation using the POP and MH in a local network environment has
+
+proved quite successful.
+
+
+
+User Interface Issues in MH
+
+ At this point, it is perhaps useful to take a step backwards and examine the
+
+success and problems of MH's approach to user interfaces.
+
+
+Creeping Featurism
+
+ A complaint often heard about systems which undergo substantial develop-
+
+ment by many people over a number of years, is that more and more options are
+
+introduced which add little to the functionality but greatly increase the amount of
+
+information a user needs to know in order to get useful work done. This is usually
+
+referred to as creeping featurism.
+
+
+ Unfortunately MH, having undergone six years of off-and-on development by
+
+ten or so well-meaning programmers (the present authors included), suffers mightily
+
+from this. For example, the send command has twenty-five visible switches, and at
+
+least nine hidden switches, for a total of thirty-four. The poor user who types
+
+
+ send -help
+
+
+watches the options scroll off the screen (since the `-help' switch also lists out
+
+four other lines of information).5 The sad part is that all of these switches are
+
+useful in one form or another.
+
+
+ There are a lot of good things to be said for the "one program, one function"
+
+philosophy of system design. In the MH case, however, each program really does
+
+only one mail handling activity (with a few minor exceptions). The options
+
+associated with each command are present to modify the program's behavior to
+
+perform similar, but slightly different tasks. In further defense of MH, note that
+
+there are 32 MH commands at present, all performing different tasks.
+
+
+ The problem with creeping featurism though, is that while the functionality
+
+of the system increases sub-linearly, the complexity of the system increases linearly.
+
+That is, although the number of switches that a program takes might double, it is
+
+unlikely that the program's functionality or capabilities will double.
+
+
+
+_____________________________________
+5 Recently, this was fixed by compressing the way in which switches are presented. The solution is
+
+only temporary however, as send will no doubt acquire an endless number of switches in the years
+to come.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 13
+_______________________________________________________________________________________________________________
+
+To:
+cc:
+Bcc:
+Fcc: outbox
+Fcc:
+Subject:
+Reply-To:
+--------
+
+
+ Figure 2
+
+______________________________________________Draft_Skeleton___________________________________________________
+
+_______________________________________________________________________________________________________________
+
+To: <reply-to_from>
+cc: <?to_cc><to>,<cc>
+Fcc: +outbox
+Fcc: <?fcc><fcc>
+Subject: <?subject>Re: <subject>
+In-reply-to: <?date><?message-id>Your message of <date>.
+ <message-id>
+In-reply-to: <?date><!message-id>Your message of <date>.
+--------
+
+
+ Figure 3
+
+_____________________________________________Reply_Template____________________________________________________
+
+
+
+Templates versus Switches
+
+ One way to trim the explosion of available options, while still increasing
+
+functionality, is to introduce options with a richer domain. Hence, instead of using
+
+options which take on or off forms or simple numeric or string values, the possible
+
+values which an option might take on is given a large space. There are several ways
+
+that this might be accomplished.
+
+
+ The comp, dist, and forw programs use draft skeletons (simple form fill-in
+
+files) to construct the general format of the draft being composed. An example of
+
+a draft skeleton used for composing new messages (by comp) is shown in Figure 2.
+
+The approach is to let the user specify (and later edit) both arbitrary headers of
+
+draft and the body of the draft. Note while most of the fields are empty, the first
+
+``Fcc:'' field already contains a value. By using the simple prompting editor,
+
+prompter, the user can speedily enter the headers of the message. The prompter
+
+program given the skeleton in Figure 2 would prompt the user for the contents
+
+of each field, except for the second ``fcc:'' , which it would include verbatim.
+
+It would then read the body of the message up to an end-of-file. Naturally, the
+
+MH user is free to use any editor to edit any part of the draft (headers or body).
+
+This example demonstrates the flexibility achieved by not limiting what headers a
+
+draft may contain (which most mail sending programs do), while still retaining the
+
+simplicity of being able to treat the entire message draft as a UNIX file.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 14
+_______________________________________________________________________________________________________________
+
+From: <?me>Message Agent "<<me>>
+To: <reply-to_from>
+Fcc: +rcvtrip
+Fcc: <?fcc><fcc>
+Subject: <?subject>BEEP! Re: <subject>
+Subject: <!subject>BEEP!
+In-reply-to: <?date><?message-id>Your message of <date>.
+ <message-id>
+In-reply-to: <?date><!message-id>Your message of <date>.
+--------
+
+
+ This is an automatic reply. Feel free to send additional mail, as only
+ this one notice will be generated.
+
+
+ I am attending the USENIX Summer '85 conference in Portland, Oregon.
+ I expect to be reading mail again on the 16th of June.
+
+
+/mtr
+
+
+ Figure 4
+
+__________________________________The_tripcomps______Reply_Template____________________________________________
+
+
+
+ Another more interesting approach is used by the repl command, which
+
+constructs a draft in reply-to a previously received message. Instead of adding
+
+switches to indicate which fields of the draft should be derived from the message
+
+being replied-to, and how they should be derived, a single option, the ability to
+
+specify a template, was made available. An example of a reply template is shown
+
+in Figure 3. Put simply, based on the presence of certain fields in the message
+
+being replied-to, and a few switches given by the user, using the reply template,
+
+repl generates the reply draft automatically.
+
+
+ This facility, for example, can be used to generate automatic replies.6 One
+
+function might be to write a rcvtrip shell script which automatically answered
+
+messages when mail wasn't being read for a period of time (e.g., while attending a
+
+conference). An example of a reply template at the heart of such a script is shown
+
+in Figure 4.
+
+
+ Finally, another application might be to utilize the highly useful letter bomb
+
+protocol.7 The important thing to note about this template is that it generates
+
+not only the headers of the reply draft (with a creative ``Reply-to:'' address),
+
+but the body as well. Hence, the commands
+
+
+ repl -form bombcomps -noedit ; rmm
+
+
+_____________________________________
+6 MH supports the notion of a user-defined mail hook which is invoked each time a user receives
+
+mail.
+7 The authors wish to credit Ron Natalie of the Ballistics Research Laboratory in Aberdeen,
+
+Maryland for formalizing the use of this protocol in the ARPA Internet community.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 15
+_______________________________________________________________________________________________________________
+
+To: <reply-to_from>
+cc: <?to_cc><to>,<cc>
+Fcc: +outbox
+Fcc: <?fcc><fcc>
+Subject: <?subject>Re: <subject>
+In-reply-to: <?date><?message-id>Your message of <date>.
+ <message-id>
+In-reply-to: <?date><!message-id>Your message of <date>.
+Reply-To: /dev/null
+--------
+
+
+ "
+ *-XXX
+ / XX
+ X
+ X
+ X
+ X
+ X
+ IIIIIIIII
+ IIIIIIIII
+ IIIIIIIII
+ IIIIIIIII
+ XXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXXXXXXXXXXXXXXXX
+ XXXXXXXXX
+
+
+ Figure 5
+
+_________________________________The_bombcomps________Reply_Template___________________________________________
+
+
+
+ What now? push
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 16
+_______________________________________________________________________________________________________________
+
+width=80,length=0,overflowtext=,overflowoffset=10
+Date:leftadjust,compress,compwidth=9
+Subject:leftadjust,compress,compwidth=9
+From:leftadjust,compress,compwidth=9
+To:leftadjust,compress,compwidth=9
+cc:leftadjust,compress,compwidth=9
+Resent-Note:leftadjust,compwidth=9
+:
+body:nocomponent,overflowoffset=0
+
+
+ Figure 6
+
+____________________________________________Display_Template___________________________________________________
+
+
+
+are very handy for dealing with disturbing mail in a straight-forward manner. Of
+
+course, repl could be linked to bomb in the user's bin/ directory and an appropriate
+
+line could be added to the user's MH profile, in order to further shorten type-in.
+
+
+ A variation on the reply template is the display template. A display template,
+
+as used by the mhl program, contains instructions on how to format a message. In
+
+addition to being used by show, et. al., the forw program can also use a display
+
+template to format each message being forwarded. Similarly, although repl uses a
+
+reply template to construct the draft being composed, it also may use a display
+
+template to format the body of the message being replied-to for enclosure in the
+
+reply. Furthermore, the post program may use a display template to format the
+
+body of a blind-carbon-copy. An example of a display template used for formatting
+
+forwarded messages is shown in Figure 6.
+
+
+ As with reply templates, display templates can offer a lot of functionality.
+
+For example, the one line display template:
+
+
+ body:nocomponent,overflowtext=,overflowoffset=0,width=10000
+
+
+can be used to extract the body of a message, while ignoring the headers. Hence,
+
+if a shar archive arrived in the mail, a convenient way to unpack it, assuming the
+
+above display template was called mhl.body , would be:
+
+
+ show -form mhl.body _ sh
+
+
+
+ The biggest win with display templates, of course, is that all those annoying
+
+header lines which mailers everywhere generate can be simply and easily filtered
+
+out.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 17
+
+
+Modularity versus Monolithicity
+
+ Since MH is a set of programs which perform separate tasks, as opposed to
+
+being a single, monolithic program, the power of the shell is used directly to aid in
+
+mail-handling. One powerful capability which this design achieves is the ability to
+
+extend the MH command set, by developing shell scripts which use the standard
+
+MH programs to accomplish complicated or specialized tasks.
+
+
+ For example, in the MH distribution there is a shell script called mpick
+
+(shown in Figure 7) which tries to locate all the messages which pertain to a given
+
+discussion, by looking at the ``Message-ID:'' and ``In-reply-to:'' headers,
+
+to find matching message-ids.8
+
+
+ Unfortunately, some parts of MH are somewhat monolithic. An example of
+
+this is the What now? prompt. There are only a few options at this prompt, and
+
+one cannot give a normal shell command. Some MH users seem to feel that more
+
+options should be added to the What now? prompt, such as an insert-file option. It
+
+was argued that just about any editor would allow you to insert a file, and another
+
+What now? option was not needed. These users persisted, however, so the problem
+
+was solved, by writing a trivial shell script "editor" (see Figure 8) which could be
+
+invoked by the edit option:
+
+
+ What now? edit append filename
+
+
+
+ A better interface at this point is really needed, however. One possibility is to
+
+simply pass any unrecognized commands on to a shell for interpretation, supplying
+
+the path name of the draft file as an argument. A solution which shows more
+
+promise is to give you a sub-shell instead of the What now? prompt, and setup
+
+certain envariables so that the MH commands would act upon the draft by default.
+
+For example, show with no `msgs' arguments would show the draft instead of the
+
+current message. This alternative has recently been implemented and is under
+
+testing.
+
+
+
+The MH Distribution
+
+ The mh.5 distribution is now briefly described, both in terms of static
+
+configuration methods and dynamic tailoring. Appendix B describes the mechanics
+
+of receiving an mh.5 distribution.
+
+
+
+_____________________________________
+8 Note that the shell scripts included in the MH distribution are written for the Bourne shell, and
+
+have a `:' as the first character of the first line, so they will be portable to all versions of UNIX, not
+just those which support the Berkeley `# !' enhancement.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 18
+_______________________________________________________________________________________________________________
+
+: 'mpick - relate messages /mtr'
+PATH=:/bin:/usr/bin:/usr/ucb:/usr/local:/usr/local/lib/mh; export PATH
+F="" M="" S=""
+
+
+for A in $*
+do
+ case $A in
+ -*) S="$S $A" ;;
+
+
+ +*_@*) case $F in
+ "") F=$A ;;
+ *) echo "mpick: only one folder at a time" 1>&2
+ exit 1 ;;
+ esac ;;
+
+
+ *) M="$M $A" ;;
+ esac
+done
+
+
+S="$S -sequence hits -list -nozero"
+
+
+if mark $F all -add -sequence hits;
+ then mark $F all -delete -sequence hits;
+ else exit 1;
+fi
+
+
+for A in $-M-cur"
+do
+ for C in `mhpath $F $A`
+ do
+ if [ -r $C ];
+ then
+ I=`mhl -form mhl.msgid $C`;
+ case $I in
+ "") echo "no message-id in message `basename $C`" 1>&2 ;;
+ *) pick --in-reply-to "$I" $S ;;
+ esac
+ else
+ echo "message $A doesn't exist" 1>&2; exit 1;
+ fi
+ done
+done
+
+
+exit 0
+
+
+ Figure 7
+
+____________________________________________The_mpick_Script___________________________________________________
+
+
+
+Configurable MH
+
+ The MH distribution currently runs on a large number of different UNIX
+
+versions, ranging from MicroSoft XENIX to Berkeley 4.2bsd. All the code which
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 19
+_______________________________________________________________________________________________________________
+
+: 'append - stupid append editor for MH - /jlr'
+case $# in
+ 1_2) case $# in
+ 1) F=$1; echo -n "Append file: " 1>&2; read A ;;
+ 2) F=$2; A=$1 ;;
+ esac
+ cat $A < /dev/null >> $F ;;
+ *) echo "append: arg count" 1>&2 ; exit 1 ;;
+esac
+exit
+
+
+ Figure 8
+
+___________________________________________The_append_Editor___________________________________________________
+
+_______________________________________________________________________________________________________________
+
+bin /usr/local
+bboards on
+editor /usr/local/prompter
+etc /usr/local/lib/mh
+mail /usr/spool/mail
+manuals local
+mts sendmail/smtp
+news off
+options BSD42
+options MHE NETWORK
+options UCI
+
+
+ Figure 9
+
+___________________________________Sample_MH_Configuration_File________________________________________________
+
+
+
+is specific to a particular target environment is enabled via the C-preprocessor
+
+``# ifdef'' mechanism, so compilation under different versions of UNIX is trivial.
+
+There are, however, a large number of compile-time options which may vary from
+
+site to site, so an automated configuration method was needed.
+
+
+ The MH-installer must create a configuration file, which contains a list of
+
+the compile-time options and the values which are desired for them. Compile-time
+
+options include the installation location for MH, what kind of message transport
+
+system is to be used, and the default editor for the installation. An example of
+
+such a configuration file is shown in Figure 9.
+
+
+ After creating this file (several examples are included in the distribution), the
+
+installer runs the mhconfig program, which customizes the Makefile s and some of
+
+the programs, for that site's particular installation. No hand-editing of any source
+
+code should be necessary, under normal circumstances.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 20
+_______________________________________________________________________________________________________________
+
+mmdfldir: /usr/spool/mail
+mmdflfil:
+mmdelim1: "001"001"001"001"n
+mmdelim2: "001"001"001"001"n
+mmailid: 0
+lockstyle: 0
+lockldir:
+
+
+hostable: /usr/local/lib/mh/hosts
+servers: localhost "01localnet
+
+
+ Figure 10
+
+_______________________________________Sample_MTS_Tailor_File__________________________________________________
+
+
+
+Interface to the Message Transport System
+
+ MH will run with a number of message transport systems, including SendMail,
+
+MMDF-II, and a small stand-alone system. One flexible method of posting mail
+
+is through an SMTP connection. There are a couple of major wins in using this
+
+configuration: First, none of the MH programs need to know where the interface
+
+programs to the message transport system are located, which makes them easier
+
+to move between systems. Second, mail can be posted on relay hosts, and the local
+
+host of an MH user may not need a message transport system at all (as alluded to
+
+in the preceeding discussion on the POP).
+
+
+ Those parts of MH which interact with the local message transport agent
+
+read additional tailoring information when they start.9 This information includes
+
+the location of standard and alternate maildrops, maildrop delimiter strings, the
+
+locking directory and locking style, and other tailoring information specific for
+
+the particular message transport system in use (e.g., the default server search-list
+
+when mail is posted with the SMTP). In most cases, by using a tailor file, each site
+
+running a similar MH configuration is able to simply transfer MH binaries between
+
+hosts. An example of such a tailor file is shown in Figure 10.
+
+
+ A continuing question which is often raised is how intelligent should user
+
+agents (like MH and UCB Mail ) be with respect to the environment in which they
+
+operate. At present, MH likes to determine the official hostnames for addresses
+
+when posting mail. Many argue that this is improper or unnecessary behavior
+
+for a user agent, and that the local message transport agent should handle
+
+these functions. Unfortunately, this implies that the message transport agent
+
+should munge headers when mail is posted to remove local host aliases and only
+
+permit address fields with fully-qualified addresses. Sadly, neither SendMail nor
+
+MMDF-II really gets this right (flames to /dev/null please). The current MH
+
+maintainers believe that the resolution of host aliases to official names should be
+
+a well-supported interface with the local message transport agent. However, to
+
+_____________________________________
+9 This simple facility is based on a more extensive tailoring capability found in MMDF-II.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 21
+
+
+provide equal time to those who hold opposite views, MH supports a configuration
+
+option called ``DUMB'' which disables MH's attempts to resolve addresses into
+
+fully-qualified strings.
+
+
+
+Concluding Remarks
+
+ While MH has undergone significant development since the original Rand
+
+release, the authors have tried to keep the fundamental concepts of MH unchanged.
+
+The authors have continually had to battle against well-meaning MH users who
+
+wanted to make MH more like other (less powerful) user agents. More and more
+
+"features" were often suggested for MH, usually at the expense of making MH
+
+less general, and more specific. In nearly all cases, the "features" which these
+
+users wanted were already present in MH in a slightly different form, or could be
+
+realized by simply writing a short shell script. A classic example is the repeated
+
+requests by one user to have dist take a list of messages rather than a single
+
+message and distribute each one of them in turn. A simple shell script which called
+
+dist repeatedly, perhaps with "canned" arguments so the user typed in addressing
+
+information only once, would easily meet this request.
+
+
+ A number of MH comands have a large number of options. When adding
+
+options, the authors have tried to make the options general, while still accomodating
+
+the requests of specific users. An example of a specific request which was
+
+implemented as a general feature is the ``Previous-Sequence'' profile entry
+
+(mentioned above). If you use this profile entry, every MH command is forced to
+
+write out context changes, making every command somewhat slower. Since only a
+
+few users wanted this capability, it was implemented in such a way that users who
+
+didn't want it, didn't have to pay the cost of slowing down every MH command.
+
+
+ MH has a powerful tailoring capability provided by the .mh_profile . Using
+
+profile entries, users may customize their own environment without affecting others.
+
+Novice users often take advantage of the MH-tailoring capabilities to try to make
+
+MH work similarly to other user agents they've used. This has the advantage of
+
+allowing them to quickly begin using MH to handle their mail. However, since these
+
+novice users don't take advantange of all the capabilities of MH, they frequently
+
+will complain about things they think can't be done with MH, or could be done
+
+"better" some other way. Fortunately, as these users become more experienced
+
+with both MH and UNIX, they can modify their environment to take better
+
+advantage of all of MH's capabilities. Novice MH users who see features lacking
+
+are encouraged to take a better look at what MH can do, instead of trying to make
+
+MH into something it isn't. This may sound rather inflammatory, but it would
+
+really be a much nicer world for us all if users of software systems would read the
+
+manual prior to asking questions.
+
+
+ For a moment, let's consider the evolution of one MH feature which has
+
+proved itself to be very useful. As users began employing MH to handle their
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 22
+
+
+mail, the number of messages that could be processed in a given amount of time
+
+increased greatly. As the volume of messages increased however, it became clear
+
+that some MH operations were too slow, in particular the interaction with the
+
+(slow) message transport system. To overcome this problem, the push option was
+
+added at the What now? prompt. Originally, this option was hidden from novice
+
+users and did little more than send the message in the background: any output
+
+generated by the background send process would be printed asyncronously on the
+
+terminal. If a message failed posting with the message transport system, it would
+
+simply be left in the draft file.
+
+
+ Gradually, other features were added to push. Since users wanted to be able
+
+to send more than one draft at a time, push was changed to optionally rename
+
+the draft file before posting it. (This is what the hidden `-unique' option does.)
+
+Having message transport system diagnostics written asyncronously on the user's
+
+terminal was annoying, so push was made to intercept these diagnostics, and mail
+
+the user a report containing them. Although the diagnostic report mailed back by
+
+push contains the name of the draft which failed, a useful added feature was the
+
+ability to have push include the failed draft as well. Eventually, the draft-folder
+
+mechanism was implemented to make handling multiple message drafts much
+
+easier.
+
+
+TODO
+
+ There are, no doubt, a number of improvements which could be made to MH.
+
+At the present time, what further development should MH suffer? Although not
+
+by any means inclusive, here's a list:
+
+
+ 1. Performance Enhancements
+
+ Hardware gets faster all the time, but people always complain that
+
+ software is too slow. Owing to its user interface style, MH is somewhat
+
+ slower than monolithic programs like UCB Mail. It would be nice if MH
+
+ could be tuned or accelerated somehow.
+
+
+ 2. Port to System 5
+
+ MH runs on 4.2bsd UNIX and Version 7 variants. It should not be
+
+ difficult to port MH to a SYS5 environment. This should significantly
+
+ increase the number of hosts on which MH can run. The authors, lacking
+
+ a SYS5 machine (and experience with SYS5) to perform the port, are
+
+ actively seeking a System 5 guru to attempt this feat.
+
+
+ 3. Interface to the Network News
+
+ Not all sites that run MH are in the ARPA Internet, and as such the
+
+ UCI BBoards facility may not be of much use to them. A good MH
+
+ interface to the network news would allow users on hosts with a news
+
+ feed to employ the same interface for reading and sending both mail
+
+ and news.
+\fReprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 23
+
+
+ 4. Programmed Instruction for Beginners
+
+ The complexity of MH is often intimidating to new users. It would be
+
+ nice to develop a set of learn lessons for those users who don't like man
+
+ pages and non-interactive tutorials.
+
+
+ 5. Message List Expansion
+
+ At present, when a list of messages is given to an MH command, it
+
+ expands the list and processes each message in numerical order rather
+
+ than the order in which the messages were given (e.g., ``show 2 1''
+
+ show s message 1 and then message 2). It would be nice if MH processed
+
+ messages in the order they were given.
+
+
+ 6. Context Changes
+
+ In nearly all cases, an MH command does not write out context changes
+
+ until it is about to exit successfully. There is some controversy as to
+
+ whether this is the correct behavior in all cases. Some argue that once
+
+ an MH command has fully parsed its argument list, the context should
+
+ be updated.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 24
+
+
+ References
+
+
+
+[DCome83] D. Comer. The Computer Science Research Network CSnet: A
+
+ History and Status Report. Communications of the ACM 26, 10
+
+ (October, 1983), 747-753.
+
+
+
+[DCroc79] D.H. Crocker, E.S. Szurkowski, D.J. Farber. An Internetwork
+
+ Memo Distribution Facility _ MMDF. Appearing in Proceedings,
+
+ Sixth Data Communications Symposium, Asilomar, 1979, pp. 18-25.
+
+
+
+[DCroc82] D.H. Crocker. Standard for the Format of ARPA Internet Text
+
+ Messages. Request for Comments 822. ARPA Internet Network
+
+ Information Center (NIC), SRI International (August, 1982).
+
+
+
+[DKing84] D.P. Kingston, III. MMDFII: A Technical Review. Appearing in
+
+ Proceedings Usenix Summer '84 Conference, Salt Lake City, Utah,
+
+ 1984, pp. 32-41.
+
+
+
+[EAllm83] E. Allman. SENDMAIL _ An Internetwork Mail Router.
+
+ Britton-Lee, Inc., Berkeley, California (July, 1983).
+
+
+
+[IP] Internet Protocol. Request for Comments 791 (milstd 1777).
+
+ Appearing in Internet Protocol Transition Workbook, ARPA Internet
+
+ Network Information Center (NIC), SRI International, 1981.
+
+
+
+[JReyn84] J.K. Reynolds. Post Office Protocol. Request for Comments 918.
+
+ ARPA Internet Network Information Center (NIC), SRI International
+
+ (October, 1984).
+
+
+
+[MButl85] M. Butler, J.B. Postel, et. al. Post Office Protocol - Version 2.
+
+ Request for Comments 937. ARPA Internet Network Information
+
+ Center (NIC), SRI International (February, 1985).
+
+
+
+[MRose84a] M.T. Rose. The Rand MH Message Handling System: The UCI
+
+ BBoards Facility. Department of Computer and Information Sciences,
+
+ University of Delaware (October, 1984).
+
+
+
+[MRose85b] M.T. Rose, E.A. Stefferud. Proposed Standard for Message
+
+ Encapsulation. Request for Comments 934. ARPA Internet Network
+
+ Information Center (NIC), SRI International (January, 1985).
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 25
+
+
+[SMTP] Simple Mail Transfer Protocol. Request for Comments 821. ARPA
+
+ Internet Network Information Center (NIC), SRI International
+
+ (August, 1982).
+
+
+
+[TCP] Transmission Control Protocol. Request for Comments 793 (milstd
+
+ 1778). Appearing in Internet Protocol Transition Workbook, ARPA
+
+ Internet Network Information Center (NIC), SRI International, 1981.
+\f
+
+ Appendix A
+
+ MH Commands
+
+
+
+ MH is composed of several UNIX programs, which in theory are fairly simple
+
+ and single-purposed. These commands are functionally grouped below:
+
+
+ Composing_Mail_________
+
+ comp: compose a message
+
+ A program to originate a message. Usually, a special prompting editor front-
+
+ end, prompter, is used to fill-in a composition template with the addressees
+
+ of the message, subject, and so forth.
+
+
+ dist : redistribute a message to additional addresses
+
+ A program that re-enters a message previously received by the user into the
+
+ message transport system. Only new addresses are added; the body of the
+
+ message is not changed in any way.
+
+
+ forw : forward messages
+
+ A program that encapsulates one or more messages in a new message draft.
+
+ In addition, the user may add initial and/or closing comments.
+
+
+ repl : reply to a message
+
+ A program that constructs a reply to a message using a reply template. The
+
+ template mechanism has sufficient generality to permit the user to "program"
+
+ the form of the reply draft based on the contents of the message being
+
+ replied-to.
+
+
+ send : send a message
+
+ A program that posts a draft with the message transport system. The
+
+ send program is usually invoked by one of the four preceding programs, and
+
+ performs simple front-end pre-processing prior to invoking the post program.
+
+ For example, if invoked in push'd mode, send will immediately relinquish
+
+ control of the user's terminal and post the message in the background. If
+
+ the posting fails, send will send back a failure notice to the user. If the user
+
+ had push'd the sending of the draft, then by default the draft being sent is
+
+ encapsulated in the failure notice. This permits easy burst'ing of the failure
+
+ notice to retrieve the original draft. Otherwise, if the posting was successful,
+
+ the draft is marked as having been sent.
+
+
+whatnow : prompting front-end for send
+
+ A program which is called by comp, et. al., after the initial draft has been
+
+
+
+ 26
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 27
+
+
+ generated. The MH user can specify a different whatnow program, which
+
+ yields considerable extensibility.
+
+
+ whom: report to whom a message would go
+
+ A program which examines the addresses of the draft and expands all user-
+
+ defined aliases contained therein. Optionally, whom may actually interact
+
+ with the message transport system to determine the validity of the final
+
+ addresses. This program is also usually invoked by comp, et. al.
+
+
+ Posting_Mail______
+
+ ali : list mail aliases
+
+ A simple front-end to the MH aliasing mechanism.
+
+
+ ap: parse addresses 822-style
+
+ A useful debugging tool for PostMasters who wish to examine how MH
+
+ interprets an Internet address.
+
+
+ conflict : search for alias/password conflicts
+
+ Another program used by system administrators to check the consistency of
+
+ MH alias files, and portions of the local message transport agent.
+
+
+install-mh: initialize the MH environment
+
+ A program which is automatically executed the first time a user issues an MH
+
+ command. This program performs once-only initialization of the user's MH
+
+ environment.
+
+
+ mhmail : send or read mail
+
+ A simple program generally used by other programs to generate messages.
+
+ The mhmail command is similar in purpose to the old BellMail program.
+
+
+ post : deliver a message
+
+ A complex MH back-end that interacts with the local message transport
+
+ agent to enter messages through the posting slot. (See the description of send
+
+ above).
+
+
+ Reading_Mail_______
+
+ inc: incorporate new mail
+
+ A program that interacts with the local message transport agent to retrieve
+
+ messages from the user's maildrop.
+
+
+ msgchk : check for waiting mail
+
+ A program which reports the status of mail waiting in the user's maildrop.
+
+
+ show : show (list) messages
+
+ A program which lists messages to its standard output (usually the user's
+
+ terminal), possibly invoking another program to do the actual listing. Most
+
+ users of MH have show automatically call the mhl program to format the
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 28
+
+
+ message. The next and prev programs are simply ``show next'' and
+
+ ``show prev'' , respectively.
+
+
+ mhl : produce formatted listings of MH messages
+
+ A program which displays a message as directed by a template. This permits
+
+ the user to filter out uninteresting headers and re-arrange other headers to a
+
+ particular preference. In addition to being invoked by show, the mhl program
+
+ is optionally also invoked by forw to format each message being forwarded;
+
+ invoked by repl to format the body of a message being replied-to, if that
+
+ message is being included in the reply draft; and, invoked by post to format
+
+ a message being sent as a blind-carbon-copy.
+
+
+ rmm: remove messages
+
+ A program that removes messages from an MH folder, optionally running a
+
+ user-defined program instead of deleting them. If no program is given, the
+
+ messages are "softly" removed, so they may possibly be recovered later.
+
+
+ scan: produce a one-line-per-message scan listing
+
+ A program that generates a scan listing for messages. Each line of the listing
+
+ contains date, source, subject, and possibly the initial body of the message.
+
+
+ Folder_Handling_______
+
+ folder : set/list current folder/message
+
+ A program used to list information concerning the current folder, or set the
+
+ current folder and/or message.
+
+
+folders : list all folders
+
+ A program to list information on all folders (actually, just a special case of
+
+ the folder command). Since the MH folder structure may be recursive, the
+
+ user can indicate that folders should recursively examine all folders.
+
+
+ refile: file message(s) in (an)other folder(s)
+
+ A program to move (or copy) messages from a source folder to one or more
+
+ destination folders.
+
+
+ rmf : remove folder
+
+ A program that deletes a folder and all messages therein.
+
+
+ Message_Selection_______
+
+ anno: annotate messages
+
+ A program to arbitrarily annotate messages. If the user so desires, after
+
+ distributing, forwarding, or replying-to a message, MH will automatically
+
+ attach an annotation to the original message indicating the date and addresses.
+
+
+ mark : mark messages
+
+ A program to manipulate user-defined sequences (lists of messages). Usually,
+
+ mark is not employed directly by the MH user.
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 29
+
+
+ pick : select messages by content
+
+ A program to examine a list of messages and choose those which meet
+
+ a particular selection criterion. The pick program is often used in UNIX
+
+ back-quoted operations to pass message sequences to other MH commands.
+
+
+ sortm: sort messages
+
+ A program to sort a list of messages according to the date given in a particular
+
+ field.
+
+
+ Distribution_List_Handling__________
+
+ bbc: check on BBoards
+
+ A front-end to run msh on a list of distribution lists which the user isn't
+
+ current on.
+
+
+ bbl : manage a BBoard
+
+ A (depreciated) program used to manually manage the local archives of
+
+ a distribution list. These functions (archiving, expunging) are performed
+
+ automatically by MH.
+
+
+ burst : explode digests into messages
+
+ A program used to decapsulate messages from ARPA Internet digests. In
+
+ addition, messages which have been encapsulated during forwarding (i.e.,
+
+ with forw ) can also be decapsulated using burst.10
+
+
+ msh: MH shell (and BBoard reader)
+
+ A monolithic program used to implement MH commands on messages
+
+ arranged in a single file (maildrop format). Useful since distribution lists are
+
+ kept in this format to minimize consumption of system resources.
+
+
+ pack : compress a folder into a single file
+
+ A program which takes messages stored in MH format and places them in a
+
+ single file (using the same format known by msh).
+
+
+ Interface_to_the_UNIX_File_System_____________
+
+mhpath: print full pathnames of MH messages and folders
+
+ A program which maps MH-style names into the UNIX file naming convention.
+
+
+
+ _____________________________________
+ 10 Similarly, blind-carbon-copies may be decapsulated, though only socially mature users should do
+
+ so.
+\f
+
+ Appendix B
+
+ Distribution Mechanics
+
+
+
+ The mh.5 distribution is available in two forms:
+
+
+ 1. Anonymous FTP
+
+ If you can FTP to the ARPA Internet, use anonymous FTP to the
+
+ ARPAnet host UDel-Huey [10.2.0.96] and retrieve the file portal/mh.5-
+
+ tar. This is a tar image of size 2.1 MB (approximately).
+
+
+ 2. 9-track tape, 1600 bpi, tar format
+
+ Otherwise, you can send $ 50.00 to the address below. This covers the
+
+ cost of a magtape, handling, and shipping. In addition, you'll get a
+
+ laser-printed hard-copy of the MH documentation. The documentation
+
+ includes installation guide, MH Tutorial, MH User's Manual, changes
+
+ document (from mh.4 to mh.5), and BBoards Manual.
+
+
+ If you go with this option, be sure to include your USPS address with
+
+ your check. Checks should be made payable to
+
+
+ Regents of the University of California
+
+
+ It's also a good idea (though not mandatory) to send a computer mail
+
+ message to Bug-MH@UCI when you send your check via USPS to ensure
+
+ minimal turn-around time. The distribution address is:
+
+
+ Support Group
+
+ Attn: MH Distribution
+
+ Department of Information and Computer Science
+
+ University of California, Irvine
+
+ Irvine, CA 92717
+
+
+
+ 714/856-6852
+
+
+
+ Sadly, if you just want the hard-copies of the documentation, you still
+
+ have to pay the $ 50.00. The tar image has the documentation source
+
+ (the man is in ROFF format, but the rest are in TEX format).
+
+
+In addition, there is some hope that mh.5, or a successor, might be found in a
+
+future 4.x Berkeley distribution.
+
+
+
+ 30
+\f Reprinted from Proceedings, Summer Usenix Conference and Exhibition, Portland, Oregon, June, 1985 31
+
+
+ Although MH is not "supported" per se, it does have a bug reporting address.
+
+Normally, the address Bug-MH@UCI is used to report bugs and bug fixes. There are
+
+however, two discussion groups which concern themselves with MH:
+
+
+ 1. MH-Users@UCI
+
+ A discussion group for the MH user community at large. Appropriate
+
+ topics include: questions about how to use MH, tips on MH usage, and
+
+ exchange of MH shell scripts. All requests to be added to or deleted
+
+ from this list, along with problems, questions and suggestions, should
+
+ be sent to MH-Users-Request@UCI.
+
+
+ 2. MH-Workers@UCI
+
+ A discussion group for MH maintainers and experts. Appropriate topics
+
+ include: questions on how to configure MH, tips on MH configuration,
+
+ exchange of MH bug reports (and fixes). All requests to be added to or
+
+ deleted from this list, along with problems, questions and suggestions,
+
+ should be sent to MH-Workers-Request@UCI.
+
+
+The ``UCI'' host is also known as ``ucivax'' , so a possible UUCP path might
+
+be : : :!ucbvax!ucivax!bug-mh.
+
+
+ Updates to MH are published on the MH-Workers list in the form of context
+
+diffs, and the appropriate distribution images are updated as well.
+\f
+
+
+
+ Contents
+
+
+
+ Page
+
+Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
+
+The MH Philosophy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
+
+ The MH Environs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
+
+ An MH Transcript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
+
+Some MH Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
+
+ Message Sequences and Selection . . . . . . . . . . . . . . . . . . . . . . . 5
+
+ Draft Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
+
+ BBoards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
+
+ Bursting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
+
+ Distributed Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
+
+User Interface Issues in MH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
+
+ Creeping Featurism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
+
+ Templates versus Switches. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
+
+ Modularity versus Monolithicity . . . . . . . . . . . . . . . . . . . . . . . . 17
+
+The MH Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
+
+ Configurable MH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
+
+ Interface to the Message Transport System . . . . . . . . . . . . . . . . . 20
+
+Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
+
+ TODO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
+
+References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
+
+Appendix A: MH Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
+
+Appendix B: Distribution Mechanics. . . . . . . . . . . . . . . . . . . . . . . . . 30
+
+
+
+_____________________________________
+This document (version #1.43) was TEXset April 12, 1990 with DISS.STY v103.
+
+
+
+ i
--- /dev/null
+
+
+
+
+ Design of the TTI Prototype
+
+ Trusted Mail Agent
+
+
+ Marshall T. Rosey
+
+ David J. Farber
+
+ Stephen T. Walker
+
+
+
+ Abstract
+
+
+ The design of the TTI prototype Trusted Mail Agent (TMA)
+
+ is discussed. This agent interfaces between two entities: a key
+
+ distribution center (KDC) and a user agent (UA). The KDC
+
+ manages keys for the encryption of text messages, which two
+
+ subscribers to a key distribution service (KDS) may exchange.
+
+ The TMA is independent of any underlying message transport
+
+ system.
+
+
+ Subscribers to the KDC are known by unique identifiers,
+
+ known as IDs. In addition to distributing keys, the KDC also
+
+ offers a simple directory lookup service, in which the "real-
+
+ world" name of a subscriber may be mapped to an ID, or the
+
+ inverse mapping may be performed.
+
+
+ This document details three software components: first_, a
+
+ prototype key distribution service, which has been running
+
+ in a TCP/IP environment since December, 1984; second____, a
+
+ prototype trusted mail agent; and, third___, modifications to an
+
+ existing UA, the Rand MH Message Handling system, which
+
+ permit interaction with the prototype TMA.
+
+
+
+________________________________________
+y All three authors are with Trusted Technologies, Incorporated, POB 45, Glenwood, MD 21738,
+
+USA. Telephone: 301/854-6889. In addition, Professor Farber is with the University of Delaware.
+\f
+
+ Design of the TTI Prototype
+
+ Trusted Mail Agent
+
+
+
+Introduction
+
+ Initially, a brief model of a user community employing a trusted mail service
+
+is introduced. Following this introduction, a prototype system is described which
+
+attempts to meet the needs of a user community. Finally, open issues are discussed,
+
+which are currently not satisfied by the prototype system or its model of operation.
+
+
+ Two or more entities, called users, wish to communicate in a secure
+
+environment. Depending on their available resources, different levels of security
+
+are possible. At the extreme, two parties with substantial resources may wish to
+
+communicate in a fashion which prevents any third parties, known as adversaries,
+
+from observing their communication. At this level, not only is an adversary
+
+unable to capture the communication for analysis, but in fact, the adversary is
+
+unaware that any communication is occurring at all. In most applications, this
+
+level of security is prohibitively expensive. A more economic method is to translate
+
+messages into a form which is useless to an adversary and then to communicate
+
+those messages on an insecure medium.
+
+
+ This latter method requires the two users to have some sort of key with which
+
+to "lock" the plaintext into ciphertext when transmitting, and then to "unlock"
+
+the ciphertext back into useful form when receiving. Hence, there are two central
+
+issues to deal with: first_, keys must be generated, distributed, and maintained in
+
+a secure fashion; and, second____, the keys must be "intricate" enough so that sense
+
+can't be made out of the ciphertext without knowledge of the key. The first part
+
+is handled by a key distribution center (KDC), which maintains a list of users
+
+and a set of keys for each pair of users. The second part relies on sophisticated
+
+encryption and decryption algorithms. It is beyond the scope of this paper to
+
+describe cryptographic techniques in detail. For a detailed survey of this area, the
+
+reader should consult [VVoyd83].
+
+
+ In the context of our discussion (using the terminology of [X.400]), the
+
+medium used to transport is supplied by a message transport system (MTS), which
+
+is composed of one or more message transport agents (MTAs). Usually, the entire
+
+MTS is distributed in nature, and not under a single administrative entity; in
+
+contrast, an MTA is usually controlled by a single administration and resides in a
+
+particular domain. At every end-point in the medium, a user agent (UA) acts on
+
+behalf of a user and interfaces to a local MTA. This model is briefly summarized in
+
+Figure 1.
+
+
+
+ Copyright fcl1985, IFIP TC-6 1
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 2
+______________________________________________________________________________________________________________________
+
+
+
+ UA UA
+
+
+
+ POSTING RECEIPT
+
+
+
+ MTS
+
+
+
+ MTA MTA : : : : : : MTA
+
+ RELAYING
+
+
+
+ Figure 1
+
+_______________________________________________The_MTS_Model__________________________________________________________
+
+
+
+ A message, in our context, consists of two parts: the headers and the body.
+
+The headers are rigorously structured; they contain addressing information and
+
+other forms useful to a UA. The body is freely formatted and is usually not
+
+meaningful to a UA.
+
+
+ When a message is sent from one user to another, the following activities
+
+occur: The originating user indicates to the UA the address of the recipient; the
+
+UA then posts the message through a posting slot to an MTA, which involves
+
+a posting protocol in which the validity of the address and the syntax of the
+
+message are considered. Upon successful completion of the protocol, the MTA
+
+accepts responsibility for delivering the message, or if delivery fails, to inform the
+
+originating user of the failure. The MTA then decides if it can deliver the message
+
+directly to the recipient; if so, it delivers the message through a delivery slot to
+
+the recipient's UA, using a delivery protocol. If not, it contacts an adjacent MTA,
+
+closer to the recipient, and negotiates its transfer (using a protocol similar to the
+
+posting protocol). This process repeats until an MTA is able to deliver the message,
+
+or an MTA determines that the message can't be delivered. In this latter case, a
+
+failure notice is sent to the originating user.
+
+
+ It is important to note that there are two mappings which occur here. The
+
+first, which is performed implicitly by the originating user, maps the name of the
+
+recipient into the recipient's address; the second, which is performed explicitly by
+
+the MTS, maps the address of the recipient into a route to get from the originator's
+
+MTA to the recipient's MTA. These mappings are depicted in Figure 2.
+
+
+ Obviously, there is no guarantee that the MTS can be made secure, in any
+
+sense of the word. This is particularly true if it is under several administrations.
+
+Regardless of the number of administrations in the MTS, this problem quickly
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 3
+______________________________________________________________________________________________________________________
+
+
+
+ user user
+
+
+
+ name ! address
+
+
+
+ UA UA
+
+
+
+ MTS
+ address ! route
+
+
+
+ MTA MTA : : : : : : MTA
+
+
+
+ Figure 2
+
+______________________________________Mappings_in_the_MTS_model_______________________________________________________
+
+
+
+degenerates to a problem of Byzantine generals[LLamp82]. Further, trying to secure
+
+each MTA in the path that a message travels is equally questionable.
+
+
+ To support secure communications in this environment, a new entity, the
+
+trusted mail agent (TMA) is introduced into our model. A solution is to have the
+
+UA interact with this entity both when posting a message and when taking delivery
+
+of a message. The UA first contacts a TMA to encrypt the body of the message for
+
+the recipient, prior to pushing it through the posting slot. Upon receipt from the
+
+destination MTA, the UA examines the message and contacts the TMA to decipher
+
+the body of the message from the source. An overview of the relationship between
+
+the standard MTS model and the augmentations made for the Trusted Mail1 system
+
+is shown in Figure 3.
+
+
+ To achieve these tasks, the TMA interacts with a key distribution service
+
+(KDS), which manages keys between pairwise users. At this point, a third mapping
+
+takes place: the UA must be able to map addresses into the identifier(s) by which
+
+the originator and recipient are known by the TMA and KDS. These identifiers
+
+are known as KDS IDs, or simply IDs. Usually, a fourth mapping also occurs,
+
+________________________________________
+1 Trusted Mail is a trademark of Trusted Technologies, Incorporated.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 4
+______________________________________________________________________________________________________________________
+
+
+
+ UA TMA KDS TMA UA
+
+
+
+ MTS
+
+
+
+ MTA MTA : : : : : : MTA
+
+
+
+ Figure 3
+
+____________________________________Modifications_to_the_MTS_model____________________________________________________
+
+
+
+which maps the ID of a user into the name of a user. In our context, there is an
+
+exact one-to-one mapping between the name of a user and the ID of that user. In
+
+contrast, there may be a one-to-many mapping between the name of a user and
+
+that user's address in the MTS. Further, there are usually many different routes
+
+which a message may traverse when going from an originating user to a recipient
+
+user.
+
+
+ The TMA is said to be trusted because it can be relied on to perform only
+
+those actions specifically requested by the user. In the context of this paper,
+
+this means, given proper construction and maintenance of the TMA, that the
+
+software will communicate with the KDC in some secure fashion to negotiate key
+
+relationships and that it will not disclose those key relationships to other parties.
+
+Furthermore, the body of mail messages exchanged between users which employ a
+
+trusted mail agent will be unintelligible to other parties. Finally, a recipient of a
+
+message receives authenticated information from the trusted mail agent as to the
+
+identify of the sender.
+
+
+ Hence, when each user employs a TMA, end-to-end encryption occurs at the
+
+UA level (to avoid any problems with malicious MTAs).2 Any adversary listening
+
+in on the MTS, may observe messages, but make no sense out of them (other than
+
+rudimentary traffic analysis). Note, however, that since the medium itself is not
+
+secure, an adversary may still introduce new messages, corrupt messages, or remove
+
+
+________________________________________
+2 Note that in the scope of this system, the end-points are the user agents, not the hosts they reside
+
+on. In fact, it may very well be the case that the user agent and the local message transport agent
+do not reside on the same host.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 5
+
+
+messages, as they traverse the MTS. In the first two cases, however, the recipient
+
+would be suspicious because the adversary lacks the encrypting key employed by
+
+the source user. In the third case, the source user can retransmit the message after
+
+a suitable time. Of course, there is no built-in retransmission policy _ this aspect
+
+depends on the user's sending mail and is beyond the scope of the system.
+
+
+ It is important to understand the target community for the Trusted Mail
+
+system described herein. In particular, the TMA is intended for a commercial
+
+and not a military environment. This distinction is important, since it is the
+
+fundamental assumption of this paper that the latter community has much stricter
+
+requirements than the former. Because of this, the prototype system is able to
+
+make certain simplifying assumptions which permit it to operate in a mode which
+
+is less secure than military applications would permit. Although these issues are
+
+explored in greater detail at the end of the paper, for the moment recall that, like
+
+most qualities, trustedness is not absolute: there are varying degrees of trustedness,
+
+and as a system becomes more trusted, it becomes more expensive, in some sense,
+
+to operate and maintain.
+
+
+ It is perhaps instructive at this point to consider why the introduction of a key
+
+distribution center is appropriate in this environment, and why the fundamental
+
+assumption that trusted mail agents do not directly communicate with each other
+
+is necessary. Although a user agent is able to converse with the local message
+
+transport agent in real-time, it is frequently not able to communicate with other
+
+user agents in real-time. Furthermore, considering the vast problems and overhead
+
+of trying to establish secure communications from "scratch" (a problem far beyond
+
+the scope of this paper), it is would not be a good idea to try and communicate
+
+key relationships with other user agents, even if it were always possible to do so.
+
+In addition, by separating the trusted aspects of the message transport system
+
+from the system itself, many other advantages can be seen. These are presented in
+
+greater detail at the end of the paper.
+
+
+ The discussion thus far has considered only a single recipient. In practice, a
+
+user might wish to send to several others, using a different key for each. Hence each
+
+copy of the message is encrypted differently, depending on the particular recipient
+
+in question. Note that this has the effect of un-bundling message transfer in the
+
+MTS, as advanced MTAs tend to keep only a single copy of the message for any
+
+number of recipients in order to save both cpu, disk, and I/O resources.
+
+
+ For example, in some existing mail systems, if a message was sent to n users
+
+on a remote system, then the n addresses would be sent from the source MTA to
+
+the remote MTA along with one copy of the message. Upon delivery, the remote
+
+MTA would deliver a copy to each of the n recipients, but the virtual wire between
+
+the source MTA and the recipient MTA was burdened with only one copy of the
+
+message. But in a secure environment, since a different key is used by the source
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 6
+
+
+user when communicating with each of the n recipients, n different messages will
+
+be posted with the local MTA, and the advantages of recipient bundling are lost.
+
+
+ Along these lines however, private discussion groups may wish to avoid
+
+this problem by establishing access to a single ID for their use. In this case, a
+
+subscriber to the KDS may actually have more than one ID, one for "personal"
+
+use and one for each discussion group. The appropriate ID is used when posting
+
+messages to the discussion group. Naturally the administrative policy for deciding
+
+who is allowed to use the KDS ID of a discussion group is left to the moderator
+
+of the group. Observant readers will note that this vastly decreases the aspect
+
+of secure communications for the discussion group. This method is suggested
+
+as a compromise which permits the bundling of messages for multiple recipients
+
+to reduce MTS traffic. The price is high however, as a compromise on behalf
+
+of any member of the discussion group compromises the entire group. For large
+
+discussion groups and a bandwidth limited MTS, this price may be worth paying.
+
+The prototype implementation of the TMA supports multiple recipients but not
+
+multiple KDS IDs.
+
+
+ Having described this environment for communication, the designs of a KDS
+
+and TMA which form the heart of the TTI Trusted Mail system are discussed.
+
+The prototype system was developed on a VAX3 -11/780 running 4.2bsd UNIX4 .
+
+The system is based on the ansi draft[FIKM] for financial key management, but
+
+diverges somewhat in operation owing to the differences between the electronic mail
+
+(CBMS) and electronic funds (EFT) environments. Note however that the ansi
+
+data encryption algorithm[DEA, FIPS46] is used in the current implementation. A
+
+public-key cipher system was not considered as the basis for the prototype since,
+
+to the authors' knowledge, an open standard for a public-key system has yet to be
+
+adopted by the commercial community. In contrast, the ansi draft for financial key
+
+management appears to be receiving wide support from the commercial community.
+
+
+ In the description that follows, a large number of acronyms are employed to
+
+denote commonly used terms. In order to aid the reader, these are summarized in
+
+Table 1.
+
+
+
+The Key Distribution Service
+
+ The prototype version of the KDS was designed to provide key distribution
+
+services for user agents under both the same or different administrations. As a
+
+result, the means by which a trusted mail agent connects to a key distribution
+
+server is quite flexible. For example, the prototype system supports connections
+
+via standard terminal lines, dial-ups (e.g., over a toll-free 800 number), UNIX pipes,
+
+and over TCP sockets[IP, TCP]. In the interests of simplicity, for the remainder
+
+of this paper, a TCP/IP model of communication is used. Initially, a server on a
+
+________________________________________
+3 VAX is a trademark of Digital Equipment Corporation.
+4 UNIX is a trademark of AT&T Bell Laboratories.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 7
+______________________________________________________________________________________________________________________
+ ______________________________________________________________________________________________
+
+ __Abbrev.________________________________Term_____________________________Context_______________
+
+ _ CBC _ Cipher Block Chaining _ DES _
+ _ CBMS _ Computer Based Message System _ _
+ _ CKD _ Key Distribution Center _ EFT _
+ _ CKS _ Checksumming _ DES _
+ _ CSM _ Cryptographic Service Message _ _
+ _ DEA _ Data Encryption Algorithm _ _
+ _ DES _ Data Encryption Standard _ _
+ _ DSM _ Disconnect Service Message _ MCL _
+ _ ECB _ Electronic Code Book _ DES _
+ _ EFT _ Electronic Funds Transfer _ _
+ _ IDK _ Key Identifier _ CSM _
+ _ ID _ Identifier _ KDS _
+ _ IP _ Internet Protocol _ _
+ _ IV _ Initialization Vector _ CSM _
+ _ KA _ Authentication Key _ CSM _
+ _ KDC _ Key Distribution Center _ CBMS _
+ _ KDS _ Key Distribution Server _ CBMS _
+ _ KD _ Data-encrypting Key _ CSM _
+ _ KK _ Key-encrypting Key _ CSM _
+ _ MAC _ Message Authentication Code _ CSM _
+ _ MCL _ Message Class _ CSM _
+ _ MH _ The Rand Message Handling System _ _
+ _ MIC _ Message Integrity Code _ CSM _
+ _ MK _ Master Key _ CSM _
+ _ MTA _ Message Transport Agent _ CBMS _
+ _ MTS _ Message Transport System _ CBMS _
+ _ ORG _ Message Originator _ CSM _
+ _ RCV _ Message Receiver _ CSM _
+ _ RIU _ Request Identified User _ MCL _
+ _ RSI _ Request Service Initialization _ MCL _
+ _ RUI _ Request User Identification _ MCL _
+ _ TCP _ Transmission Control Protocol _ _
+ _ TMA _ Trusted Mail Agent _ CBMS _
+ _ TTI _ Trusted Technologies, Inc. _ _
+ ______UA___________User_Agent_______________________________________________CBMS____________
+
+
+ Table 1
+
+____________________________________Abbreviations_used_in_this_paper__________________________________________________
+
+
+
+well-known service host in the ARPA Internet community listens for connections
+
+on a well-known port.5 As each connection is established, it services one or more
+
+transactions over the lifetime of the session. When all transactions for a session
+
+have been made, the connection is closed. If the necessary locking operations are
+
+performed by the server to avoid the usual database problems, then more than one
+
+connection may be in progress simultaneously. Of course, a time-out facility should
+
+________________________________________
+5 The term well known in this context means that the location of the service is known a priori to
+
+the clients.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 8
+
+
+also be employed to prevent a rogue agent from monopolizing the key distribution
+
+server.
+
+
+ Once a session has been started, the client (a.k.a. TMA) initiates transactions
+
+with the server (a.k.a. KDS). Each transaction consists of the exchange of two
+
+or three cryptographic service messages (CSMs): the client sends a request,
+
+the server attempts to honor the request and sends a response, and, if the
+
+server responded positively, the client then acknowledges the transaction. By
+
+exchanging these cryptographic service messages, the KDS and the TMA are able
+
+to communicate key relationships. Obviously, the relationships themselves must
+
+be transmitted in encrypted form.6 Hence, not only are key relationships between
+
+two TMAs communicated, but key relationships between the KDS and the TMA
+
+are communicated as well.
+
+
+ This leads us to consider the key relationships that exist between a TMA and
+
+the KDS. A client usually has three keys dedicated for use with the server. The
+
+first is the master key (denoted MK), which has an infinite cryptoperiod, and is
+
+rarely used. This key is distributed manually. The second is the key-encrypting key
+
+(denoted KK), which has a shorter cryptoperiod. Whenever a KK is transmitted
+
+to the TMA, it is encrypted with the master key. The third is the authentication
+
+key (denoted KA), which is used to authenticate transactions that do not contain
+
+data keys (a count field is also used to avoid play-back attacks). Whenever a
+
+KA is transmitted to the TMA, it is encrypted with the key-encrypting key.
+
+When transactions contain keys, an associated count field is included to indicate
+
+the number of keys encrypted with the key-encrypting key used. Although not
+
+used by the prototype implementation, a production system would employ audit
+
+mechanisms to monitor usage histories.
+
+
+ Currently four types of requests are honored by the KDS: two key relationship
+
+primitives, and two name service primitives. The type is indicated by the message
+
+class (MCL) of the first cryptographic service message sent in the transaction.
+
+As each message class is discussed, the appropriate datastructures used by the
+
+KDS are introduced. Space considerations prevent a detailed description of the
+
+information exchanged in each transaction. Appendix B of this paper presents a
+
+short example of an interaction between the KDS and a TMA.
+
+
+ The first two requests are used to create (or retrieve) key relationships, and
+
+to destroy key relationships:
+
+
+ The request service initialization (RSI) message class is used to establish
+
+a key-encrypting key (KK) relationship between the TMA and another TMA, or
+
+between the TMA and the KDS. As implied by the name, a key-encrypting key is
+
+
+
+________________________________________
+6 Otherwise an adversary could simply impersonate a TMA and ask for the desired key relationships.
+
+Similarly, this also prevents an adversary from successfully impersonating a key distribution server.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 9
+
+
+used to cipher keys which are used to cipher data exchanged between peers. These
+
+other keys are called data keys (KDs).
+
+
+ The disconnect service message (DSM) message class is used to discontinue
+
+a KK-relationship between the TMA and another TMA, or between the TMA and
+
+the KDS. This prevents keys which are felt to have been compromised, or are
+
+vulnerable to compromise, from receiving further use in the system. It should
+
+be noted that, owing to mail messages (not CSMs) in transit, a discontinued key
+
+relationship may be needed to decipher the key used to encipher a mail message.
+
+The prototype KDS supports this capability.
+
+
+ In addition to maintaining an MK/KK/KA triple for each TMA, the KDS
+
+also remembers KK-relationships between TMAs. The reason for this stems from a
+
+fundamental difference between the electronic funds transfer and computer-based
+
+message system worlds. The KDS assumes that no two arbitrarily chosen TMAs can
+
+communicate in real-time, and as a result, TMAs do not exchange cryptographic
+
+service messages. (See Appendix C for a more detailed discussion.) This means
+
+that when a TMA establishes a KK-relationship with another TMA, the former
+
+TMA may start using the KK before the latter TMA knows of the new KK-
+
+relationship. In fact, it is quite possible for a KK-relationship to be established,
+
+used, and then discontinued, all unilaterally on the part of one TMA. It is up to
+
+the KDS to retain old cryptographic material (possibly for an indefinite period
+
+of time), and aid the latter TMA in reconstructing KK-relationships as the need
+
+arises. Naturally, discontinued KKs are not used to encode any new information,
+
+but rather to decode old information. (Again, refer to Appendix C for additional
+
+details.)
+
+
+ The other two requests are used to query the directory service aspects of the
+
+key distribution server:
+
+
+ The request user identification (RUI) message class is used to identify a
+
+subscriber to the KDS. Both the KDS and TMA are independent of any underlying
+
+mail transport system (MTS). As a result, a subscriber to the KDS is known
+
+by two unique attributes: a "real-world" name, and a KDS identifier (ID). The
+
+user of a mail system, or the UA, is responsible for mapping an MTS-specific
+
+address (e.g., MRose@UDEL.ARPA) to the person associated with that maildrop (e.g.,
+
+``Marshall T. Rose'' ). When conversing with the KDS, the TMA uses the KDS
+
+ID of another user to reference that person's TMA. Since it is inconvenient to
+
+remember the IDs (as opposed to people's names), the KDS provides the RUI
+
+message class to permit a TMA to query the mapping between names and IDs.
+
+If the KDS cannot return an exact match, it may respond with a list of possible
+
+matches (if the identifying information given was ambiguous), or it may respond
+
+with a response that there is no matching user.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 10
+
+
+ Finally, the request identified user (RIU) message class performs the inverse
+
+operation: given a KDS ID, a "real-world" name is returned. This request is useful
+
+for disambiguating unsuccessful RUI requests and in boot-strapping a TMA.
+
+
+ The KDS maintains two directories: a private directory and a public directory.
+
+The private directory contains all information on all clients to the KDS. The public
+
+directory is a subset of this, and is used by the KDS when processing RUI and
+
+RIU requests.7 As a result, certain clients of the KDS may have unlisted IDs and
+
+names.
+
+
+
+The Trusted Mail Agent
+
+ The prototype version of the TMA was designed to interface directly to the
+
+user agent in order to maximize transparency to the user. In present form, the
+
+TMA is available as a load-time library under 4.2bsd UNIX, although efforts are
+
+currently underway to transport the TMA to a PC-based environment.
+
+
+ The software modules which compose the TMA contain a rich set of interfaces
+
+to the KDS. In addition, the TMA manages a local database, so responses from the
+
+KDS may be cached and used at a later time. In all cases, the KDS is consulted
+
+only if the information is not present in the TMA database, or if the information
+
+in question has expired (e.g., KK-relationships). This caching activity minimizes
+
+connections to the KDS. Although connections are relatively cheap in the ARPA
+
+Internet, substantial savings are achieved for PCs which contact the KDS over a
+
+public phone network (dial-up) connection.
+
+
+ The TMA performs mappings between pairs of the following objects: user
+
+names, KDS IDs, and MTS addresses. The TMA considers all trusted mail agents,
+
+including itself, as a user name, KDS ID, and one or more MTS addresses. Although
+
+the TMA does not interpret addresses itself, in order to simplify mail handling,
+
+the TMA remembers the relationship between these objects so the user enters this
+
+information only once.
+
+
+ Initially, when a TMA is booted, the user supplies it with the master key and
+
+the user's KDS ID. Both of these quantities are assigned by the personnel at the
+
+key distribution center, and subsequently transmitted to the user via an alternate,
+
+bonded service.8 The TMA connects with the KDS and verifies its identity. From
+
+this point on, the TMA manages its KK-relationships between the KDS and other
+
+TMAs without user intervention.
+
+
+ The current implementation of the TMA assumes a "general memo framework"
+
+in the context of the Standards for ARPA Internet Text Messages[DCroc82]:
+
+
+
+________________________________________
+7 In the prototype implementation, the two directories are, for the moment, identical.
+8 In this fashion, the problems of boot-strapping over an unsecure medium are avoided.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 11
+
+
+ 1. A message consists of two parts: the headers and the body. A blank line
+
+ separates the headers from the body.
+
+
+ 2. Each (virtual) line in the headers consists of a keyword/value pair,
+
+ in which the keyword is separated from the value by a colon (:).
+
+ The headers are rigorously structured in the sense that they contain
+
+ addressing and other information useful to a user agent.
+
+
+ 3. The body is freely formatted and must not be meaningful to a user
+
+ agent. However, as will be seen momentarily, the body of encrypted
+
+ messages must have an initial fixed format which the TMA enforces.
+
+
+This format is widely called "822" after the number assigned to the defining
+
+report[DCroc82].9
+
+
+ To support the cipher activities described below, the TMA contains internal
+
+routines to perform the following DES functions: electronic code book (ECB)
+
+for key encryption, cipher block chaining (CBC) for mail message encryption,
+
+checksumming (CKS) for mail message and CSM authentication. Readers interested
+
+in these different modes of operation for the DES should consult [FIPS81].
+
+
+Encrypting Mail
+
+ To encipher a message, the method used is a straightforward adaptation
+
+of the standard encrypting/authentication techniques (though the terminology is
+
+tedious). Consider the following notation:
+
+
+ ax (s): the checksum of the string s using the key x (DEA checksumming
+
+ authentication)
+
+
+ ax+y (s): the checksum of the string s using the exclusive-or of the two keys x
+
+ and y
+
+
+ ex (y): the encryption of the key y using the key x (DEA electronic code book
+
+ encryption)
+
+
+ ex;y (s): the encryption of the string s using the key x and initialization vector
+
+ y (DEA cipher block chaining encryption)
+
+
+ h: the headers of the message
+
+
+ and,
+
+
+ b: the body of the message
+
+
+
+________________________________________
+9 Although an 822-style framework is employed by the TMA prototype, the 822 ``Encrypted:''
+
+header is not currently present in encrypted messages. This is due to a design decision which
+assumes that nothing in the headers of a message is sacred to the transport system, and that
+"helpful" munging might occur at any time. In the real world, such helpfulness is often a problem.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 12
+
+
+For each message to be encrypted, a data key, initialization vector, authentication
+
+key (KD/IV/KA) triple is generated by a random process. (It goes without saying
+
+that the integrity of the system depends on the process being random). Then, for
+
+each user to receive a copy of the encrypted message, the following actions are
+
+taken:
+
+
+ First, the headers of the message are output in the clear. Then, a banner
+
+string, i, is constructed and placed at the beginning of the body of the message:
+
+
+ ENCRYPTED MESSAGE: TTI TMA
+
+
+which identifies the message as being encrypted by the TTI TMA. Following
+
+the banner string is a structure, m, which takes on the syntax and most of the
+
+semantics of a cryptographic service message:
+
+
+ MCL/ MAIL
+
+ RCV/ rcvid
+
+ ORG/ orgid
+
+ IDK/ kkid
+
+ KD/ ekk (ka)
+
+ KD/ ekk (kd)
+
+ IV/ ekd (iv)
+
+ MIC/ aka (b)
+
+ MAC/ akd+ka (m)
+
+
+After this, the encrypted body is output, ekd;iv (b). In short, the entire output
+
+consists of
+
+ h + i + m + ekd;iv (b):
+
+
+
+ The purpose of the structure m is many-fold. The MCL field indicates the
+
+structure m's type; currently only the type MAIL is generated and understood.
+
+The RCV and ORG fields identify the intended recipient of the message and the
+
+originator. The IDK field identifies the key-encrypting key, KK, used to encrypt
+
+the next two fields. The first KD field has the encrypted authentication key, KA,
+
+used to calculate the MIC of the plaintext of the body of the message. After
+
+the body of the message is deciphered, aka (b) is calculated and compared to the
+
+value of the MIC field. Hence, the MIC field authenticates the message body. The
+
+second KD field has the encrypted data encrypting key, KD, which along with the
+
+encrypted initialization vector in the IV field was used to generate the ciphertext
+
+of the body. Finally, the MAC field authenticates the m structure itself. The use
+
+of a data key, initialization vector, authentication key (KD/IV/KA) triple permits
+
+us to perform key distribution in a hierarchical fashion and allows the system to
+
+use a KK-relationship over a longer cryptoperiod without fear of compromise.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 13
+
+
+ The TMA provides three primary interfaces to a UA to send encrypted mail:
+
+ the first takes a file-descriptor to a message and returns a structure g (called a
+
+ group) describing the ciphertext version of the body (this structure contains a KD,
+
+ IV, and KA generated at random, along with a file-descriptor to the plaintext
+
+ headers, a file-descriptor to the ciphertext body, and the checksum of the plaintext
+
+ body); the second takes a user entry (or MTS address) and g, and returns a
+
+ file-descriptor to the encrypted message for that user (or MTS address); the third
+
+ takes g and performs clean-up operations. The chief advantage to this scheme of
+
+ encryption is that if the message is to be sent to more than one recipient, then the
+
+ MIC and the encrypted body need only be calculated once, since the KD, IV, and
+
+ KA remain constant (only the KK's change with each recipient, hence for each
+
+ copy of the encrypted message, only the structure m need be re-calculated).
+
+
+ There are, however, a few subtleties involved: first_, the MTS usually accepts
+
+ only 7-bit characters, so the encrypted text is exploded to consist of only printable
+
+ characters;10 second____, since the MTS may impose limits on the length of a line,
+
+ each line of output is limited to 64 characters; and, third___, since the body may
+
+ require trailing padding, during encryption one last unit of 8 bytes is written
+
+ (and encrypted), naming the number of characters (presently, nulls) padded in the
+
+ previous 8 bytes (0 : : :7).
+
+
+ Decrypting Mail
+
+ To decipher a message, the method is also straightforward: The headers are
+
+ output in the clear. The banner string is essentially ignored, and the structure m
+
+ is consulted to identify the correct key-encrypting key. The TMA checks to see if
+
+ it knows of that KK. If not, it asks the KDS to supply it. From that point, the
+
+ KA, KD, and IV are deciphered. The m structure is then authenticated. With the
+
+ correct key, the remainder of the body is deciphered, and all except for the last
+
+ 16 bytes are output. The last 8 bytes indicate how many of the previous 8 bytes
+
+ should be output. So, the appropriate number of bytes is output, and the plaintext
+
+ body is authenticated and compared to the MIC. Needless to say, as the body is
+
+ deciphered, it is imploded back to 8-bit characters and lines are restored to their
+
+ previous lengths. To indicate that the message was correctly deciphered, a new
+
+ header of the form
+
+
+ X-KDS-ID: orgid (originator's name)
+
+
+ is appended to the headers of the message. Note that this provides an authentication
+
+ mechanism. Note, further, that the UA did not have to know the identity of the
+
+ sender of the message.
+
+
+
+ ________________________________________
+10 As a rule, in all CSMs, when encrypted information is transmitted, it is exploded after encryption
+
+ by the sender, and imploded prior to decryption by the receiver.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 14
+
+
+ Modifications to MH
+
+ MH is a public domain UA for UNIX, which is widely used in dealing with
+
+ both a large number of electronic mail application and a large number of messages.
+
+ Although this document does not intend to describe MH, parts of the system are
+
+ described as they relate to the TMA. Readers interested in MH should consult
+
+ either the user's manual[MRose85a] for a detailed description, or [MRose85d] for a
+
+ higher-level description.
+
+
+ To modify MH in order to make use of a TMA, three programs were changed
+
+ (with a high degree of transparency to the user), and two new programs were
+
+ introduced.
+
+
+ In MH, when a user wishes to send a composed draft (which may be an
+
+ entirely new message, a re-distribution of a message, a forwarding of messages, or
+
+ a reply to a message), the user invokes the send program. This program performs
+
+ some minor front-end work for a program called post which actually interacts with
+
+ the MTS. A new option to the send and post programs, the `-encrypt' switch, is
+
+ introduced. If the user indicates
+
+
+ send -encrypt
+
+
+ then post encrypts the messages it sends.
+
+
+ When sending an encrypted message, post first checks that each addressee
+
+ has a mapping to a KDS ID during address verification. Then, instead of batching
+
+ all addresses for a message in a single posting transaction, for each addressee, post
+
+ consults the TMA for the appropriately encrypted text and posts that instead.
+
+ (Appendix A discusses the reasons for this more fully.) Hence, assuming the user
+
+ has established mappings between MTS addresses and KDS IDs, the TMA does
+
+ all the work necessary to encrypt the message, including contacting the KDS as
+
+ necessary.11
+
+
+ In MH, when a user is notified that new mail has arrived, the inc program is
+
+ run. As each message is incorporated into the user's message handling area, a scan
+
+ (one-line) listing of the message is generated.
+
+
+ By default, the inc program upon detecting one or more encrypted messages,
+
+ after the scanning process, asks the TMA to decipher the message, and if successful,
+
+ scans the deciphered messages. This action can be inhibited with the `-nodecrypt'
+
+ switch. Hence, if the user wishes to retain messages in encrypted form, inc can
+
+ be told to note the presence of encrypted messages, but otherwise not to process
+
+ them. By using the MH user profile mechanism, inc can be easily customized to
+
+ ________________________________________
+11 Once the TMA establishes a connection to the KDS, it retains that connection until the UA
+
+ terminates. This is done to minimize connections to the KDS. In the context of MH, since the
+ trusted mail agent is active over the lifetime of an invocation of a program such as post, this means
+ that the connection is terminated just before the program terminates.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 15
+
+
+reflect the user's tastes. Again, the actions of the TMA are transparent to the user.
+
+In fact, if encrypted mail is received from users unknown to the TMA, it queries
+
+the KDS as to their identity prior to retrieving the KK-relationship.
+
+
+ If inc fails to decrypt a message for some reason, or if inc was told not to
+
+decrypt a message, the decipher program can be used. This simple program merely
+
+deciphers each message given in its argument list. The decipher program can be
+
+given the `-insitu' switch, which directs it to replace the ciphertext version of
+
+the message with the plaintext version; or, the `-noinsitu' switch can be used
+
+indicating that the ciphertext version of the message should be left untouched and
+
+the plaintext version should be listed on the standard output.
+
+
+ Finally, the tma program is used to manipulate the TMA database, containing
+
+commands to boot the database, add new users to the database, and to establish
+
+mappings between addresses and users in the TMA database. This program can
+
+also be used to disconnect KKs between other TMAs, and the KK/KA between
+
+itself and the KDS.
+
+
+ Appendix A of this paper contains a transcript of an MH session.
+
+
+
+Remarks
+
+ We now consider the merit of the system described. After presenting some
+
+of the basic strengths of the system and a few unresolved questions, the discussion
+
+centers on the simplifying assumptions made by the system, and how these can be
+
+defended in a non-military environment.
+
+
+Strengths
+
+ It can be argued that the prototype system (and the augmented model in
+
+which it finds its basis) present many strengths.
+
+
+ Perhaps the most important is the high-level of independence from the MTS
+
+enjoyed by the system. As a result, since the TMA does not interact directly
+
+with the MTS, it can be made to be completely free from any MTS-specific
+
+attributes, such as naming, addressing, and routing conventions. Furthermore,
+
+when interfacing a Trusted Mail system, no modifications need be made to the MTS
+
+or local MTA.
+
+
+ In addition to the systems-level advantage to this scheme, users of the system
+
+profit as well, since many disjoint MTSs can be employed by a user with a single
+
+TMA. This reduces the number of weaknesses in the system and allows a user to
+
+keep a single database of "trusted" correspondents. It should also make analysis
+
+and verification of the TMA easier.
+
+
+ Of course from the user-viewpoint, once the TMA has been initially booted,
+
+all key management is automatic. Not only does this reduce the risk of compromise
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 16
+
+
+ of cryptographic material (given proper construction and maintenance of the
+
+ TMA), but it relieves the user of a tedious and error-prone task.
+
+
+ Finally, although the KDS described herein is used to support Trusted Mail,
+
+ other applications which require key management, could employ the services offered
+
+ by the key distribution center.
+
+
+ Open Questions
+
+ At present, there are many restrictions on the prototype implementation
+
+ described. Some of these result from that fact that the implementation is a
+
+ prototype and not a production system. Others deal with more fundamental
+
+ issues.
+
+
+ In terms of the TMA, the expiration delay for keys is hard-wired in; it should
+
+ be user-settable. In the prototype version, the KK and KA with the KDS are good
+
+ for 2 days or 10 uses (whichever comes first), while a KK for use with another
+
+ TMA is good for 1 day or 5 uses. In actual practice, keys with long cryptoperiods
+
+ might be good for 6 months or 100 uses, while keys with short cryptoperiods might
+
+ be good for 1 month or 25 uses. The choice of actual values is an open question
+
+ beyond the scope of prototype system.12 In many respects, this issue is a classic
+
+ trade-off: with relatively small cryptoperiods, an adversary has less chance of
+
+ breaking a key, but with longer cryptoperiods less connections have to be made to
+
+ the key distribution server.
+
+
+ A fundamental issue, owing to differences between the EFT and CBMS
+
+ environments, is that the KDS implements only a subset of the ansi draft and the
+
+ semantics of certain operations have changed somewhat. It would be nice to unify
+
+ the CBMS and EFT views of a key distribution center (in the former environment,
+
+ the center is called a KDC, while in the latter environment, the center is known
+
+ as a CKD). Appendix C of this paper discusses the differences between the two
+
+ perspectives in greater detail.
+
+
+ At present, the relationship between errors in the TMA and the posting
+
+ process is an open question. For example, if an address doesn't have a mapping in
+
+ the TMA database, post treats this as an address verification error. This prevents
+
+ the draft from being posted. The philosophy of the UA is unclear at this point,
+
+ with respect to how recovery should occur. A second area, also in question, deals
+
+ with the way in which plaintext and ciphertext versions of a message are present
+
+ in a system. Clearly, it is a bad idea to make both versions available, but since
+
+ the TMA doesn't try to concern itself with first party observation, there seems to
+
+ be little possibility of preventing this behavior. The best that can be done, at this
+
+ stage, is simply to choose a consistent policy that user's should attempt to adhere
+
+
+
+ ________________________________________
+12 The current values were chosen by guess work. Although not necessarily technically sound, the
+
+ small numbers were very good for debugging purposes.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 17
+
+
+to. The software can help somewhat in implementing this policy, but it certainly
+
+can't circumvent the user.
+
+
+ The prototype is built on the assumption that a single key distribution server
+
+is present. Since the ansi draft[FIKM] makes provisions for key translation centers,
+
+the Trusted Mail prototype should perhaps be made to operate in a more diverse
+
+environment. Until the issues become clearer, this remains open.
+
+
+ Finally, for distribution lists, a large number of people would need to share
+
+the same KDS ID. The current implementation doesn't support this. Each TMA
+
+database is for a particular ID. A user with multiple IDs would need multiple
+
+databases, or the database should be re-organized.
+
+
+Weaknesses
+
+ As pointed out earlier, this prototype system situates itself in a commercial,
+
+not military, environment. With respect to this decision, several aspects of
+
+the system are now discussed, which we feel are acceptable in a commercial
+
+environment, but which would be considered weaknesses in a military environment:
+
+
+ 1. Traffic Flow
+
+ The prototype TMA makes no attempt whatsoever to prevent or confuse
+
+ traffic analysis by augmenting traffic flow.
+
+
+ 2. The Database of KDS Subscribers
+
+ Since information returned by the request user identification (RUI) and
+
+ request identified user (RIU) MCLs are returned in the clear, this allows
+
+ an adversary to ascertain subscribers to the KDS, and perhaps deduce
+
+ some information about the system. Without knowledge of the master key
+
+ however, an adversary could not impersonate a subscriber though. Still, in
+
+ the military sense, this is a weakness. However, all this assumes that the
+
+ database maintained by the KDS accurately reflects the real-world.
+
+
+ 3. Multiple Recipients
+
+ It is possible, though not proven to the authors' knowledge, that the scheme
+
+ used to avoid encrypting the body of a message more than once for multiple
+
+ recipients might permit one of the recipients who is also an adversary to
+
+ compromise the key relationship between the sender and another recipient.
+
+
+ The scenario goes like this: When a message is being prepared for encryption,
+
+ a single KD/IV/KA triple is generated to encrypt the body. Since the sender
+
+ has a different key relationship with each recipient, each message sent is
+
+ different, since the structure m depends not only on the KD/IV/KA triple
+
+ but also on the key relation between the sender and a particular recipient.
+
+ Now suppose that one of the recipients, r1 , in addition to receiving the copy
+
+ of the message meant for him/her also intercepts a copy of the message
+
+ destined for another recipient, r2 . At this point, the recipient r1 has both
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 18
+
+
+ the plaintext and ciphertext version of the body, the plaintext version of the
+
+ KD/IV/KA triple, and the ciphertext version of the KD/IV/KA triple that
+
+ was generated using the key relationship between the sender and the recipient
+
+ r2 . The question is: can r1 now deduce the key relationship between the
+
+ sender and r2 ?
+
+
+ If so, then the way that the TMA attempts to minimize the use of encryption
+
+ resources is a weakness. But, even if this is possible, given relatively short
+
+ cryptoperiods for key relationships between TMA peers, this becomes a
+
+ non-problem.
+
+
+ 4. Discussion Groups
+
+ As discussed earlier, the proposed method of associating a single KDS ID with
+
+ the membership of a discussion group does introduce a significant weakness
+
+ for the security of messages sent to the discussion group. Since the TMA
+
+ does not assume a general broadcast facility, it appears that there are no
+
+ good solutions to the problem of discussion group traffic. Of course, it is easy
+
+ enough to simply send to each member of the group.
+
+
+ For the sake of argument, let's assume that the discussion group has n
+
+ members. Now, since a different key relationship would exist between the
+
+ sender and each of the n recipients, the structure m would be different for
+
+ each recipient and so a different message would have to be sent to each
+
+ recipient. To make matters worse, if one rejects the way the TMA handles
+
+ multiple recipients, not only does the MTS get burdened with n different
+
+ messages, but the sender's TMA gets burdened by having to encrypt the body
+
+ of the message n times. For meaningful values of n (say on the order of 500,
+
+ or even 25), the amount of resources required for any trusted discussion group
+
+ are simply too costly.
+
+
+Compromises, Compromises
+
+ Each of the possible weaknesses discussed above represent a compromise
+
+between the expense of the system and the level of security it can provide.
+
+
+ The first two areas, if addressed by the TMA, could result in much less
+
+background information being available to an adversary. In an application where it
+
+is important that an adversary not know who is talking to whom, or who can talk
+
+at all, this is very important. It is the authors' position that in the commercial
+
+environment, this issue is not paramount. By ignoring the issue of traffic flow, the
+
+TMA has a lot less work to do and the MTS is kept clear of "useless" messages.
+
+By keeping the information returned by the RUI and RIU MCLs in the clear, the
+
+complexity of the TMA is significantly reduced.
+
+
+ The second two areas, if addressed by the TMA, could result in a lesser
+
+probability of traffic being deciphered by an adversary. Regardless of the
+
+application, this is always extremely important. However, the authors' feel
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 19
+
+
+that the compromise made by the TMA in these two issues is not substantial,
+
+and does not result in an explicit weakness when a message is sent to multiple
+
+recipients (note that when there is only a single recipient of a message, these two
+
+policies can not introduce weaknesses). In return, efficient use can be made of
+
+both the MTS and the TMA when messages are being sent to multiple recipients.
+
+Given scarce resources or large numbers of recipients, this approach may prove to
+
+be quite winning.
+
+
+ Of course, much work remains to be done to prove the success of the TMA in
+
+all four of these areas.
+
+
+
+Acknowledgements
+
+ The prototype implementation described herein utilizes a public domain
+
+implementation of the DES algorithm[DEA] which was originally implemented by
+
+James J. Gillogly in May, 1977 (who at that time was with the Rand Corporation,
+
+and is now affiliated with Gillogly Software). Interfaces to Dr. Gillogly's
+
+implementation were subsequently coded by Richard W. Outerbridge in September,
+
+1984 (who at that time was with the Computer Systems Research Institute at the
+
+University of Toronto, and is now affiliated with Perle Systems, Incorporated).
+
+
+ The authors would like to acknowledge Dennis Branstad, Elaine Barker,
+
+and David Balensen of the National Bureau of Standards for their comments
+
+on the prototype system and insights on the ANSI draft[FIKM]. In particular,
+
+Dr. Branstad originally suggested the method used for encrypting a single message
+
+for multiple recipients under different keys.
+
+
+ The authors (and all those who have read this paper) would like to thank Willis
+
+H. Ware of the Rand Corporation, and Jonathon B. Postel of the USC/Information
+
+Sciences Institute. Their extensive comments resulted in a much more readable
+
+paper. In addition, the authors would like to thank Dr. Stephen P. Smith and
+
+Major Douglas A. Brothers for their insightful comments.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 20
+
+
+ References
+
+
+
+[DCroc82] D.H. Crocker. Standard for the Format of ARPA Internet Text
+
+ Messages. Request for Comments 822. ARPA Internet Network
+
+ Information Center (NIC), SRI International (August, 1982).
+
+
+
+[DEA] Data Encryption Algorithm, X3.92-1981, American National
+
+ Standards Institute, 1981.
+
+
+
+[FIKM] Financial Institution Key Management, X9.17-198_ (draft), American
+
+ National Standards Institute, 198_.
+
+
+
+[FIPS46] Data Encryption Standard, Federal Information Processing Standards,
+
+ Publication 46, 1977.
+
+
+
+[FIPS81] DES Modes of Operation, Federal Information Processing Standards,
+
+ Publication 81, 1980.
+
+
+
+[IP] Internet Protocol. Request for Comments 791 (milstd 1777).
+
+ Appearing in Internet Protocol Transition Workbook, ARPA Internet
+
+ Network Information Center (NIC), SRI International, 1981.
+
+
+
+[LLamp82] L. Lamport, R. Shostak, M. Pease. The Byzantine Generals Problem.
+
+ ACM Transactions on Programming Languages and Systems 4 (July,
+
+ 1982), 382-401.
+
+
+
+[MRose85a] M.T. Rose, J.L. Romine. The Rand MH Message Handling System:
+
+ User's Manual. UCI Version. Department of Information and Computer
+
+ Science, University of California, Irvine (January, 1985).
+
+
+
+[MRose85d] M.T. Rose, E.A. Stefferud, J.N. Sweet. MH: A Multifarious User
+
+ Agent. Computer Networks (to appear).
+
+
+
+[TCP] Transmission Control Protocol. Request for Comments 793 (milstd
+
+ 1778). Appearing in Internet Protocol Transition Workbook, ARPA
+
+ Internet Network Information Center (NIC), SRI International, 1981.
+
+
+
+[VVoyd83] V.L. Voydock, S.T. Kent. Security Mechanisms in High-Level
+
+ Network Protocols. Computing Surveys 15, 2 (June, 1983), 135-171.
+
+
+
+[X.400] Message Handling Systems: System Model-Service Elements,
+
+ Recommendation X.400, International Telegraph and Telephone
+
+ Consultative Committee (CCITT).
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 21
+ ______________________________________________________________________________________________________________________
+
+ 1 % tma -add -user "UCI Portal" uci@udel-dewey
+ 2 3: "UCI Portal"
+ 3 uci@udel-dewey
+ 4
+ 5 % comp
+ 6 To: uci
+ 7 Fcc: +outbox
+ 8 Subject: test message
+ 9 --------
+10 mumble, mumble.
+11 ^D
+12
+13 What now? send -encrypt
+14 -- Address Verification --
+15 -- Local Recipients --
+16 uci: address ok
+17 -- Address Verification Successful --
+18 -- Posting for All Recipients --
+19 -- Local Recipients --
+20 uci: address ok
+21 -- Recipient Copies Posted --
+22 -- Filing Folder Copies --
+23 Fcc outbox: folder ok
+24 -- Folder Copies Filed --
+25 Message Processed
+
+
+ Figure 4
+
+ __________________________________________Sending_Encrypted_Mail______________________________________________________
+
+
+
+ Appendix A: An MH Session
+
+ In the following, the user ``Marshall T. Rose'' logged onto host
+
+ ``udel-dewey'' , wishes to send a message to a user known as the ``UCI Portal''
+
+ (a system maintenance account). As shown in Figure 4, line 1, the user first estab-
+
+ lishes a mapping between the name ``UCI Portal'' and the address uci@udel-
+
+ dewey. Once this mapping is performed, it remains in effect until the user indicates
+
+ otherwise to the TMA. When the tma program is invoked, it consults the TMA
+
+ database to see if that user is known. If not, it contacts the KDS to ask for the
+
+ KDS ID associated with the user. If the response is successful (in this case, the
+
+ KDS ID is ``3'' ), then the TMA updates its database. The tma program indicates
+
+ in its output the KDS ID associated with the user, along with all known addresses
+
+ (in this case, only one). So, once the name to address mapping has been described
+
+ the user, the user agent, MH, deals only with the address, while the trusted mail
+
+ agent deals with the name and KDS ID aspects of the user.
+
+
+ Next, the comp program is invoked to compose a new draft on line 5. The
+
+ user addresses the local user ``uci'' in the To: field, and indicates that a plaintext
+
+ copy should be kept in the folder ``+outbox'' . After entering the subject and
+
+ text of the draft, the user enters What now? level on line 13. At this point, the
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 22
+______________________________________________________________________________________________________________________
+
+ 1 % inc
+ 2 Incorporating new mail into inbox...
+ 3
+ 4 1+E02/28 0227-EST mrose test message <<ENCRYPTED MESSAGE: TTI
+ 5
+ 6 Incorporating encrypted mail into inbox...
+ 7
+ 8 1+ 02/28 0227-EST mrose test message <<mumble, mumble. >>
+
+
+ Figure 5
+
+________________________________________Receiving_Encrypted_Mail______________________________________________________
+
+
+
+user directs MH to send the draft in encrypted form. The resulting output is
+
+verbose (a default for send for this user) but instructive. Initially, all addresses in
+
+the draft are verified on lines 14 to 17. Two forms of verification occur: first, the
+
+MTS is asked to verify the address as much as possible. For local addresses, the
+
+MTS decides if the name has a maildrop associated with it. For remote addresses,
+
+the MTS decides if the host is known to it. The second type of verification occurs
+
+with the TMA. For all addresses, the TMA is asked if it can find a mapping from
+
+the address to a KDS ID.
+
+
+ The reason MH goes to all this trouble is a philosophical issue. Since the
+
+copy of the encrypted draft is different for each recipient, post tries to verify that
+
+all recipients can be successfully posted prior to actually posting the different
+
+ciphertext versions of the draft. This behavior is not optimal in terms of cycles,
+
+but is perhaps "correct" from a UA perspective.
+
+
+ Finally, the draft is actually posted, and the folder carbon-copy is filed.
+
+
+ Some time later, the UCI portal is informed that new mail has arrived. As
+
+shown in Figure 5, the inc program is run. The ``E'' prior to the date of the
+
+message indicates that inc has detected the message to be encrypted. Since the
+
+user did not inhibit inc from deciphering the message, it proceeds to do so.
+
+
+ Finally, it may be instructive to see what the encrypted message looked
+
+like when it was delivered to the portal's maildrop, and the final message after
+
+deciphering. Figures 6 and 7 show these respectively. In particular, note that the
+
+``X-KDS-ID:'' field has been introduced in Figure 7 after successfully deciphering
+
+the message. The presence of this field authenticates the sender of the message.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 23
+______________________________________________________________________________________________________________________
+
+Received: From localhost.DELAWARE by udel-dewey.DELAWARE id a022713
+ ;28 Feb 85 2:27 EST
+To: uci@udel-dewey
+Subject: test message
+Date: 28 Feb 85 02:27:16 EST (Thu)
+Message-ID: <4057.478423636@udel-dewey>
+From: mrose@udel-dewey
+
+
+ENCRYPTED MESSAGE: TTI TMA
+(
+MCL/MAIL
+RCV/3
+ORG/17
+IDK/850228072730
+KD/e36813a3882eebd1
+KD/fa8b8ac657476669
+IV/Ef9d283565431b103
+MIC/fdb927fb
+MAC/50e9de30
+)
+a13774f652d844762c4fc03c2f4e201b9d2f57eadb00546c
+
+
+ Figure 6
+
+______________________________________Message_Prior_to_Decryption_____________________________________________________
+
+______________________________________________________________________________________________________________________
+Received: From localhost.DELAWARE by udel-dewey.DELAWARE id a022713
+ ;28 Feb 85 2:27 EST
+To: uci@udel-dewey
+Subject: test message
+Date: 28 Feb 85 02:27:16 EST (Thu)
+Message-ID: <4057.478423636@udel-dewey>
+From: mrose@udel-dewey
+X-KDS-ID: 17 (Marshall T. Rose)
+
+
+mumble, mumble.
+
+
+ Figure 7
+
+________________________________________Message_After_Decryption______________________________________________________
+
+
+
+Appendix B: A Short Exchange
+
+ The simple nature of the interchange between the user and MH in Appendix A
+
+completely hides any interactions between the TMA and the KDS. Let us briefly
+
+examine an exchange that might occur after the destination TMA receives the
+
+message shown in Figure 6.
+
+
+ To begin, the TMA must ascertain what it knows about the sender of the
+
+message, which claims to have a KDS ID of 17. That is, the TMA must first
+
+consider what key relationships it has with the sender. For the sake of argument,
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 24
+ ______________________________________________________________________________________________________________________
+
+ 1 <--- (
+ 2 <--- MCL/RIU
+ 3 <--- RCV/17
+ 4 <--- ORG/3
+ 5 <--- KDC/TTI
+ 6 <--- EDC/1a1fbbba
+ 7 <--- )
+ 8 ---> (
+ 9 ---> MCL/RTR
+10 ---> RCV/17
+11 ---> ORG/3
+12 ---> CTA/1
+13 ---> USR/"Marshall T. Rose"
+14 ---> KDC/TTI
+15 ---> MAC/2ebde134
+16 ---> EDC/96b183de
+17 ---> )
+18 <--- (
+19 <--- MCL/ACK
+20 <--- RCV/17
+21 <--- ORG/3
+22 <--- KDC/TTI
+23 <--- EDC/59a8ddcc
+24 <--- )
+
+
+ Figure 8
+
+ __________________________________________Ascertaining_the_Sender_____________________________________________________
+
+
+
+ suppose that this purported subscriber is unknown to the TMA. In this case, the
+
+ first step it must undertake is to ascertain the validity of this subscriber.
+
+
+ As shown in Figure 8 on lines 1-7, the TMA does this by establishing a
+
+ connection to the KDS and issuing an request identified user (RUI) MCL.13 If
+
+ the response by the KDS is positive, the TMA will use the information returned
+
+ when generating the ``X-KDS-ID:'' field for authentication. The response CSM
+
+ returned by the KDS includes an authentication checksum (the MAC field on
+
+ line 15) and a transaction count (the CTA field on line 12) to prevent spoofing by a
+
+ process pretending to be the KDS. The TMA then acknowledges that the response
+
+ from the server was acceptable on lines 18-24.
+
+
+ The next step is to ascertain the actual key relationship used to encrypt the
+
+ structure m, which appears after the identifying string. The TMA consults the
+
+
+ ________________________________________
+13 In point of fact, the very first thing that the TMA does after connecting to the KDS is verify
+
+ that the key relationships between the KDS and the TMA are valid (have not expired). If the
+ key relationship between the two has expired, the TMA issues a request service initialization RSI
+ MCL to establish a new key relationship. This relationship contains a key-encrypting key (KK) and
+ an authentication key (KA). Once a valid key relationship exists between the KDS and the TMA,
+ transactions concerning other key relationships may take place.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 25
+ ______________________________________________________________________________________________________________________
+
+ 1 <--- (
+ 2 <--- MCL/RSI
+ 3 <--- RCV/17
+ 4 <--- ORG/3
+ 5 <--- IDK/850228072730
+ 6 <--- KDC/TTI
+ 7 <--- SVR/KD.IV.KK
+ 8 <--- EDC/83679e14
+ 9 <--- )
+10 ---> (
+11 ---> MCL/RTR
+12 ---> RCV/17
+13 ---> ORG/3
+14 ---> KK/095f9d6b87f57871
+15 ---> CTA/2
+16 ---> KD/527fbb5593efd318
+17 ---> KD/1dcab338be1e7a09
+18 ---> IV/E02db5e598b2823ae
+19 ---> EDK/850618075332
+20 ---> KDC/TTI
+21 ---> MAC/12cbbdf5
+22 ---> EDC/8cd0c4a8
+23 ---> )
+24 <--- (
+25 <--- MCL/ACK
+26 <--- RCV/17
+27 <--- ORG/3
+28 <--- KDC/TTI
+29 <--- EDC/59a8ddcc
+30 <--- )
+
+
+ Figure 9
+
+ __________________________________Ascertaining_the_Key_Relationship___________________________________________________
+
+
+
+ IDK field in m, and if this relationship is unknown to it, then the KDS is asked to
+
+ disclose the key relationship.
+
+
+ As shown in Figure 9 on lines 1-9, This is done by issuing a request service
+
+ initialization (RSI) MCL and specifying the particular key relationship of interest.
+
+ The KDS consults its database, and if the exact key relationship between the
+
+ two indicated TMAs can be ascertained, it returns this information. The key
+
+ relationship is encrypted using the key relationship between the KDS and the
+
+ TMA, and the usual count and authentication fields are included.
+
+
+ Once the TMA knows the key relationship used to encrypt the structure m,
+
+ it can decider the structure and ascertain the KD/IV/KA triple used to encrypt
+
+ the body of the message.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 26
+
+
+ Appendix C: Differences between the ANSI and TTI drafts
+
+ The differences between the ansi draft standard for financial institution key
+
+ management, and the TTI draft's specification for trusted mail handling, are
+
+ considered.
+
+
+ The concept of a key distribution center (CKD in the ansi draft, KDC in the
+
+ TTI draft) environment differs. In the ansi draft, only one party talks to the key
+
+ distribution server (KDS); in the TTI draft, both parties talk to the KDS. This
+
+ leads to a number of differences in the two protocols. The reason for this shift
+
+ in the TTI draft is somewhat subtle: although both parties can talk to the KDS,
+
+ the mail transfer system (MTS) environment is such that both user agents (UAs)
+
+ are unable to contact each other in real-time. Hence, a detailed two-way protocol
+
+ between them is prohibitively expensive.14
+
+
+ Before discussing the differences between the two drafts, let us consider the
+
+ differences in the two environments: in the electronic mail environment, the two
+
+ end-to-end peers need not be simultaneously online. Electronic mail relies on a
+
+ communication service with potentially large delays in transit between message
+
+ transfer agents (MTAs). A basic concept of "mail" is that an originator must release
+
+ the enveloped message to a "transfer agent" before delivery can be attempted to a
+
+ recipient. In contrast, in the electronic funds environment, the two peers make use
+
+ of a virtual-circuit service. This means that they can synchronize much easier and
+
+ inter-operate in a more direct fashion.
+
+
+ Service protocols are based on the notion of requests and responses. A client
+
+ issues a request to a server, the server processes the request and returns a response.
+
+ Depending on the complexity of the protocol, the client may now respond to the
+
+ server's message, or might issue a new request, or might terminate the connection.
+
+
+ As delays in the network increase, along with the possibility of loss or
+
+ corruption or re-ordering of messages, it becomes more difficult to implement a
+
+ service protocol. In the case of a high-level protocol making use of a virtual-
+
+ circuit service, most problems can be ignored, as the virtual-circuit service masks
+
+ out problems in the network by using sequences, positive (and/or negative)
+
+ acknowledgments, windows, and so on.
+
+
+ Sadly, electronic mail cannot utilize a virtual-circuit throughout the MTS
+
+ (although individual MTA-wise connections are (in theory) virtual-circuit based).
+
+ This means that implementing a real-time or interactive service protocol between
+
+ two endpoints (a.k.a. UAs) in the MTS is very difficult. As a result, the complexity
+
+ of an end-to-end protocol in the MTS (in terms of requests and responses) is
+
+ severely constrained. For all practical purposes, an MTA can assume datagram
+
+ service and nothing else: messages might be re-ordered; messages might not reach
+
+ ________________________________________
+14 In the words of Einar A. Stefferud: "Every interesting connection has at least two end-points _
+
+ connections with only one end-point are always uninteresting."
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 27
+
+
+their destination; messages might be corrupted (though this is unlikely); in cases
+
+of failure, a notice might be generated, or might not.
+
+
+ In terms of the environment in which cryptographic service messages (CSMs)
+
+must flow, the high degree of delay and uncertainty make the implementation of a
+
+complex end-to-end protocol between UAs prohibitively expensive. Hence, a KDC
+
+is needed, to which each UA can connect using a virtual-circuit service, at posting
+
+and delivery time. The TTI draft terms such a user agent a trusted mail agent
+
+(TMA). Since both TMAs can connect to the KDS at different times using different
+
+media, the KDS maintains state information about the key relationships between
+
+different TMAs and manages those relationships appropriately. Since connections
+
+to the KDS can be expensive in terms of resources, each TMA caches information
+
+received from the KDS appropriately.
+
+
+ That's the gist of the argument as to why the TTI draft differs from the ansi
+
+draft. It might be possible to include CSMs in the messages which UAs exchange,
+
+but management of these CSMs can not be done reliably or in a straightforward
+
+fashion owing to the datagram nature of the service offered by the MTS. Finally, it
+
+should be noted that in the TTI draft, the KDS never initiates a connection with
+
+a TMA, rather it is the TMAs which connect to the KDS.
+
+
+ In the following, the differences between the two drafts are highlighted. Minor
+
+differences between the two are not discussed.
+
+
+ In the ansi draft, x 4:2 (p. 22) discusses the requirements for the automated
+
+key management architecture. The TTI draft has somewhat more "depth", since
+
+the ansi draft does not make use of a master key (MK) to fully automate the
+
+distribution of key-encrypting keys (KK).
+
+
+ The ansi draft states that once a KK-relationship is discontinued by either
+
+of that pair, the relation is not to be re-used for any subsequent activity. This
+
+can't be guaranteed in the prototype implementation. If one of the TMAs wishes
+
+to discontinue a key, not only does it have to inform the KDS, but the other TMA
+
+as well. Since the TTI draft does not permit CSMs between TMA-peers, the latter
+
+action doesn't seem possible. However, there is a solution. Whenever a message is
+
+deciphered, the TMA checks the effective date of the key used to encrypt a message
+
+it has received, and if the key is newer than the one it currently uses, it considers
+
+the older key to be discontinued.
+
+
+ Furthermore, although the environment in the TTI draft is that of a key
+
+distribution center, the notion of an ultimate recipient is not present, since all clients
+
+connect to the KDS at one time or another. In addition, the differences between
+
+the environs envisioned by the two drafts become even more pronounced when
+
+one considers that the KDS distributes key-encrypting keys to TMAs, although the
+
+ansi draft specifically prohibits this.
+\f Reprinted from Proceedings, Second International Symposium on Computer Message Systems, 1985 28
+
+
+ Finally, there is another important technical difference between the two
+
+drafts: every request to the KDS by the TMA results in a specifically defined
+
+response from the KDS to the TMA. Furthermore, if the KDS responds in a positive
+
+manner, then the TMA acknowledges this. This three-way interaction is used to
+
+ensure consistency between the states of the KDS and the TMA. The ansi draft
+
+does not require such behavior, and might profit from some finite-state analysis to
+
+ascertain unsafe (in terms of correctness) states which are reachable.
+\f
+
+
+
+ Contents
+
+
+
+ Page
+
+ Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *
+ *. 1
+
+ The Key Distribution Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
+
+ The Trusted Mail Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
+
+ Encrypting Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
+
+ Decrypting Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
+
+ Modifications to MH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
+
+ Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *
+ * . 15
+
+ Strengths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*
+ * 15
+
+ Open Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
+
+ Weaknesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *
+ * 17
+
+ Compromises, Compromises. . . . . . . . . . . . . . . . . . . . . . . . . . . 18
+
+ Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
+
+ References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *
+ * . 20
+
+ Appendix A: An MH Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
+
+ Appendix B: A Short Exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
+
+ Appendix C: Differences between the ANSI and TTI drafts . . . . . . . . . . 26
+
+
+
+ ________________________________________
+This document (version #2.60) was TEXset April 12, 1990 with DISS.STY v103.
+
+
+
+ i
--- /dev/null
+
+
+
+
+ The Rand MH Message Handling System:
+
+
+
+ Tutorial
+
+
+ Marshall T. Rosey
+
+ Jerry N. Sweetz
+
+ Wed May 21 21:04:08 PDT 1986
+
+
+
+ Abstract
+
+
+ This document introduces the UCI version of the Rand MH
+
+ system to novice users. In particular, this tutorial discusses
+
+ how to read, send, reply to, and review mail; aspects of the
+
+ MH user profile affecting these activities; and other reference
+
+ works on MH.
+
+
+ Although this document is based on the standard MH
+
+ user manual[MRose85a], this document is meant to supple-
+
+ ment, not supersede, that lengthier work.
+
+
+ Comments concerning this documentation should be ad-
+
+ dressed to the Internet mailbox Bug-MH@ICS.UCI.EDU.
+
+
+
+_____________________________________
+Computer Mail: y MRose@NRTC.NORTHROP.COM, z JSweet@ICS.UCI.EDU.
+\f
+
+ The Rand MH Message Handling System:
+
+
+
+ Tutorial
+
+
+
+Acknowledgements
+
+ The MH system described herein is based on the original Rand MH system.
+
+It has been extensively developed (perhaps too much so) by Marshall Rose and
+
+John Romine at the University of California, Irvine. Einar Stefferud, Jerry Sweet,
+
+and Terry Domae provided numerous suggestions to improve the UCI version of
+
+MH.
+
+
+ Parts of this document are taken from a Rand tutorial [SPayn85] by Sue
+
+Payne.
+
+
+
+Disclaimer
+
+ The Regents of the University of California issue the following disclaimer
+
+concerning the UCI version of MH:
+
+
+
+ "Although each program has been tested by its contributor, no warranty, express or
+ implied, is made by the contributor or the University of California, as to the accuracy
+ and functioning of the program and related program material, nor shall the fact of
+ distribution constitute any such warranty, and no responsibility is assumed by the
+ contributor or the University of California in connection herewith."
+
+
+
+Scope
+
+ This document assumes that you have no knowledge of MH. However, to use
+
+MH you should have some familiarity with the UNIX1 operating system, particularly
+
+with the way commands are given, how files are named, the jargon (e.g. shell,
+
+argument, home directory, pathname), and how to use a text editor (such as ex, vi,
+
+or emacs ).
+
+
+ This tutorial covers only basic material. For additional information about
+
+MH, consult the User's Manual [MRose85a]. Other documents of possible interest
+
+to you include The UCI BBoards Facility [MRose84] and the MH Administrator's
+
+Guide [MRose85b].
+
+
+
+_____________________________________
+1 UNIX is a trademark of AT&T Bell Laboratories.
+
+
+
+ 1
+\f 2
+
+
+How To Use This Tutorial
+
+ Different typefaces and symbols are used in this document to denote the
+
+kinds of things you (the user) must type on your keyboard.
+
+
+ 1. The names of programs are given in text italics:
+
+
+ comp
+
+
+ 2. Arguments to programs are given in typewriter style, delimited by
+
+ single-quotes:
+
+
+ `msgs'
+
+
+ 3. UNIX pathnames are given in slanted roman:
+
+
+ /usr/uci/
+
+
+ 4. Text giving a full example is presented in typewriter style:
+
+
+ comp -editor vi
+
+
+ The " " glyph is used to indicate an explicit space (the kind you make
+
+ with the space bar on your keyboard).
+
+
+
+Introduction
+
+ With MH you can send messages to other people on your system and read
+
+messages that other people send to you. Depending on how things have been
+
+set up on your system, it may be possible for you to send messages to people on
+
+remote systems. You can also reply to messages that you have received, review
+
+them, organize them in folders, and delete them.
+
+
+ MH differs from other mail programs in that it is composed of many small
+
+programs instead of just one very large program. Among new users this sometimes
+
+causes some confusion along the lines of "what program do I run?" With MH, you
+
+use the shell to invoke one program at a time. This means that when you handle
+
+mail, the entire power of the shell is at your disposal in addition to the facilities
+
+that MH provides. In the beginning, this may not make much sense or may not
+
+seem important. However, we have found that as new users of MH gain experience,
+
+they find this style of interface to be very useful.
+\f 3
+
+
+Summary
+
+ The most minimal list of MH commands that you can get by with is:
+
+
+ inc - incorporate mail (get new mail)
+
+
+ show - show the first message
+
+
+ next - show the next message
+
+
+ prev - show the previous message
+
+
+ comp - compose a new message to send
+
+
+ repl - reply to a received message
+
+
+ Comp and repl give enough prompting possibly to get you along. However,
+
+it is suggested that you take the time to peruse this tutorial before leaping into
+
+things.
+
+
+
+Messages and Folders
+
+ A message takes the form of a memorandum, and is composed of two
+
+major parts: a header, which contains such information as ``To'' and ``From''
+
+addresses, ``Subject'' , ``Date'' , etc.; and the body, which is the actual text of
+
+the message. Each component in the header starts with a keyword followed by a
+
+colon and additional information. For example, in the message:
+
+
+ Date: 10 Oct 84 17:41:14 EDT (Wed)
+
+ To: News@udel-dewey
+
+ Subject: UCI Software Talk
+
+ From: UCI Portal (agent: Marshall Rose) <uci@udel-dewey>
+
+
+
+ This is the text.
+
+
+there are four header items, and one line of text in the body. Note that a blank
+
+line separates the body from the headers.
+
+
+ MH stores a message as an ordinary file in a UNIX directory. This directory is
+
+called a folder. If you choose to keep and organize your messages, you may create
+
+as many folders as you wish. There is no limit as to the number of messages in a
+
+folder. Typically messages are numbered from 1 up. All of your personal folders,
+
+along with some other information that MH needs to know, are kept in a special
+
+directory called Mail under your home directory. Normally, MH manages these
+
+files and directories automatically, so you needn't muck around with them directly
+
+unless you really want to.
+\f 4
+
+
+ You won't have any folders until somebody sends mail to you, as a rule. If
+
+you are anxious to try out MH, but no one has sent you mail yet, try sending mail
+
+to yourself to start out with.
+
+
+
+Reading New Mail
+
+ When you are notified that you have mail (usually when you log in), perhaps
+
+with the message
+
+
+ You have mail.
+
+
+then you know that messages are waiting in your maildrop. To read these messages,
+
+you first have to incorporate the mail into your "in-box" by typing the command:
+
+
+ inc
+
+
+This incorporates the new mail from your mail drop to your in-box, which is a
+
+folder named (naturally enough) `+inbox' . As inc incorporates your new mail, it
+
+generates a scan listing of the mail:
+
+Incorporating new mail into inbox...
+
+2 + 10/10 WESTINE% USC-ISIF RFC 916 Now Available <<A new Request for Co
+3 10/10 G B Reilly Gosling EMACS manual <<Marshall, I am lookin
+4 10/11 WESTINE% USC-ISIF Internet Monthly Report
+
+
+Each time inc is invoked, any new messages are added to the end of your
+
+``+inbox'' folder.
+
+
+ To read the first message, use the show command:
+
+
+ show
+
+
+This displays the current message. To read each subsequent message, use the next
+
+command:
+
+
+ next
+
+
+If you want to back up, the command prev shows the previous message. Another
+
+way to read your messages is to name them all at once:
+
+
+ show all
+
+
+This command displays them all, one after the other. The `all' argument to show
+
+above might also be replaced with `next' or `prev' , as in
+
+
+ show next
+
+ show prev
+
+
+which are respectively equivalent to the next and prev commands.
+\f 5
+
+
+ If you have had occasion to type inc more than once, then you will find that
+
+``show all'' is showing not only the new messages, but also the old messages
+
+that you've already seen. Therefore, you might find it better to use
+
+
+ show cur-last
+
+
+instead. This command displays messages from the current message (`cur' ) to the
+
+last message (`last' ). Each time inc is invoked, it makes the first new message the
+
+current message. It should be noted here that the name `all' given in a previous
+
+example is equivalent to the message range `first-last' , where `first' is the
+
+name of the first message in `+inbox' . Also, ``show'' by itself is equivalent to
+
+
+ show cur
+
+
+
+ As mentioned earlier, with the UNIX shell as your interface to MH, it becomes
+
+easy to list a message on a line printer or to another file. For example,
+
+
+ show all _ lpr
+
+
+lists all the messages in the current folder to the line printer.
+
+
+ To summarize, the preceding has introduced these important concepts:
+
+folders (in particular, the `+inbox' folder), messages, message names (e.g.
+
+`prev' , `next' , `cur' , `last' ), and message ranges (e.g. `cur-last' , `all' ).
+
+More will be said about folders and messages in succeeding sections.
+
+
+
+Sending Messages
+
+ To send a message, you compose a message draft, either by replying to a
+
+message that someone sent to you, or by creating a draft from scratch. The send
+
+command is used after completing the final draft of a message, in the same way
+
+that you mail a paper letter only after you are finished writing it. This is a common
+
+source of confusion among new MH users who may have had experience with other
+
+mail systems.
+
+
+ This section discusses how to originate messages and how to reply to messages
+
+that were previously received, along with a word or two about addresses.
+
+
+Originating Messages
+
+ To create a message draft from scratch, use the comp program. You will be
+
+prompted for the header components and then the body of the message. If you
+
+make a mistake, you may correct it later with a text editor. The draft will be sent
+
+only if you give an explicit send command, so you do not have to worry about the
+
+draft getting away from you prematurely.
+
+
+ To start, you simply type:
+
+
+ comp
+\f 6
+
+
+ To: First, the prompt `To:' appears. Here you type the address of the person
+
+to whom you wish the message sent. If this person is on the same computer system
+
+as you, then that person's login ID should serve as the address (e.g. `mrose' or
+
+`jsweet' ).
+
+
+ Here we digress briefly to discuss addresses. A full discussion of addresses
+
+is beyond the scope of this tutorial, but it should be mentioned that there
+
+are other kinds of addresses besides login IDs. To send messages to people
+
+on remote systems, the usual way is to type `login-id@host' in the `To:'
+
+component, as in `MRose@UCI-ICSA' . Examples of `host' names at UCI include
+
+`uci-icsa' , `uci-icse' , and `uci-cip1' . Upper and lower case letters may be
+
+used interchangeably. Sometimes a person's last name (e.g. `Rose' , `Sweet' ) can
+
+be used instead of a login ID, but this cannot be relied upon in a world without
+
+unique surnames.
+
+
+ cc: After you have given an address to the `To:' prompt, you are prompted
+
+for the `cc:' ("carbon copy"-an archaism) address. It is customary, but not
+
+required, to put your own address here so that you get a copy of the message when
+
+it is sent.
+
+
+ To put more than one address in the `To:' and `cc:' components, just use
+
+a comma (",") between each address on a line.
+
+
+ Subject: The third prompt is for the `Subject:' component. Here a line
+
+of any descriptive text will do. Once you have typed a line of text, a dashed line
+
+is printed, and you are then expected to type the body of the message. End the
+
+body with EOT (usually CTRL-D).
+
+
+ An example of a complete message draft, as it appears on your screen, might
+
+be:
+
+
+ To: News
+
+ cc: farber, mrose
+
+ Subject: UCI Software Talk
+
+ --------
+
+ A presentation on the UCI software suite, including
+
+ the Rand/UCI Mail Handling System (MH), will be given
+
+ in CS220 on October 31st at 2:30 PM. Refreshments
+
+ will be served afterward.
+
+
+
+ /mtr
+
+ ^D
+
+
+(The "^D" does not appear in the draft.)
+\f 7
+
+
+ At this point, you are asked
+
+
+ What now?
+
+
+This is known as being at What now? level. For now, there are probably only four
+
+options that will interest you:
+
+
+ edit - edit the draft
+
+
+ list - list the draft on your screen
+
+
+ quit - quit, without sending the draft
+
+
+ send - send the draft, then quit
+
+
+
+All of these options take various arguments, but only edit really needs an argument.
+
+
+ Edit: The edit option will let you edit the draft before sending it. If your
+
+favorite text editor is vi, then you would use the edit option as:
+
+
+ edit vi
+
+
+Just specifying edit with no argument will only let you append text to the body
+
+of the message draft. Another editor (e.g. vi, ex, emacs ) should really be run to
+
+finish the draft up. When you leave the editor, you will come back to the What
+
+now? level, where you can re-edit the draft, send it, list it, or simply quit without
+
+sending the draft at all.
+
+
+ Caution: while in the editor, you should not delete colons in the headers or
+
+change the spelling of `To:' , `cc:' , or `Subject:' ; and do not leave blank lines
+
+between these lines. Feel free to change the addresses that you typed previously, or
+
+to add these lines if they are missing. Do not delete the dashes that separate the
+
+header lines from the text of the message. You should not add additional header
+
+lines unless you understand precisely what you are doing. This means particularly
+
+that you should not type or fill in a `From:' line. When the message is sent, the
+
+system automatically adds this line. Also, you should not type a `Date:' line in
+
+the header. When the message is sent, the system automatically adds the current
+
+date and time.
+
+
+ Quit: If you quit without sending the draft, the draft is saved in a file called
+
+Mail/draft under your home directory. This file can be recalled later using the
+
+`-use' argument to comp:
+
+
+ comp -use
+
+
+The What now? level will permit you to do further editing and to send the final
+
+draft when you are ready.
+\f 8
+
+
+ Send: When it is time to send the draft on its way, use the send option by
+
+itself. If there are any problems with the draft (for example, if one or more of the
+
+people whom you specified in the `To:' and `cc:' components do not exist) then
+
+you will be notified at this time.
+
+
+Replying to Messages
+
+ To reply to a message, use the repl command. For example,
+
+
+ repl
+
+
+creates a reply to the current message. You may also reply to a specific message
+
+(other than the current one) by giving a message number (e.g. `1' , `4' , etc.) or a
+
+message name (e.g. `first' , `last' , `prev' ):
+
+
+ repl prev
+
+
+We haven't really introduced message numbers yet. They will be discussed in the
+
+next section.
+
+
+ The process of replying to a message is very similar to composing a message
+
+from scratch (see the previous section), but repl conveniently constructs and
+
+displays the header of the reply draft for you. You need only type in the text of
+
+the reply. An EOT (usually CTRL-D) indicates that you are done typing. If you
+
+make a mistake, you may correct it later with a text editor. The draft will be sent
+
+only if you give an explicit send command, so you do not have to worry about the
+
+draft getting away from you prematurely.
+
+
+ An example of a complete reply draft, as it appears on your screen might be:
+
+
+ To: MRose
+
+ cc: JSweet
+
+ Subject: Re: UCI Software Talk
+
+ In-reply-to: Your message of 10 Oct 84 18:15:08 PDT (Wed).
+
+ --------
+
+ I'll be there.
+
+ -jns
+
+ ^D
+
+
+(The "^D" does not appear in the draft.)
+
+
+ At this point, you are asked
+
+
+ What now?
+
+
+This is known as being at What now? level. Refer to the previous section regarding
+
+how to edit, display, or send the draft at this point.
+\f 9
+
+
+ As with comp, if you quit without sending the reply draft, the draft is saved
+
+in a file called Mail/draft under your home directory. This file can be recalled later
+
+using the `-use' argument to comp:
+
+
+ comp -use
+
+
+The What now? level will permit you to do further editing and to send the final
+
+draft when you are ready.
+
+
+
+Scanning Messages
+
+ The scan listing created by inc shows the message number, the date on which
+
+the message was sent, the sender, and the subject of the message. If there is
+
+sufficient space remaining on the line, the beginning of the text of the message is
+
+displayed as well, preceded by two left angle brackets (" <<"). An example of a
+
+scan listing is:
+
+ 1+ 10/10 WESTINE% USC-ISIF RFC 916 Now Available <<A new Request for Co
+ 2 10/10 G B Reilly Gosling EMACS manual <<Marshall, I am lookin
+ 3 10/11 WESTINE% USC-ISIF Internet Monthly Report
+
+
+Note that all messages have message numbers.
+
+
+ To generate your own scan listing, use the scan program. Typing simply
+
+
+ scan
+
+
+will list all the messages in the current folder. To scan a subset of these messages,
+
+you can specify the numbers of the messages that you consider interesting, e.g.,
+
+
+ scan 2 3
+
+
+Message names may be specified in addition to discrete message numbers. The
+
+built-in message names recognized by MH are:
+
+
+ all_: all messages in the folder (`first-last' )
+
+
+ first_: the first message in the folder
+
+
+ last_: the last message in the folder
+
+
+ prev__: the message immediately before the current message
+
+
+ cur__: the current message
+
+
+ next__: the message immediately after the current message
+\f 10
+
+
+ Message ranges may be specified in addition to discrete message numbers or
+
+names by separating the beginning and final message numbers with a dash ("-").
+
+For example,
+
+
+ scan 5-10
+
+
+scans messages 5 through 10 inclusive. A range of messages may also be specified
+
+by separating a beginning message number and a relative number of messages with
+
+a colon (":"). For example,
+
+
+ scan last:3
+
+
+scans the last three messages in the folder. Similarly,
+
+
+ scan first:3
+
+
+scans the first three messages in the folder;
+
+
+ scan next:3
+
+
+scans the next three messages;
+
+
+ scan cur:3
+
+
+scans the three messages beginning from the current message;
+
+
+ scan 100:4
+
+
+scans four messages beginning from message number 100.
+
+
+ To summarize, the important concepts that have been discussed in the
+
+section are: message ranges, message numbers, and message names. When an MH
+
+command is described as taking a `msg' argument, it accepts either a message
+
+name or a message number. Most MH commands are described as taking `msgs'
+
+arguments, meaning that more than one message or message range is accepted.
+
+
+
+Deleting Messages
+
+ To delete a message, use the rmm program. By default, rmm deletes the
+
+current message, but you can give rmm a list of messages to be removed as well.
+
+There is no corresponding "unrmm" program, but clever users with a need will
+
+find out how to change the way rmm works so that it simply moves messages to
+
+another folder (say, `+wastebasket' ).
+\f 11
+
+
+Filing Messages
+
+ The possibility of having folders other than ``+inbox'' has been mentioned
+
+previously. The methods for moving messages between folders and manipulating
+
+folders are discussed here.
+
+
+ The refile command moves messages from a source folder to one or more
+
+destination folders. By default, the current message is moved from the current
+
+folder (typically `+inbox' ) to another folder specified as an argument to refile.
+
+For example,
+
+
+ refile +todo
+
+
+moves the current message from the current folder to the folder ``+todo'' . To
+
+move messages from a folder other than the current folder, use the `-src +folder'
+
+switch, as in
+
+
+ refile -src +todo last +save +notes
+
+
+which moves the last message in the ``+todo'' folder to the folders ``+save''
+
+and ``+notes'' . Note that this operation is a move, not a copy; it removes the
+
+message from the source folder. To keep a copy in the source folder as well, use the
+
+`-link' switch
+
+
+ refile -link -src +todo last +save +notes
+
+
+
+ Whenever a folder argument is given to an MH command, that folder becomes
+
+the current folder. To find out which folder is current, use the command
+
+
+ folder
+
+
+The inc command sets the current folder back to `+inbox' by default. To find out
+
+about all of a user's folders, use the command
+
+
+ folders
+
+
+Since folders can contain other folders, the command
+
+
+ folders -recurse
+
+
+will recursively examine each folder for you.
+
+
+ To set the current folder, without doing anything else, use the folder program
+
+with a folder argument. Hence,
+
+
+ folder +inbox
+
+
+makes ``+inbox'' the current folder.
+\f 12
+
+
+ After a using rmm and refile on a folder a number of times, there tend to be
+
+ gaps in the numbering sequence. To compress the numbers for the all messages in
+
+ a folder, use
+
+
+ folder -pack
+
+
+
+ The Profile
+
+ You can customize the MH environment by editing your .mh_profile file.
+
+ Although there are lots of options, here are the most useful:
+
+
+ Editor___: lists the default editor that comp and repl should use. The default is
+
+
+ editor: prompter
+
+
+ but another editor might be preferred.
+
+
+ editor-next____: lists the editor that should be used after the last edit with editor. Hence,
+
+ if you have a profile entry
+
+
+ prompter-next: vi
+
+
+ after editing a draft with prompter, and being at What now? level, you
+
+ could say ``edit'' (instead of ``edit vi'' ) to continue to edit the
+
+ draft with vi.
+
+
+ Msg-Protect________:Whenever MH creates a message (for example, with inc), this is the
+
+ octal protection mode that the message is created with. The default is
+
+
+ Msg-Protect: 644
+
+
+ This protection mode permits all other users on the system to read
+
+ your messages. To maintain privacy, the mode 600 should be used.
+
+ Note that changing the mode in the profile does not change the modes
+
+ of messages that have been created already. Use the UNIX command
+
+ chmod to change the modes of your existing messages.
+
+
+Folder-Protect______________:Whenever MH creates a folder (for example, with refile), this is the
+
+ octal mode that the folder is created with. The default is
+
+
+ Folder-Protect: 711
+
+
+ This mode permits other users on the system to make access to specific
+
+ messages in your folders. To maintain stricter privacy, the mode 700
+
+ should be used.
+\f 13
+
+
+ program____: Each MH program that reads user's .mh_profile file looks for an entry
+
+ beginning with its own name to determine its initial defaults. For
+
+ example, if you want the default editor for repl to be emacs, the line
+
+
+ repl: -editor emacs
+
+
+ is sufficient. Command line arguments tend to override profile settings.
+
+ Given the profile setting for repl above, if you invoked repl with
+
+
+ repl -editor vi
+
+
+ repl would use the vi editor instead of emacs.
+
+
+signature____: When MH posts mail for you, it looks for this profile entry for your
+
+ "real world" name. For example,
+
+
+ signature: Marshall Rose
+
+
+ The contents of the ``signature:'' entry in the profile should be a
+
+ simple phrase, with no embedded periods (e.g. "Marshall T. Rose").
+
+
+
+Note that your profile resembles the header portion of a message. Be sure that it is
+
+properly formatted by placing a colon after each entry name, and keep each entry
+
+on a single line.
+
+
+
+Conventions
+
+ Now let's summarize the conventions that MH programs use:
+
+
+ 1. Any MH command that deals with messages can be given a `+folder'
+
+ argument to say which folder to use. However, only one `+folder'
+
+ argument may be given per command in most cases.
+
+
+ 2. If an MH command accepts a `msgs' argument, then any number of
+
+ messages can be given to the command. The MH command will expand
+
+ all the ranges and process each message, starting with the lowest
+
+ numbered one and working its way to the message with the highest
+
+ number.
+
+
+ 3. If an MH command accepts a `msg' argument, then at most one message
+
+ can be given.
+
+
+ 4. Switches (options) to MH commands start with a dash. Unlike the
+
+ standard UNIX convention, each switch consists of more than one
+
+ character, for example `-header' . To minimize typing, only a unique
+
+ abbreviation of the switch need be typed; thus for `-header' , `-hea'
+
+ is probably sufficient, depending on the other switches accepted by the
+
+ command.
+\f 14
+
+
+ 5. All MH commands have a `-help' switch, which must be spelled
+
+ out fully. When an MH command encounters the `-help' switch, it
+
+ prints out the syntax of the command, the switches that it accepts,
+
+ and version information. In the list of switches, parentheses indicate
+
+ required characters. For example, all `-help' switches will appear as
+
+ `-(help)' , indicating that no abbreviation is accepted.
+
+
+ 6. Many MH switches have both on and off forms, such as `-format' and
+
+ `-noformat' . In these cases, the last occurrence of the switch on the
+
+ command line determines the setting of the option.
+
+
+ 7. All MH commands that read your MH profile operate the same way:
+
+ first_, the profile is consulted for an entry matching the name with which
+
+ the command was invoked; second___, if such an entry was found, then the
+
+ command immediately uses the arguments listed; third__, any arguments
+
+ on the command line are then interpreted. Since most switches have
+
+ both on and off forms, it's easy to customize the default options for each
+
+ MH command in the .mh_profile , and to override those defaults on the
+
+ command line.
+
+
+
+ Online Documentation
+
+ Each MH program has its own UNIX manual entry. For example, to get
+
+ information about comp, type
+
+
+ man comp
+
+
+ The manual entry for mh(1) lists all MH commands, while the manual entry for
+
+ mh-chart (1) lists the syntax and switches for all MH commands.
+
+
+ In addition, here are a few other manual entries might be found useful:
+
+
+ mh-alias (5) to find out how aliases in MH work;
+
+
+ mh-mail (5) to find out how MH stores and interprets messages (this manual entry
+
+ explains all of the standard header components);
+
+
+mh-profile(5) to find out about the MH user-environment.
+
+
+ The manual pages for MH are in the standard UNIX format, but contain
+
+ additional sections unique to MH. Here's a summary of the sections one might find
+
+ in an MH manual entry:
+
+
+ Name command name and one-line description.
+
+
+ Synopsis syntax of the command.
+
+ All commands accept a `-help' switch.
+\f 15
+
+
+Description semantics of the command.
+
+
+ Files files used by the command
+
+ Almost always this includes .mh_profile .
+
+
+ Profile entries in the .mh_profile used by the command;
+
+Components these do not include the profile entry for the command itself.
+
+
+ See Also other UNIX manual entries (usually MH programs) that are related to
+
+ this command.
+
+
+ Defaults default arguments for the command
+
+ If the command takes a `+folder' argument, this defaults to the
+
+ current folder. If the command takes a `msg' argument, this defaults
+
+ to the current message. If the command takes a `msgs' argument, this
+
+ defaults to the current message or all messages, depending on which one
+
+ makes more sense.
+
+
+ Context changes to your MH context made by the command.
+
+
+ Hints Helpful hints discussing the easy way to do things.
+
+
+ History A historical perspective on why MH works the way it does.
+
+
+ Bugs Too embarrassing to mention.
+
+ Just kidding.
+
+
+
+ Obviously, not all MH manual entries may have all of these sections.
+
+
+
+ Reporting Problems
+
+ If problems are encountered with an MH program, the problems should be
+
+ reported to the local maintainers of MH. When doing this, the name of the program
+
+ should be reported, along with the version information for the program. To find
+
+ out what version of an MH program is being run, invoke the program with the
+
+ `-help' switch. In addition to listing the syntax of the command, the program
+
+ will list information pertaining to its version. This information includes the version
+
+ of MH, the host it was generated on, the date the program was loaded, and the
+
+ configuration options in effect when MH was generated. For example,
+
+
+ version: MH 6.1 #1[UCI] (gremlin) of Wed Nov 6 01:13:53 PST 1985
+
+ options: [BSD42] [MHE] [NETWORK] [SENDMTS] [MMDFII] [SMTP] [POP]
+
+
+ The ``6.1 # 1[UCI]'' indicates that the program is from the UCI mh.6
+
+ version of MH. The program was generated on the host ``gremlin'' on
+
+ ``Wed Nov 6 01:13:53 PST 1985'' . It's usually a good idea to send the output
+
+ of the `-help' switch along with your report.
+\f 16
+
+
+ If there is no local MH maintainer, try the address Bug-MH. If that fails, use
+
+the Internet mailbox Bug-MH@UCI.ARPA.
+
+
+
+More on MH
+
+ There are myriad aspects of MH that this tutorial hasn't touched upon. Here
+
+are a few to whet your appetite:
+
+
+ 1. user-defined sequences
+
+ Define meaningful message names and shorten type-in considerably (see
+
+ pick (1) for details).
+
+
+ 2. draft folders
+
+ Maintain a folder of drafts so that more than one draft can be edited
+
+ at a time, and allow a draft to be edited over several UNIX sessions
+
+ independently of other drafts (see the Advanced Features section of
+
+ the MH user's manual for details).
+
+
+ 3. draft pushing
+
+ Post a draft in the background and immediately free your terminal for
+
+ other activities (see the Advanced Features section of the MH user's
+
+ manual for details).
+
+
+ 4. aliases
+
+ Maintain one or more alias files containing the addresses of the people
+
+ frequently (or infrequently) sent to. This lets you shorten type-in of
+
+ addressees and saves you from looking up their addresses all the time.
+
+ (see mh-alias (5) for details).
+\f 17
+
+
+ References
+
+
+
+[MRose84] M.T. Rose. The Rand MH Message Handling System: The UCI
+
+ BBoards Facility. Department of Computer and Information Sciences,
+
+ University of Delaware (October, 1984).
+
+
+
+[MRose85a] M.T. Rose, J.L. Romine. The Rand MH Message Handling System:
+
+ User's Manual. UCI Version. Department of Information and Computer
+
+ Science, University of California, Irvine (January, 1985).
+
+
+
+[MRose85b] M.T. Rose. The Rand MH Message Handling System: Administrator's
+
+ Guide. UCI Version, MH Classic. Northrop Corporation, Research and
+
+ Technology Center (July, 1985).
+
+
+
+[SPayn85] S. Payne MH5: Electronic Mail. Rand Note #N-2281-RCC. The
+
+ Rand Computation Center, Rand, 1700 Main St., Santa Monica, CA
+
+ 90406-2138 (May, 1985).
+\f
+
+
+
+ Contents
+
+
+
+ Page
+
+ Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
+
+ Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
+
+ Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
+
+ How To Use This Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
+
+ Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
+
+ Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
+
+ Messages and Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
+
+ Reading New Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
+
+ Sending Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
+
+ Originating Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
+
+ Replying to Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
+
+ Scanning Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
+
+ Deleting Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
+
+ Filing Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
+
+ The Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
+
+ Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
+
+ Online Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
+
+ Reporting Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
+
+ More on MH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
+
+ References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
+
+
+
+ _____________________________________
+This document (version #2.8) was TEXset April 12, 1990 with DISS.STY v103.
+
+
+
+ i