1 .TH MH-PROFILE %manext5% 2016-10-19 "%nmhversion%"
6 mh-profile \- user profile customization for nmh message handler
10 is expected to have a file named
12 in their home directory. This file contains
13 a set of user parameters used by the
15 family of programs. Each entry in the file is of the format
18 .IR profile-component ": " value
21 If the text of a 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 Shell quoting conventions are not available; each token is separated
34 .SS "Standard Profile Entries"
35 The possible profile components are exemplified below. The only mandatory
36 entry is `Path:'. The others are optional; some have default values if
37 they are not present. In the notation used below, (profile, default)
38 indicates whether the information is kept in the user's
42 context, and indicates what the default value is. Note that a profile
43 component can only appear once. Multiple appearances will trigger a
44 warning that all appearances after the first are ignored.
46 Some MH programs, including
51 have specific profile components that are described in their respective
52 man pages. Each component name specific to these programs begins with
53 the name of the program and is followed by a dash.
60 transactions in directory \*(lqMail\*(rq. This is the
61 only mandatory profile entry. (profile, no default)
67 Set the locale for all
74 See the LC_ALL, LC_CTYPE, and LANG variables in the "ENVIRONMENT"
75 section below for a reference on how the locale is set if this profile
76 component is not used.
82 Declares the location of the
84 context file. This can be overridden by the environment variable
89 (profile, default: <nmh-dir>/context)
95 Keeps track of the current open folder.
96 (context, default: folder specified by \*(lqInbox\*(rq)
102 Defines the name of the default inbox.
103 (profile, default: inbox)
106 .BR Previous\-Sequence :
109 Names the sequence or sequences which should be defined as the `msgs' or
110 `msg' argument given to any
112 command. If not present or empty,
113 no such sequences are defined. Otherwise, for each name given, the
114 sequence is first zeroed and then each message is added to the sequence.
117 man page for the details about this sequence. (profile, no default)
120 .BR Sequence\-Negation :
123 Defines the string which, when prefixed to a sequence name, negates
124 that sequence. Hence, \*(lqnotseen\*(rq means all those messages that
125 are not a member of the sequence \*(lqseen\*(rq. Read the
127 man page for the details. (profile, no default)
130 .BR Unseen\-Sequence :
133 Names the sequence or sequences which should be defined as those
134 messages which are unread. The commands
140 will add or remove messages from these
141 sequences when they are incorporated or read. If not present or
142 empty, no such sequences are defined. Otherwise, each message is
143 added to, or removed from, each sequence name given. Read the
145 man page for the details about this sequence.
146 (profile, no default)
152 The name of the file in each folder which defines public sequences.
153 To disable the use of public sequences, leave the value portion of this
154 entry blank. (profile, default: \&.mh\-sequences)
157 .BI atr\- seq \- folder :
160 Keeps track of the private sequence called \*(lqseq\*(rq in the specified
161 folder. Private sequences are generally used for read-only folders.
164 man page for details about private sequences.
165 (context, no default)
171 Defines the editor to be used by the commands
177 If not set, the value will be taken from the VISUAL and EDITOR environment
178 variables. (profile, default: vi)
184 An octal number which defines the permission bits for new message files.
187 for an explanation of the octal number. Note that some filesystems,
188 such as FAT32, do not support removal of read file permissions.
189 (profile, default: 0600)
192 .BR Folder\-Protect :
195 An octal number which defines the permission bits for new folder
198 for an explanation of the octal number.
199 (profile, default: 700)
205 The locking algorithm used to lock changes to any
207 data files, such as sequences or context. The locking algorithm is
208 any one of the following entries:
216 Available locking algorithms can vary depending on the operating system.
217 Note: currently, transactional locking is only supported on public sequences; see
219 for more information.
220 (profile, default: fcntl)
226 Sets default switches to be used whenever the mh program
228 is invoked. For example, one could override the \*(lqEditor:\*(rq profile
229 component when replying to messages by adding a component such as:
232 repl: \-editor /bin/ed
235 (profile, no defaults)
238 .IB lasteditor "-next:"
241 Names \*(lqnexteditor\*(rq to be the default editor after using
242 \*(lqlasteditor\*(rq. This takes effect at the \*(lqWhat now?\*(rq prompt
249 After editing the draft with \*(lqlasteditor\*(rq, the default editor is
250 set to be \*(lqnexteditor\*(rq. If the user types \*(lqedit\*(rq without
251 any arguments to \*(lqWhat now?\*(rq, then \*(lqnexteditor\*(rq is used.
252 (profile, no default)
258 The contents of the folder-stack for the
261 (context, no default)
265 Your Username <user@some.host>
267 Tells the MH programs what your local mailbox is. If set, it will be used
268 by the default component files by programs like
272 to construct your default \*(lqFrom:\*(rq header. The text used here will
273 be copied exactly to your \*(lqFrom:\*(rq header, so it should already be RFC
274 822 compliant. If this is set, the
276 profile entry is NOT used, so it should include a signature as well. (profile,
277 default: userid@local.hostname)
280 .BR Alternate\-Mailboxes :
281 mh@uci\-750a, bug-mh*
287 which additional addresses are yours. In this way,
289 knows which addresses should be included in the reply, and
291 knows if a message originated from you. Addresses must be separated by a comma,
292 and the hostnames listed should be the \*(lqofficial\*(rq hostnames for the
293 mailboxes you indicate, as local nicknames for hosts are not replaced with
294 their official site names. For each address, if a host is not given, then
295 that address on any host is considered to be you. In addition, an asterisk
296 (`*') may appear at either or both ends of the mailbox and host to indicate
297 wild-card matching. (profile, default: your user-id)
304 Indicates alias files for
309 This may be used instead of the
312 switch. (profile, no default)
318 Indicates a default draft folder for
327 man page for details. (profile, no default)
330 .BI digest\-issue\- list :
335 the last issue of the last volume sent for the digest
337 (context, no default)
340 .BI digest\-volume\- list :
345 the last volume sent for the digest
347 (context, no default)
355 your mail drop, if different from the default. This is
356 superseded by the environment variable MAILDROP.
357 (profile, default: %mailspool%/$USER)
361 RAND MH System (agent: Marshall Rose)
363 Tells front-end programs such as
368 your mail signature. (This is not to be confused with a .signature
369 that might be appended to mails.) This is superseded by the environment
370 variable SIGNATURE. If SIGNATURE is not set and this profile entry is
371 not present, the \*(lqgcos\*(rq field of the \fI/etc/passwd\fP file
372 will be used. Your signature will be added to the address
374 puts in the \*(lqFrom:\*(rq header; do not include an address in the
375 signature text. The \*(lqLocal\-Mailbox\*(rq profile component
376 supersedes all of this. (profile, no default)
382 Indicates how the username and password credentials will be retrieved
383 for access to external servers, such as those that provide SMTP or POP
384 service. The supported entry values are \*(lqlegacy\*(rq,
385 .RI \*(lqfile: netrc \*(rq,
387 .RI \*(lqfile\-nopermcheck: netrc \*(rq.
388 With \*(lqlegacy\*(rq, or if there is no credentials entry, the
389 username is the first of:
405 the login name on the local machine
409 The password for SMTP services is the first of:
414 password value from matching entry in file named \*(lq.netrc\*(rq
415 in the user's home directory
418 password obtained by interactively prompting the user
422 The password for POP service when the
424 switch is used with one of these programs is the login name on the
428 .RI \*(lqfile: netrc \*(rq
430 entry, the username is the first of:
439 login name from matching entry in
444 value provided by user in response to interactive query
448 Similarly, the password is provided either in the
450 file or interactively.
452 can be any valid filename, either absolute or relative to Path or
455 file contains authentication information, for each server,
456 using a line of the following form. (Replace
461 with your own account information.)
474 file must be owned and readable only by you.
477 .RI \*(lqfile\-nopermcheck: netrc \*(rq
479 entry is identical in behavior to the \*(lqfile\*(rq entry, with the
480 exception that the permission checks done by
481 \*(lqfile\*(rq are not performed. This entry should be used with
482 caution and only when absolutely necessary.
483 (profile, default: legacy)
489 If the Welcome component is not present, or its value is not
490 .RI \*(lq disable \*(rq,
491 a welcome message will be displayed the first time that an interactive
493 program is run after updating the
496 The user must press the Enter key to continue.
498 If the MHCONTEXT environment variable is set and non-empty (and
499 the Welcome component is not
500 .RI \*(lq disable \*(rq),
501 the welcome message is only displayed if the context file contains a version
502 reference, and that reference is older than the installed
504 version. The version reference is of the form:
508 Version: %nmhversion%
511 .SS "Process Profile Entries"
512 The following profile elements are used whenever an
514 program invokes some other program, such as
518 can be used to select alternate programs if the user wishes.
519 The default values are given in the examples.
521 If the profile element contains spaces, the element is split at spaces
522 into tokens and each token is given as a separate argument to the
524 system call. If the element contains shell metacharacters then the entire
525 element is executed using
531 This is the program used by
533 to process drafts which are MIME composition files.
539 This program is used to refile or link a message to another folder.
542 to file a copy of a message into a folder given
543 by a \*(lqFcc:\*(rq field. It is used by the draft folder facility in
550 message into another folder. It is used to refile a draft message in
553 directive at the \*(lqWhat now?\*(rq prompt.
560 to filter a component when it is tagged with the \*(lqformat\*(rq variable
561 in the mhl filter. See
563 for more information.
571 to incorporate new mail when it
572 is invoked with no arguments.
578 This program is used to list the contents of a message in response
581 directive at the \*(lqWhat now?\*(rq prompt. It is
582 also used by the draft folder facility in
588 to display the draft message.
590 the environment variable PAGER
591 supersedes the default built-in pager command.)
597 This is the program used to automatically mail various messages
598 and notifications. It is used by
600 to post failure notices.
601 It is used to retrieve an external-body with access-type `mail-server'
602 (such as when storing the body with
609 This is the program used to filter messages in various ways. It
612 to filter and display the message headers
613 of MIME messages. When the
624 is used to filter the
625 message that you are forwarding, or to which you are replying.
632 is used to filter the copy of the message
633 that is sent to \*(lqBcc:\*(rq recipients.
639 This is the program used by
643 formatted message when displaying to a terminal. It is also the default
646 to display message bodies (or message parts) of type text/plain.
648 the environment variable PAGER
649 supersedes the default built-in pager command.)
661 This is the program used by
670 post a message to the mail transport system. It is also called by
672 (called with the switches
676 to do address verification.
682 This is the program used by
687 to delete a message from a folder.
693 This is the program used by
695 to actually send the message
701 This is the program used by
703 to process and display non-text (MIME) messages.
709 This is the program used by
711 to filter and display text (non-MIME) messages.
717 This is the program invoked by
723 to query about the disposition of a composed draft message.
729 This is the program used by
731 to determine to whom a message would be sent.
734 After consulting .mh_profile, some programs read an optional profile
735 specified by a program-specific environment variable, and then the
736 system-wide profile %nmhetcdir%/mhn.defaults.
744 is similar, but has no optional profile.
746 The first occurrence of a component is used, e.g.\& .mh_profile's
747 trumps $MHSHOW's. A component with no value still stops further
748 occurrences being used, but is considered absent.
752 contains only static information, which
754 programs will NOT update. Changes in context are made to the
756 file kept in the users
758 directory. This includes, but is not limited to: the
759 \*(lqCurrent\-Folder\*(rq entry and all private sequence information.
760 Public sequence information is kept in each folder in the file
761 determined by the \*(lqmh\-sequences\*(rq profile entry (default is
762 .IR \&.mh\-sequences ).
766 may override the path of the
768 file, by specifying a \*(lqcontext\*(rq entry (this must be in
769 lower-case). If the entry is not absolute (does not start with a
770 \*(lq/\*(rq), then it is interpreted relative to the user's
772 directory. As a result, you can actually have more than one set of
773 private sequences by using different context files.
777 and its commands it also controlled by the
778 presence of certain environment variables.
780 Many of these environment variables are used internally by the
781 \*(lqWhat now?\*(rq interface. It's amazing all the information
782 that has to get passed via environment variables to make the
783 \*(lqWhat now?\*(rq interface look squeaky clean to the
785 user, isn't it? The reason for all this is that the
787 user can select any program as the
789 including one of the standard shells. As a result, it's not possible
790 to pass information via an argument list. The convention is that
791 environment variables whose names are all upper-case are user-settable;
792 those whose names are lower-case only are used internally by nmh and
793 should not generally be set by the user.
795 LC_ALL, LC_CTYPE, and LANG
796 These variables are used to set the locale, see locale(1).
797 The \*(lqlocale\*(rq profile entry supersedes these.
802 the default mail drop. This supersedes the \*(lqMailDrop\*(rq
808 the POP host to query for mail to incorporate. See the
810 man page for more information.
813 With this environment variable, you can specify a profile
818 programs that you invoke. If the value of MH is not absolute,
819 (i.e., does not begin with a \*(lq/\*(rq), it will be presumed
820 to start from the current working directory. This is one of the
821 very few exceptions in
823 where non-absolute pathnames are not considered relative to the user's
828 With this environment variable, you can specify an additional user profile
831 in addition to the mhn.defaults profile.
834 With this environment variable, you can specify a context other than the
835 normal context file (as specified in the
837 profile). As usual, unless the value of MHCONTEXT is absolute, it will
838 be presumed to start from your
843 If this variable is set to a non-null value,
845 will emit debugging information.
848 If this variable is set to a non-null value, it specifies the
849 name of the mail transport configuration file to use by
852 and other programs that interact with the mail transport system,
853 instead of the default. See
857 If this variable is set to a non-null value, it specifies the name of
858 a mail transport configuration file to be read in addition to the
863 With this environment variable, you can specify an additional user
864 profile (file) to be read by
866 in addition to the mhn.defaults profile.
868 is deprecated, so support for this variable will be removed from a
872 With this environment variable, you can specify an additional user
873 profile (file) to be read by
875 in addition to the mhn.defaults profile.
878 With this environment variable, you can specify an additional user
879 profile (file) to be read by
881 in addition to the mhn.defaults profile.
884 If this variable is set to a non-null value,
886 will emit a representation of the search pattern.
888 is deprecated, so support for this variable will be removed from a
889 future nmh release. Instead,
896 These variables are searched, in order, for the directory in which to
897 create some temporary files.
898 MHTMPDIR is deprecated and will be removed in a future release of nmh.
901 If this variable is set to a non-null value,
903 commands that use the
904 .B Alternate\-Mailboxes
905 profile entry will display debugging information about the values in
909 If set to a non-null value, this supersedes the value of the default
910 built-in pager command.
917 your mail signature. This supersedes the \*(lqSignature\*(rq profile entry,
918 and is not used when the \*(lqLocal\-Mailbox\*(rq profile component is set.
925 your default mail drop: see the \*(lqMailDrop\*(rq profile entry.
928 This variable is for use with username_extension masquerading. See the
933 This is the alternate message. This is set by
937 during edit sessions so you can peruse the message being distributed or
938 replied to. The message is also available, when the
940 switch is used, through a link called \*(lq@\*(rq in the current directory
941 if your current working directory and the folder the message lives in are
942 on the same Unix filesystem, and if your current working directory is
949 set mhaltmsg to tell the
951 about an alternate message associated with the
952 draft (the message being distributed or replied to).
960 if annotations are to occur.
964 sets mhdist to tell the
966 that message re-distribution is occurring.
969 This is the path to the working draft. It is set by
977 which file to ask \*(lqWhat now?\*(rq questions about.
988 the user's choice of editor (unless overridden by
992 This is the folder containing the alternate message.
997 during edit sessions so you can peruse other messages in the current
998 folder besides the one being distributed or replied to.
999 The environment variable mhfolder is also set by
1013 if annotations are to occur.
1021 if annotations are to occur.
1035 <folder>/.mh\-sequences
1036 Public sequences for <folder>.
1042 .IR mh-sequence (5),
1045 There is some question as to what kind of arguments should be placed
1046 in the profile as options. In order to provide a clear answer, recall
1047 the command line semantics of all
1049 programs: conflicting switches
1054 may occur more than one time on the command line, with the last switch
1055 taking effect. Other arguments, such as message sequences, filenames
1056 and folders, are always remembered on the invocation line and are not
1057 superseded by following arguments of the same type.
1058 Hence, it is safe to place only switches (and their arguments) in the profile.
1060 If one finds that an
1062 program is being invoked again and again with the same arguments, and those
1063 arguments aren't switches, then there are a few possible solutions to this
1064 problem. The first is to create a (soft) link in your
1068 program of your choice. By giving this link a different name, you can create
1069 a new entry in your profile and use an alternate set of defaults for
1072 command. Similarly, you could create a small shell script
1075 program of your choice with an alternate set
1076 of invocation line switches (using links and an alternate profile entry
1077 is preferable to this solution).
1081 user could create an alias for the command of the form:
1084 alias cmd 'cmd arg1 arg2 ...'
1087 In this way, the user can avoid lengthy type-in to the shell, and still
1090 commands safely. (Recall that some
1093 invoke others, and that in all cases, the profile is read, meaning that
1094 aliases are disregarded beyond an initial command invocation)