Provided by: nmh_1.6-8build1_amd64 bug

NAME

       mh-profile - user profile customization for nmh message handler

DESCRIPTION

       Each  user  of  nmh is expected to have a file named .mh_profile in his or her home directory.  This file
       contains a set of user parameters used by some or all of the nmh family of programs.  Each entry  in  the
       file is of the format

            profile-component: value

       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.  Comments may be introduced by a line starting with `#:':

            #: This is a comment.

       Blank lines are not permitted in .mh_profile.  The shell quoting conventions are  not  available  in  the
       .mh_profile; each token is separated by whitespace.

   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 nmh profile or nmh context, and
       indicates what the default value is.  Note that a profile  component  can  only  appear  once.   Multiple
       appearances with trigger a warning that all appearances after the first are ignored.

       Path: Mail
            Locates  nmh transactions in directory “Mail”.  This is the only mandatory profile entry.  (profile,
            no default)

       context: context
            Declares the location of the nmh context file.  This  is  overridden  by  the  environment  variable
            $MHCONTEXT.  See the HISTORY section below.  (profile, default: <nmh-dir>/context)

       Current-Folder: inbox
            Keeps track of the current open folder.  (context, default: folder specified by “Inbox”)

       Inbox: inbox
            Defines the name of your default inbox.  (profile, default: inbox)

       Previous-Sequence: pseq
            Names the sequence or sequences which should be defined as the `msgs' or `msg' argument given to any
            nmh  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
            mh-sequence(5) man page for the details about this sequence. (profile, no default)

       Sequence-Negation: not
            Defines the string which, when prefixed to a sequence name, negates that sequence.  Hence, “notseen”
            means  all those messages that are not a member of the sequence “seen”.  Read the mh-sequence(5) man
            page for the details.  (profile, no default)

       Unseen-Sequence: unseen
            Names the sequence or sequences which should be defined as those messages  which  are  unread.   The
            commands  inc, rcvstore, mhshow, and show will add or remove messages from these sequences when they
            are incorporated or read.  If not present or empty, no such sequences are defined.  Otherwise,  each
            message  is  added  to, or removed from, each sequence name given.  Read the mh-sequence(5) man page
            for the details about this sequence.  (profile, no default)

       mh-sequences: .mh_sequences
            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)

       atr-seq-folder: 172 178-181 212
            Keeps  track  of  the  private sequence called “seq” in the specified folder.  Private sequences are
            generally used for read-only folders.  See the mh-sequence(5) man page  for  details  about  private
            sequences.  (context, no default)

       Editor: vi
            Defines the editor to be used by the commands comp, dist, forw, and repl.  If not set in profile the
            value will be taken from the VISUAL and EDITOR environment variables.  (profile, default: vi)

       Msg-Protect: 600
            An  octal  number  which  defines  the  permission  bits for new message files.  See chmod(1) for an
            explanation of the octal number.  Note that some filesystems, such as FAT32, do not support  removal
            of read file permissions.  (profile, default: 0600)

       Folder-Protect: 700
            An  octal  number which defines the permission bits for new folder directories.  See chmod(1) for an
            explanation of the octal number.  (profile, default: 700)

       datalocking: fcntl
            The locking algorithm used to lock changes to any nmh data files, such as sequences or the  context.
            The locking algorithm is any one of the following entries:

                 fcntl dot flock lockf

            Available locking algorithms can vary depending on what is supported by the operating system.  Note:
            currently  transactional  locking is only supported on public sequences; see mh-sequence(5) for more
            information.  (profile, default: fcntl)

       program: default switches
            Sets default switches to be used whenever the mh program program is invoked.  For example, one could
            override the “Editor:” profile component when replying to messages by adding a component such as:

                 repl: -editor /bin/ed

            (profile, no defaults)

       lasteditor-next: nexteditor
            Names “nexteditor” to be the default editor after using “lasteditor”.  This takes  effect  at  “What
            now?”  prompt in comp, dist, forw, and repl.  After editing the draft with “lasteditor”, the default
            editor is set to be “nexteditor”.  If the user types “edit” without any arguments  to  “What  now?”,
            then “nexteditor” is used.  (profile, no default)

       Folder-Stack: folders
            The contents of the folder-stack for the folder command.  (context, no default)

       Local-Mailbox: Your Username <user@some.host>
            Tells  the  various  MH  tools  what  your  local  mailbox  is.  If set, will be used by the default
            component files by tools like comp and repl to construct your default “From” header.  The text  used
            here  will  be  copied  exactly to your From: header, so it should already be RFC 822 compliant.  If
            this is set, the Signature profile entry is NOT used, so it should  include  a  signature  as  well.
            (profile, default: userid@local.hostname)

       Alternate-Mailboxes: mh@uci-750a, bug-mh*
            Tells  repl  and  scan  which  addresses  are really yours.  In this way, 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 “official” 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)

       Aliasfile: aliases other-alias
            Indicates aliases files for ali, whom, and send.  This may  be  used  instead  of  the  -alias  file
            switch.  (profile, no default)

       Draft-Folder: drafts
            Indicates  a  default draft folder for comp, dist, forw, refile, and repl.  Read the mh-draft(5) man
            page for details. (profile, no default)

       digest-issue-list: 1
            Tells forw the last issue of the last volume sent for the digest list.  (context, no default)

       digest-volume-list: 1
            Tells forw the last volume sent for the digest list.  (context, no default)

       MailDrop: .mail
            Tells inc your maildrop, if different from the default.   This  is  superseded  by  the  environment
            variable $MAILDROP.  (profile, default: /var/mail/$USER)

       Signature: RAND MH System (agent: Marshall Rose)
            Tells  front-end  programs  such as comp, forw, and repl your mail signature.  This is superseded by
            the environment variable $SIGNATURE.  If $SIGNATURE is  not  set  and  this  profile  entry  is  not
            present, the “gcos” field of the /etc/passwd file will be used.  Your signature will be added to the
            address  send  puts  in  the  “From:”  header; do not include an address in the signature text.  The
            “Local-Mailbox” profile component supersedes all of this.  (profile, no default)

       credentials: legacy
            Indicates how the username and password  credentials  will  be  retrieved  for  access  to  external
            servers,  such  as  those that provide SMTP or POP service.  The supported entry values are “legacy”
            and “file:netrc”.  With “legacy”, or if there is no credentials entry, the username is the first of:

                 1) -user switch to send, post, whom, inc, or msgchk program
                 2) the login name on the local machine

            The password for SMTP services is the first of:

                 1) password value from matching entry in file named “.netrc” in the user's home directory
                 2) password obtained by interactively prompting the user

            The password for POP service when the -sasl switch is used with one of these programs is  the  login
            name on the local machine.

            With a “file:netrccredentials entry, the username is the first of:

                 1) -user switch to program
                 2) login name from matching entry in netrc file
                 3) value provided by user in response to interactive query

            Similarly,  the  password  is  provided either in the netrc file or interactively.  netrc can be any
            valid  filename,  either  absolute  or  relative  to  Path  or  $HOME.   The  netrc  file   contains
            authentication  information, for each server, using a line of the following form.  Replace the words
            myserver, mylogin, and mypassword with your own account information:

                 machine myserver login mylogin password mypassword

            This netrc file must be owned and readable only by you.  (profile, default: legacy)

   Process Profile Entries
       The following profile elements are used whenever an nmh program invokes some other program such as  more.
       The  .mh_profile  can  be  used  to select alternate programs if the user wishes.  The default values are
       given in the examples.

       If the profile element contains spaces, the element is split at spaces into  tokens  and  each  token  is
       given  as a separate argument to the execvp(2) system call.  If the element contains shell metacharacters
       then the entire element is executed using /bin/sh.

       buildmimeproc: /usr/bin/mh/mhbuild
            This is the program used by whatnow to process drafts which are MIME composition files.

       fileproc: /usr/bin/mh/refile
            This program is used to refile or link a message to another folder.  It is used by send  to  file  a
            copy of a message into a folder given by a “Fcc:” field.  It is used by the draft folder facility in
            comp,  dist,  forw,  and repl to refile a draft message into another folder.  It is used to refile a
            draft message in response to the refile directive at the “What now?” prompt.

       formatproc:
            Program called by mhl to filter a component when it is tagged with the “format” variable in the  mhl
            filter.  See mhl(5) for more information.

       incproc: /usr/bin/mh/inc
            Program called by mhmail to incorporate new mail when it is invoked with no arguments.

       lproc: more
            This  program  is  used  to  list the contents of a message in response to the list directive at the
            “What now?” prompt.  It is also used by the draft folder facility in comp, dist, forw, and  repl  to
            display the draft message.  (Note that $PAGER supersedes the default built-in pager command.)

       mailproc: /usr/bin/mh/mhmail
            This  is  the  program used to automatically mail various messages and notifications.  It is used by
            conflict when using the -mail option.  It is used by 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
            mhstore).

       mhlproc: /usr/lib/mh/mhl
            This is the program used to filter messages in various ways.  It is used by  mhshow  to  filter  and
            display the message headers of MIME messages.  When the -format or -filter option is used by forw or
            repl,  the  mhlproc  is  used  to  filter  the  message that you are forwarding, or to which you are
            replying.  When the -filter option is given to send, the mhlproc is used to filter the copy  of  the
            message that is sent to “Bcc:” recipients.

       moreproc: more
            This is the program used by mhl to page the mhl formatted message when displaying to a terminal.  It
            is  also  the  default  program  used by mhshow to display message bodies (or message parts) of type
            text/plain.  (Note that $PAGER supersedes the default built-in pager command.)

       mshproc: /usr/bin/mh/msh
            Currently not used.

       packproc: /usr/bin/mh/packf
            Currently not used.

       postproc: /usr/lib/mh/post
            This is the program used by send, mhmail, rcvdist, and viamail (used by the sendfiles shell  script)
            to post a message to the mail transport system.  It is also called by whom (called with the switches
            -whom and -library) to do address verification.

       rmmproc: none
            This is the program used by rmm, refile, and mhfixmsg to delete a message from a folder.

       sendproc: /usr/bin/mh/send
            This is the program to use by whatnow to actually send the message

       showmimeproc: /usr/bin/mh/mhshow
            This is the program used by show to process and display non-text (MIME) messages.

       showproc: /usr/lib/mh/mhl
            This is the program used by show to filter and display text (non-MIME) messages.

       whatnowproc: /usr/bin/mh/whatnow
            This  is  the  program  invoked  by  comp,  forw, dist, and repl to query about the disposition of a
            composed draft message.

       whomproc: /usr/bin/mh/whom
            This is the program used by whatnow to determine to whom a message would be sent.

   Profile Lookup
       After consulting .mh_profile, some programs read an optional  profile  specified  by  a  program-specific
       environment  variable,  and  then  the  system-wide  profile  /etc/nmh/mhn.defaults.   These programs are
       mhbuild, mhshow, mhstore, and mhn.  mhfixmsg is similar, but has no optional profile.

       The first occurrence of a component is used, e.g. .mh_profile's trumps $MHSHOW's.  A  component  with  no
       value still stops further occurrences being used, but is considered absent.

   Environment Variables
       The  operation  of  nmh  and  its  commands  it  also  controlled  by the presence of certain environment
       variables.

       Many of these environment variables are used internally by the “What now?” interface.  It's  amazing  all
       the  information  that has to get passed via environment variables to make the “What now?” interface look
       squeaky clean to the nmh user, isn't it?  The reason for all this is that the nmh  user  can  select  any
       program as the 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 nmh and should not
       generally be set by the user.

       $MH
            With this environment variable, you can specify a profile other than .mh_profile to be read  by  the
            nmh  programs  that  you  invoke.  If the value of $MH is not absolute, (i.e., does not begin with a
            “/”), it will be presumed to start from the current working directory.  This is one of the very  few
            exceptions  in  nmh  where  non-absolute  pathnames  are  not  considered relative to the user's nmh
            directory.

       $MHCONTEXT
            With this environment variable, you can specify a context other than the  normal  context  file  (as
            specified  in  the  nmh profile).  As always, unless the value of $MHCONTEXT is absolute, it will be
            presumed to start from your nmh directory.

       $MHBUILD
            With this environment variable, you can specify an additional user profile  (file)  to  be  read  by
            mhbuild, in addition to the mhn.defaults profile.

       $MHN
            With this environment variable, you can specify an additional user profile (file) to be read by mhn,
            in  addition to the mhn.defaults profile.  mhn is deprecated, so this support for this variable will
            be removed from a future nmh release.

       $MHSHOW
            With this environment variable, you can specify an additional user profile  (file)  to  be  read  by
            mhshow, in addition to the mhn.defaults profile.

       $MHSTORE
            With  this  environment  variable,  you  can specify an additional user profile (file) to be read by
            mhstore, in addition to the mhn.defaults profile.

       $MAILDROP
            This variable tells inc the default maildrop. This supersedes the “MailDrop” profile entry.

       $MAILHOST
            This variable tells inc the POP host to query for mail to incorporate.  See the inc(1) man page  for
            more information.

       $USERNAME_EXTENSION
            This variable is for use with username_extension masquerading.  See the mh-tailor(5) man page.

       $SIGNATURE
            This  variable  tells  send  and  post  your mail signature. This supersedes the “Signature” profile
            entry, and is not used when the “Local-Mailbox” profile component is set.

       $USER
            This variable tells repl your user name and inc your default maildrop:  see the  “MailDrop”  profile
            entry.

       $HOME
            This variable tells all nmh programs your home directory

       $TERM
            This variable tells nmh your terminal type.

            The  environment variable $TERMCAP is also consulted.  In particular, these tell scan and mhl how to
            clear your terminal, and how many columns wide your terminal is.  They also tell mhl how many  lines
            long your terminal screen is.

       $MHMTSCONF
            If  this  variable  is  set  to  a  non-null  value,  it  specifies  the  name of the mail transport
            configuration file to use by post, inc, and other programs that interact  with  the  mail  transport
            system, instead of the default.  See mh-tailor(5).

       $MHMTSUSERCONF
            If this variable is set to a non-null value, it specifies the name of a mail transport configuration
            file to be read in addition to the default.  See mh-tailor(5).

       $MHTMPDIR $TMPDIR
            These variables are searched, in order, for the directory in which to create some temporary files.

       $MHLDEBUG
            If this variable is set to a non-null value, mhl will emit debugging information.

       $MHPDEBUG
            If this variable is set to a non-null value, pick will emit a representation of the search pattern.

       $MHWDEBUG
            If  this  variable is set to a non-null value, nmh commands that use the Alternate-Mailboxes profile
            entry will display debugging information about the values in that entry.

       $PAGER
            If set to a non-null value, this supersedes the value of the default built-in pager command.

       $editalt
            This is the alternate message.

            This is set by dist and repl during edit sessions so you can peruse the message being distributed or
            replied to.  The message is also available, when the -atfile switch is used, through a  link  called
            “@”  in  the current directory if your current working directory and the folder the message lives in
            are on the same UNIX filesystem, and if your current working directory is writable.

       $mhdraft
            This is the path to the working draft.

            This is set by comp, dist, forw, and repl to tell the whatnowproc which  file  to  ask  “What  now?”
            questions about.

       $mhaltmsg
            dist  and  repl set $mhaltmsg to tell the whatnowproc about an alternate message associated with the
            draft (the message being distributed or replied to).

       $mhfolder
            This is the folder containing the alternate message.

            This is set by dist and 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 $mhfolder is also
            set by show, prev, and next for use by mhl.

       $mhdist
            dist sets $mhdist to tell the whatnowproc that message re-distribution is occurring.

       $mheditor
            This is set by comp, repl, forw, and dist to tell  the  whatnowproc  the  user's  choice  of  editor
            (unless overridden by -noedit).

       $mhuse
            This may be set by comp.

       $mhmessages
            This is set by dist, forw, and repl if annotations are to occur.

       $mhannotate
            This is set by dist, forw, and repl if annotations are to occur.

       $mhinplace
            This is set by dist, forw, and repl if annotations are to occur.

