1 .TH MH-PROFILE %manext5% 2016-10-19 "%nmhversion%"
6 mh-profile \- user 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 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
127 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
145 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 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
278 used, so it should include a signature as well. (profile,
279 default: userid@local.hostname)
282 .BR Alternate\-Mailboxes :
283 mh@uci\-750a, bug-mh*
289 which additional addresses are yours. In this way,
291 knows which addresses should be included in the reply, and
293 knows if a message originated from you. Addresses must be separated by a comma,
294 and the hostnames listed should be the \*(lqofficial\*(rq hostnames for the
295 mailboxes you indicate, as local nicknames for hosts are not replaced with
296 their official site names. For each address, if a host is not given, then
297 that address on any host is considered to be you. In addition, an asterisk
298 (`*') may appear at either or both ends of the mailbox and host to indicate
299 wild-card matching. (profile, default: your user-id)
306 Indicates alias files for
311 This may be used instead of the
314 switch. (profile, no default)
320 Indicates a default draft folder for
329 for details. (profile, no default)
332 .BI digest\-issue\- list :
337 the last issue of the last volume sent for the digest
339 (context, no default)
342 .BI digest\-volume\- list :
347 the last volume sent for the digest
349 (context, no default)
357 your mail drop, if different from the default. This is
358 superseded by the environment variable MAILDROP.
359 (profile, default: %mailspool%/$USER)
363 RAND MH System (agent: Marshall Rose)
365 Tells front-end programs such as
370 your mail signature. (This is not to be confused with a .signature
371 that might be appended to mails.) This is superseded by the environment
372 variable SIGNATURE. If SIGNATURE is not set and this profile entry is
373 not present, the \*(lqgcos\*(rq field of the \fI/etc/passwd\fP file
374 will be used. Your signature will be added to the address
376 puts in the \*(lqFrom:\*(rq header; do not include an address in the
377 signature text. The \*(lqLocal\-Mailbox\*(rq profile component
378 supersedes all of this. (profile, no default)
384 Indicates how the username and password credentials will be retrieved
385 for access to external servers, such as those that provide SMTP or POP
386 service. The supported entry values are \*(lqlegacy\*(rq,
387 .RI \*(lqfile: netrc \*(rq,
389 .RI \*(lqfile\-nopermcheck: netrc \*(rq.
390 With \*(lqlegacy\*(rq, or if there is no credentials entry, the
391 username is the first of:
407 the login name on the local machine
411 The password for SMTP services is the first of:
416 password value from matching entry in file named \*(lq.netrc\*(rq
417 in the user's home directory
420 password obtained by interactively prompting the user
424 The password for POP service when the
426 switch is used with one of these programs is the login name on the
430 .RI \*(lqfile: netrc \*(rq
432 entry, the username is the first of:
441 login name from matching entry in
446 value provided by user in response to interactive query
450 Similarly, the password is provided either in the
452 file or interactively.
454 can be any valid filename, either absolute or relative to Path or
457 file contains authentication information, for each server,
458 using a line of the following form. (Replace
463 with your own account information.)
476 file must be owned and readable only by you.
479 .RI \*(lqfile\-nopermcheck: netrc \*(rq
481 entry is identical in behavior to the \*(lqfile\*(rq entry, with the
482 exception that the permission checks done by
483 \*(lqfile\*(rq are not performed. This entry should be used with
484 caution and only when absolutely necessary.
485 (profile, default: legacy)
491 If the Welcome component is not present, or its value is not
492 .RI \*(lq disable \*(rq,
493 a welcome message will be displayed the first time that an interactive
495 program is run after updating the
498 The user must press the Enter key to continue.
500 If the MHCONTEXT environment variable is set and non-empty (and
501 the Welcome component is not
502 .RI \*(lq disable \*(rq),
503 the welcome message is only displayed if the context file contains a version
504 reference, and that reference is older than the installed
506 version. The version reference is of the form:
510 Version: %nmhversion%
513 .SS "Process Profile Entries"
514 The following profile elements are used whenever an
516 program invokes some other program, such as
520 can be used to select alternate programs if the user wishes.
521 The default values are given in the examples.
523 If the profile element contains spaces, the element is split at spaces
524 into tokens and each token is given as a separate argument to the
526 system call. If the element contains shell metacharacters then the entire
527 element is executed using
533 This is the program used by
535 to process drafts which are MIME composition files.
541 This program is used to refile or link a message to another folder.
544 to file a copy of a message into a folder given
545 by a \*(lqFcc:\*(rq field. It is used by the draft folder facility in
552 message into another folder. It is used to refile a draft message in
555 directive at the \*(lqWhat now?\*(rq prompt.
562 to filter a component when it is tagged with the \*(lqformat\*(rq variable
563 in the mhl filter. See
565 for more information.
573 to incorporate new mail when it
574 is invoked with no arguments.
580 This program is used to list the contents of a message in response
583 directive at the \*(lqWhat now?\*(rq prompt. It is
584 also used by the draft folder facility in
590 to display the draft message.
592 the environment variable PAGER
593 supersedes the default built-in pager command.)
599 This is the program used to automatically mail various messages
600 and notifications. It is used by
602 to post failure notices.
603 It is used to retrieve an external-body with access-type `mail-server'
604 (such as when storing the body with
611 This is the program used to filter messages in various ways. It
614 to filter and display the message headers
615 of MIME messages. When the
626 is used to filter the
627 message that you are forwarding, or to which you are replying.
634 is used to filter the copy of the message
635 that is sent to \*(lqBcc:\*(rq recipients.
641 This is the program used by
645 formatted message when displaying to a terminal. It is also the default
648 to display message bodies (or message parts) of type text/plain.
650 the environment variable PAGER
651 supersedes the default built-in pager command.)
663 This is the program used by
672 post a message to the mail transport system. It is also called by
674 (called with the switches
678 to do address verification.
684 This is the program used by
689 to delete a message from a folder.
695 This is the program used by
697 to actually send the message
703 This is the program used by
705 to process and display non-text (MIME) messages.
711 This is the program used by
713 to filter and display text (non-MIME) messages.
719 This is the program invoked by
725 to query about the disposition of a composed draft message.
731 This is the program used by
733 to determine to whom a message would be sent.
736 After consulting .mh_profile, some programs read an optional profile
737 specified by a program-specific environment variable, and then the
738 system-wide profile %nmhetcdir%/mhn.defaults.
746 is similar, but has no optional profile.
748 The first occurrence of a component is used, e.g.\& .mh_profile's
749 trumps $MHSHOW's. A component with no value still stops further
750 occurrences being used, but is considered absent.
754 contains only static information, which
758 update. Changes in context are made to the
760 file kept in the users
762 directory. This includes, but is not limited to: the
763 \*(lqCurrent\-Folder\*(rq entry and all private sequence information.
764 Public sequence information is kept in each folder in the file
765 determined by the \*(lqmh\-sequences\*(rq 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
791 user can select any program as the
793 including one of the standard shells. As a result, it's not possible
794 to pass information via an argument list. The convention is that
795 environment variables whose names are all upper-case are user-settable;
796 those whose names are lower-case only are used internally by nmh and
797 should not generally be set by the user.
799 LC_ALL, LC_CTYPE, and LANG
800 These variables are used to set the locale, see locale(1).
801 The \*(lqlocale\*(rq profile entry supersedes these.
806 the default mail drop. This supersedes the \*(lqMailDrop\*(rq
812 the POP host to query for mail to incorporate. See
814 for more information.
817 With this environment variable, you can specify a profile
822 programs that you invoke. If the value of MH is not absolute,
823 (i.e., does not begin with a \*(lq/\*(rq), it will be presumed
824 to start from the current working directory. This is one of the
825 very few exceptions in
827 where non-absolute pathnames are not considered relative to the user's
832 With this environment variable, you can specify an additional user profile
835 in addition to the mhn.defaults profile.
838 With this environment variable, you can specify a context other than the
839 normal context file (as specified in the
841 profile). As usual, unless the value of MHCONTEXT is absolute, it will
842 be presumed to start from your
847 If this variable is set to a non-null value,
849 will emit debugging information.
852 If this variable is set to a non-null value, it specifies the
853 name of the mail transport configuration file to use by
856 and other programs that interact with the mail transport system,
857 instead of the default. See
861 If this variable is set to a non-null value, it specifies the name of
862 a mail transport configuration file to be read in addition to the
867 With this environment variable, you can specify an additional user
868 profile (file) to be read by
870 in addition to the mhn.defaults profile.
872 is deprecated, so support for this variable will be removed from a
876 With this environment variable, you can specify an additional user
877 profile (file) to be read by
879 in addition to the mhn.defaults profile.
882 With this environment variable, you can specify an additional user
883 profile (file) to be read by
885 in addition to the mhn.defaults profile.
888 These variables are searched, in order, for the directory in which to
889 create some temporary files.
890 MHTMPDIR is deprecated and will be removed in a future release of nmh.
893 If this variable is set to a non-null value,
895 commands that use the
896 .B Alternate\-Mailboxes
897 profile entry will display debugging information about the values in
901 If set to a non-null value, this supersedes the value of the default
902 built-in pager command.
909 your mail signature. This supersedes the \*(lqSignature\*(rq profile entry,
910 and is not used when the \*(lqLocal\-Mailbox\*(rq profile component is set.
917 your default mail drop: see the \*(lqMailDrop\*(rq profile entry.
920 This variable is for use with username_extension masquerading. See
924 This is the alternate message. This is set by
928 during edit sessions so you can peruse the message being distributed or
929 replied to. The message is also available, when the
931 switch is used, through a link called \*(lq@\*(rq in the current directory
932 if your current working directory and the folder the message lives in are
933 on the same Unix filesystem, and if your current working directory is
940 set mhaltmsg to tell the
942 about an alternate message associated with the
943 draft (the message being distributed or replied to).
951 if annotations are to occur.
955 sets mhdist to tell the
957 that message re-distribution is occurring.
960 This is the path to the working draft. It is set by
968 which file to ask \*(lqWhat now?\*(rq questions about.
979 the user's choice of editor (unless overridden by
983 This is the folder containing the alternate message.
988 during edit sessions so you can peruse other messages in the current
989 folder besides the one being distributed or replied to.
990 The environment variable mhfolder is also set by
1004 if annotations are to occur.
1012 if annotations are to occur.
1026 <folder>/.mh\-sequences
1027 Public sequences for <folder>.
1033 .IR mh-sequence (5),
1036 There is some question as to what kind of arguments should be placed
1037 in the profile as options. In order to provide a clear answer, recall
1038 the command line semantics of all
1040 programs: conflicting switches
1045 may occur more than one time on the command line, with the last switch
1046 taking effect. Other arguments, such as message sequences, filenames
1047 and folders, are always remembered on the invocation line and are not
1048 superseded by following arguments of the same type.
1049 Hence, it is safe to place only switches (and their arguments) in the profile.
1051 If one finds that an
1053 program is being invoked again and again with the same arguments, and those
1054 arguments aren't switches, then there are a few possible solutions to this
1055 problem. The first is to create a (soft) link in your
1059 program of your choice. By giving this link a different name, you can create
1060 a new entry in your profile and use an alternate set of defaults for
1063 command. Similarly, you could create a small shell script
1066 program of your choice with an alternate set
1067 of invocation line switches (using links and an alternate profile entry
1068 is preferable to this solution).
1072 user could create an alias for the command of the form:
1075 alias cmd 'cmd arg1 arg2 ...'
1078 In this way, the user can avoid lengthy type-in to the shell, and still
1081 commands safely. (Recall that some
1084 invoke others, and that in all cases, the profile is read, meaning that
1085 aliases are disregarded beyond an initial command invocation)