MH-PROFILE(5mh) MH-PROFILE(5mh)
NAME
mh-profile - user customization for nmh message handler
DESCRIPTION
Each user of nmh is expected to have a file named .mh-profile in their home directory.
This file contains a set of user parameters used by the nmh family of programs. Each en-
try in the file is of the format
profile-component: value
If the text of a profile entry is long, you may extend it across several real lines by in-
denting the continuation lines with leading spaces or tabs. Comments may be introduced by
a line starting with `#:':
#: This is a comment.
Blank lines are not permitted in .mh-profile. Shell quoting conventions are not avail-
able; each token is separated by whitespace.
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. Note that
a profile component can only appear once. Multiple appearances will trigger a warning
that all appearances after the first are ignored.
Some MH programs, including mhbuild, mhshow, and mhstore, have specific profile components
that are described in their respective man pages. Each component name specific to these
programs begins with the name of the program and is followed by a dash.
Path: Mail
Locates nmh transactions in directory "Mail". This is the only mandatory profile en-
try. (profile, no default)
locale: locale
Set the locale for all nmh programs except post, install-mh, and slocal. See the
LC_ALL, LC_CTYPE, and LANG variables in the "ENVIRONMENT" section below for a refer-
ence on how the locale is set if this profile component is not used.
context: context
Declares the location of the nmh context file. This can be overridden by the envi-
ronment 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 "In-
box")
Inbox: inbox
Defines the name of the default inbox. (profile, default: inbox)
Previous-Sequence: pseq
Names the sequence or sequences which should be defined as the `msgs' or `msg' argu-
ment given to any nmh command. If not present or empty, no such sequences are de-
fined. Otherwise, for each name given, the sequence is first zeroed 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, de-
fault: .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: vi
Defines the editor to be used by the commands comp, dist, forw, and repl. If not
set, the value will be taken from the VISUAL and EDITOR environment variables. (pro-
file, default: vi)
Msg-Protect: 600
An octal number which defines the permission bits for new message files. See
chmod(1) for an explanation of the octal number. Note that some filesystems, such as
FAT32, do not support removal of read file permissions. (profile, default: 0600)
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: 700)
datalocking: fcntl
The locking algorithm used to lock changes to any nmh data files, such as sequences
or context. The locking algorithm is any one of the following entries:
fcntl dot flock lockf
Available locking algorithms can vary depending on the operating system. Note: cur-
rently, transactional locking is only supported on public sequences; see mh-se-
quence(5) for more information. (profile, default: fcntl)
program: default switches
Sets default switches to be used whenever the mh program program is invoked. For ex-
ample, 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 ef-
fect at the "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. (pro-
file, no default)
Folder-Stack: folders
The contents of the folder-stack for the folder command. (context, no default)
Local-Mailbox: Your Username <user AT some.host>
Tells the MH programs what your local mailbox is. If set, it will be used by the de-
fault component files by programs like comp and repl to construct your default
"From:" header. The text used here will be copied exactly to your "From:" header, so
it should already be RFC 822 compliant. If this is set, the Signature profile entry
is not used, so it should include a signature as well. (profile, default: userid@lo-
cal.hostname)
Alternate-Mailboxes: mh@uci-750a, bug-mh*
Tells repl and scan which additional addresses are yours. In this way, repl knows
which addresses should be included in the reply, and scan knows if a message origi-
nated 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 addi-
tion, 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-aliases
Indicates alias 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, refile, 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 mail drop, if different from the default. This is superseded by the
environment variable MAILDROP. (profile, default: /var/mail/$USER)
Signature: RAND MH System (agent: Marshall Rose)
Tells front-end programs such as comp, forw, and repl your mail signature. (This is
not to be confused with a .signature that might be appended to mails.) This is super-
seded by the environment variable SIGNATURE. If SIGNATURE is not set and this pro-
file entry is not present, the "gcos" field of the /etc/passwd file will be used.
Your signature will be added to the address send puts in the "From:" header; do not
include an address in the signature text. The "Local-Mailbox" profile component su-
persedes all of this. (profile, no default)
credentials: legacy
Indicates how the username and password credentials will be retrieved for access to
external servers, such as those that provide SMTP or POP service. The supported en-
try values are "legacy", "file:netrc", and "file-nopermcheck:netrc". With "legacy",
or if there is no credentials entry, the username is the first of:
1) -user switch to inc, msgchk, post, send, or whom program
2) the login name on the local machine
The password for SMTP services is the first of:
1) password value from matching entry in file named ".netrc" in the user's
home directory
2) password obtained by interactively prompting the user
The password for POP service when the -sasl switch is used with one of these programs
is the login name on the local machine.
With a "file:netrc" credentials entry, the username is the first of:
1) -user switch to program
2) login name from matching entry in netrc file
3) value provided by user in response to interactive query
Similarly, the password is provided either in the netrc file or interactively. netrc
can be any valid filename, either absolute or relative to Path or $HOME. The netrc
file contains authentication information, for each server, using a line of the fol-
lowing form. (Replace myserver, mylogin, and mypassword with your own account infor-
mation.)
machine myserver login mylogin password mypassword
This netrc file must be owned and readable only by you.
The "file-nopermcheck:netrc" credentials entry is identical in behavior to the "file"
entry, with the exception that the permission checks done by "file" are not per-
formed. This entry should be used with caution and only when absolutely necessary.
(profile, default: legacy)
Welcome: disable
If the Welcome component is not present, or its value is not "disable", a welcome
message will be displayed the first time that an interactive nmh program is run after
updating the nmh installation. The user must press the Enter key to continue.
If the MHCONTEXT environment variable is set and non-empty (and the Welcome component
is not "disable"), the welcome message is only displayed if the context file contains
a version reference, and that reference is older than the installed nmh version. The
version reference is of the form:
Version: nmh-1.7.1
Process Profile Entries
The following profile elements are used whenever an nmh program invokes some other pro-
gram, such as more. The .mh-profile can be used to select alternate programs if the user
wishes. The default values are given in the examples.
If the profile element contains spaces, the element is split at spaces into tokens and
each token is given as a separate argument to the execvp(2) system call. If the element
contains shell metacharacters then the entire element is executed using /bin/sh.
buildmimeproc: /usr/bin/mh/mhbuild
This is the program used by whatnow to process drafts which are MIME composition
files.
fileproc: /usr/bin/mh/refile
This program is used to refile or link a message to another folder. It is used by
send 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.
formatproc:
Program called by mhl to filter a component when it is tagged with the "format" vari-
able in the mhl filter. See mhl(5) for more information.
incproc: /usr/bin/mh/inc
Program called by mhmail to incorporate new mail when it is invoked with no argu-
ments.
lproc: more
This program is used to list the contents of a message in response to the list direc-
tive 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. (Note that the environment
variable PAGER supersedes the default built-in pager command.)
mailproc: /usr/bin/mh/mhmail
This is the program used to automatically mail various messages and notifications.
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/mh/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, the mhlproc is used to filter the copy of the message that is sent to "Bcc:"
recipients.
moreproc: 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. (Note that the environment variable PAGER su-
persedes the default built-in pager command.)
packproc: /usr/bin/mh/packf
Currently not used.
postproc: /usr/lib/mh/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, refile, and mhfixmsg to delete a message from a
folder.
sendproc: /usr/bin/mh/send
This is the program used by whatnow to actually send the message
showmimeproc: /usr/bin/mh/mhshow
This is the program used by show to process and display non-text (MIME) messages.
showproc: /usr/lib/mh/mhl
This is the program used by show to filter and display text (non-MIME) messages.
whatnowproc: /usr/bin/mh/whatnow
This is the program invoked by comp, dist, forw, and repl to query about the disposi-
tion of a composed draft message.
whomproc: /usr/bin/mh/whom
This is the program used by whatnow to determine to whom a message would be sent.
Profile Lookup
After consulting .mh_profile, some programs read an optional profile specified by a pro-
gram-specific environment variable, and then the system-wide profile /etc/nmh/mhn.de-
faults. These programs are mhbuild, mhshow, mhstore, and mhn. mhfixmsg is similar, but
has no optional profile.
The first occurrence of a component is used, e.g. .mh_profile's trumps $MHSHOW's. A com-
ponent with no value still stops further occurrences being used, but is considered absent.
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 in-
cludes, but is not limited to: the "Current-Folder" entry and all private sequence infor-
mation. 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 actu-
ally have more than one set of private sequences by using different context files.
ENVIRONMENT
The operation of nmh and its commands it also controlled by the presence of certain envi-
ronment 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. The convention is that environment variables whose names are all upper-case are
user-settable; those whose names are lower-case only are used internally by nmh and should
not generally be set by the user.
LC_ALL, LC_CTYPE, and LANG
These variables are used to set the locale, see locale(1). The "locale" profile
entry supersedes these.
MAILDROP
This variable tells inc the default mail drop. This supersedes the "MailDrop" pro-
file entry.
MAILHOST
This variable tells inc the POP host to query for mail to incorporate. See the
inc(1) man page for more information.
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-abso-
lute pathnames are not considered relative to the user's nmh directory.
MHBUILD
With this environment variable, you can specify an additional user profile (file)
to be read by mhbuild, in addition to the mhn.defaults profile.
MHCONTEXT
With this environment variable, you can specify a context other than the normal
context file (as specified in the nmh profile). As usual, unless the value of MH-
CONTEXT is absolute, it will be presumed to start from your nmh directory.
MHLDEBUG
If this variable is set to a non-null value, mhl will emit debugging information.
MHMTSCONF
If this variable is set to a non-null value, it specifies the name of the mail
transport configuration file to use by inc, post, and other programs that interact
with the mail transport system, instead of the default. See mh-tailor(5).
MHMTSUSERCONF
If this variable is set to a non-null value, it specifies the name of a mail trans-
port configuration file to be read in addition to the default. See mh-tailor(5).
MHN With this environment variable, you can specify an additional user profile (file)
to be read by mhn, in addition to the mhn.defaults profile. mhn is deprecated, so
support for this variable will be removed from a future nmh release.
MHSHOW With this environment variable, you can specify an additional user profile (file)
to be read by mhshow, in addition to the mhn.defaults profile.
MHSTORE
With this environment variable, you can specify an additional user profile (file)
to be read by mhstore, in addition to the mhn.defaults profile.
MHPDEBUG
If this variable is set to a non-null value, pick will emit a representation of the
search pattern. MHPDEBUG is deprecated, so support for this variable will be re-
moved from a future nmh release. Instead, pick now supports a -debug switch.
MHTMPDIR, TMPDIR
These variables are searched, in order, for the directory in which to create some
temporary files. MHTMPDIR is deprecated and will be removed in a future release of
nmh.
MHWDEBUG
If this variable is set to a non-null value, nmh commands that use the Alter-
nate-Mailboxes profile entry will display debugging information about the values in
that entry.
PAGER If set to a non-null value, this supersedes the value of the default built-in pager
command.
SIGNATURE
This variable tells send and post your mail signature. This supersedes the "Signa-
ture" profile entry, and is not used when the "Local-Mailbox" profile component is
set.
USER This variable tells repl your user name and inc your default mail drop: see the
"MailDrop" profile entry.
USERNAME_EXTENSION
This variable is for use with username_extension masquerading. See the mh-tai-
lor(5) man page.
editalt
This is 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, when the -atfile switch is used, through a link called "@" in the cur-
rent directory if your current working directory and the folder the message lives
in are on the same Unix filesystem, and if your current working directory is
writable.
mhaltmsg
dist and repl set mhaltmsg to tell the whatnowproc about an alternate message asso-
ciated with the draft (the message being distributed or replied to).
mhannotate
This is set by dist, forw, and repl if annotations are to occur.
mhdist dist sets mhdist to tell the whatnowproc that message re-distribution is occurring.
mhdraft
This is the path to the working draft. It is set by comp, dist, forw, and repl to
tell the whatnowproc which file to ask "What now?" questions about.
mheditor
This is set by comp, repl, forw, and dist to tell the whatnowproc the user's choice
of editor (unless overridden by -noedit).
mhfolder
This is the folder containing the alternate message. It 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 next, prev, and show for use by mhl.
mhinplace
This is set by dist, forw, and repl if annotations are to occur.
mhmessages
This is set by dist, forw, and repl if annotations are to occur.
mhuse This may be set by comp.
FILES
$HOME/.mh-profile The user's profile.
<mh-dir>/context The user's context
<folder>/.mh-sequences
Public sequences for <folder>.
SEE ALSO
mhbuild(1), mhshow(1), mhstore(1), mh-sequence(5), nmh(7)
BUGS
There is some question as to what kind of arguments should be placed in the profile as op-
tions. In order to provide a clear answer, recall the 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 prob-
lem. 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)
nmh-1.7.1 2016-10-19 MH-PROFILE(5mh)
Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2025-11-21 17:42 @216.73.216.164 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)