GNU/Linux |
RedHat 6.2(Zoot) |
|
![]() |
mh_profile(5) |
![]() |
mh-profile − user profile customization for nmh message handler
.mh_profile
Each user of nmh is expected to have a file named .mh_profile in his or her home directory. This file contains a set of user parameters used by some or all of the nmh family of programs. Each entry in the file is of the format
profile−component: value
If the text of profile entry is long, you may extend it across several real lines by indenting the continuation lines with leading spaces or tabs.
Standard
Profile Entries
The possible profile components are exemplified below. The
only mandatory entry is ’Path:’. The others are
optional; some have default values if they are not present.
In the notation used below, (profile, default) indicates
whether the information is kept in the user’s
nmh profile or nmh context, and indicates what
the default value is.
Path: Mail
Locates nmh transactions in directory
“Mail”. This is the only mandatory profile
entry. (profile, no default)
context:
context
Declares the location of the nmh context file. This
is overridden by the environment variable MHCONTEXT.
See the HISTORY section below. (profile, default:
<nmh−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 default inbox. (profile, default:
inbox)
Previous−Sequence: pseq
Names the sequence or sequences which should be defined as
the ’msgs’ or ’msg’ argument given
to any nmh command. If not present or empty, no such
sequences are defined. Otherwise, for each name given, the
sequence is first zero’d and then each message is
added to the sequence. Read the mh−sequence(5) man
page for the details about this 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”. Read the mh−sequence(5) man page
for the details. (profile, no default)
Unseen−Sequence: unseen
Names the sequence or sequences which should be defined as
those messages which are unread. The commands inc,
rcvstore, mhshow, and show will add or
remove messages from these sequences when they are
incorporated or read. If not present or empty, no such
sequences are defined. Otherwise, each message is added to,
or removed from, each sequence name given. Read the
mh−sequence(5) man page for the details about this
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−seq−folder: 172
178−181 212
Keeps track of the private sequence called seq in the
specified folder. Private sequences are generally used for
read−only folders. See the mh−sequence(5) man
page for details about private sequences. (context, no
default)
Editor: /usr/bin/vi
Defines the editor to be used by the commands comp
(1), dist (1), forw (1), and repl (1).
(profile, default: /bin/vi)
automimeproc:
If defined and set to 1, then the whatnow program
will automatically invoke the buildmimeproc (discussed
below) to process each message as a MIME composition draft
before it is sent. (profile, no default)
Msg−Protect: 644
An octal number which defines the permission bits for new
message files. See chmod (1) for an explanation of
the octal number. (profile, default: 0644)
Folder−Protect: 700
An octal number which defines the permission bits for new
folder directories. See chmod (1) for an explanation
of the octal number. (profile, default: 0700)
program: default
switches
Sets default switches to be used whenever the mh program
program is invoked. For example, one could override
the Editor: profile component when replying to
messages by adding a component such as:
repl: −editor /bin/ed |
(profile, no defaults)
lasteditor−next: nexteditor
Names “nexteditor” to be the default editor
after using “lasteditor”. This takes effect at
“What now?” prompt in comp, dist,
forw, and repl. After editing the draft with
“lasteditor”, the default editor is set to be
“nexteditor”. If the user types
“edit” without any arguments to “What
now?”, then “nexteditor” is used.
(profile, no default)
bboards: system
Tells bbc which BBoards you are interested in.
(profile, default: system)
Folder−Stack:
folders
The contents of the folder-stack for the folder
command. (context, no default)
mhe:
If present, tells inc to compose an MHE
auditfile in addition to its other tasks. MHE is
Brian Reid’s Emacs front-end for nmh.
(profile, no default)
Alternate−Mailboxes:
mh@uci−750a, bug-mh*
Tells repl and scan which addresses are really
yours. In this way, repl knows which addresses should
be included in the reply, and scan knows if the
message really originated 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 nicknames 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 matching. (profile, default: your user-id)
Aliasfile:
aliases other-alias
Indicates aliases files for ali, whom, and
send. This may be used instead of the
’−alias file’ switch. (profile, no
default)
Draft−Folder:
drafts
Indicates a default draft folder for comp,
dist, forw, and repl. Read the
mh−draft (5) man page for details. (profile, no
default)
digest−issue−list: 1
Tells forw the last issue of the last volume sent for
the digest list. (context, no default)
digest−volume−list: 1
Tells forw the last volume sent for the digest
list. (context, no default)
MailDrop: .mail
Tells inc your maildrop, if different from the
default. This is superseded by the environment variable
MAILDROP. (profile, default:
/var/spool/mail/$USER)
Signature: RAND
MH System (agent: Marshall Rose)
Tells send your mail signature. This is superseded by
the environment variable SIGNATURE. If
SIGNATURE is not set and this profile entry is not
present, the “gcos” field of the
/etc/passwd file will be used; otherwise, on hosts
where nmh was configured with the UCI option, the
file $HOME/.signature is consulted. Your signature will be
added to the address send puts in the
“From:” header; do not include an address in the
signature text. (profile, no default)
Process
Profile Entries
The following profile elements are used whenever an
nmh program invokes some other program such as
more (1). The .mh_profile can be used to
select alternate programs if the user wishes. The default
values are given in the examples.
buildmimeproc:
/usr/bin/mhbuild
This is the program used by whatnow to process drafts
which are MIME composition files.
fileproc:
/usr/bin/refile
This program is used to refile or link a message to another
folder. It is used by post to file a copy of a
message into a folder given by a “Fcc:” field.
It is used by the draft folder facility in comp,
dist, forw, and repl to refile a draft
message into another folder. It is used to refile a draft
message in response to the ’refile’ directive at
the “What now?” prompt.
incproc:
/usr/bin/inc
Program called by mhmail to incorporate new mail when
it is invoked with no arguments.
installproc:
/usr/lib/nmh/install−mh
This program is called to initialize the environment for new
users of nmh.
lproc:
/bin/more
This program is used to list the contents of a message in
response to the ’list’ directive at the
“What now?” prompt. It is also used by the draft
folder facility in comp, dist, forw,
and repl to display the draft message.
mailproc:
/usr/bin/mhmail
This is the program used to automatically mail various
messages and notifications. It is used by conflict
when using the ’-mail’ option. It is used by
send to post failure notices. It is used to retrieve
an external-body with access-type ’mail-server’
(such as when storing the body with mhstore).
mhlproc:
/usr/lib/nmh/mhl
This is the program used to filter messages in various ways.
It is used by mhshow to filter and display the
message headers of MIME messages. When the
’-format’ or ’-filter’ option is
used by forw or repl, the mhlproc is used to
filter the message that you are forwarding, or to which you
are replying. When the ’-filter’ option is given
to send or post, the mhlproc is used by
post to filter the copy of the message that is sent
to “Bcc:” recipients.
moreproc:
/bin/more
This is the program used by mhl to page the
mhl formatted message when displaying to a terminal.
It is also the default program used by mhshow to
display message bodies (or message parts) of type
text/plain.
mshproc:
/usr/bin/msh
Currently not used.
packproc:
/usr/bin/packf
Currently not used.
postproc:
/usr/lib/nmh/post
This is the program used by send, mhmail,
rcvdist, and viamail (used by the
sendfiles shell script) to post a message to the mail
transport system. It is also called by whom (called
with the switches ’-whom’ and
’-library’) to do address verification.
rmmproc: none
This is the program used by rmm and refile to
delete a message from a folder.
rmfproc:
/usr/bin/rmf
Currently not used.
sendproc:
/usr/bin/send
This is the program to use by whatnow to actually
send the message
showmimeproc:
/usr/bin/mhshow
This is the program used by show to process and
display non-text (MIME) messages.
showproc:
/usr/lib/nmh/mhl
This is the program used by show to filter and
display text (non-MIME) messages.
whatnowproc:
/usr/bin/whatnow
This is the program invoked by comp, forw,
dist, and repl to query about the disposition
of a composed draft message.
whomproc:
/usr/bin/whom
This is the program used by whatnow to determine to
whom a message would be sent.
Environment
Variables
The operation of nmh and its commands it also controlled by
the presence of certain environment variables.
Many of these environment variables are used internally by the “What now?” interface. It’s amazing all the information that has to get passed via environment variables to make the “What now?” interface look squeaky clean to the nmh user, isn’t it? The reason for all this is that the nmh user can select any program as the whatnowproc, 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 nmh configuration, and if this environment variable is set, then if the commands refile, send, show, or whom 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 whatnowproc.
MH : With this environment variable, you can specify a profile other than .mh_profile to be read by the nmh 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 nmh where non-absolute pathnames are not considered relative to the user’s nmh directory.
MHCONTEXT : With this environment variable, you can specify a context other than the normal context file (as specified in the nmh profile). As always, unless the value of MHCONTEXT is absolute, it will be presumed to start from your nmh directory.
MM_CHARSET : With this environment variable, you can specify the native character set you are using. You must be able to display this character set on your terminal.
This variable is checked to see if a RFC-2047 header field should be decoded (in inc, scan, mhl). This variable is checked by show to see if the showproc or showmimeproc should be called, since showmimeproc will be called if a text message uses a character set that doesn’t match MM_CHARSET. This variable is checked by mhshow for matches against the charset parameter of text contents to decide it the text content can be displayed without modifications to your terminal. This variable is checked by mhbuild to decide what character set to specify in the charset parameter of text contents containing 8bit characters.
When decoding text in such an alternate character set, nmh must be able to determine which characters are alphabetic, which are control characters, etc. For many operating systems, this will require enabling the support for locales (such as setting the environment variable LC_CTYPE to iso_8859_1).
MAILDROP
: tells inc the default maildrop
This supersedes the “MailDrop:” profile
entry.
SIGNATURE
: tells send and post your mail signature
This supersedes the “Signature:” profile
entry.
HOME : tells all nmh programs your home directory
SHELL : tells bbl the default shell to run
TERM :
tells nmh your terminal type
The environment variable TERMCAP is also consulted.
In particular, these tell scan and mhl how to
clear your terminal, and how many columns wide your terminal
is. They also tell mhl how many lines long your
terminal screen is.
editalt
: the alternate message
This is set by dist and repl during edit
sessions so you can peruse the message being distributed or
replied to. The message 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 comp, dist, forw, and
repl to tell the whatnowproc which file to ask
“What now?” questions about.
mhfolder
:
This is set by dist, forw, and repl, if
appropriate.
mhaltmsg
:
dist and repl set mhaltmsg to tell the
whatnowproc about an alternate message associated
with the draft (the message being distributed or replied
to).
mhdist :
dist sets mhdist to tell the whatnowproc
that message re-distribution is occurring.
mheditor
:
This is set to tell the whatnowproc the user’s
choice of editor (unless overridden by
’−noedit’).
mhuse :
This may be set by comp.
mhmessages
:
This is set by dist, forw, and repl if
annotations are to occur.
mhannotate
:
This is set by dist, forw, and repl if
annotations are to occur.
mhinplace
:
This is set by dist, forw, and repl if
annotations are to occur.
mhfolder
: the folder containing the alternate message
This is set by dist and repl during edit
sessions so you can peruse other messages in the current
folder besides the one being distributed or replied to. The
environment variable mhfolder is also set by
show, prev, and next for use by
mhl.
$HOME/.mh_profile
The user profile
or $MH Rather than the standard profile
<mh−dir>/context The user context
or $MHCONTEXT Rather than the standard context
<folder>/.mh_sequences Public sequences for
<folder>
All
mh(1), environ(5), mh-sequence(5)
None
All
The .mh_profile contains only static information, which nmh programs will NOT update. Changes in context are made to the context file kept in the users nmh directory. This includes, but is not limited to: the “Current−Folder” entry and all private sequence information. Public sequence information is kept in each folder in the file determined by the “mh−sequences” profile entry (default is .mh_sequences).
The .mh_profile may override the path of the context 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 interpreted relative to the user’s nmh directory. As a result, you can actually have more than one set of private sequences by using different context files.
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 nmh programs: conflicting 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 nmh 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 $HOME/bin directory to the nmh program 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 defaults for the nmh command. Similarly, you could create a small shell script which called the nmh program of your choice with an alternate set of invocation line switches (using links and an alternate profile entry is preferable to this solution).
Finally, the csh 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 nmh commands safely. (Recall that some nmh commands invoke others, and that in all cases, the profile is read, meaning that aliases are disregarded beyond an initial command invocation)
![]() |
mh_profile(5) | ![]() |