Whitespace cleanup for last commit, and a few other areas with very long

lines.  No content change.
This commit is contained in:
Simon L. B. Nielsen 2003-10-18 18:22:23 +00:00
parent f8e2c388ef
commit 9a9ef91ab4
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=18486

View file

@ -36,41 +36,46 @@
</legalnotice>
<abstract>
<para>This document contains an introduction to using <application>MH</application> on
FreeBSD</para>
<para>This document contains an introduction to using
<application>MH</application> on FreeBSD</para>
</abstract>
</articleinfo>
<sect1 id="mhintro">
<title>Introduction</title>
<para><application>MH</application> started back in 1977 at the RAND Corporation, where the
initial philosophies behind <application>MH</application> were developed. <application>MH</application> is not so much
a monolithic email program but a philosophy about how best to
develop tools for reading email. The <application>MH</application> developers have done a
great job adhering to the <acronym>KISS</acronym> principle: Keep It
<para><application>MH</application> started back in 1977 at the
RAND Corporation, where the initial philosophies behind
<application>MH</application> were
developed. <application>MH</application> is not so much a
monolithic email program but a philosophy about how best to
develop tools for reading email. The
<application>MH</application> developers have done a great job
adhering to the <acronym>KISS</acronym> principle: Keep It
Simple Stupid. Rather than have one large program for reading,
sending and handling email they have written specialized
programs for each part of your email life. One might liken <application>MH</application> to
the specialization that one finds in insects and nature. Each
tool in <application>MH</application> does one thing, and does it very well.</para>
programs for each part of your email life. One might liken
<application>MH</application> to the specialization that one
finds in insects and nature. Each tool in
<application>MH</application> does one thing, and does it very
well.</para>
<para>Beyond just the various tools that one uses to handle their
email <application>MH</application> has done an excellent job keeping the configuration of
each of these tools consistent and uniform. In fact, if you are
not quite sure how something is supposed to work or what the
arguments for some command are supposed to be, then you can
generally guess and be right. Each <application>MH</application> command is consistent
about how it handles reading the configuration files and how it
takes arguments on the command line. One useful thing to
remember is that you can always add a <option>-help</option> to
the command to have it display the options for that
command.</para>
email <application>MH</application> has done an excellent job
keeping the configuration of each of these tools consistent and
uniform. In fact, if you are not quite sure how something is
supposed to work or what the arguments for some command are
supposed to be, then you can generally guess and be right. Each
<application>MH</application> command is consistent about how it
handles reading the configuration files and how it takes
arguments on the command line. One useful thing to remember is
that you can always add a <option>-help</option> to the command
to have it display the options for that command.</para>
<para>The first thing that you need to do is to make sure that you
have installed the <application>MH</application> package on your FreeBSD machine. If you
installed from CDROM you should be able to execute the following
to load <application>MH</application>:
have installed the <application>MH</application> package on your
FreeBSD machine. If you installed from CDROM you should be able
to execute the following to load <application>MH</application>:
<informalexample>
<screen>&prompt.root; <userinput>pkg_add /cdrom/packages/mh-6.8.3.tgz</userinput></screen>
@ -84,50 +89,60 @@
URL="ftp://louie.udel.edu/">louie.udel.edu</ulink>.</para>
<para>This primer is not a full comprehensive explanation of how
<application>MH</application> works. This is just intended to get you started on the road
to happier, faster mail reading. You should read the manual pages
for the various commands. You might also want to read the <ulink
URL="news:comp.mail.mh">comp.mail.mh</ulink> newsgroup. Also
you can read the <ulink
URL="http://www.faqs.org/faqs/mail/mh-faq/">FAQ for <application>MH</application></ulink>.
The best resource for <application>MH</application> is <ulink
URL="http://www.ics.uci.edu/~mh/book/">Jerry Peek's <application>MH</application> &amp;
nmh: Email for Users &amp; Programmers</ulink>.</para>
<application>MH</application> works. This is just intended to
get you started on the road to happier, faster mail reading. You
should read the manual pages for the various commands. You might
also want to read the <ulink
URL="news:comp.mail.mh">comp.mail.mh</ulink> newsgroup. Also you
can read the <ulink
URL="http://www.faqs.org/faqs/mail/mh-faq/">FAQ for
<application>MH</application></ulink>. The best resource for
<application>MH</application> is <ulink
URL="http://www.ics.uci.edu/~mh/book/">Jerry Peek's
<application>MH</application> &amp; nmh: Email for Users &amp;
Programmers</ulink>.</para>
</sect1>
<sect1>
<title>Reading Mail</title>
<para>This section covers how to use <command>inc</command>,
<command>show</command>, <command>scan</command>, <command>next</command>,
<command>prev</command>, <command>rmm</command>, <command>rmf</command>, and
<command>msgchk</command>. One of the best things about <application>MH</application> is the
consistent interface between programs. One thing to keep in
mind when using these commands is how to specify message lists.
In the case of <command>inc</command> this does not really make any
sense but with commands like <command>show</command> it is useful to
<command>show</command>, <command>scan</command>,
<command>next</command>, <command>prev</command>,
<command>rmm</command>, <command>rmf</command>, and
<command>msgchk</command>. One of the best things about
<application>MH</application> is the consistent interface
between programs. One thing to keep in mind when using these
commands is how to specify message lists. In the case of
<command>inc</command> this does not really make any sense but
with commands like <command>show</command> it is useful to
know. </para>
<para>A message list can consist of something like <parameter>23
20 16</parameter> which will act on messages 23, 20 and 16. This is
fairly simple but you can do more useful things like
<parameter>23-30</parameter> which will act on all the messages between
23 and 30. You can also specify something like
<parameter>cur:10</parameter> which will act on the current message and
the next 9 messages. The <parameter>cur</parameter>, <parameter>last</parameter>,
and <parameter>first</parameter> messages are special messages that refer
to the current, last or first message in the folder.</para>
20 16</parameter> which will act on messages 23, 20 and
16. This is fairly simple but you can do more useful things
like <parameter>23-30</parameter> which will act on all the
messages between 23 and 30. You can also specify something
like <parameter>cur:10</parameter> which will act on the
current message and the next 9 messages. The
<parameter>cur</parameter>, <parameter>last</parameter>, and
<parameter>first</parameter> messages are special messages
that refer to the current, last or first message in the
folder.</para>
<sect2 id="inc">
<title><command>inc</command>, <command>msgchk</command>&mdash;read in your
new email or check it</title>
<title><command>inc</command>,
<command>msgchk</command>&mdash;read in your new email or
check it</title>
<para>If you just type in <userinput>inc</userinput> and hit
<keycap>return</keycap> you will be well on your way to getting
started with <application>MH</application>. The first time you run <command>inc</command> it
will setup your account to use all the <application>MH</application> defaults and ask you
about creating a <filename>Mail</filename> directory under your HOME directory. If you have mail waiting to
be downloaded you will see something that looks like:</para>
<keycap>return</keycap> you will be well on your way to
getting started with <application>MH</application>. The first
time you run <command>inc</command> it will setup your account
to use all the <application>MH</application> defaults and ask
you about creating a <filename>Mail</filename> directory under
your HOME directory. If you have mail waiting to be downloaded
you will see something that looks like:</para>
<informalexample>
<screen> 29 01/15 Doug White Re: Another Failed to boot problem&lt;&lt;On Mon, 15 J
@ -144,22 +159,25 @@
you.</para>
<para>A lot of people like to use POP for grabbing their email.
<application>MH</application> can do POP to grab your email. You will need to give
<command>inc</command> a few command line arguments.</para>
<application>MH</application> can do POP to grab your
email. You will need to give <command>inc</command> a few
command line arguments.</para>
<informalexample>
<screen>&prompt.user; <userinput>inc -host mail.pop.org -user <replaceable>username</replaceable> -norpop</userinput></screen>
</informalexample>
<para>That tells <command>inc</command> to go to
<parameter>mail.pop.org</parameter> to download your email, and that
your username on their system is <replaceable>username</replaceable>. The
<option>-norpop</option> option tells <command>inc</command> to use
plain POP3 for downloading your email. <application>MH</application> has support for a
few different dialects of POP. More than likely you will never
<parameter>mail.pop.org</parameter> to download your email,
and that your username on their system is
<replaceable>username</replaceable>. The
<option>-norpop</option> option tells <command>inc</command>
to use plain POP3 for downloading your
email. <application>MH</application> has support for a few
different dialects of POP. More than likely you will never
ever need to use them though. While you can do more complex
things with <command>inc</command> such as audit files and scan format files this
will get you going.</para>
things with <command>inc</command> such as audit files and
scan format files this will get you going.</para>
<para>The <command>msgchk</command> command is used to get information
on whether or not you have new email. <command>msgchk</command> takes
@ -233,10 +251,11 @@
<title><command>rmm</command> and <command>rmf</command>&mdash;remove the
current message or folder</title>
<para><command>rmm</command> is used to remove a mail message. The
default is typically to not actually remove the message but to
rename the file to one that is ignored by the <application>MH</application> commands. You
will periodically need to go through and physically delete the
<para><command>rmm</command> is used to remove a mail
message. The default is typically to not actually remove the
message but to rename the file to one that is ignored by the
<application>MH</application> commands. You will periodically
need to go through and physically delete the
<quote>removed</quote> messages.</para>
<para>The <command>rmf</command> command is used to remove folders.
@ -326,10 +345,11 @@ which I am probably the guilty party).</screen>
</informalexample>
<para>Then if I wanted to read message number 27 I would do a
<userinput>show 27</userinput> and it would be displayed. As you can
probably tell from this sample session <application>MH</application> is pretty easy to
use and looking through emails and displaying them is fairly
intuitive and easy.</para>
<userinput>show 27</userinput> and it would be displayed. As
you can probably tell from this sample session
<application>MH</application> is pretty easy to use and
looking through emails and displaying them is fairly intuitive
and easy.</para>
</sect2>
</sect1>
@ -338,43 +358,52 @@ which I am probably the guilty party).</screen>
<para>Anybody who gets lots of email definitely wants to be able
to prioritize, stamp, brief, de-brief, and number their emails
in a variety of different ways. <application>MH</application> can do this better than just
about anything. One thing that we have not really talked about is
the concept of folders. You have undoubtedly come across the
folders concept using other email programs. <application>MH</application> has folders too.
<application>MH</application> can even do sub-folders of a folder. One thing you should
keep in mind with <application>MH</application> is that when you ran <command>inc</command> for
the first time and it asked you if it could create a
<filename>Mail</filename> directory it began storing everything in that
directory. If you look at that directory you will find a
directory named <filename>inbox</filename>. The <filename>inbox</filename>
in a variety of different ways. <application>MH</application>
can do this better than just about anything. One thing that we
have not really talked about is the concept of folders. You have
undoubtedly come across the folders concept using other email
programs. <application>MH</application> has folders too.
<application>MH</application> can even do sub-folders of a
folder. One thing you should keep in mind with
<application>MH</application> is that when you ran
<command>inc</command> for the first time and it asked you if it
could create a <filename>Mail</filename> directory it began
storing everything in that directory. If you look at that
directory you will find a directory named
<filename>inbox</filename>. The <filename>inbox</filename>
directory houses all of your incoming mail that has not been
thrown anywhere else.</para>
<para>Whenever you create a new folder a new directory is going to
be created underneath your <application>MH</application> <filename>Mail</filename> directory, and
messages in that folder are going to be stored in that
directory. When a new email message comes, it is thrown
into your <filename>inbox</filename> directory with a file name that is
equivalent to the message number. So even if you did not have
any of the <application>MH</application> tools to read your email you could still use
standard &unix; commands to munge around in those directories and
just more your files. It is this simplicity that really gives you
a lot of power with what you can do with your email.</para>
be created underneath your <application>MH</application>
<filename>Mail</filename> directory, and messages in that folder
are going to be stored in that directory. When a new email
message comes, it is thrown into your <filename>inbox</filename>
directory with a file name that is equivalent to the message
number. So even if you did not have any of the
<application>MH</application> tools to read your email you could
still use standard &unix; commands to munge around in those
directories and just more your files. It is this simplicity that
really gives you a lot of power with what you can do with your
email.</para>
<para>Just as you can use message lists like <parameter>23 16
42</parameter> with most <application>MH</application> commands there is a folder option you can
specify with just about every <application>MH</application> command. If you do a
<command>scan +freebsd</command> it will scan your <filename>freebsd</filename>
folder, and your current folder will be changed to
<filename>freebsd</filename>. If you do a <command>show +freebsd 23 16
42</command>, <command>show</command> is going to switch to your
<filename>freebsd</filename> folder and display messages 23, 16 and 42.
So remember that <option>+<replaceable>folder</replaceable></option> syntax. You
will need to make sure you use it to make commands process
different folders. Remember you default folder for mail is
<filename>inbox</filename> so doing a <command>folder +inbox</command> should
always get you back to your mail. Of course, in <application>MH</application>'s infinite
42</parameter> with most <application>MH</application>
commands there is a folder option you can specify with just
about every <application>MH</application> command. If you do a
<command>scan +freebsd</command> it will scan your
<filename>freebsd</filename> folder, and your current folder
will be changed to <filename>freebsd</filename>. If you do a
<command>show +freebsd 23 16 42</command>,
<command>show</command> is going to switch to your
<filename>freebsd</filename> folder and display messages 23,
16 and 42. So remember that
<option>+<replaceable>folder</replaceable></option>
syntax. You will need to make sure you use it to make commands
process different folders. Remember you default folder for
mail is <filename>inbox</filename> so doing a <command>folder
+inbox</command> should always get you back to your mail. Of
course, in <application>MH</application>'s infinite
flexibility this can be changed but most places have probably
left it as <command>inbox</command>.</para>
@ -414,12 +443,13 @@ which I am probably the guilty party).</screen>
<para>This will show you the same messages you just did not have
to work as hard to do it. The <option>-seq</option> option is
really an abbreviation of <option>-sequence</option> and
<command>pick</command> is just a sequence which contains the message
numbers that matched. You can use sequences with just about
any <application>MH</application> command. So you could have done an <command>rmm pick</command>
and all those messages would be removed instead. You sequence
can be named anything. If you run pick again it will overwrite
the old sequence if you use the same name.</para>
<command>pick</command> is just a sequence which contains the
message numbers that matched. You can use sequences with just
about any <application>MH</application> command. So you could
have done an <command>rmm pick</command> and all those
messages would be removed instead. You sequence can be named
anything. If you run pick again it will overwrite the old
sequence if you use the same name.</para>
<para>Doing a <command>pick -search</command> can be a bit more
time consuming than just searching for message from someone,
@ -513,10 +543,11 @@ which I am probably the guilty party).</screen>
<screen>&prompt.user; <userinput>pick -to freebsd-hackers -or -cc freebsd-hackers</userinput></screen>
</informalexample>
<para>That will grab all the email in your <filename role="directory">inbox</filename> that was sent
to freebsd-hackers or cc'd to that list. The brace options
allow you to group search criteria together. This is sometimes
very necessary as in the following example</para>
<para>That will grab all the email in your <filename
role="directory">inbox</filename> that was sent to
freebsd-hackers or cc'd to that list. The brace options allow
you to group search criteria together. This is sometimes very
necessary as in the following example</para>
<informalexample>
<screen>&prompt.user; <userinput>pick -lbrace -to freebsd-hackers -and
@ -531,10 +562,11 @@ which I am probably the guilty party).</screen>
the subject line. Ordinarily you might have to worry about
something called operator precedence. Remember in math how you
evaluate from left to right and you do multiplication and
division first and addition and subtraction second? <application>MH</application> has the
same type of rules for <command>pick</command>. It is fairly complex
so you might want to study the manual page. This document is just
to help you get acquainted with <application>MH</application>.</para>
division first and addition and subtraction second?
<application>MH</application> has the same type of rules for
<command>pick</command>. It is fairly complex so you might
want to study the manual page. This document is just to help
you get acquainted with <application>MH</application>.</para>
</sect2>
<sect2>
@ -543,14 +575,15 @@ which I am probably the guilty party).</screen>
maintenance</title>
<para>There are three programs which are primarily just for
manipulating your folders. The <command>folder</command> program is
used to switch between folders, pack them, and list them. At
its simplest level you can do a <command>folder
+<replaceable>newfolder</replaceable></command> and you will be switched into
<replaceable>newfolder</replaceable>. From there on out all your <application>MH</application>
commands like <command>comp</command>, <command>repl</command>,
<command>scan</command>, and <command>show</command> will act on that
<command>newfolder</command> folder.</para>
manipulating your folders. The <command>folder</command>
program is used to switch between folders, pack them, and list
them. At its simplest level you can do a <command>folder
+<replaceable>newfolder</replaceable></command> and you will
be switched into <replaceable>newfolder</replaceable>. From
there on out all your <application>MH</application> commands
like <command>comp</command>, <command>repl</command>,
<command>scan</command>, and <command>show</command> will act
on that <command>newfolder</command> folder.</para>
<para>Sometimes when you are reading and deleting messages you
will develop <quote>holes</quote> in your folders. If you do a
@ -605,22 +638,25 @@ which I am probably the guilty party).</screen>
<title>Sending Mail</title>
<para>Email is a two way street for most people so you want to be
able to send something back. The way <application>MH</application> handles sending mail can
be a bit difficult to follow at first, but it allows for
incredible flexibility. The first thing <application>MH</application> does is to copy a
components file into your outgoing email. A components file is
basically a skeleton email letter with stuff like the <literal>To:</literal> and
<literal>Subject:</literal> headers already in it. You are then sent into your
editor where you fill in the header information and then type
the body of your message below the dashed lines in the message.
When you leave the editor, the <command>whatnow</command> program is run. When you are at the
<prompt>What now?</prompt> prompt you can tell it to
<command>send</command>, <command>list</command>, <command>edit</command>,
<command>push</command>, and <command>quit</command>. Most
of these commands are self-explanatory. So the message sending
process involves copying a component file, editing your email,
and then telling the <command>whatnow</command> program what to do with
your email.</para>
able to send something back. The way
<application>MH</application> handles sending mail can be a bit
difficult to follow at first, but it allows for incredible
flexibility. The first thing <application>MH</application> does
is to copy a components file into your outgoing email. A
components file is basically a skeleton email letter with stuff
like the <literal>To:</literal> and <literal>Subject:</literal>
headers already in it. You are then sent into your editor where
you fill in the header information and then type the body of
your message below the dashed lines in the message. When you
leave the editor, the <command>whatnow</command> program is run.
When you are at the <prompt>What now?</prompt> prompt you can
tell it to <command>send</command>, <command>list</command>,
<command>edit</command>, <command>push</command>, and
<command>quit</command>. Most of these commands are
self-explanatory. So the message sending process involves
copying a component file, editing your email, and then telling
the <command>whatnow</command> program what to do with your
email.</para>
<sect2>
<title><command>comp</command>, <command>forw</command>,
@ -686,19 +722,22 @@ Subject:<userinput>And on the 8th day God created the FreeBSD core team</userinp
<para>The <command>repl</command> command will reply to the
current message, unless you give it a different message to
reply to. <command>repl</command> will do its best to go ahead and
fill in some of the email headers already. So you will notice
that the <literal>To:</literal> header already has the address of the
recipient in there. Also the <literal>Subject:</literal> line will
already be filled in. You then go about the normal message
composition process and you are done. One useful command line
option to know here is the <option>-cc</option> option. You
can use <parameter>all</parameter>, <parameter>to</parameter>, <parameter>cc</parameter>,
<parameter>me</parameter> after the <option>-cc</option> option to have
<command>repl</command> automatically add the various addresses to
the <literal>Cc:</literal> list in the message. You have probably noticed that the
original message is not included. This is because most <application>MH</application>
setups are configured to do this from the start.</para>
reply to. <command>repl</command> will do its best to go ahead
and fill in some of the email headers already. So you will
notice that the <literal>To:</literal> header already has the
address of the recipient in there. Also the
<literal>Subject:</literal> line will already be filled in.
You then go about the normal message composition process and
you are done. One useful command line option to know here is
the <option>-cc</option> option. You can use
<parameter>all</parameter>, <parameter>to</parameter>,
<parameter>cc</parameter>, <parameter>me</parameter> after the
<option>-cc</option> option to have <command>repl</command>
automatically add the various addresses to the
<literal>Cc:</literal> list in the message. You have probably
noticed that the original message is not included. This is
because most <application>MH</application> setups are
configured to do this from the start.</para>
</sect2>
<sect2>
@ -708,14 +747,14 @@ Subject:<userinput>And on the 8th day God created the FreeBSD core team</userinp
<para>The <filename>components</filename> file is usually in
<filename>/usr/local/lib/mh</filename>. You can copy that file
into your <application>MH</application> Mail directory and edit to contain what you want
it to contain. It is a fairly basic file. You have various
email headers at the top, a dashed line and then nothing. The
<command>comp</command> command just copies this
<filename>components</filename> file and then edits it. You can add
any kind of valid RFC822 header you want. For instance you
could have something like this in your <filename>components</filename>
file:</para>
into your <application>MH</application> Mail directory and
edit to contain what you want it to contain. It is a fairly
basic file. You have various email headers at the top, a
dashed line and then nothing. The <command>comp</command>
command just copies this <filename>components</filename> file
and then edits it. You can add any kind of valid RFC822 header
you want. For instance you could have something like this in
your <filename>components</filename> file:</para>
<informalexample>
<screen>To:
@ -726,11 +765,12 @@ X-Home-Page: http://www.FreeBSD.org/
-------</screen>
</informalexample>
<para><application>MH</application> would then copy this components file and throw you into
your editor. The <filename>components</filename> file is fairly
simple. If you wanted to have a signature on those messages
you would just put your signature in that
<filename>components</filename> file.</para>
<para><application>MH</application> would then copy this
components file and throw you into your editor. The
<filename>components</filename> file is fairly simple. If you
wanted to have a signature on those messages you would just
put your signature in that <filename>components</filename>
file.</para>
<para>The <filename>replcomps</filename> file is a bit more complex. The
default <filename>replcomps</filename> looks like this:</para>
@ -765,14 +805,15 @@ from address</emphasis>, %? <emphasis remap=bf>else</emphasis> {sender} <emphasi
message</emphasis>, %&gt; <emphasis remap=bf>endif</emphasis>.</screen>
</informalexample>
<para>As you can tell <application>MH</application> formatting can get rather involved. You
can probably decipher what most of the other functions and
variables mean. All of the information on writing these format
strings is in the MH-Format manual page. The really nice thing is
that once you have built your customized
<filename>replcomps</filename> file you will not need to touch it again.
No other email program really gives you the power and
flexibility that <application>MH</application> gives you.</para>
<para>As you can tell <application>MH</application> formatting
can get rather involved. You can probably decipher what most
of the other functions and variables mean. All of the
information on writing these format strings is in the
MH-Format manual page. The really nice thing is that once you
have built your customized <filename>replcomps</filename> file
you will not need to touch it again. No other email program
really gives you the power and flexibility that
<application>MH</application> gives you.</para>
</sect2>
</sect1>
</article>