1 .TH MH-PROFILE %manext5% "October 19, 2016" "%nmhversion%"
6 mh-profile \- user profile customization for nmh message handler
10 is expected to have a file named
12 in his or her home directory. This file contains
13 a set of user parameters used by some or all of the
15 family of programs. Each entry in the file is of the format
18 .IR profile\-component ": " value
21 If the text of profile entry is long, you may extend it across several
22 real lines by indenting the continuation lines with leading spaces or tabs.
23 Comments may be introduced by a line starting with `#:':
30 Blank lines are not permitted in
32 The shell quoting conventions are not available in the
34 each token is separated by whitespace.
35 .SS "Standard Profile Entries"
36 The possible profile components are exemplified below. The only mandatory
37 entry is `Path:'. The others are optional; some have default values if
38 they are not present. In the notation used below, (profile, default)
39 indicates whether the information is kept in the user's
43 context, and indicates what the default value is. Note that a profile
44 component can only appear once. Multiple appearances with trigger a
45 warning that all appearances after the first are ignored.
47 Some MH programs, including
52 have specific profile components that are described in their respective
53 man pages. Each component name begins with the name of the program and
54 is followed by a dash.
61 transactions in directory \*(lqMail\*(rq. This is the
62 only mandatory profile entry. (profile, no default)
68 Set the locale for all
75 See the LC_ALL, LC_CTYPE, and LANG variables in the "ENVIRONMENT"
76 section below for a reference on how the locale is set if this profile
77 component is not used.
83 Declares the location of the
85 context file. This is overridden by the environment variable
90 (profile, default: <nmh\-dir>/context)
96 Keeps track of the current open folder.
97 (context, default: folder specified by \*(lqInbox\*(rq)
103 Defines the name of your default inbox.
104 (profile, default: inbox)
107 .BR Previous\-Sequence :
110 Names the sequence or sequences which should be defined as the `msgs' or
111 `msg' argument given to any
113 command. If not present or empty,
114 no such sequences are defined. Otherwise, for each name given, the
115 sequence is first zero'd and then each message is added to the sequence.
118 man page for the details about this sequence. (profile, no default)
121 .BR Sequence\-Negation :
124 Defines the string which, when prefixed to a sequence name, negates
125 that sequence. Hence, \*(lqnotseen\*(rq means all those messages that
126 are not a member of the sequence \*(lqseen\*(rq. Read the
128 man page for the details. (profile, no default)
131 .BR Unseen\-Sequence :
134 Names the sequence or sequences which should be defined as those
135 messages which are unread. The commands
141 will add or remove messages from these
142 sequences when they are incorporated or read. If not present or
143 empty, no such sequences are defined. Otherwise, each message is
144 added to, or removed from, each sequence name given. Read the
146 man page for the details about this sequence.
147 (profile, no default)
153 The name of the file in each folder which defines public sequences.
154 To disable the use of public sequences, leave the value portion of this
155 entry blank. (profile, default: \&.mh\-sequences)
158 .BI atr\- seq \- folder :
161 Keeps track of the private sequence called \*(lqseq\*(rq in the specified
162 folder. Private sequences are generally used for read\-only folders.
165 man page for details about private sequences.
166 (context, no default)
172 Defines the editor to be used by the commands
178 If not set in profile the value will be taken from the VISUAL and
179 EDITOR environment variables.
180 (profile, default: vi)
186 An octal number which defines the permission bits for new message files.
189 for an explanation of the octal number. Note that some filesystems,
190 such as FAT32, do not support removal of read file permissions.
191 (profile, default: 0600)
194 .BR Folder\-Protect :
197 An octal number which defines the permission bits for new folder
200 for an explanation of the octal number.
201 (profile, default: 700)
207 The locking algorithm used to lock changes to any
209 data files, such as sequences or the context. The locking algorithm is
210 any one of the following entries:
218 Available locking algorithms can vary depending on what is supported by
219 the operating system. Note: currently transactional locking is only
220 supported on public sequences; see
222 for more information.
223 (profile, default: fcntl)
229 Sets default switches to be used whenever the mh program
231 is invoked. For example, one could override the \*(lqEditor:\*(rq profile
232 component when replying to messages by adding a component such as:
235 repl: \-editor /bin/ed
238 (profile, no defaults)
241 .IB lasteditor "-next:"
244 Names \*(lqnexteditor\*(rq to be the default editor after using
245 \*(lqlasteditor\*(rq. This takes effect at \*(lqWhat now?\*(rq prompt
253 the draft with \*(lqlasteditor\*(rq, the default editor is set to be
254 \*(lqnexteditor\*(rq. If the user types \*(lqedit\*(rq without any
255 arguments to \*(lqWhat now?\*(rq, then \*(lqnexteditor\*(rq is used.
256 (profile, no default)
262 The contents of the folder-stack for the
265 (context, no default)
269 Your Username <user@some.host>
271 Tells the various MH tools what your local mailbox is. If set, will be used
272 by the default component files by tools like
276 to construct your default \*(lqFrom\*(rq header. The text used here will
277 be copied exactly to your From: header, so it should already be RFC 822
278 compliant. If this is set, the
280 profile entry is NOT used, so it should include a signature as well. (profile,
281 default: userid@local.hostname)
284 .BR Alternate\-Mailboxes :
285 mh@uci\-750a, bug-mh*
291 which addresses are really yours.
294 knows which addresses should be included in the
297 knows if the message really originated from you.
298 Addresses must be separated by a comma, and the hostnames listed should
299 be the \*(lqofficial\*(rq hostnames for the mailboxes you indicate, as
300 local nicknames for hosts are not replaced with their official site names.
301 For each address, if a host is not given, then that address on any host is
302 considered to be you. In addition, an asterisk (`*') may appear at either
303 or both ends of the mailbox and host to indicate wild-card matching.
304 (profile, default: your user-id)
311 Indicates aliases files for
316 This may be used instead of the
319 switch. (profile, no default)
325 Indicates a default draft folder for
334 man page for details. (profile, no default)
337 .BI digest\-issue\- list :
342 the last issue of the last volume sent for the digest
344 (context, no default)
347 .BI digest\-volume\- list :
352 the last volume sent for the digest
354 (context, no default)
362 your maildrop, if different from the default. This is
363 superseded by the environment variable
365 (profile, default: %mailspool%/$USER)
369 RAND MH System (agent: Marshall Rose)
371 Tells front-end programs such as
376 your mail signature. This is superseded by the
381 is not set and this profile entry is not present, the \*(lqgcos\*(rq field of
382 the \fI/etc/passwd\fP file will be used.
383 Your signature will be added to the address
385 puts in the \*(lqFrom:\*(rq header; do not include an address in the
386 signature text. The \*(lqLocal\-Mailbox\*(rq profile component
387 supersedes all of this. (profile, no default)
393 Indicates how the username and password credentials will be retrieved
394 for access to external servers, such as those that provide SMTP or POP
395 service. The supported entry values are \*(lqlegacy\*(rq,
396 .RI \*(lqfile: netrc \*(rq,
398 .RI \*(lqfile\-nopermcheck: netrc \*(rq.
399 With \*(lqlegacy\*(rq, or if there is no credentials entry, the
400 username is the first of:
416 the login name on the local machine
420 The password for SMTP services is the first of:
425 password value from matching entry in file named \*(lq.netrc\*(rq
426 in the user's home directory
429 password obtained by interactively prompting the user
433 The password for POP service when the
435 switch is used with one of these programs is the login name on the
439 .RI \*(lqfile: netrc \*(rq
441 entry, the username is the first of:
450 login name from matching entry in
455 value provided by user in response to interactive query
459 Similarly, the password is provided either in the
461 file or interactively.
463 can be any valid filename, either absolute or relative to Path or
466 file contains authentication information, for each server,
467 using a line of the following form. Replace the words
472 with your own account information:
485 file must be owned and readable only by you.
488 .RI \*(lqfile\-nopermcheck: netrc \*(rq
490 entry is identical in behavior to the \*(lqfile\*(rq entry, with the
491 exception that the permission checks done by
492 \*(lqfile\*(rq are not performed. This entry should be used with
493 caution and only when absolutely necessary.
494 (profile, default: legacy)
500 If the Welcome component is not present, or its value is not
501 .RI \*(lq disable \*(rq,
502 a welcome message will be displayed the first time that an interactive
504 program is run after updating the
507 The user must press the Enter key to continue.
509 If the MHCONTEXT environment variable is set and non-empty (and
510 the Welcome component is not
511 .RI \*(lq disable \*(rq),
512 the welcome message is only displayed if the context file contains a version
513 reference, and that reference is older than the installed
515 version. The version reference is of the form:
519 Version: %nmhversion%
524 .SS "Process Profile Entries"
525 The following profile elements are used whenever an
527 program invokes some other program such as
531 can be used to select alternate programs if the
532 user wishes. The default values are given in the examples.
534 If the profile element contains spaces, the element is split at spaces
535 into tokens and each token is given as a separate argument to the
537 system call. If the element contains shell metacharacters then the entire
538 element is executed using
545 This is the program used by
547 to process drafts which are MIME composition files.
553 This program is used to refile or link a message to another folder.
556 to file a copy of a message into a folder given
557 by a \*(lqFcc:\*(rq field. It is used by the draft folder facility in
564 message into another folder. It is used to refile a draft message in
567 directive at the \*(lqWhat now?\*(rq prompt.
574 to filter a component when it is tagged with the \*(lqformat\*(rq variable
575 in the mhl filter. See
577 for more information.
585 to incorporate new mail when it
586 is invoked with no arguments.
592 This program is used to list the contents of a message in response
595 directive at the \*(lqWhat now?\*(rq prompt. It is
596 also used by the draft folder facility in
602 to display the draft message.
604 the environment variable PAGER
605 supersedes the default built-in pager command.)
611 This is the program used to automatically mail various messages
612 and notifications. It is used by
614 to post failure notices.
615 It is used to retrieve an external-body with access-type `mail-server'
616 (such as when storing the body with
623 This is the program used to filter messages in various ways. It
626 to filter and display the message headers
627 of MIME messages. When the
638 is used to filter the
639 message that you are forwarding, or to which you are replying.
646 is used to filter the copy of the message
647 that is sent to \*(lqBcc:\*(rq recipients.
653 This is the program used by
657 formatted message when displaying to a terminal. It is also the default
660 to display message bodies (or message parts) of type text/plain.
662 the environment variable PAGER
663 supersedes the default built-in pager command.)
675 This is the program used by
684 post a message to the mail transport system. It is also called by
686 (called with the switches
690 to do address verification.
696 This is the program used by
701 to delete a message from a folder.
707 This is the program to use by
709 to actually send the message
715 This is the program used by
717 to process and display non-text (MIME) messages.
723 This is the program used by
725 to filter and display text (non-MIME) messages.
731 This is the program invoked by
737 to query about the disposition of a composed draft message.
743 This is the program used by
745 to determine to whom a message would be sent.
748 After consulting .mh_profile,
749 some programs read an optional profile specified by a
750 program-specific environment variable,
751 and then the system-wide profile %nmhetcdir%/mhn.defaults.
759 is similar, but has no optional profile.
761 The first occurrence of a component is used,
762 e.g.\& .mh_profile's trumps $MHSHOW's.
763 A component with no value still stops further occurrences being used,
764 but is considered absent.
768 contains only static information, which
772 update. Changes in context are made to the
774 file kept in the users
777 This includes, but is not limited to: the \*(lqCurrent\-Folder\*(rq entry
778 and all private sequence information. Public sequence information is
779 kept in each folder in the file determined by the \*(lqmh\-sequences\*(rq
780 profile entry (default is
781 .IR \&.mh\-sequences ).
785 may override the path of the
787 file, by specifying a \*(lqcontext\*(rq entry (this must be in
788 lower-case). If the entry is not absolute (does not start with a
789 \*(lq/\*(rq), then it is interpreted relative to the user's
791 directory. As a result, you can actually have more than one set of
792 private sequences by using different context files.
796 and its commands it also controlled by the
797 presence of certain environment variables.
799 Many of these environment variables are used internally by the
800 \*(lqWhat now?\*(rq interface. It's amazing all the information
801 that has to get passed via environment variables to make the
802 \*(lqWhat now?\*(rq interface look squeaky clean to the
804 user, isn't it? The reason for all this is that the
812 one of the standard shells. As a result, it's not possible to pass
813 information via an argument list. The convention is that environment
814 variables whose names are all upper-case are user-settable; those
815 whose names are lower-case only are used internally by nmh and should
816 not generally be set by the user.
818 LC_ALL, LC_CTYPE, and LANG
819 These variables are used to set the locale, see locale(1).
820 The \*(lqlocale\*(rq profile entry supersedes these.
825 the default maildrop. This supersedes the \*(lqMailDrop\*(rq profile entry.
830 the POP host to query for mail to incorporate. See the
832 man page for more information.
835 With this environment variable, you can specify a profile
841 that you invoke. If the value of
843 is not absolute, (i.e., does
844 not begin with a \*(lq/\*(rq), it will be presumed to start from the current
845 working directory. This is one of the very few exceptions in
847 where non-absolute pathnames are not considered relative to the user's
852 With this environment variable, you can specify an
853 additional user profile (file) to be read by
855 in addition to the mhn.defaults profile.
858 With this environment variable, you can specify a
859 context other than the normal context file (as specified in
862 profile). As always, unless the value of
864 is absolute, it will be presumed to start from your
869 If this variable is set to a non-null value,
871 will emit debugging information.
874 If this variable is set to a non-null value, it specifies the
875 name of the mail transport configuration file to use by
878 and other programs that interact with the mail transport system,
879 instead of the default. See
883 If this variable is set to a non-null value, it specifies the name of
884 a mail transport configuration file to be read in addition to the
889 With this environment variable, you can specify an
890 additional user profile (file) to be read by
892 in addition to the mhn.defaults profile.
894 is deprecated, so support for this variable will
895 be removed from a future nmh release.
898 With this environment variable, you can specify an
899 additional user profile (file) to be read by
901 in addition to the mhn.defaults profile.
904 With this environment variable, you can specify an
905 additional user profile (file) to be read by
907 in addition to the mhn.defaults profile.
910 If this variable is set to a non-null value,
912 will emit a representation of the search pattern.
914 is deprecated, so support for this variable will
915 be removed from a future nmh release. Instead,
922 These variables are searched, in order, for the directory in which to
923 create some temporary files.
926 If this variable is set to a non-null value,
928 commands that use the
929 .B Alternate\-Mailboxes
930 profile entry will display debugging information
931 about the values in that entry.
934 If set to a non-null value, this supersedes the value of
935 the default built-in pager command.
942 your mail signature. This supersedes the \*(lqSignature\*(rq profile entry,
943 and is not used when the \*(lqLocal\-Mailbox\*(rq profile component is set.
950 your default maildrop: see the \*(lqMailDrop\*(rq profile entry.
953 This variable is for use with username_extension masquerading. See the
958 This is the alternate message.
963 during edit sessions so you can
964 peruse the message being distributed or replied to. The message is also
968 through a link called \*(lq@\*(rq in the current directory if
969 your current working directory and the folder the message lives in are
970 on the same UNIX filesystem, and if your current working directory is
981 about an alternate message associated with the
982 draft (the message being distributed or replied to).
990 if annotations are to occur.
998 that message re-distribution is occurring.
1001 This is the path to the working draft.
1010 which file to ask \*(lqWhat now?\*(rq
1022 the user's choice of
1023 editor (unless overridden by
1027 This is the folder containing the alternate message.
1032 during edit sessions so you
1033 can peruse other messages in the current folder besides the one being
1034 distributed or replied to. The environment variable
1050 if annotations are to occur.
1058 if annotations are to occur.
1066 $HOME/\&.mh\-profile
1072 <folder>/\&.mh\-sequences
1073 Public sequences for <folder>.
1079 .IR mh-sequence (5),
1082 There is some question as to what kind of arguments should be placed
1083 in the profile as options. In order to provide a clear answer, recall
1084 command line semantics of all
1086 programs: conflicting switches
1091 may occur more than one time on the
1092 command line, with the last switch taking effect. Other arguments, such
1093 as message sequences, filenames and folders, are always remembered on
1094 the invocation line and are not superseded by following arguments of
1095 the same type. Hence, it is safe to place only switches (and their
1096 arguments) in the profile.
1098 If one finds that an
1100 program is being invoked again and again
1101 with the same arguments, and those arguments aren't switches, then there
1102 are a few possible solutions to this problem. The first is to create a
1108 of your choice. By giving this link a different name, you can create
1109 a new entry in your profile and use an alternate set of defaults for
1112 command. Similarly, you could create a small shell script
1115 program of your choice with an alternate set
1116 of invocation line switches (using links and an alternate profile entry
1117 is preferable to this solution).
1121 user could create an alias for the command of the form:
1124 alias cmd 'cmd arg1 arg2 ...'
1127 In this way, the user can avoid lengthy type-in to the shell, and still
1130 commands safely. (Recall that some
1133 invoke others, and that in all cases, the profile is read, meaning that
1134 aliases are disregarded beyond an initial command invocation)