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: prompter)
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%
514 .SS "Process Profile Entries"
515 The following profile elements are used whenever an
517 program invokes some other program, such as
521 can be used to select alternate programs if the user wishes.
522 The default values are given in the examples.
524 If the profile element contains spaces, the element is split at spaces
525 into tokens and each token is given as a separate argument to the
527 system call. If the element contains shell metacharacters then the entire
528 element is executed using
534 This is the program used by
536 to process drafts which are MIME composition files.
542 This program is used to refile or link a message to another folder.
545 to file a copy of a message into a folder given
546 by a \*(lqFcc:\*(rq field. It is used by the draft folder facility in
553 message into another folder. It is used to refile a draft message in
556 directive at the \*(lqWhat now?\*(rq prompt.
563 to filter a component when it is tagged with the \*(lqformat\*(rq variable
564 in the mhl filter. See
566 for more information.
574 to incorporate new mail when it
575 is invoked with no arguments.
581 This program is used to list the contents of a message in response
584 directive at the \*(lqWhat now?\*(rq prompt. It is
585 also used by the draft folder facility in
591 to display the draft message.
593 the environment variable PAGER
594 supersedes the default built-in pager command.)
600 This is the program used to automatically mail various messages
601 and notifications. It is used by
603 to post failure notices.
604 It is used to retrieve an external-body with access-type `mail-server'
605 (such as when storing the body with
612 This is the program used to filter messages in various ways. It
615 to filter and display the message headers
616 of MIME messages. When the
627 is used to filter the
628 message that you are forwarding, or to which you are replying.
635 is used to filter the copy of the message
636 that is sent to \*(lqBcc:\*(rq recipients.
642 This is the program used by
646 formatted message when displaying to a terminal. It is also the default
649 to display message bodies (or message parts) of type text/plain.
651 the environment variable PAGER
652 supersedes the default built-in pager command.)
664 This is the program used by
673 post a message to the mail transport system. It is also called by
675 (called with the switches
679 to do address verification.
681 If the profile contains a
685 component is not present, a warning message that the
687 component will be ignored will be displayed by every
689 program that reads the profile and has its stderr associated with a terminal.
695 This is the program used by
700 to delete a message from a folder.
706 This is the program used by
708 to actually send the message
714 This is the program used by
716 to process and display non-text (MIME) messages.
722 This is the program used by
724 to filter and display text (non-MIME) messages.
730 This is the program invoked by
736 to query about the disposition of a composed draft message.
742 This is the program used by
744 to determine to whom a message would be sent.
747 After consulting .mh_profile, some programs read an optional profile
748 specified by a program-specific environment variable, and then the
749 system-wide profile %nmhetcdir%/mhn.defaults.
757 is similar, but has no optional profile.
759 The first occurrence of a component is used, e.g.\& .mh_profile's
760 trumps $MHSHOW's. A component with no value still stops further
761 occurrences being used, but is considered absent.
765 contains only static information, which
769 update. Changes in context are made to the
771 file kept in the users
773 directory. This includes, but is not limited to: the
774 \*(lqCurrent\-Folder\*(rq entry and all private sequence information.
775 Public sequence information is kept in each folder in the file
776 determined by the \*(lqmh\-sequences\*(rq profile entry (default is
777 .IR \&.mh\-sequences ).
781 may override the path of the
783 file, by specifying a \*(lqcontext\*(rq entry (this must be in
784 lower-case). If the entry is not absolute (does not start with a
785 \*(lq/\*(rq), then it is interpreted relative to the user's
787 directory. As a result, you can actually have more than one set of
788 private sequences by using different context files.
792 and its commands it also controlled by the
793 presence of certain environment variables.
795 Many of these environment variables are used internally by the
796 \*(lqWhat now?\*(rq interface. It's amazing all the information
797 that has to get passed via environment variables to make the
798 \*(lqWhat now?\*(rq interface look squeaky clean to the
800 user, isn't it? The reason for all this is that the
802 user can select any program as the
804 including one of the standard shells. As a result, it's not possible
805 to pass information via an argument list. The convention is that
806 environment variables whose names are all upper-case are user-settable;
807 those whose names are lower-case only are used internally by nmh and
808 should not generally be set by the user.
810 LC_ALL, LC_CTYPE, and LANG
811 These variables are used to set the locale, see locale(1).
812 The \*(lqlocale\*(rq profile entry supersedes these.
817 the default mail drop. This supersedes the \*(lqMailDrop\*(rq
823 the POP host to query for mail to incorporate. See
825 for more information.
828 With this environment variable, you can specify a profile
833 programs that you invoke. If the value of MH is not absolute,
834 (i.e., does not begin with a \*(lq/\*(rq), it will be presumed
835 to start from the current working directory. This is one of the
836 very few exceptions in
838 where non-absolute pathnames are not considered relative to the user's
843 With this environment variable, you can specify an additional user profile
846 in addition to the mhn.defaults profile.
849 With this environment variable, you can specify a context other than the
850 normal context file (as specified in the
852 profile). As usual, unless the value of MHCONTEXT is absolute, it will
853 be presumed to start from your
858 If this variable is set to a non-null value,
860 will emit debugging information.
863 If this variable is set to a non-null value, it specifies the
864 name of the mail transport configuration file to use by
867 and other programs that interact with the mail transport system,
868 instead of the default. See
872 If this variable is set to a non-null value, it specifies the name of
873 a mail transport configuration file to be read in addition to the
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.
883 is deprecated, so support for this variable will be removed from a
887 With this environment variable, you can specify an additional user
888 profile (file) to be read by
890 in addition to the mhn.defaults profile.
893 With this environment variable, you can specify an additional user
894 profile (file) to be read by
896 in addition to the mhn.defaults profile.
899 These variables are searched, in order, for the directory in which to
900 create some temporary files.
901 MHTMPDIR is deprecated and will be removed in a future release of nmh.
904 If this variable is set to a non-null value,
906 commands that use the
907 .B Alternate\-Mailboxes
908 profile entry will display debugging information about the values in
912 If set to a non-null value, this supersedes the value of the default
913 built-in pager command.
920 your mail signature. This supersedes the \*(lqSignature\*(rq profile entry,
921 and is not used when the \*(lqLocal\-Mailbox\*(rq profile component is set.
928 your default mail drop: see the \*(lqMailDrop\*(rq profile entry.
931 This variable is for use with username_extension masquerading. See
935 This is the alternate message. This is set by
939 during edit sessions so you can peruse the message being distributed or
940 replied to. The message is also available, when the
942 switch is used, through a link called \*(lq@\*(rq in the current directory
943 if your current working directory and the folder the message lives in are
944 on the same Unix filesystem, and if your current working directory is
951 set mhaltmsg to tell the
953 about an alternate message associated with the
954 draft (the message being distributed or replied to).
962 if annotations are to occur.
966 sets mhdist to tell the
968 that message re-distribution is occurring.
971 This is the path to the working draft. It is set by
979 which file to ask \*(lqWhat now?\*(rq questions about.
990 the user's choice of editor (unless overridden by
994 This is the folder containing the alternate message.
999 during edit sessions so you can peruse other messages in the current
1000 folder besides the one being distributed or replied to.
1001 The environment variable mhfolder is also set by
1015 if annotations are to occur.
1023 if annotations are to occur.
1037 <folder>/.mh\-sequences
1038 Public sequences for <folder>.
1044 .IR mh-sequence (5),
1047 There is some question as to what kind of arguments should be placed
1048 in the profile as options. In order to provide a clear answer, recall
1049 the command line semantics of all
1051 programs: conflicting switches
1056 may occur more than one time on the command line, with the last switch
1057 taking effect. Other arguments, such as message sequences, filenames
1058 and folders, are always remembered on the invocation line and are not
1059 superseded by following arguments of the same type.
1060 Hence, it is safe to place only switches (and their arguments) in the profile.
1062 If one finds that an
1064 program is being invoked again and again with the same arguments, and those
1065 arguments aren't switches, then there are a few possible solutions to this
1066 problem. The first is to create a (soft) link in your
1070 program of your choice. By giving this link a different name, you can create
1071 a new entry in your profile and use an alternate set of defaults for
1074 command. Similarly, you could create a small shell script
1077 program of your choice with an alternate set
1078 of invocation line switches (using links and an alternate profile entry
1079 is preferable to this solution).
1083 user could create an alias for the command of the form:
1086 alias cmd 'cmd arg1 arg2 ...'
1089 In this way, the user can avoid lengthy type-in to the shell, and still
1092 commands safely. (Recall that some
1095 invoke others, and that in all cases, the profile is read, meaning that
1096 aliases are disregarded beyond an initial command invocation)