]> diplodocus.org Git - nmh/blob - man/mh-profile.man
116cb0a4e5152c17d78becf2c3ed4b1aa34dae88
[nmh] / man / mh-profile.man
1 .TH MH-PROFILE %manext5% 2016-10-19 "%nmhversion%"
2 .
3 .\" %nmhwarning%
4 .
5 .SH NAME
6 mh-profile \- user customization for nmh message handler
7 .SH DESCRIPTION
8 Each user of
9 .B nmh
10 is expected to have a file named
11 .I \&.mh\-profile
12 in their home directory. This file contains
13 a set of user parameters used by the
14 .B nmh
15 family of programs. Each entry in the file is of the format
16 .PP
17 .RS 5
18 .IR profile-component ": " value
19 .RE
20 .PP
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 `#:':
24 .PP
25 .RS 5
26 .IR # ": "
27 This is a comment.
28 .RE
29 .PP
30 Blank lines are not permitted in
31 .IR \&.mh\-profile .
32 Shell quoting conventions are not available; each token is separated
33 by whitespace.
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
39 .B nmh
40 profile or
41 .B nmh
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.
45 .PP
46 Some MH programs, including
47 .BR mhbuild ,
48 .BR mhshow ,
49 and
50 .BR mhstore ,
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.
54 .PP
55 .BR Path :
56 Mail
57 .RS 5
58 Locates
59 .B nmh
60 transactions in directory \*(lqMail\*(rq. This is the
61 only mandatory profile entry. (profile, no default)
62 .RE
63 .PP
64 .BR locale :
65 locale
66 .RS 5
67 Set the locale for all
68 .B nmh
69 programs except
70 .BR post ,
71 .BR install-mh ,
72 and
73 .BR slocal .
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.
77 .RE
78 .PP
79 .BR context :
80 context
81 .RS 5
82 Declares the location of the
83 .B nmh
84 context file. This can be overridden by the environment variable
85 MHCONTEXT.
86 See the
87 .B HISTORY
88 section below.
89 (profile, default: <nmh-dir>/context)
90 .RE
91 .PP
92 .BR Current\-Folder :
93 inbox
94 .RS 5
95 Keeps track of the current open folder.
96 (context, default: folder specified by \*(lqInbox\*(rq)
97 .RE
98 .PP
99 .BR Inbox :
100 inbox
101 .RS 5
102 Defines the name of the default inbox.
103 (profile, default: inbox)
104 .RE
105 .PP
106 .BR Previous\-Sequence :
107 .I pseq
108 .RS 5
109 Names the sequence or sequences which should be defined as the `msgs' or
110 `msg' argument given to any
111 .B nmh
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.
115 Read
116 .IR mh\-sequence (5)
117 for the details about this sequence. (profile, no default)
118 .RE
119 .PP
120 .BR Sequence\-Negation :
121 not
122 .RS 5
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
126 .IR mh\-sequence (5)
127 for the details. (profile, no default)
128 .RE
129 .PP
130 .BR Unseen\-Sequence :
131 unseen
132 .RS 5
133 Names the sequence or sequences which should be defined as those
134 messages which are unread. The commands
135 .BR inc ,
136 .BR rcvstore ,
137 .BR mhshow ,
138 and
139 .B show
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
144 .IR mh\-sequence (5)
145 for the details about this sequence.
146 (profile, no default)
147 .RE
148 .PP
149 .BR mh\-sequences :
150 \&.mh\-sequences
151 .RS 5
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)
155 .RE
156 .PP
157 .BI atr\- seq \- folder :
158 172\0178\-181\0212
159 .RS 5
160 Keeps track of the private sequence called \*(lqseq\*(rq in the specified
161 folder. Private sequences are generally used for read-only folders.
162 See
163 .IR mh\-sequence (5)
164 for details about private sequences.
165 (context, no default)
166 .RE
167 .PP
168 .BR Editor :
169 prompter
170 .RS 5
171 Defines the editor to be used by the commands
172 .BR comp ,
173 .BR dist ,
174 .BR forw ,
175 and
176 .BR repl .
177 If not set, the value will be taken from the VISUAL and EDITOR environment
178 variables. (profile, default: prompter)
179 .RE
180 .PP
181 .BR Msg\-Protect :
182 600
183 .RS 5
184 An octal number which defines the permission bits for new message files.
185 See
186 .IR chmod (1)
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)
190 .RE
191 .PP
192 .BR Folder\-Protect :
193 700
194 .RS 5
195 An octal number which defines the permission bits for new folder
196 directories. See
197 .IR chmod (1)
198 for an explanation of the octal number.
199 (profile, default: 700)
200 .RE
201 .PP
202 .BR datalocking :
203 fcntl
204 .RS 5
205 The locking algorithm used to lock changes to any
206 .B nmh
207 data files, such as sequences or context. The locking algorithm is
208 any one of the following entries:
209 .PP
210 .RS 5
211 .nf
212 %supported_locks%
213 .fi
214 .RE
215 .PP
216 Available locking algorithms can vary depending on the operating system.
217 Note: currently, transactional locking is only supported on public sequences; see
218 .IR mh\-sequence (5)
219 for more information.
220 (profile, default: fcntl)
221 .RE
222 .PP
223 .IR program :
224 .I default switches
225 .RS 5
226 Sets default switches to be used whenever the mh program
227 .I 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:
230 .PP
231 .RS 5
232 repl: \-editor /bin/ed
233 .RE
234 .PP
235 (profile, no defaults)
236 .RE
237 .PP
238 .IB lasteditor "-next:"
239 .I nexteditor
240 .RS 5
241 Names \*(lqnexteditor\*(rq to be the default editor after using
242 \*(lqlasteditor\*(rq. This takes effect at the \*(lqWhat now?\*(rq prompt
243 in
244 .BR comp ,
245 .BR dist ,
246 .BR forw ,
247 and
248 .BR repl .
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)
253 .RE
254 .PP
255 .BR Folder\-Stack :
256 .I folders
257 .RS 5
258 The contents of the folder-stack for the
259 .B folder
260 command.
261 (context, no default)
262 .RE
263 .PP
264 .BR Local\-Mailbox :
265 Your Username <user@some.host>
266 .RS 5
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
269 .B comp
270 and
271 .B repl
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
275 .B Signature
276 profile entry is
277 .I not
278 used, so it should include a signature as well. (profile,
279 default: userid@local.hostname)
280 .RE
281 .PP
282 .BR Alternate\-Mailboxes :
283 mh@uci\-750a, bug-mh*
284 .RS 5
285 Tells
286 .B repl
287 and
288 .B scan
289 which additional addresses are yours. In this way,
290 .B repl
291 knows which addresses should be included in the reply, and
292 .B scan
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)
300 .RE
301 .PP
302 .BR Aliasfile :
303 aliases
304 .I other-aliases
305 .RS 5
306 Indicates alias files for
307 .BR ali ,
308 .BR whom ,
309 and
310 .BR send .
311 This may be used instead of the
312 .B \-alias
313 .I file
314 switch. (profile, no default)
315 .RE
316 .PP
317 .BR Draft\-Folder :
318 drafts
319 .RS 5
320 Indicates a default draft folder for
321 .BR comp ,
322 .BR dist ,
323 .BR forw ,
324 .BR refile ,
325 and
326 .BR repl .
327 Read
328 .IR mh\-draft (5)
329 for details. (profile, no default)
330 .RE
331 .PP
332 .BI digest\-issue\- list :
333 1
334 .RS 5
335 Tells
336 .B forw
337 the last issue of the last volume sent for the digest
338 .IR list .
339 (context, no default)
340 .RE
341 .PP
342 .BI digest\-volume\- list :
343 1
344 .RS 5
345 Tells
346 .B forw
347 the last volume sent for the digest
348 .IR list .
349 (context, no default)
350 .RE
351 .PP
352 .BR MailDrop :
353 \&.mail
354 .RS 5
355 Tells
356 .B inc
357 your mail drop, if different from the default. This is
358 superseded by the environment variable MAILDROP.
359 (profile, default: %mailspool%/$USER)
360 .RE
361 .PP
362 .BR Signature :
363 RAND MH System (agent: Marshall Rose)
364 .RS 5
365 Tells front-end programs such as
366 .BR comp ,
367 .BR forw ,
368 and
369 .B repl
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
375 .B send
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)
379 .RE
380 .PP
381 .BR credentials :
382 legacy
383 .RS 5
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,
388 and
389 .RI \*(lqfile\-nopermcheck: netrc \*(rq.
390 With \*(lqlegacy\*(rq, or if there is no credentials entry, the
391 username is the first of:
392 .RS 5
393 .TP 5
394 .PD 0
395 1)
396 .B \-user
397 switch to
398 .BR inc ,
399 .BR msgchk ,
400 .BR post ,
401 .BR send ,
402 or
403 .B whom
404 program
405 .TP
406 2)
407 the login name on the local machine
408 .PD
409 .RE
410 .PP
411 The password for SMTP services is the first of:
412 .RS 5
413 .TP 5
414 .PD 0
415 1)
416 password value from matching entry in file named \*(lq.netrc\*(rq
417 in the user's home directory
418 .TP
419 2)
420 password obtained by interactively prompting the user
421 .PD
422 .RE
423 .PP
424 The password for POP service when the
425 .B \-sasl
426 switch is used with one of these programs is the login name on the
427 local machine.
428 .PP
429 With a
430 .RI \*(lqfile: netrc \*(rq
431 .B credentials
432 entry, the username is the first of:
433 .RS 5
434 .PD 0
435 .TP 5
436 1)
437 .B \-user
438 switch to program
439 .TP 5
440 2)
441 login name from matching entry in
442 .I netrc
443 file
444 .TP 5
445 3)
446 value provided by user in response to interactive query
447 .PD
448 .RE
449 .PP
450 Similarly, the password is provided either in the
451 .I netrc
452 file or interactively.
453 .I netrc
454 can be any valid filename, either absolute or relative to Path or
455 $HOME. The
456 .I netrc
457 file contains authentication information, for each server,
458 using a line of the following form. (Replace
459 .IR myserver ,
460 .IR mylogin ,
461 and
462 .I mypassword
463 with your own account information.)
464 .PP
465 .RS 5
466 .B machine
467 .I myserver
468 .B login
469 .I mylogin
470 .B password
471 .I mypassword
472 .RE
473 .PP
474 This
475 .I netrc
476 file must be owned and readable only by you.
477 .PP
478 The
479 .RI \*(lqfile\-nopermcheck: netrc \*(rq
480 .B credentials
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)
486 .RE
487 .PP
488 .BR Welcome :
489 disable
490 .RS 5
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
494 .B nmh
495 program is run after updating the
496 .B nmh
497 installation.
498 The user must press the Enter key to continue.
499 .PP
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
505 .B nmh
506 version. The version reference is of the form:
507 .PP
508 .RS 5
509 .nf
510 Version: %nmhversion%
511 .fi
512 .RE
513 .RE
514 .SS "Process Profile Entries"
515 The following profile elements are used whenever an
516 .B nmh
517 program invokes some other program, such as
518 .BR more .
519 The
520 .I \&.mh\-profile
521 can be used to select alternate programs if the user wishes.
522 The default values are given in the examples.
523 .PP
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
526 .IR execvp (2)
527 system call. If the element contains shell metacharacters then the entire
528 element is executed using
529 .BR /bin/sh .
530 .PP
531 .BR buildmimeproc :
532 %bindir%/mhbuild
533 .RS 5
534 This is the program used by
535 .B whatnow
536 to process drafts which are MIME composition files.
537 .RE
538 .PP
539 .BR fileproc :
540 %bindir%/refile
541 .RS 5
542 This program is used to refile or link a message to another folder.
543 It is used by
544 .B send
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
547 .BR comp ,
548 .BR dist ,
549 .BR forw ,
550 and
551 .B repl
552 to refile a draft
553 message into another folder. It is used to refile a draft message in
554 response to the
555 .B refile
556 directive at the \*(lqWhat now?\*(rq prompt.
557 .RE
558 .PP
559 .BR formatproc :
560 .RS 5
561 Program called by
562 .B mhl
563 to filter a component when it is tagged with the \*(lqformat\*(rq variable
564 in the mhl filter. See
565 .IR mhl (5)
566 for more information.
567 .RE
568 .PP
569 .BR incproc :
570 %bindir%/inc
571 .RS 5
572 Program called by
573 .B mhmail
574 to incorporate new mail when it
575 is invoked with no arguments.
576 .RE
577 .PP
578 .BR lproc :
579 more
580 .RS 5
581 This program is used to list the contents of a message in response
582 to the
583 .B list
584 directive at the \*(lqWhat now?\*(rq prompt. It is
585 also used by the draft folder facility in
586 .BR comp ,
587 .BR dist ,
588 .BR forw ,
589 and
590 .B repl
591 to display the draft message.
592 (Note that
593 the environment variable PAGER
594 supersedes the default built-in pager command.)
595 .RE
596 .PP
597 .BR mailproc :
598 %bindir%/mhmail
599 .RS 5
600 This is the program used to automatically mail various messages
601 and notifications. It is used by
602 .B send
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
606 .BR mhstore ).
607 .RE
608 .PP
609 .BR mhlproc :
610 %nmhlibexecdir%/mhl
611 .RS 5
612 This is the program used to filter messages in various ways. It
613 is used by
614 .B mhshow
615 to filter and display the message headers
616 of MIME messages. When the
617 .B \-format
618 or
619 .B \-filter
620 option is used
621 by
622 .B forw
623 or
624 .BR repl ,
625 the
626 .I mhlproc
627 is used to filter the
628 message that you are forwarding, or to which you are replying.
629 When the
630 .B \-filter
631 option is given to
632 .BR send ,
633 the
634 .I mhlproc
635 is used to filter the copy of the message
636 that is sent to \*(lqBcc:\*(rq recipients.
637 .RE
638 .PP
639 .BR moreproc :
640 more
641 .RS 5
642 This is the program used by
643 .B mhl
644 to page the
645 .B mhl
646 formatted message when displaying to a terminal. It is also the default
647 program used by
648 .B mhshow
649 to display message bodies (or message parts) of type text/plain.
650 (Note that
651 the environment variable PAGER
652 supersedes the default built-in pager command.)
653 .RE
654 .PP
655 .BR packproc :
656 %bindir%/packf
657 .RS 5
658 Currently not used.
659 .RE
660 .PP
661 .BR postproc :
662 %nmhlibexecdir%/post
663 .RS 5
664 This is the program used by
665 .BR send ,
666 .BR mhmail ,
667 .BR rcvdist ,
668 and
669 .B viamail
670 (used by the
671 .B sendfiles
672 shell script) to
673 post a message to the mail transport system. It is also called by
674 .B whom
675 (called with the switches
676 .B \-whom
677 and
678 .BR \-library )
679 to do address verification.
680 .PP
681 If the profile contains a
682 .B post
683 component and a
684 .B postproc
685 component is not present, a warning message that the
686 .B post
687 component will be ignored will be displayed by every
688 .B nmh
689 program that reads the profile and has its stderr associated with a terminal.
690 .RE
691 .PP
692 .BR rmmproc :
693 none
694 .RS 5
695 This is the program used by
696 .BR rmm ,
697 .BR refile ,
698 and
699 .B mhfixmsg
700 to delete a message from a folder.
701 .RE
702 .PP
703 .BR sendproc :
704 %bindir%/send
705 .RS 5
706 This is the program used by
707 .B whatnow
708 to actually send the message
709 .RE
710 .PP
711 .BR showmimeproc :
712 %bindir%/mhshow
713 .RS 5
714 This is the program used by
715 .B show
716 to process and display non-text (MIME) messages.
717 .RE
718 .PP
719 .BR showproc :
720 %nmhlibexecdir%/mhl
721 .RS 5
722 This is the program used by
723 .B show
724 to filter and display text (non-MIME) messages.
725 .RE
726 .PP
727 .BR whatnowproc :
728 %bindir%/whatnow
729 .RS 5
730 This is the program invoked by
731 .BR comp ,
732 .BR dist ,
733 .BR forw ,
734 and
735 .B repl
736 to query about the disposition of a composed draft message.
737 .RE
738 .PP
739 .BR whomproc :
740 %bindir%/whom
741 .RS 5
742 This is the program used by
743 .B whatnow
744 to determine to whom a message would be sent.
745 .RE
746 .SS "Profile Lookup"
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.
750 These programs are
751 .BR mhbuild ,
752 .BR mhshow ,
753 .BR mhstore ,
754 and
755 .BR mhn .
756 .B mhfixmsg
757 is similar, but has no optional profile.
758 .PP
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.
762 .PP
763 The
764 .I \&.mh\-profile
765 contains only static information, which
766 .B nmh
767 programs will
768 .I not
769 update. Changes in context are made to the
770 .I context
771 file kept in the users
772 .B nmh
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 ).
778 .PP
779 The
780 .I \&.mh\-profile
781 may override the path of the
782 .I context
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
786 .B nmh
787 directory. As a result, you can actually have more than one set of
788 private sequences by using different context files.
789 .SH ENVIRONMENT
790 The operation of
791 .B nmh
792 and its commands it also controlled by the
793 presence of certain environment variables.
794 .PP
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
799 .B nmh
800 user, isn't it? The reason for all this is that the
801 .B nmh
802 user can select any program as the
803 .IR whatnowproc ,
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.
809 .TP
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.
813 .TP
814 MAILDROP
815 This variable tells
816 .B inc
817 the default mail drop. This supersedes the \*(lqMailDrop\*(rq
818 profile entry.
819 .TP
820 MAILHOST
821 This variable tells
822 .B inc
823 the POP host to query for mail to incorporate. See
824 .IR inc (1)
825 for more information.
826 .TP
827 MH
828 With this environment variable, you can specify a profile
829 other than
830 .I \&.mh\-profile
831 to be read by the
832 .B nmh
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
837 .B nmh
838 where non-absolute pathnames are not considered relative to the user's
839 .B nmh
840 directory.
841 .TP
842 MHBUILD
843 With this environment variable, you can specify an additional user profile
844 (file) to be read by
845 .BR mhbuild ,
846 in addition to the mhn.defaults profile.
847 .TP
848 MHCONTEXT
849 With this environment variable, you can specify a context other than the
850 normal context file (as specified in the
851 .B nmh
852 profile). As usual, unless the value of MHCONTEXT is absolute, it will
853 be presumed to start from your
854 .B nmh
855 directory.
856 .TP
857 MHLDEBUG
858 If this variable is set to a non-null value,
859 .B mhl
860 will emit debugging information.
861 .TP
862 MHMTSCONF
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
865 .BR inc ,
866 .BR post ,
867 and other programs that interact with the mail transport system,
868 instead of the default. See
869 .IR mh-tailor (5).
870 .TP
871 MHMTSUSERCONF
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
874 default. See
875 .IR mh-tailor (5).
876 .TP
877 MHN
878 With this environment variable, you can specify an additional user
879 profile (file) to be read by
880 .BR mhn ,
881 in addition to the mhn.defaults profile.
882 .B mhn
883 is deprecated, so support for this variable will be removed from a
884 future nmh release.
885 .TP
886 MHSHOW
887 With this environment variable, you can specify an additional user
888 profile (file) to be read by
889 .BR mhshow ,
890 in addition to the mhn.defaults profile.
891 .TP
892 MHSTORE
893 With this environment variable, you can specify an additional user
894 profile (file) to be read by
895 .BR mhstore ,
896 in addition to the mhn.defaults profile.
897 .TP
898 MHTMPDIR, TMPDIR
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.
902 .TP
903 MHWDEBUG
904 If this variable is set to a non-null value,
905 .B nmh
906 commands that use the
907 .B Alternate\-Mailboxes
908 profile entry will display debugging information about the values in
909 that entry.
910 .TP
911 PAGER
912 If set to a non-null value, this supersedes the value of the default
913 built-in pager command.
914 .TP
915 SIGNATURE
916 This variable tells
917 .B send
918 and
919 .B post
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.
922 .TP
923 USER
924 This variable tells
925 .B repl
926 your user name and
927 .B inc
928 your default mail drop: see the \*(lqMailDrop\*(rq profile entry.
929 .TP
930 USERNAME_EXTENSION
931 This variable is for use with username_extension masquerading. See
932 .IR mh-tailor (5).
933 .TP
934 editalt
935 This is the alternate message. This is set by
936 .B dist
937 and
938 .B repl
939 during edit sessions so you can peruse the message being distributed or
940 replied to. The message is also available, when the
941 .B \-atfile
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
945 writable.
946 .TP
947 mhaltmsg
948 .B dist
949 and
950 .B repl
951 set mhaltmsg to tell the
952 .I whatnowproc
953 about an alternate message associated with the
954 draft (the message being distributed or replied to).
955 .TP
956 mhannotate
957 This is set by
958 .BR dist ,
959 .BR forw ,
960 and
961 .B repl
962 if annotations are to occur.
963 .TP
964 mhdist
965 .B dist
966 sets mhdist to tell the
967 .I whatnowproc
968 that message re-distribution is occurring.
969 .TP
970 mhdraft
971 This is the path to the working draft. It is set by
972 .BR comp ,
973 .BR dist ,
974 .BR forw ,
975 and
976 .B repl
977 to tell the
978 .I whatnowproc
979 which file to ask \*(lqWhat now?\*(rq questions about.
980 .TP
981 mheditor
982 This is set by
983 .BR comp ,
984 .BR repl ,
985 .BR forw ,
986 and
987 .B dist
988 to tell the
989 .I whatnowproc
990 the user's choice of editor (unless overridden by
991 .BR \-noedit ).
992 .TP
993 mhfolder
994 This is the folder containing the alternate message.
995 It is set by
996 .B dist
997 and
998 .B repl
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
1002 .BR next ,
1003 .BR prev ,
1004 and
1005 .B show
1006 for use by
1007 .BR mhl .
1008 .TP
1009 mhinplace
1010 This is set by
1011 .BR dist ,
1012 .BR forw ,
1013 and
1014 .B repl
1015 if annotations are to occur.
1016 .TP
1017 mhmessages
1018 This is set by
1019 .BR dist ,
1020 .BR forw ,
1021 and
1022 .B repl
1023 if annotations are to occur.
1024 .TP
1025 mhuse
1026 This may be set by
1027 .BR comp .
1028 .SH FILES
1029 .PD 0
1030 .TP 20
1031 $HOME/.mh\-profile
1032 The user's profile.
1033 .TP
1034 <mh-dir>/context
1035 The user's context
1036 .TP
1037 <folder>/.mh\-sequences
1038 Public sequences for <folder>.
1039 .PD
1040 .SH "SEE ALSO"
1041 .IR mhbuild (1),
1042 .IR mhshow (1),
1043 .IR mhstore (1),
1044 .IR mh-sequence (5),
1045 .IR nmh (7)
1046 .SH BUGS
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
1050 .B nmh
1051 programs: conflicting switches
1052 (e.g.
1053 .B \-header
1054 and
1055 .BR \-noheader )
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.
1061 .PP
1062 If one finds that an
1063 .B nmh
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
1067 .I $HOME/bin
1068 directory to the
1069 .B nmh
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
1072 the
1073 .B nmh
1074 command. Similarly, you could create a small shell script
1075 which called the
1076 .B nmh
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).
1080 .PP
1081 Finally, the
1082 .B csh
1083 user could create an alias for the command of the form:
1084 .PP
1085 .RS 5
1086 alias cmd 'cmd arg1 arg2 ...'
1087 .RE
1088 .PP
1089 In this way, the user can avoid lengthy type-in to the shell, and still
1090 give
1091 .B nmh
1092 commands safely. (Recall that some
1093 .B nmh
1094 commands
1095 invoke others, and that in all cases, the profile is read, meaning that
1096 aliases are disregarded beyond an initial command invocation)