.\" .\" %nmhwarning% .\" .TH MH-PROFILE %manext5% "%nmhdate%" MH.6.8 [%nmhversion%] .SH NAME mh-profile \- user profile customization for mmh message handler .SH SYNOPSIS .I $HOME/.mmh/profile .br .I $HOME/.mmh/context .SH DESCRIPTION Each user of .B mmh is expected to have a file named .I $HOME/.mmh/profile in his or her home directory. This file contains a set of user parameters used by some or all of the .B mmh family of programs. Each entry in the file is of the format .PP .RS 5 .IR Profile\-Component ": " value .RE .PP If the text of profile entry is long, you may extend it across several real lines by indenting the continuation lines with leading spaces or tabs. .SS "Standard Profile Entries" The possible profile components are exemplified below. The only mandatory entry is `Path:'. The others are optional; some have default values if they are not present. In the notation used below, (profile, default) indicates whether the information is kept in the user's .B mmh profile or .B mmh context, and indicates what the default value is. .PP .BR Path : Mail .RS 5 Sets the user's mail storage to \*(lqMail\*(rq. This is the only mandatory profile entry. (profile, no default) .RE .PP .BR Context : context .RS 5 Declares the location of the .B mmh context file. This is overridden by the environment variable .BR $MMHC . See the .B HISTORY section below. (profile, default: $HOME/.mmh/context) .RE .PP .BR Current\-Folder : inbox .RS 5 Keeps track of the current open folder. (context, default: folder specified by \*(lqInbox\*(rq) .RE .PP .BR Inbox : inbox .RS 5 Defines the name of your default inbox. (profile, default: inbox) .RE .PP .BR Previous\-Sequence : .I pseq .RS 5 Names the sequence or sequences which should be defined as the `msgs' or `msg' argument given to any .B mmh command. If not present or empty, no such sequences are defined. Otherwise, for each name given, the sequence is first zero'd and then each message is added to the sequence. Read the .BR mh\-sequence (7) man page for the details about this sequence. (profile, no default) .RE .PP .BR Sequence\-Negation : \&! .RS 5 Defines the string which, when prefixed to a sequence name, negates that sequence. Hence, \*(lq!foo\*(rq means all those messages that are not a member of the sequence \*(lqfoo\*(rq. To deactivate this mechanism, define Sequence\-Negation to an empty value. Read the .BR mh\-sequence (7) man page for the details. (profile, default: !) .RE .PP .BR Unseen\-Sequence : u .RS 5 Names the sequence or sequences which shall contain any unread messages. The commands .BR inc , .BR rcvstore , .BR mhshow , and .B show will add or remove messages from these sequences when they are incorporated or read. If defined with an empty value, no such sequences are defined. Otherwise, each message is added to, or removed from, each sequence name given. Read the .BR mh\-sequence (7) man page for the details about this sequence. (profile, default: u) .RE .PP .BR Mh\-Sequences : \&.mh_sequences .RS 5 The name of the file in each folder which defines public sequences. To disable the use of public sequences, leave the value portion of this entry blank. (profile, default: \&.mh_sequences) .RE .PP .BI atr\- seq \- folder : 172\0178\-181\0212 .RS 5 Keeps track of the private sequence called \*(lqseq\*(rq in the specified folder. Private sequences are generally used for read\-only folders. See the .BR mh\-sequence (7) man page for details about private sequences. (context, no default) .RE .PP .BR Editor : vi .RS 5 Defines the editor to be used by the commands .BR comp , .BR dist , .BR forw , and .BR repl . This profile entry overrides the $VISUAL and $EDITOR environment variables, but gets overridden by the $MMHEDITOR environment variabel. (profile, default: vi) .RE .PP .BR Pager : more .RS 5 This is the program used by .B mhl to page the .B mhl formatted message when displaying to a terminal. It is also the default program used by .B mhshow to display message bodies (or message parts) of type text/plain. This profile entry overrides the $PAGER environment variable, but gets overridden by the $MMHPAGER environment variable. (profile, default: more) .RE .PP .BR Sendmail : /usr/sbin/sendmail .RS 5 The path name to the .B sendmail program, used by .BR spost to send mail. (profile, default: %sendmailpath%) .RE .PP .BR Backup-Prefix : , .RS 5 The prefix that is prepended to the name of message files when they are ``removed'' by rmm. This should typically be `,' or `#'. (profile, default: `,') .RE .PP .BR AltMsg-Link : @ .RS 5 Name of the link to the file to which you are replying or which you are redistributing. See `$mhaltmsg' below. (profile, default: `@') .RE .PP .BR Attachment-Header : Attach .RS 5 The (pseudo) header in draft messages, that contains files to be attached to the message on sending. If you like to type a lot, name it `X-MH-Attachment'. (profile, default: `Attach') .RE .PP .BR Mime-Type-Query : file \-b \-\-mime .RS 5 A command that prints the MIME type of a file. The file name gets appended to the command line. Note: Older GNU versions of file(1) won't generate the desired output. GNU file-4.26, for instance, omits a required semicolon. GNU file-5.04 is known to work. Non-GNU version likely need different options or don't provide this function at all. Alternatively, you can use .BR print\-mimetype , which is part of mmh, but guesses MIME types by file name extensions only. .RE .PP .BR Msg\-Protect : 644 .RS 5 An octal number which defines the permission bits for new message files. See .BR chmod (1) for an explanation of the octal number. (profile, default: 0644) .RE .PP .BR Folder\-Protect : 750 .RS 5 An octal number which defines the permission bits for new folder directories. See .BR chmod (1) for an explanation of the octal number. (profile, default: 700) .RE .PP .IR program : .I default switches .RS 5 Sets default switches to be used whenever the mmh program .I program is invoked. For example, one could override the \*(lqEditor:\*(rq profile component when replying to messages by adding a component such as: .PP .RS 5 repl: \-editor /bin/ed .RE .PP (profile, no defaults) .RE .PP .IB lasteditor "-next:" .I nexteditor .RS 5 Names \*(lqnexteditor\*(rq to be the default editor after using \*(lqlasteditor\*(rq. This takes effect at \*(lqWhat now?\*(rq prompt in .BR comp , .BR dist , .BR forw , and .BR repl . After editing the draft with \*(lqlasteditor\*(rq, the default editor is set to be \*(lqnexteditor\*(rq. If the user types \*(lqedit\*(rq without any arguments to \*(lqWhat now?\*(rq, then \*(lqnexteditor\*(rq is used. (profile, no default) .RE .PP .BR Folder\-Stack : .I folders .RS 5 The contents of the folder-stack for the .B folder command. (context, no default) .RE .PP .BR mhe : .RS 5 If present, tells .B inc to compose an .I MHE auditfile in addition to its other tasks. .I MHE is Brian Reid's .B emacs front-end for .BR mmh . (profile, no default) .RE .PP .BR Alternate\-Mailboxes : mh@uci\-750a, bug-mh* .RS 5 Tells .B repl and .B scan which addresses are really yours. In this way, .B repl knows which addresses should be included in the reply, and scan knows if the message really originated from you. Addresses must be separated by a comma, and the hostnames listed should be the \*(lqofficial\*(rq hostnames for the mailboxes you indicate, as local nicknames for hosts are not replaced with their official site names. For each address, if a host is not given, then that address on any host is considered to be you. In addition, an asterisk (`*') may appear at either or both ends of the mailbox and host to indicate wild-card matching. (profile, default: your user-id) .RE .PP .BR Aliasfile : aliases .I other-alias .RS 5 Indicates aliases files for .BR ali and .BR send . This may be used instead of the .B \-alias .I file switch. (profile, no default) .RE .PP .BR Draft\-Folder : drafts .RS 5 Changes the default draft folder. Read the .BR mh\-draft (7) man page for details. (profile, default: +drafts) .RE .PP .BI digest\-issue\- list : 1 .RS 5 Tells .B forw the last issue of the last volume sent for the digest .IR list . (context, no default) .RE .PP .BI digest\-volume\- list : 1 .RS 5 Tells .B forw the last volume sent for the digest .IR list . (context, no default) .RE .PP .BR MailDrop : \&.mail .RS 5 Tells .B inc your maildrop, if different from the default. This is superseded by the environment variable .BR $MAILDROP . (profile, default: %mailspool%/$USER) .RE .PP .BR Signature : RAND MH System (agent: Marshall Rose) .RS 5 Tells .B send your mail signature. This is superseded by the environment variable .BR $SIGNATURE . If .B $SIGNATURE is not set and this profile entry is not present, the \*(lqgcos\*(rq field of the \fI/etc/passwd\fP file will be used. Your signature will be added to the address .B send puts in the \*(lqFrom:\*(rq header; do not include an address in the signature text. (profile, no default) .RE .SS "Process Profile Entries" The following profile elements are used whenever an .B nmh program invokes some other program such as .BR more . The profile can be used to select alternate programs if the user wishes. The default values are given in the examples. .RE .PP .BR fileproc : %bindir%/refile .RS 5 This program is used to refile or link a message to another folder. It is used by .B post to file a copy of a message into a folder given by a \*(lqFcc:\*(rq field. It is used by the draft folder facility in .BR comp , .BR dist , .BR forw , and .B repl to refile a draft message into another folder. It is used to refile a draft message in response to the .B refile directive at the \*(lqWhat now?\*(rq prompt. .RE .PP .BR listproc : show \-file .RS 5 This program is used to list the contents of a message in response to the .B list and .B display directive at the \*(lqWhat now?\*(rq prompt. The absolute pathname of the message to list will be appended to the command line given. .RE .PP .BR mailproc : mhmail .RS 5 This is the program used to automatically mail various messages and notifications. It is used by .B conflict when using the .B \-mail option. It is used by .B send to post failure notices. It is used to retrieve an external-body with access-type `mail-server' (such as when storing the body with .BR mhstore ). .RE .PP .BR mhlproc : %bindir%/mhl .RS 5 This is the program used to filter messages in various ways. It is used by .B mhshow to filter and display the message headers of MIME messages. Unless the .B \-nofilter option is used with .BR repl , the .I mhlproc is used to filter the message to which you are replying. .RE .PP .BR postproc : %bindir%/post .RS 5 This is the program used by .BR send , .BR mhmail , .BR rcvdist , and .B viamail (used by the .B sendfiles shell script) to post a message to the mail transport system. .RE .PP .BR rmmproc : none .RS 5 This is the program used by .B rmm and .B refile to delete a message from a folder. .RE .PP .BR sendproc : %bindir%/send .RS 5 This is the program to use by .B whatnow to actually send the message .RE .PP .BR showmimeproc : %bindir%/mhshow .RS 5 This is the program used by .B show to process and display non-text (MIME) messages. .RE .PP .BR showproc : %bindir%/mhl .RS 5 This is the program used by .B show to filter and display text (non-MIME) messages. .RE .PP .BR whatnowproc : %bindir%/whatnow .RS 5 This is the program invoked by .BR comp , .BR forw , .BR dist , and .B repl to query about the disposition of a composed draft message. .RE .SS "Environment Variables" The operation of .B mmh and its commands it also controlled by the presence of certain environment variables. .PP Many of these environment variables are used internally by the \*(lqWhat now?\*(rq interface. It's amazing all the information that has to get passed via environment variables to make the \*(lqWhat now?\*(rq interface look squeaky clean to the .B mmh user, isn't it? The reason for all this is that the .B mmh user can select .B any program as the .IR whatnowproc , including one of the standard shells. As a result, it's not possible to pass information via an argument list. The convention is that environment variables whose names are all upper-case are user-settable; those whose names are lower-case only are used internally by mmh and should not generally be set by the user. .PP If the .B WHATNOW option was set during .B mmh configuration, and if this environment variable is set, then if the commands .BR refile\ , .BR send or .BR show are not given any `msgs' arguments, then they will default to using the file indicated by .BR mh\-draft (7). This is useful for getting the default behavior supplied by the default .IR whatnowproc . .PP .B $MMH .RS 5 With this environment variable, you can specify an alternative mmh directory. Personal mmh configuration files are located relative to the mmh directory. Non-absolute values are relative to the home directory. This is one of the very few exceptions in .B mmh where non-absolute pathnames are not considered relative to the user's mmh directory. .RE .PP .B $MMHP .RS 5 With this environment variable, you can specify a profile other than .I $HOME/.mmh/profile to be read by the .B mmh programs that you invoke. If the value of .B $MMHP is not absolute, it will be presumed to start from the mmh directory. .RE .PP .B $MMHC .RS 5 With this environment variable, you can specify a context other than the normal context file (as specified in the profile). As always, unless the value of .B $MMHC is absolute, it will be presumed to start from your mmh directory. .RE .PP .B $MM_CHARSET .RS 5 With this environment variable, you can specify the native character set you are using. You must be able to display this character set on your terminal. .PP This variable is checked to see if a RFC-2047 header field should be decoded (in .BR inc , .BR scan , .BR mhl ). This variable is checked by .B show to see if the .I showproc or .I showmimeproc should be called, since showmimeproc will be called if a text message uses a character set that doesn't match .BR $MM_CHARSET . This variable is checked by .B mhshow for matches against the charset parameter of text contents to decide it the text content can be displayed without modifications to your terminal. This variable is checked by .B mhbuild to decide what character set to specify in the charset parameter of text contents containing 8\-bit characters. .PP When decoding text in such an alternate character set, .B mmh must be able to determine which characters are alphabetic, which are control characters, etc. For many operating systems, this will require enabling the support for locales (such as setting the environment variable .B $LC_CTYPE to iso_8859_1). .RE .PP .B $MAILDROP .RS 5 This variable tells .B inc the default maildrop. This supersedes the \*(lqMailDrop\*(rq profile entry. .RE .PP .B $SIGNATURE .RS 5 This variable tells .B send and .B post your mail signature. This supersedes the \*(lqSignature\*(rq profile entry. .RE .PP .B $HOME .RS 5 This variable tells all .B mmh programs your home directory .RE .PP .B $SHELL .RS 5 This variable tells .B bbl the default shell to run .RE .PP .B $MMHEDITOR .br .B $VISUAL .br .B $EDITOR .RS 5 These variables (in descending priority) define the default editor to use. .RE .PP .B $MMHPAGER .br .B $PAGER .RS 5 These variables (in descending priority) define the default pager to use. .RE .PP .B $TERM .RS 5 This variable tells .B mmh your terminal type. .PP The environment variable .B $TERMCAP is also consulted. In particular, these tell .B scan and .B mhl how many columns wide your terminal is. They also tell .B mhl how many lines long your terminal screen is. .RE .PP .B $editalt .RS 5 This is the alternate message. .PP This is set by .B dist and .B repl during edit sessions so you can peruse the message being distributed or replied to. The message is also available through a link called \*(lq@\*(rq (if not changed by .BR altmsg-link ) in the current directory if your current working directory and the message's folder are on the same UNIX filesystem. .RE .PP .B $mhdraft .RS 5 This is the path to the working draft. .PP This is set by .BR comp , .BR dist , .BR forw , and .B repl to tell the .I whatnowproc which file to ask \*(lqWhat now?\*(rq questions about. .RE .PP .B $mhfolder .RS 5 This is set by .BR dist , .BR forw , and .BR repl , if appropriate. .RE .PP .B $mhaltmsg .RS 5 .B dist and .B repl set .B $mhaltmsg to tell the .I whatnowproc about an alternate message associated with the draft (the message being distributed or replied to). .RE .PP .B $mhdist .RS 5 .B dist sets .B $mhdist to tell the .I whatnowproc that message re-distribution is occurring. .RE .PP .B $mheditor .RS 5 This is set by .BR comp , .BR repl , .BR forw , and .B dist to tell the .I whatnowproc the user's choice of editor (unless overridden by .BR \-noedit ). .RE .PP .B $mhuse .RS 5 This may be set by .BR comp . .RE .PP .B $mhmessages .RS 5 This is set by .BR dist , .BR forw , and .B repl if annotations are to occur. .RE .PP .B $mhannotate .RS 5 This is set by .BR dist , .BR forw , and .B repl if annotations are to occur. .RE .PP .B $mhfolder .RS 5 This is the folder containing the alternate message. .PP This is set by .B dist and .B repl during edit sessions so you can peruse other messages in the current folder besides the one being distributed or replied to. The environment variable .B $mhfolder is also set by .BR show , .BR prev , and .B next for use by .BR mhl . .RE .SH FILES .fc ^ ~ .nf .ta \w'%etcdir%/ExtraBigFileName 'u ^$HOME/.mmh~^The user's mmh directory ^or $MMH~^Rather than the standard mmh directory ^$HOME/.mmh/profile~^The user's profile ^or $MMHP~^Rather than the standard profile ^$HOME/.mmh/context~^The user's context ^or $MMHC~^Rather than the standard context ^/.mh_sequences~^Public sequences for .fi .SH "SEE ALSO" nmh(1), environ(5), mh-sequence(7) .SH HISTORY The .I $HOME/.mmh/profile contains only static information, which .B mmh programs will .B NOT update. Changes in context are made to the .I $HOME/.mmh/context file. This includes, but is not limited to: the \*(lqCurrent\-Folder\*(rq entry and all private sequence information. Public sequence information is kept in each folder in the file determined by the \*(lqMh\-Sequences\*(rq profile entry (default is .IR \&.mh_sequences ). .PP The profile may override the path of the .I context file, by specifying a \*(lqContext\*(rq entry. As a result, you can actually have more than one set of private sequences by using different context files. .SH BUGS The shell quoting conventions are not available in the profile. Each token is separated by whitespace. .PP There is some question as to what kind of arguments should be placed in the profile as options. In order to provide a clear answer, recall command line semantics of all .B mmh programs: conflicting switches (e.g. .B \-header and .BR \-noheader ) may occur more than one time on the command line, with the last switch taking effect. Other arguments, such as message sequences, filenames and folders, are always remembered on the invocation line and are not superseded by following arguments of the same type. Hence, it is safe to place only switches (and their arguments) in the profile. .PP If one finds that an .B mmh program is being invoked again and again with the same arguments, and those arguments aren't switches, then there are a few possible solutions to this problem. The first is to create a (soft) link in your .I $HOME/bin directory to the .B mmh program of your choice. By giving this link a different name, you can create a new entry in your profile and use an alternate set of defaults for the .B mmh command. Similarly, you could create a small shell script which called the .B mmh program of your choice with an alternate set of invocation line switches (using links and an alternate profile entry is preferable to this solution). .PP Finally, the .B csh user could create an alias for the command of the form: .PP .RS 5 alias cmd 'cmd arg1 arg2 ...' .RE .PP In this way, the user can avoid lengthy type-in to the shell, and still give .B mmh commands safely. (Recall that some .B mmh commands invoke others, and that in all cases, the profile is read, meaning that aliases are disregarded beyond an initial command invocation)