1 .TH MH-PROFILE %manext5% "September 29, 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 Declares the location of the
70 context file. This is overridden by the environment variable
75 (profile, default: <nmh\-dir>/context)
81 Keeps track of the current open folder.
82 (context, default: folder specified by \*(lqInbox\*(rq)
88 Defines the name of your default inbox.
89 (profile, default: inbox)
92 .BR Previous\-Sequence :
95 Names the sequence or sequences which should be defined as the `msgs' or
96 `msg' argument given to any
98 command. If not present or empty,
99 no such sequences are defined. Otherwise, for each name given, the
100 sequence is first zero'd and then each message is added to the sequence.
103 man page for the details about this sequence. (profile, no default)
106 .BR Sequence\-Negation :
109 Defines the string which, when prefixed to a sequence name, negates
110 that sequence. Hence, \*(lqnotseen\*(rq means all those messages that
111 are not a member of the sequence \*(lqseen\*(rq. Read the
113 man page for the details. (profile, no default)
116 .BR Unseen\-Sequence :
119 Names the sequence or sequences which should be defined as those
120 messages which are unread. The commands
126 will add or remove messages from these
127 sequences when they are incorporated or read. If not present or
128 empty, no such sequences are defined. Otherwise, each message is
129 added to, or removed from, each sequence name given. Read the
131 man page for the details about this sequence.
132 (profile, no default)
138 The name of the file in each folder which defines public sequences.
139 To disable the use of public sequences, leave the value portion of this
140 entry blank. (profile, default: \&.mh\-sequences)
143 .BI atr\- seq \- folder :
146 Keeps track of the private sequence called \*(lqseq\*(rq in the specified
147 folder. Private sequences are generally used for read\-only folders.
150 man page for details about private sequences.
151 (context, no default)
157 Defines the editor to be used by the commands
163 If not set in profile the value will be taken from the VISUAL and
164 EDITOR environment variables.
165 (profile, default: vi)
171 An octal number which defines the permission bits for new message files.
174 for an explanation of the octal number. Note that some filesystems,
175 such as FAT32, do not support removal of read file permissions.
176 (profile, default: 0600)
179 .BR Folder\-Protect :
182 An octal number which defines the permission bits for new folder
185 for an explanation of the octal number.
186 (profile, default: 700)
192 The locking algorithm used to lock changes to any
194 data files, such as sequences or the context. The locking algorithm is
195 any one of the following entries:
203 Available locking algorithms can vary depending on what is supported by
204 the operating system. Note: currently transactional locking is only
205 supported on public sequences; see
207 for more information.
208 (profile, default: fcntl)
214 Sets default switches to be used whenever the mh program
216 is invoked. For example, one could override the \*(lqEditor:\*(rq profile
217 component when replying to messages by adding a component such as:
220 repl: \-editor /bin/ed
223 (profile, no defaults)
226 .IB lasteditor "-next:"
229 Names \*(lqnexteditor\*(rq to be the default editor after using
230 \*(lqlasteditor\*(rq. This takes effect at \*(lqWhat now?\*(rq prompt
238 the draft with \*(lqlasteditor\*(rq, the default editor is set to be
239 \*(lqnexteditor\*(rq. If the user types \*(lqedit\*(rq without any
240 arguments to \*(lqWhat now?\*(rq, then \*(lqnexteditor\*(rq is used.
241 (profile, no default)
247 The contents of the folder-stack for the
250 (context, no default)
254 Your Username <user@some.host>
256 Tells the various MH tools what your local mailbox is. If set, will be used
257 by the default component files by tools like
261 to construct your default \*(lqFrom\*(rq header. The text used here will
262 be copied exactly to your From: header, so it should already be RFC 822
263 compliant. If this is set, the
265 profile entry is NOT used, so it should include a signature as well. (profile,
266 default: userid@local.hostname)
269 .BR Alternate\-Mailboxes :
270 mh@uci\-750a, bug-mh*
276 which addresses are really yours.
279 knows which addresses should be included in the
282 knows if the message really originated from you.
283 Addresses must be separated by a comma, and the hostnames listed should
284 be the \*(lqofficial\*(rq hostnames for the mailboxes you indicate, as
285 local nicknames for hosts are not replaced with their official site names.
286 For each address, if a host is not given, then that address on any host is
287 considered to be you. In addition, an asterisk (`*') may appear at either
288 or both ends of the mailbox and host to indicate wild-card matching.
289 (profile, default: your user-id)
296 Indicates aliases files for
301 This may be used instead of the
304 switch. (profile, no default)
310 Indicates a default draft folder for
319 man page for details. (profile, no default)
322 .BI digest\-issue\- list :
327 the last issue of the last volume sent for the digest
329 (context, no default)
332 .BI digest\-volume\- list :
337 the last volume sent for the digest
339 (context, no default)
347 your maildrop, if different from the default. This is
348 superseded by the environment variable
350 (profile, default: %mailspool%/$USER)
354 RAND MH System (agent: Marshall Rose)
356 Tells front-end programs such as
361 your mail signature. This is superseded by the
366 is not set and this profile entry is not present, the \*(lqgcos\*(rq field of
367 the \fI/etc/passwd\fP file will be used.
368 Your signature will be added to the address
370 puts in the \*(lqFrom:\*(rq header; do not include an address in the
371 signature text. The \*(lqLocal\-Mailbox\*(rq profile component
372 supersedes all of this. (profile, no default)
378 Indicates how the username and password credentials will be retrieved
379 for access to external servers, such as those that provide SMTP or POP
380 service. The supported entry values are \*(lqlegacy\*(rq,
381 .RI \*(lqfile: netrc \*(rq,
383 .RI \*(lqfile\-nopermcheck: netrc \*(rq.
384 With \*(lqlegacy\*(rq, or if there is no credentials entry, the
385 username is the first of:
401 the login name on the local machine
405 The password for SMTP services is the first of:
410 password value from matching entry in file named \*(lq.netrc\*(rq
411 in the user's home directory
414 password obtained by interactively prompting the user
418 The password for POP service when the
420 switch is used with one of these programs is the login name on the
424 .RI \*(lqfile: netrc \*(rq
426 entry, the username is the first of:
435 login name from matching entry in
440 value provided by user in response to interactive query
444 Similarly, the password is provided either in the
446 file or interactively.
448 can be any valid filename, either absolute or relative to Path or
451 file contains authentication information, for each server,
452 using a line of the following form. Replace the words
457 with your own account information:
470 file must be owned and readable only by you.
473 .RI \*(lqfile\-nopermcheck: netrc \*(rq
475 entry is identical in behavior to the \*(lqfile\*(rq entry, with the
476 exception that the permission checks done by
477 \*(lqfile\*(rq are not performed. This entry should be used with
478 caution and only when absolutely necessary.
479 (profile, default: legacy)
485 If the Welcome component is not present, or its value is not
486 .RI \*(lq disable \*(rq,
487 a welcome message will be displayed the first time that an interactive
489 program is run after updating the
492 The user must press the Enter key to continue.
494 If the MHCONTEXT environment variable is set and non-empty (and
495 the Welcome component is not
496 .RI \*(lq disable \*(rq),
497 the welcome message is only displayed if the context file contains a version
498 reference, and that reference is older than the installed
500 version. The version reference is of the form:
504 Version: %nmhversion%
509 .SS "Process Profile Entries"
510 The following profile elements are used whenever an
512 program invokes some other program such as
516 can be used to select alternate programs if the
517 user wishes. The default values are given in the examples.
519 If the profile element contains spaces, the element is split at spaces
520 into tokens and each token is given as a separate argument to the
522 system call. If the element contains shell metacharacters then the entire
523 element is executed using
530 This is the program used by
532 to process drafts which are MIME composition files.
538 This program is used to refile or link a message to another folder.
541 to file a copy of a message into a folder given
542 by a \*(lqFcc:\*(rq field. It is used by the draft folder facility in
549 message into another folder. It is used to refile a draft message in
552 directive at the \*(lqWhat now?\*(rq prompt.
559 to filter a component when it is tagged with the \*(lqformat\*(rq variable
560 in the mhl filter. See
562 for more information.
570 to incorporate new mail when it
571 is invoked with no arguments.
577 This program is used to list the contents of a message in response
580 directive at the \*(lqWhat now?\*(rq prompt. It is
581 also used by the draft folder facility in
587 to display the draft message.
589 the environment variable PAGER
590 supersedes the default built-in pager command.)
596 This is the program used to automatically mail various messages
597 and notifications. It is used by
599 to post failure notices.
600 It is used to retrieve an external-body with access-type `mail-server'
601 (such as when storing the body with
608 This is the program used to filter messages in various ways. It
611 to filter and display the message headers
612 of MIME messages. When the
623 is used to filter the
624 message that you are forwarding, or to which you are replying.
631 is used to filter the copy of the message
632 that is sent to \*(lqBcc:\*(rq recipients.
638 This is the program used by
642 formatted message when displaying to a terminal. It is also the default
645 to display message bodies (or message parts) of type text/plain.
647 the vivironment variable PAGER
648 supersedes the default built-in pager command.)
660 This is the program used by
669 post a message to the mail transport system. It is also called by
671 (called with the switches
675 to do address verification.
681 This is the program used by
686 to delete a message from a folder.
692 This is the program to use by
694 to actually send the message
700 This is the program used by
702 to process and display non-text (MIME) messages.
708 This is the program used by
710 to filter and display text (non-MIME) messages.
716 This is the program invoked by
722 to query about the disposition of a composed draft message.
728 This is the program used by
730 to determine to whom a message would be sent.
733 After consulting .mh_profile,
734 some programs read an optional profile specified by a
735 program-specific environment variable,
736 and then the system-wide profile %nmhetcdir%/mhn.defaults.
744 is similar, but has no optional profile.
746 The first occurrence of a component is used,
747 e.g.\& .mh_profile's trumps $MHSHOW's.
748 A component with no value still stops further occurrences being used,
749 but is considered absent.
753 contains only static information, which
757 update. Changes in context are made to the
759 file kept in the users
762 This includes, but is not limited to: the \*(lqCurrent\-Folder\*(rq entry
763 and all private sequence information. Public sequence information is
764 kept in each folder in the file determined by the \*(lqmh\-sequences\*(rq
765 profile entry (default is
766 .IR \&.mh\-sequences ).
770 may override the path of the
772 file, by specifying a \*(lqcontext\*(rq entry (this must be in
773 lower-case). If the entry is not absolute (does not start with a
774 \*(lq/\*(rq), then it is interpreted relative to the user's
776 directory. As a result, you can actually have more than one set of
777 private sequences by using different context files.
781 and its commands it also controlled by the
782 presence of certain environment variables.
784 Many of these environment variables are used internally by the
785 \*(lqWhat now?\*(rq interface. It's amazing all the information
786 that has to get passed via environment variables to make the
787 \*(lqWhat now?\*(rq interface look squeaky clean to the
789 user, isn't it? The reason for all this is that the
797 one of the standard shells. As a result, it's not possible to pass
798 information via an argument list. The convention is that environment
799 variables whose names are all upper-case are user-settable; those
800 whose names are lower-case only are used internally by nmh and should
801 not generally be set by the user.
806 the default maildrop. This supersedes the \*(lqMailDrop\*(rq profile entry.
811 the POP host to query for mail to incorporate. See the
813 man page for more information.
816 With this environment variable, you can specify a profile
822 that you invoke. If the value of
824 is not absolute, (i.e., does
825 not begin with a \*(lq/\*(rq), it will be presumed to start from the current
826 working directory. This is one of the very few exceptions in
828 where non-absolute pathnames are not considered relative to the user's
833 With this environment variable, you can specify an
834 additional user profile (file) to be read by
836 in addition to the mhn.defaults profile.
839 With this environment variable, you can specify a
840 context other than the normal context file (as specified in
843 profile). As always, unless the value of
845 is absolute, it will be presumed to start from your
850 If this variable is set to a non-null value,
852 will emit debugging information.
855 If this variable is set to a non-null value, it specifies the
856 name of the mail transport configuration file to use by
859 and other programs that interact with the mail transport system,
860 instead of the default. See
864 If this variable is set to a non-null value, it specifies the name of
865 a mail transport configuration file to be read in addition to the
870 With this environment variable, you can specify an
871 additional user profile (file) to be read by
873 in addition to the mhn.defaults profile.
875 is deprecated, so support for this variable will
876 be removed from a future nmh release.
879 With this environment variable, you can specify an
880 additional user profile (file) to be read by
882 in addition to the mhn.defaults profile.
885 With this environment variable, you can specify an
886 additional user profile (file) to be read by
888 in addition to the mhn.defaults profile.
891 If this variable is set to a non-null value,
893 will emit a representation of the search pattern.
895 is deprecated, so support for this variable will
896 be removed from a future nmh release. Instead,
903 These variables are searched, in order, for the directory in which to
904 create some temporary files.
907 If this variable is set to a non-null value,
909 commands that use the
910 .B Alternate\-Mailboxes
911 profile entry will display debugging information
912 about the values in that entry.
915 If set to a non-null value, this supersedes the value of
916 the default built-in pager command.
923 your mail signature. This supersedes the \*(lqSignature\*(rq profile entry,
924 and is not used when the \*(lqLocal\-Mailbox\*(rq profile component is set.
931 your default maildrop: see the \*(lqMailDrop\*(rq profile entry.
934 This variable is for use with username_extension masquerading. See the
939 This is the alternate message.
944 during edit sessions so you can
945 peruse the message being distributed or replied to. The message is also
949 through a link called \*(lq@\*(rq in the current directory if
950 your current working directory and the folder the message lives in are
951 on the same UNIX filesystem, and if your current working directory is
962 about an alternate message associated with the
963 draft (the message being distributed or replied to).
971 if annotations are to occur.
979 that message re-distribution is occurring.
982 This is the path to the working draft.
991 which file to ask \*(lqWhat now?\*(rq
1003 the user's choice of
1004 editor (unless overridden by
1008 This is the folder containing the alternate message.
1013 during edit sessions so you
1014 can peruse other messages in the current folder besides the one being
1015 distributed or replied to. The environment variable
1031 if annotations are to occur.
1039 if annotations are to occur.
1047 $HOME/\&.mh\-profile
1053 <folder>/\&.mh\-sequences
1054 Public sequences for <folder>.
1060 .IR mh-sequence (5),
1063 There is some question as to what kind of arguments should be placed
1064 in the profile as options. In order to provide a clear answer, recall
1065 command line semantics of all
1067 programs: conflicting switches
1072 may occur more than one time on the
1073 command line, with the last switch taking effect. Other arguments, such
1074 as message sequences, filenames and folders, are always remembered on
1075 the invocation line and are not superseded by following arguments of
1076 the same type. Hence, it is safe to place only switches (and their
1077 arguments) in the profile.
1079 If one finds that an
1081 program is being invoked again and again
1082 with the same arguments, and those arguments aren't switches, then there
1083 are a few possible solutions to this problem. The first is to create a
1089 of your choice. By giving this link a different name, you can create
1090 a new entry in your profile and use an alternate set of defaults for
1093 command. Similarly, you could create a small shell script
1096 program of your choice with an alternate set
1097 of invocation line switches (using links and an alternate profile entry
1098 is preferable to this solution).
1102 user could create an alias for the command of the form:
1105 alias cmd 'cmd arg1 arg2 ...'
1108 In this way, the user can avoid lengthy type-in to the shell, and still
1111 commands safely. (Recall that some
1114 invoke others, and that in all cases, the profile is read, meaning that
1115 aliases are disregarded beyond an initial command invocation)