Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
MH-PROFILE(5)		       File Formats Manual		   MH-PROFILE(5)

NAME
     mh-profile, mh_profile - user customization for nmh message handler

DESCRIPTION
     Each user of nmh is expected to have a file named .mh-profile in their home
     directory.   This	file  contains	a set of user parameters used by the nmh
     family of programs.  Each entry in the file is of the format

	  profile-component: value

     If the text of a 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.  Shell quoting conventions
     are not available; 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) indi-
     cates whether the information is kept in the user's nmh profile or nmh con-
     text, and indicates what the default value is.  Note that a profile  compo-
     nent  can	only  appear  once.  Multiple appearances will trigger a warning
     that all appearances after the first are ignored.

     Some MH programs, including mhbuild, mhshow,  and	mhstore,  have	specific
     profile  components that are described in their respective man pages.  Each
     component name specific to these programs begins with the name of the  pro-
     gram and is followed by a dash.

     Path: Mail
	  Locates  nmh transactions in directory "Mail".  A relative Path starts
	  from the user's home directory.  This is the	only  mandatory  profile
	  entry.  (profile, no default)

     locale: locale
	  Set  the locale for all nmh programs except post, install-mh, and slo-
	  cal.	See the LC_ALL, LC_CTYPE, and LANG variables  in  the  "ENVIRON-
	  MENT"  section  below for a reference on how the locale is set if this
	  profile component is not used.

     context: context
	  Declares the location of the nmh context file.  This can be 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 the 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 zeroed and then each message is  added  to	the  se-
	  quence.   Read  mh-sequence(5)  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 mh-sequence(5) for the details.
	  (profile, no default)

     Unseen-Sequence: unseen
	  Names  the sequence or sequences which should be defined as those mes-
	  sages which are unread.  The commands inc, rcvstore, mhshow, and  show
	  will	add or remove messages from these sequences when they are incor-
	  porated or read.  If not present or empty, no such sequences	are  de-
	  fined.  Otherwise, each message is added to, or removed from, each se-
	  quence name given.  Read mh-sequence(5) for the details about this se-
	  quence.  (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  mh-sequence(5) for details about private sequences.  (context, no
	  default)

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

     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 di-
	  rectories.  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 context.  The locking algorithm is any one of the fol-
	  lowing entries:

	       fcntl dot flock lockf

	  Available  locking algorithms can vary depending on the operating sys-
	  tem.	Note: currently, transactional locking is only supported on pub-
	  lic sequences; see mh-sequence(5) for more information.  (profile, de-
	  fault: 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 compo-
	  nent 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 the "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 argu-
	  ments to "What now?", then "nexteditor" is  used.   (profile,  no  de-
	  fault)

     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 MH programs what your local mailbox is.  If set, it will be
	  used by the default component files by programs 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 additional addresses  are  yours.	In  this
	  way,	repl  knows which addresses should be included in the reply, and
	  scan knows if a message originated from you.	Addresses must be  sepa-
	  rated  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, de-
	  fault: your user-id)

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

     Draft-Folder: drafts
	  Indicates  a	default  draft	folder for comp, dist, forw, refile, and
	  repl.  Read mh-draft(5) 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 de-
	  fault)

     MailDrop: .mail
	  Tells inc your mail drop, if different from the default.  This is  su-
	  perseded  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 signa-
	  ture.  (This is not to be confused with a .signature that might be ap-
	  pended to mails.) This is superseded by the environment variable  SIG-
	  NATURE.   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  "Lo-
	  cal-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", "file:netrc", and
	  "file-nopermcheck:netrc".  With "legacy", or if there  is  no  creden-
	  tials entry, the username is the first of:

	       1)   -user switch to inc, msgchk, post, send, or whom 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

	  With a "file:netrc" credentials 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 inter-
	  actively.   netrc  can be any valid filename, either absolute or rela-
	  tive to Path or $HOME.  The netrc file contains authentication  infor-
	  mation, for each server, using a line of the following form.	(Replace
	  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.

	  The  "file-nopermcheck:netrc" credentials entry is identical in behav-
	  ior to the "file" entry, with the exception that the permission checks
	  done by "file" are not performed.  This entry should be used with cau-
	  tion and only when absolutely necessary.  (profile, default: legacy)

     Welcome: disable
	  If the Welcome component is not present, or its  value  is  not  "dis-
	  able",  a welcome message will be displayed the first time that an in-
	  teractive nmh program is run after updating the nmh installation.  The
	  user must press the Enter key to continue.

	  If the MHCONTEXT environment variable is set and  non-empty  (and  the
	  Welcome  component is not "disable"), the welcome message is only dis-
	  played if the context file contains a version reference, and that ref-
	  erence is older than the installed nmh version.  The version reference
	  is of the form:

	       Version: nmh-1.8+dev

   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) sys-
     tem call.	If the element contains shell metacharacters then the entire el-
     ement is executed using /bin/sh.

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

     fileproc: /usr/local/bin/refile
	  This	program  is  used to refile or link a message to another folder.
	  It is used by post 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 direc-
	  tive 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/local/bin/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 the environment variable  PAGER  supersedes
	  the default built-in pager command.)

     mailproc: /usr/local/bin/mhmail
	  This	is  the  program used to automatically mail various messages and
	  notifications.  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/local/libexec/nmh/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  mes-
	  sages.   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 the environment variable PAGER supersedes the
	  default built-in pager command.)

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

     postproc: /usr/local/libexec/nmh/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.

	  If  the  profile contains a post component and a postproc component is
	  not present, a warning message that the post component will be ignored
	  will be displayed by every nmh program that reads the profile and  has
	  its stderr associated with a terminal.

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

     sendproc: /usr/local/bin/send
	  This is the program used by whatnow to actually send the message

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

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

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

     whomproc: /usr/local/bin/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 speci-
     fied by a program-specific environment variable, and then	the  system-wide
     profile   /usr/local/etc/nmh/mhn.defaults.   These  programs  are	mhbuild,
     mhshow, mhstore, and mhn.	mhfixmsg is similar, but has  no  optional  pro-
     file.

     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.

     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  "Cur-
     rent-Folder"  entry  and all private sequence information.  Public sequence
     information is kept in each folder in the file determined	by  the  "mh-se-
     quences" 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.

