|
NAMEmh-profile, mh_profile - user customization for nmh message handlerDESCRIPTIONEach 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 entry in the file is of the formatprofile-component: value
If the text of a profile entry is long, you may extend it across several real lines by indenting 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 available; each token is separated by whitespace. Standard Profile EntriesThe 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 entry. (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
reference 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 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 the 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 zeroed and then each message is added to the
sequence. Read mh-sequence(5) 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
mh-sequence(5) 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 mh-sequence(5) 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 mh-sequence(5) for details about
private sequences. (context, no default)
Editor: prompter 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. (profile,
default: prompter)
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: currently, transactional locking is only supported on public sequences; see mh-sequence(5) for more information. (profile, default: fcntl) 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 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. (profile, no default)
Folder-Stack: folders The contents of the folder-stack for the folder
command. (context, no default)
Local-Mailbox: Your Username <user@some.host> Tells the MH programs what your local mailbox is. If set,
it will be used by the default 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@local.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 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-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
mh-draft(5) 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 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. 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 supersedes 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 entry values are “legacy”,
“file:netrc”, and
“file-nopermcheck:netrc”. With “legacy”, or
if there is no credentials entry, the username is the first of:
The password for SMTP services is the first of:
With a “file:netrc” credentials entry, the username is the first of:
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 following form. (Replace myserver, mylogin, and mypassword with your own account information.) 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 performed. 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+dev Process Profile EntriesThe following profile elements are used whenever an nmh program invokes some other program, 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/local/bin/mhbuild This is the program used by whatnow to process
drafts which are MIME composition files.
fileproc: /usr/local/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.
formatproc: Program called by mhl to filter a component when
it is tagged with the “format” variable in the mhl filter. See
mhl(5) for more information.
incproc: /usr/local/bin/inc Program called by mhmail to incorporate new mail
when it is invoked with no arguments.
lproc: 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. (Note that the
environment variable PAGER supersedes the default built-in pager
command.)
mailproc: /usr/local/bin/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/local/libexec/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, 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
supersedes the default built-in pager command.)
packproc: /usr/local/bin/packf Currently not used.
postproc: /usr/local/libexec/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.
If the profile contains a post component and a postproc component is not present, a warning message that the post component will be ignored will be displayed by every nmh program that reads the profile and has its stderr associated with a terminal. rmmproc: none This is the program used by rmm, refile,
and mhfixmsg to delete a message from a folder.
sendproc: /usr/local/bin/send This is the program used by whatnow to actually
send the message
showmimeproc: /usr/local/bin/mhshow This is the program used by show to process and
display non-text (MIME) messages.
showproc: /usr/local/libexec/nmh/mhl This is the program used by show to filter and
display text (non-MIME) messages.
whatnowproc: /usr/local/bin/whatnow This is the program invoked by comp, dist,
forw, and repl to query about the disposition of a composed
draft message.
whomproc: /usr/local/bin/whom This is the program used by whatnow to determine
to whom a message would be sent.
Profile LookupAfter consulting .mh_profile, some programs read an optional profile specified by a program-specific environment variable, and then the system-wide profile /usr/local/etc/nmh/mhn.defaults. 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 component 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 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. ENVIRONMENTThe 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. 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.
FILES
SEE ALSOmhbuild(1), mhshow(1), mhstore(1), mh-sequence(5), nmh(7), post(8)BUGSThere 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 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 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)
Visit the GSP FreeBSD Man Page Interface. |