FILES

       $HOME/.mh_profile          The user profile
       or $MH                     Rather than the standard profile
       <mh-dir>/context           The user context
       or $MHCONTEXT              Rather than the standard context
       <folder>/.mh_sequences     Public sequences for <folder>

SEE ALSO

       environ(5), mh-sequence(5), nmh(7)

HISTORY

       The .mh_profile contains only static information, which nmh programs will NOT update.  Changes in context
       are  made to the context file kept in the users nmh directory.  This includes, but is not limited to: the
       “Current-Folder” entry and all private sequence information.  Public sequence information is kept in each
       folder in the file determined by the “mh-sequences” profile entry (default is .mh_sequences).

       The .mh_profile may override the path of the context file, by specifying a “context” entry (this must  be
       in  lower-case).   If  the  entry  is  not  absolute  (does not start with a “/”), then it is interpreted
       relative to the user's nmh directory.  As a result, you can actually have more than one  set  of  private
       sequences by using different context files.

BUGS

       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 nmh programs: conflicting switches (e.g.
       -header and -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.

       If  one  finds  that  an  nmh 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 $HOME/bin directory to the nmh 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
       nmh command.  Similarly, you could create a small shell script which  called  the  nmh  program  of  your
       choice  with  an alternate set of invocation line switches (using links and an alternate profile entry is
       preferable to this solution).

       Finally, the csh user could create an alias for the command of the form:

            alias cmd 'cmd arg1 arg2 ...'

       In this way, the user can avoid lengthy type-in to  the  shell,  and  still  give  nmh  commands  safely.
       (Recall  that  some  nmh commands invoke others, and that in all cases, the profile is read, meaning that
       aliases are disregarded beyond an initial command invocation)

nmh-1.6                                         February 16, 2014                                MH-PROFILE(5mh)