1MH-PROFILE(5) [nmh-1.3] MH-PROFILE(5)
2
3
4
6 mh-profile - user profile customization for nmh message handler
7
9 $HOME/.mh_profile
10
12 Each user of nmh is expected to have a file named .mh_profile in his or
13 her home directory. This file contains a set of user parameters used
14 by some or all of the nmh family of programs. Each entry in the file
15 is of the format
16
17 profile-component: value
18
19 If the text of profile entry is long, you may extend it across several
20 real lines by indenting the continuation lines with leading spaces or
21 tabs.
22
23
24 Standard Profile Entries
25 The possible profile components are exemplified below. The only manda‐
26 tory entry is `Path:'. The others are optional; some have default val‐
27 ues if they are not present. In the notation used below, (profile,
28 default) indicates whether the information is kept in the user's nmh
29 profile or nmh context, and indicates what the default value is.
30
31 Path: Mail
32 Locates nmh transactions in directory “Mail”. This is the only
33 mandatory profile entry. (profile, no default)
34
35 context: context
36 Declares the location of the nmh context file. This is overridden
37 by the environment variable $MHCONTEXT. See the HISTORY section
38 below. (profile, default: <nmh-dir>/context)
39
40 Current-Folder: inbox
41 Keeps track of the current open folder. (context, default: folder
42 specified by “Inbox”)
43
44 Inbox: inbox
45 Defines the name of your default inbox. (profile, default: inbox)
46
47 Previous-Sequence: pseq
48 Names the sequence or sequences which should be defined as the
49 `msgs' or `msg' argument given to any nmh command. If not present
50 or empty, no such sequences are defined. Otherwise, for each name
51 given, the sequence is first zero'd and then each message is added
52 to the sequence. Read the mh-sequence(5) man page for the details
53 about this sequence. (profile, no default)
54
55 Sequence-Negation: not
56 Defines the string which, when prefixed to a sequence name,
57 negates that sequence. Hence, “notseen” means all those messages
58 that are not a member of the sequence “seen”. Read the
59 mh-sequence(5) man page for the details. (profile, no default)
60
61 Unseen-Sequence: unseen
62 Names the sequence or sequences which should be defined as those
63 messages which are unread. The commands inc, rcvstore, mhshow,
64 and show will add or remove messages from these sequences when
65 they are incorporated or read. If not present or empty, no such
66 sequences are defined. Otherwise, each message is added to, or
67 removed from, each sequence name given. Read the mh-sequence(5)
68 man page for the details about this sequence. (profile, no
69 default)
70
71 mh-sequences: .mh_sequences
72 The name of the file in each folder which defines public
73 sequences. To disable the use of public sequences, leave the
74 value portion of this entry blank. (profile, default:
75 .mh_sequences)
76
77 atr-seq-folder: 172 178-181 212
78 Keeps track of the private sequence called “seq” in the specified
79 folder. Private sequences are generally used for read-only fold‐
80 ers. See the mh-sequence(5) man page for details about private
81 sequences. (context, no default)
82
83 Editor: /usr/bin/vi
84 Defines the editor to be used by the commands comp, dist, forw,
85 and repl. (profile, default: /bin/vi)
86
87 automimeproc:
88 If defined and set to 1, then the whatnow program will automati‐
89 cally invoke the buildmimeproc (discussed below) to process each
90 message as a MIME composition draft before it is sent. (profile,
91 no default)
92
93 Msg-Protect: 644
94 An octal number which defines the permission bits for new message
95 files. See chmod(1) for an explanation of the octal number.
96 (profile, default: 0644)
97
98 Folder-Protect: 750
99 An octal number which defines the permission bits for new folder
100 directories. See chmod(1) for an explanation of the octal number.
101 (profile, default: 700)
102
103 program: default switches
104 Sets default switches to be used whenever the mh program program
105 is invoked. For example, one could override the “Editor:” profile
106 component when replying to messages by adding a component such as:
107
108 repl: -editor /bin/ed
109
110 (profile, no defaults)
111
112 lasteditor-next: nexteditor
113 Names “nexteditor” to be the default editor after using “lastedi‐
114 tor”. This takes effect at “What now?” prompt in comp, dist,
115 forw, and repl. After editing the draft with “lasteditor”, the
116 default editor is set to be “nexteditor”. If the user types
117 “edit” without any arguments to “What now?”, then “nexteditor” is
118 used. (profile, no default)
119
120 bboards: system
121 Tells bbc which BBoards you are interested in. (profile, default:
122 system)
123
124 Folder-Stack: folders
125 The contents of the folder-stack for the folder command. (con‐
126 text, no default)
127
128 mhe:
129 If present, tells inc to compose an MHE auditfile in addition to
130 its other tasks. MHE is Brian Reid's emacs front-end for nmh.
131 (profile, no default)
132
133 Alternate-Mailboxes: mh@uci-750a, bug-mh*
134 Tells repl and scan which addresses are really yours. In this
135 way, repl knows which addresses should be included in the reply,
136 and scan knows if the message really originated from you.
137 Addresses must be separated by a comma, and the hostnames listed
138 should be the “official” hostnames for the mailboxes you indicate,
139 as local nicknames for hosts are not replaced with their official
140 site names. For each address, if a host is not given, then that
141 address on any host is considered to be you. In addition, an
142 asterisk (`*') may appear at either or both ends of the mailbox
143 and host to indicate wild-card matching. (profile, default: your
144 user-id)
145
146 Aliasfile: aliases other-alias
147 Indicates aliases files for ali, whom, and send. This may be used
148 instead of the -alias file switch. (profile, no default)
149
150 Draft-Folder: drafts
151 Indicates a default draft folder for comp, dist, forw, and repl.
152 Read the mh-draft(5) man page for details. (profile, no default)
153
154 digest-issue-list: 1
155 Tells forw the last issue of the last volume sent for the digest
156 list. (context, no default)
157
158 digest-volume-list: 1
159 Tells forw the last volume sent for the digest list. (context, no
160 default)
161
162 MailDrop: .mail
163 Tells inc your maildrop, if different from the default. This is
164 superseded by the environment variable $MAILDROP. (profile,
165 default: /var/mail/$USER)
166
167 Signature: RAND MH System (agent: Marshall Rose)
168 Tells send your mail signature. This is superseded by the envi‐
169 ronment variable $SIGNATURE. If $SIGNATURE is not set and this
170 profile entry is not present, the “gcos” field of the /etc/passwd
171 file will be used; otherwise, on hosts where nmh was configured
172 with the UCI option, the file $HOME/.signature is consulted. Your
173 signature will be added to the address send puts in the “From:”
174 header; do not include an address in the signature text. (pro‐
175 file, no default)
176
177
178 Process Profile Entries
179 The following profile elements are used whenever an nmh program invokes
180 some other program such as more. The .mh_profile can be used to select
181 alternate programs if the user wishes. The default values are given in
182 the examples.
183
184 buildmimeproc: /usr/bin/mhbuild
185 This is the program used by whatnow to process drafts which are
186 MIME composition files.
187
188 fileproc: /usr/bin/refile
189 This program is used to refile or link a message to another
190 folder. It is used by post to file a copy of a message into a
191 folder given by a “Fcc:” field. It is used by the draft folder
192 facility in comp, dist, forw, and repl to refile a draft message
193 into another folder. It is used to refile a draft message in
194 response to the refile directive at the “What now?” prompt.
195
196 incproc: /usr/bin/inc
197 Program called by mhmail to incorporate new mail when it is
198 invoked with no arguments.
199
200 installproc: /usr/libexec/nmh/install-mh
201 This program is called to initialize the environment for new users
202 of nmh.
203
204 lproc: /bin/more
205 This program is used to list the contents of a message in response
206 to the list directive at the “What now?” prompt. It is also used
207 by the draft folder facility in comp, dist, forw, and repl to dis‐
208 play the draft message.
209
210 mailproc: /usr/bin/mhmail
211 This is the program used to automatically mail various messages
212 and notifications. It is used by conflict when using the -mail
213 option. It is used by send to post failure notices. It is used
214 to retrieve an external-body with access-type `mail-server' (such
215 as when storing the body with mhstore).
216
217 mhlproc: /usr/libexec/nmh/mhl
218 This is the program used to filter messages in various ways. It
219 is used by mhshow to filter and display the message headers of
220 MIME messages. When the -format or -filter option is used by forw
221 or repl, the mhlproc is used to filter the message that you are
222 forwarding, or to which you are replying. When the -filter option
223 is given to send or post, the mhlproc is used by post to filter
224 the copy of the message that is sent to “Bcc:” recipients.
225
226 moreproc: /bin/more
227 This is the program used by mhl to page the mhl formatted message
228 when displaying to a terminal. It is also the default program
229 used by mhshow to display message bodies (or message parts) of
230 type text/plain.
231
232 mshproc: /usr/bin/msh
233 Currently not used.
234
235 packproc: /usr/bin/packf
236 Currently not used.
237
238 postproc: /usr/libexec/nmh/post
239 This is the program used by send, mhmail, rcvdist, and viamail
240 (used by the sendfiles shell script) to post a message to the mail
241 transport system. It is also called by whom (called with the
242 switches -whom and -library) to do address verification.
243
244 rmmproc: none
245 This is the program used by rmm and refile to delete a message
246 from a folder.
247
248 rmfproc: /usr/bin/rmf
249 Currently not used.
250
251 sendproc: /usr/bin/send
252 This is the program to use by whatnow to actually send the message
253
254 showmimeproc: /usr/bin/mhshow
255 This is the program used by show to process and display non-text
256 (MIME) messages.
257
258 showproc: /usr/libexec/nmh/mhl
259 This is the program used by show to filter and display text (non-
260 MIME) messages.
261
262 whatnowproc: /usr/bin/whatnow
263 This is the program invoked by comp, forw, dist, and repl to query
264 about the disposition of a composed draft message.
265
266 whomproc: /usr/bin/whom
267 This is the program used by whatnow to determine to whom a message
268 would be sent.
269
270
271 Environment Variables
272 The operation of nmh and its commands it also controlled by the pres‐
273 ence of certain environment variables.
274
275 Many of these environment variables are used internally by the “What
276 now?” interface. It's amazing all the information that has to get
277 passed via environment variables to make the “What now?” interface look
278 squeaky clean to the nmh user, isn't it? The reason for all this is
279 that the nmh user can select any program as the whatnowproc, including
280 one of the standard shells. As a result, it's not possible to pass
281 information via an argument list. The convention is that environment
282 variables whose names are all upper-case are user-settable; those whose
283 names are lower-case only are used internally by nmh and should not
284 generally be set by the user.
285
286 If the WHATNOW option was set during nmh configuration, and if this
287 environment variable is set, then if the commands refile , send, show,
288 or whom are not given any `msgs' arguments, then they will default to
289 using the file indicated by mh-draft(5). This is useful for getting
290 the default behavior supplied by the default whatnowproc.
291
292 $MH
293 With this environment variable, you can specify a profile other
294 than .mh_profile to be read by the nmh programs that you invoke.
295 If the value of $MH is not absolute, (i.e., does not begin with a
296 “/”), it will be presumed to start from the current working direc‐
297 tory. This is one of the very few exceptions in nmh where non-
298 absolute pathnames are not considered relative to the user's nmh
299 directory.
300
301 $MHCONTEXT
302 With this environment variable, you can specify a context other
303 than the normal context file (as specified in the nmh profile).
304 As always, unless the value of $MHCONTEXT is absolute, it will be
305 presumed to start from your nmh directory.
306
307 $MM_CHARSET
308 With this environment variable, you can specify the native charac‐
309 ter set you are using. You must be able to display this character
310 set on your terminal.
311
312 This variable is checked to see if a RFC-2047 header field should
313 be decoded (in inc, scan, mhl). This variable is checked by show
314 to see if the showproc or showmimeproc should be called, since
315 showmimeproc will be called if a text message uses a character set
316 that doesn't match $MM_CHARSET. This variable is checked by
317 mhshow for matches against the charset parameter of text contents
318 to decide it the text content can be displayed without modifica‐
319 tions to your terminal. This variable is checked by mhbuild to
320 decide what character set to specify in the charset parameter of
321 text contents containing 8-bit characters.
322
323 When decoding text in such an alternate character set, nmh must be
324 able to determine which characters are alphabetic, which are con‐
325 trol characters, etc. For many operating systems, this will
326 require enabling the support for locales (such as setting the
327 environment variable $LC_CTYPE to iso_8859_1).
328
329 $MAILDROP
330 This variable tells inc the default maildrop. This supersedes the
331 “MailDrop” profile entry.
332
333 $SIGNATURE
334 This variable tells send and post your mail signature. This super‐
335 sedes the “Signature” profile entry.
336
337 $HOME
338 This variable tells all nmh programs your home directory
339
340 $SHELL
341 This variable tells bbl the default shell to run
342
343 $TERM
344 This variable tells nmh your terminal type.
345
346 The environment variable $TERMCAP is also consulted. In particu‐
347 lar, these tell scan and mhl how to clear your terminal, and how
348 many columns wide your terminal is. They also tell mhl how many
349 lines long your terminal screen is.
350
351 $editalt
352 This is the alternate message.
353
354 This is set by dist and repl during edit sessions so you can
355 peruse the message being distributed or replied to. The message
356 is also available through a link called “@” in the current direc‐
357 tory if your current working directory and the folder the message
358 lives in are on the same UNIX filesystem.
359
360 $mhdraft
361 This is the path to the working draft.
362
363 This is set by comp, dist, forw, and repl to tell the whatnowproc
364 which file to ask “What now?” questions about.
365
366 $mhfolder
367 This is set by dist, forw, and repl, if appropriate.
368
369 $mhaltmsg
370 dist and repl set $mhaltmsg to tell the whatnowproc about an
371 alternate message associated with the draft (the message being
372 distributed or replied to).
373
374 $mhdist
375 dist sets $mhdist to tell the whatnowproc that message re-distri‐
376 bution is occurring.
377
378 $mheditor
379 This is set by comp, repl, forw, and dist to tell the whatnowproc
380 the user's choice of editor (unless overridden by -noedit).
381
382 $mhuse
383 This may be set by comp.
384
385 $mhmessages
386 This is set by dist, forw, and repl if annotations are to occur.
387
388 $mhannotate
389 This is set by dist, forw, and repl if annotations are to occur.
390
391 $mhinplace
392 This is set by dist, forw, and repl if annotations are to occur.
393
394 $mhfolder
395 This is the folder containing the alternate message.
396
397 This is set by dist and repl during edit sessions so you can
398 peruse other messages in the current folder besides the one being
399 distributed or replied to. The environment variable $mhfolder is
400 also set by show, prev, and next for use by mhl.
401
402
404 $HOME/.mh_profile The user profile
405 or $MH Rather than the standard profile
406 <mh-dir>/context The user context
407 or $MHCONTEXT Rather than the standard context
408 <folder>/.mh_sequences Public sequences for <folder>
409
410
412 nmh(1), environ(5), mh-sequence(5)
413
414
416 The .mh_profile contains only static information, which nmh programs
417 will NOT update. Changes in context are made to the context file kept
418 in the users nmh directory. This includes, but is not limited to: the
419 “Current-Folder” entry and all private sequence information. Public
420 sequence information is kept in each folder in the file determined by
421 the “mh-sequences” profile entry (default is .mh_sequences).
422
423 The .mh_profile may override the path of the context file, by specify‐
424 ing a “context” entry (this must be in lower-case). If the entry is
425 not absolute (does not start with a “/”), then it is interpreted rela‐
426 tive to the user's nmh directory. As a result, you can actually have
427 more than one set of private sequences by using different context
428 files.
429
430
432 The shell quoting conventions are not available in the .mh_profile.
433 Each token is separated by whitespace.
434
435 There is some question as to what kind of arguments should be placed in
436 the profile as options. In order to provide a clear answer, recall
437 command line semantics of all nmh programs: conflicting switches (e.g.
438 -header and -noheader) may occur more than one time on the command
439 line, with the last switch taking effect. Other arguments, such as
440 message sequences, filenames and folders, are always remembered on the
441 invocation line and are not superseded by following arguments of the
442 same type. Hence, it is safe to place only switches (and their argu‐
443 ments) in the profile.
444
445 If one finds that an nmh program is being invoked again and again with
446 the same arguments, and those arguments aren't switches, then there are
447 a few possible solutions to this problem. The first is to create a
448 (soft) link in your $HOME/bin directory to the nmh program of your
449 choice. By giving this link a different name, you can create a new
450 entry in your profile and use an alternate set of defaults for the nmh
451 command. Similarly, you could create a small shell script which called
452 the nmh program of your choice with an alternate set of invocation line
453 switches (using links and an alternate profile entry is preferable to
454 this solution).
455
456 Finally, the csh user could create an alias for the command of the
457 form:
458
459 alias cmd 'cmd arg1 arg2 ...'
460
461 In this way, the user can avoid lengthy type-in to the shell, and still
462 give nmh commands safely. (Recall that some nmh commands invoke oth‐
463 ers, and that in all cases, the profile is read, meaning that aliases
464 are disregarded beyond an initial command invocation)
465
466
467
468MH.6.8 1 June 2008 MH-PROFILE(5)