ENVIRONMENT
     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 en-
     vironment 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 up-
     per-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.

     HOME   If set and non-null, it is used as the user's  home  directory.   If
	    not set or null, then getpwuid(3)'s pw_dir is used.

     LC_ALL, LC_CTYPE, and LANG
	    These variables are used to set the locale, see locale(1).	The "lo-
	    cale" profile entry supersedes these.

     MAILDROP
	    This  variable tells inc the default mail drop.  This supersedes the
	    "MailDrop" profile entry.

     MAILHOST
	    This variable tells inc the POP host to query for mail  to	incorpo-
	    rate.  See inc(1) for more information.

     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  path-
	    names are not considered relative to the user's 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.de-
	    faults profile.

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

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

     MHMTSCONF
	    If	this  variable is set to a non-null value, it specifies the name
	    of the mail transport configuration file to use by	inc,  post,  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).

     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 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.de-
	    faults profile.

     MHTMPDIR, TMPDIR
	    These variables are searched, in order, for the directory  in  which
	    to	create some temporary files.  MHTMPDIR is deprecated and will be
	    removed in a future release of nmh.

     MHWDEBUG
	    If this variable is set to a non-null value, nmh commands  that  use
	    the  Alternate-Mailboxes profile entry will display debugging infor-
	    mation 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.

     SIGNATURE
	    This variable tells send and post your mail signature.  This  super-
	    sedes  the	"Signature" profile entry, and is not used when the "Lo-
	    cal-Mailbox" profile component is set.

     USER   This variable tells repl your user name and inc  your  default  mail
	    drop:  see the "MailDrop" profile entry.

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

     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.

     mhaltmsg
	    dist  and  repl set mhaltmsg to tell the whatnowproc about an alter-
	    nate message associated with the draft (the message  being	distrib-
	    uted or replied to).

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

     mhdist
	    dist  sets	mhdist to tell the whatnowproc that message re-distribu-
	    tion is occurring.

     mhdraft
	    This is the path to the working draft.  It is  set	by  comp,  dist,
	    forw, and repl to tell the whatnowproc which file to ask "What now?"
	    questions about.

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

     mhfolder
	    This is the folder containing the alternate message.  It 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 next, prev,
	    and show for use by mhl.

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

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

     mhuse  This may be set by comp.

FILES
     $HOME/.mh-profile	 The user's profile.
     <mh-dir>/context	 The user's context
     <folder>/.mh-sequences
			 Public sequences for <folder>.

SEE ALSO
     mhbuild(1), mhshow(1), mhstore(1), mh-sequence(5), nmh(7), post(8)

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 the 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, file-
     names 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 al-
     ternate 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 disre-
     garded beyond an initial command invocation)

nmh-1.8+dev			   2016-10-19			   MH-PROFILE(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mh-profile&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help