aboutsummaryrefslogtreecommitdiff
path: root/en_US.ISO8859-1
diff options
context:
space:
mode:
authorJohn Fieber <jfieber@FreeBSD.org>1997-01-19 21:30:25 +0000
committerJohn Fieber <jfieber@FreeBSD.org>1997-01-19 21:30:25 +0000
commite7838ea2738c38cea8817a60ce97c200eccd9c35 (patch)
tree623d9c279f27ba0227d87e750a3ff1ef1fe37b47 /en_US.ISO8859-1
parentc3f730b5ab8c53e47f693312ffd557b8f172e3f1 (diff)
downloaddoc-e7838ea2738c38cea8817a60ce97c200eccd9c35.tar.gz
doc-e7838ea2738c38cea8817a60ce97c200eccd9c35.zip
Another tutorial goes Docbook.
Add the standard header and footer graphics/links to HTML generated from Docbook.
Notes
Notes: svn path=/head/; revision=1068
Diffstat (limited to 'en_US.ISO8859-1')
-rw-r--r--en_US.ISO8859-1/articles/mh/Makefile6
-rw-r--r--en_US.ISO8859-1/articles/mh/article.sgml704
2 files changed, 707 insertions, 3 deletions
diff --git a/en_US.ISO8859-1/articles/mh/Makefile b/en_US.ISO8859-1/articles/mh/Makefile
index 656c29a14a..7b496e9773 100644
--- a/en_US.ISO8859-1/articles/mh/Makefile
+++ b/en_US.ISO8859-1/articles/mh/Makefile
@@ -1,5 +1,5 @@
-DOC= mh
-SRCS= mh.sgml
+DOCS= mh.docb
+INDEXLINK= mh.html
-.include <bsd.sgml.mk>
+.include "../../web.mk"
diff --git a/en_US.ISO8859-1/articles/mh/article.sgml b/en_US.ISO8859-1/articles/mh/article.sgml
new file mode 100644
index 0000000000..60425b8e9d
--- /dev/null
+++ b/en_US.ISO8859-1/articles/mh/article.sgml
@@ -0,0 +1,704 @@
+<!-- $FreeBSD$ -->
+<!-- FreeBSD Documentation Project -->
+
+<!DOCTYPE BOOK PUBLIC "-//Davenport//DTD DocBook V3.0//EN">
+<book>
+
+<bookinfo>
+<bookbiblio>
+<title>An MH Primer</title>
+
+<authorgroup>
+<author>
+<firstname>Matt</firstname>
+<surname>Midboe</surname>
+<affiliation>
+<address>
+<email>matt@garply.com</email>
+</address>
+</affiliation>
+</author></authorgroup>
+
+<pubdate>v1.0, 16 January 1996</pubdate>
+
+<abstract><para>This document contains an introduction to using MH on
+FreeBSD</para></abstract>
+
+</bookbiblio>
+</bookinfo>
+
+<chapter id="mhintro">
+<title>Introduction</title>
+
+<para>MH started back in 1977 at the RAND Corporation, where the
+initial philosophies behind MH were developed. MH isn't so much a
+monolithic email program but a philosophy about how best to develop
+tools for reading email. The MH developers have done a great job
+adhering to the <acronym>KISS</> 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 MH to the specialization that one finds
+in insects and nature. Each tool in MH does one thing, and does it
+very well.</para>
+
+<para>Beyond just the various tools that one uses to handle their
+email MH 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 MH 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 MH package on your FreeBSD machine. If you installed
+from CDROM you should be able to execute the following to load mh:
+<informalexample>
+<screen># <userinput>pkg_add /cdrom/packages/mh-6.8.3.tgz</></screen>
+</informalexample>
+You will notice that it created a <filename>/usr/local/lib/mh</>
+directory for you as well as adding several binaries to the
+<filename>/usr/local/bin</> directory. If you would prefer to compile
+it yourself then you can anonymous ftp it from <ulink
+URL="ftp://ftp.ics.uci.edu/">ftp.ics.uci.edu</ulink> or <ulink
+URL="ftp://louie.udel.edu/">louie.udel.edu</ulink>.</para>
+
+<para>This primer is not a full comprehensive explanation of how MH
+works. This is just intended to get you started on the road to
+happier, faster mail reading. You should read the man pages for the
+various commands. Also you might want to read the <ulink
+URL="news:comp.mail.mh">comp.mail.mh</ulink> newsgroup. Also you can
+read the <ulink
+URL="http://www.cis.ohio-state.edu/hypertext/faq/usenet/mh-faq/part1/faq.html">FAQ
+for MH</ulink>. The best resource for MH is the O'Reilly and Associates book
+written by Jerry Peek.</para>
+
+</chapter>
+
+<chapter>
+<title>Reading Mail</title>
+
+<para>This section covers how to use <command>inc</>,
+<command>show</>, <command>scan</>, <command>next</>,
+<command>prev</>, <command>rmm</>, <command>rmf</>, and
+<command>msgchk</>. One of the best things about MH is the
+consistent interface between programs. A few things to keep in mind
+when using these commands is how to specify message lists. In the
+case of <command>inc</> this doesn't really make any sense but with
+commands like <command>show</> it is useful to know. </para>
+
+<para>A message list can consist of something like <parameter>23 20
+16</> which will act on messages 23, 20 and 16. This is fairly simple
+but you can do more useful things like <parameter>23-30</> which will
+act on all the messages between 23 and 30. You can also specify
+something like <parameter>cur:10</> which will act on the current
+message and the next 9 messages. The <parameter>cur</>,
+<parameter>last</>, and <parameter>first</> messages are special
+messages that refer to the current, last or first message in the
+folder.</para>
+
+
+<sect1 id="inc">
+<title><command>inc</>, <command>msgchk</>&mdash;read in your new email or check it</title>
+
+<para>If you just type in <userinput>inc</> and hit <keycap>return</>
+you will be well on your way to getting started with MH. The first
+time you run <command>inc</> it will setup your account to use all
+the MH defaults and ask you about creating a Mail directory. If you
+have mail waiting to be downloaded you will see something that looks
+like:
+<informalexample>
+<screen> 29 01/15 Doug White Re: Another Failed to boot problem&lt;&lt;On Mon, 15 J
+ 30 01/16 "Jordan K. Hubbar Re: FBSD 2.1&lt;&lt;&gt; Do you want a library instead of
+ 31 01/16 Bruce Evans Re: location of bad144 table&lt;&lt;&gt;&gt; &gt;It would appea
+ 32 01/16 "Jordan K. Hubbar Re: video is up&lt;&lt;&gt; Anyway, mrouted won't run, ev
+ 33 01/16 Michael Smith Re: FBSD 2.1&lt;&lt;Nate Williams stands accused of sa</screen>
+</informalexample>
+This is the same thing you will see from a <command>scan</> (see
+<xref linkend="scan">). If you just run <command>inc</> with no
+arguments it will look on your computer for email that is supposed to
+be coming to you.</para>
+
+<para>A lot of people like to use POP for grabbing their email. MH can do
+POP to grab your email. You will need to give <command>inc</> a few command
+line arguments.
+<informalexample>
+<screen>tempest% <userinput>inc -host mail.pop.org -user <replaceable>username</> -norpop</></screen>
+</informalexample>
+That tells <command>inc</> to go to <parameter>mail.pop.org</> to
+download your email, and that your username on their system is
+<replaceable>username</>. The <option>-norpop</option> option tells
+<command>inc</> to use plain POP3 for downloading your email. MH 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 inc such as audit files and scan format files
+this will get you going.</para>
+
+<para>The <command>msgchk</> command is used to get information on
+whether or not you have new email. <command>msgchk</> takes the same
+<option>-host</option> and <option>-user</option> options that
+<command>inc</> takes.</para>
+
+</sect1>
+
+<sect1 id="show">
+<title><command>show</>, <command>next</> and <command>prev</>&mdash;displaying and moving through email</title>
+
+<para><command>show</> is to show a letter in your current folder.
+Like <command>inc</>, <command>show</> is a fairly straightforward
+command. If you just type <userinput>show</> and hit <keycap>return</>
+then it displays the current message. You can also give specific
+message numbers to show:
+<informalexample>
+<screen>tempest% <userinput>show 32 45 56</></screen>
+</informalexample>
+This would display message numbers 32, 45 and 56 right after each
+other. Unless you change the default behavior <command>show</>
+basically just does a <command>more</> on the email message.</para>
+
+<para><command>next</> is used to move onto the next message and
+<command>prev</> will go to the previous message. Both commands have
+an implied <command>show</> command so that when you go to the next
+message it automatically displays it.</para>
+
+</sect1>
+
+<sect1 id="scan">
+<title><command>scan</>&mdash;shows you a scan of your messages</title>
+
+<para><command>scan</> will display a brief listing of the messages
+in your current folder. This is an example of what the
+<command>scan</> command will give you.
+<informalexample>
+<screen> 30+ 01/16 "Jordan K. Hubbar Re: FBSD 2.1&lt;&lt;&gt; Do you want a library instead of
+ 31 01/16 Bruce Evans Re: location of bad144 table&lt;&lt;&gt;&gt; &gt;It would appea
+ 32 01/16 "Jordan K. Hubbar Re: video is up&lt;&lt;&gt; Anyway, mrouted won't run, ev
+ 33 01/16 Michael Smith Re: FBSD 2.1&lt;&lt;Nate Williams stands accused of sa</screen>
+</informalexample>
+Like just about everything in MH this display is very configurable.
+This is the typical default display. It gives you the message number,
+the date on the email, the sender, the subject line, and a sentence
+fragment from the very beginning of the email if it can fit it. The
+<literal>+</> means that message is the current message, so if you do
+a <command>show</> it will display that message.</para>
+
+<para>One useful option for scan is the <option>-reverse</option>
+option. This will list your messages with the highest message number
+first and lowest message number last. Another useful option with
+<command>scan</> is to have it read from a file. If you want to scan
+your incoming mailbox on FreeBSD without having to <command>inc</> it
+you can do <command>scan -file
+/var/mail/<replaceable>username</></command>. This can be used with
+any file that is in the <database>mbox</> format.</para>
+
+</sect1>
+
+<sect1 id="rmm">
+<title><command>rmm</> and <command>rmf</>&mdash;remove the current message or folder</title>
+
+<para><command>rmm</> 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 MH commands. You will need to
+through periodically and physically delete the <quote>removed</>
+messages.</para>
+
+<para>The <command>rmf</> command is used to remove folders. This
+doesn't just rename the files but actually removes the from the hard
+drive so you should be careful when you use this command.</para>
+
+</sect1>
+
+<sect1 id="samplereading">
+<title>A typical session of reading with MH</title>
+
+<para>The first thing that you will want to do is <command>inc</>
+your new mail. So at a shell prompt just type in <command>inc</> and
+hit <keycap>return</>.
+<informalexample>
+<screen>tempest% <userinput>inc</>
+Incorporating new mail into inbox...
+
+ 36+ 01/19 "Stephen L. Lange Request...&lt;&lt;Please remove me as contact for pind
+ 37 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl
+ 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT&lt;&lt;&gt;&gt;&gt; Bill Fenner said: &gt; In
+tempest%</screen>
+</informalexample>
+This shows you the new email that has been added to your mailbox. So
+the next thing to do is <command>show</> the email and move around.
+<informalexample>
+<screen>tempest% <userinput>show</>
+Received: by sashimi.wwa.com (Smail3.1.29.1 #2)
+ id m0tdMZ2-001W2UC; Fri, 19 Jan 96 13:33 CST
+Date: Fri, 19 Jan 1996 13:33:31 -0600 (CST)
+From: "Stephen L. Lange" &lt;stvlange@wwa.com&gt;
+To: matt@garply.com
+Subject: Request...
+Message-Id: &lt;Pine.BSD.3.91.960119133211.824A-100000@sashimi.wwa.com&gt;
+Mime-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+
+
+Please remove me as contact for pindat.com
+
+tempest% <userinput>rmm</>
+tempest% <userinput>next</>
+Received: from localhost (localhost [127.0.0.1]) by whydos.lkg.dec.com (8.6.11/8
+.6.9) with SMTP id RAA24416; Fri, 19 Jan 1996 17:56:48 GMT
+Message-Id: &lt;199601191756.RAA24416@whydos.lkg.dec.com&gt;
+X-Authentication-Warning: whydos.lkg.dec.com: Host localhost didn't use HELO pro
+tocol
+To: hsu@clinet.fi
+Cc: hackers@FreeBSD.org
+Subject: Re: kern/950: Two PCI bridge chips fail (multiple multiport ethernet
+ boards)
+In-Reply-To: Your message of "Fri, 19 Jan 1996 00:18:36 +0100."
+ &lt;199601182318.AA11772@Sysiphos&gt;
+X-Mailer: exmh version 1.5omega 10/6/94
+Date: Fri, 19 Jan 1996 17:56:40 +0000
+From: Matt Thomas &lt;matt@lkg.dec.com&gt;
+Sender: owner-hackers@FreeBSD.org
+Precedence: bulk
+
+
+This is due to a typo in pcireg.h (to
+which I am probably the guilty party).</screen>
+</informalexample></para>
+
+<para>The <command>rmm</> removed the current message and the
+<command>next</> command moved me on to the next message.
+Now if I wanted to look at ten most recent messages so I could read
+one of them here is what I would do:
+<informalexample>
+<screen>tempest% <userinput>scan last:10</>
+ 26 01/16 maddy Re: Testing some stuff&lt;&lt;yeah, well, Trinity has
+ 27 01/17 Automatic digest NET-HAPPENINGS Digest - 16 Jan 1996 to 17 Jan 19
+ 28 01/17 Evans A Criswell Re: Hey dude&lt;&lt;&gt;From matt@tempest.garply.com Tue
+ 29 01/16 Karl Heuer need configure/make volunteers&lt;&lt;The FSF is looki
+ 30 01/18 Paul Stephanouk Re: [alt.religion.scientology] Raw Meat (humor)&lt;
+ 31 01/18 Bill Lenherr Re: Linux NIS Solaris&lt;&lt;--- On Thu, 18 Jan 1996 1
+ 34 01/19 John Fieber Re: Stuff for the email section?&lt;&lt;On Fri, 19 Jan
+ 35 01/19 support@foo.garpl [garply.com #1138] parlor&lt;&lt;Hello. This is the Ne
+ 37+ 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl
+ 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT&lt;&lt;&gt;&gt;&gt; Bill Fenner said: &gt; In
+tempest%</screen>
+</informalexample>
+Then if I wanted to read message number 27 I would do a
+<userinput>show 27</> and it would be displayed. As you can probably
+tell from this sample session MH is pretty easy to use and looking
+through emails and displaying them is fairly intuitive and easy.
+</para>
+
+</sect1>
+</chapter>
+
+<chapter>
+<title>Folders and Mail Searching</title>
+
+<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. MH can do this better than just about
+anything. One thing that we haven't really talked about is the
+concept of folders. You have undoubtedly come across the folders
+concept using other email programs. MH has folders too. MH can even
+do sub-folders of a folder. One thing you should keep in mind with MH
+is that when you ran <command>inc</> for the first time and it asked
+you if it could create a <filename>Mail</> directory it began storing
+everything in that directory. If you look at that directory you will
+find a directory named <filename>inbox</>. The <filename>inbox</>
+directory houses all of your incoming mail that hasn't been thrown
+anywhere else.</para>
+
+<para>Whenever you create a new folder a new directory is going to be
+created underneath your MH <filename>Mail</> directory, and messages
+in that folder are going to be stored in that directory. When new
+email comes in that new email is thrown into your <filename>inbox</>
+directory with a file name that is equivalent to the message number.
+So even if you didn't have any of the MH tools to read your email you
+could still use standard UNIX commands to munge around in those
+directories and just more your files. It's 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</>
+with most MH commands there is a folder option you can specify with
+just about every MH command. If you do a <command>scan +freebsd</> it
+will scan your <filename>freebsd</> folder, and your current folder
+will be changed to <filename>freebsd</>. If you do a <command>show
++freebsd 23 16 42</>, <command>show</> is going to switch to your
+<filename>freebsd</> folder and display messages 23, 16 and 42. So
+remember that <option>+<replaceable>folder</></> 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</>
+so doing a <command>folder +inbox</> should always get you back to
+your mail. Of course, in MH's infinite flexibility this can be
+changed but most places have probably left it as
+<command>inbox</>.</para>
+
+
+<sect1>
+<title><command>pick</>&mdash;search email that matches certain criteria</title>
+
+<para><command>pick</> is one of the more complex commands in the MH
+system. So you might want to read the
+<citerefentry><refentrytitle>pick</><manvolnum>1</></> man page for a
+more thorough understanding. At its simplest level you can do
+something like
+<informalexample>
+<screen>tempest% <userinput>pick -search pci</>
+15
+42
+55
+56
+57</screen>
+</informalexample>
+
+This will tell <command>pick</> to look through every single line in
+every message in your current folder and tell you which message
+numbers it found the word <literal>pci</> in. You can then
+<command>show</> those messages and read them if you wish or
+<command>rmm</> them. You would have to specify something like
+<command>show 15 42 55-57</> to display them though. A slightly more
+useful thing to do is this:
+<informalexample>
+<screen>tempest% <userinput>pick -search pci -seq pick</>
+5 hits
+tempest% <userinput>show pick</></screen>
+</informalexample>
+This will show you the same messages you just didn't have to work as
+hard to do it. The <option>-seq</option> option is really an
+abbreviation of <option>-sequence</option> and <command>pick</> is
+just a sequence which contains the message numbers that matched. You
+can use sequences with just about any MH command. So you could have
+done an <command>rmm pick</> 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, or to
+someone. So <command>pick</> allows you to use the following
+predefined search criteria:
+
+<variablelist>
+
+<varlistentry>
+<term><option>-to</option></term>
+<listitem>
+<para>search based upon who the message is to</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-cc</option></term>
+<listitem>
+<para>search based on who is in the cc list</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-from</option></term>
+<listitem>
+<para>search for who sent the message</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-subject</option></term>
+<listitem>
+<para>search for emails with this subject</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-date</option></term>
+<listitem>
+<para>find emails with a matching dat</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>--<replaceable>component</replaceable></option></term>
+<listitem>
+<para>search for any other component in the header. (i.e.
+<option>--reply-to</> to find all emails with a certain reply-to in
+the header)</para>
+</listitem>
+</varlistentry>
+
+</variablelist></para>
+
+<para>This allows you to do things like
+<informalexample>
+<screen>tempest% <userinput>pick -to freebsd-hackers@freebsd.org -seq hackers</></screen>
+</informalexample>
+to get a list of all the email send to the FreeBSD hackers mailing
+list. <command>pick</> also allows you to group these criteria in
+different ways using the following options:
+<itemizedlist>
+
+<listitem>
+<para>&hellip; <option>-and</option> &hellip;</para>
+</listitem>
+
+<listitem>
+<para>&hellip; <option>-or</option> &hellip</para>
+</listitem>
+
+<listitem>
+<para><option>-not</option> &hellip;</para>
+</listitem>
+
+<listitem>
+<para><option>-lbrace</option> &hellip; <option>-rbrace</option></para>
+</listitem>
+
+</itemizedlist>
+These commands allow you to do things like
+<informalexample>
+<screen>tempest% <userinput>pick -to freebsd-hackers -and -cc freebsd-hackers</></screen>
+</informalexample>
+That will grab all the email in your inbox 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
+<informalexample>
+<screen>tempest% <userinput>pick -lbrace -to freebsd-hackers -and
+ -not -cc freebsd-questions -rbrace -and -subject pci</></screen>
+</informalexample></para>
+
+<para>Basically this says <quote>pick (to freebsd-hackers and not cc'd on
+freebsd-questions) and the subject is pci</quote>. It should look through your
+folder and find all messages sent to the freebsd-hackers list that
+aren't cc'd to the freebsd-questions list that contain something on
+pci in 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? MH has the same type of
+rules for <command>pick</>. It's fairly complex so you might want to study
+the man page. This document is just to help you get acquainted with
+MH.</para>
+
+</sect1>
+
+<sect1>
+<title><command>folder</>, <command>folders</>, <command>refile</>&mdash;three useful programs for folder maintenance</title>
+
+<para>There are three programs which are primarily just for
+manipulating your folders. The <command>folder</> program is used to
+switch between folders, pack them, and list them. At its simplest
+level you can do a <command>folder +<replaceable>newfolder</></> and
+you will be switched into <replaceable>newfolder</>. From there on
+out all your MH commands like <command>comp</>, <command>repl</>,
+<command>scan</>, and <command>show</> will act on that
+<command>newfolder</> folder.</para>
+
+<para>Sometimes when you are reading and deleting messages you will
+develop <quote>holes</> in your folders. If you do a <command>scan</>
+you might just see messages 34, 35, 36, 43, 55, 56, 57, 80. If you do
+a <command>folder -pack</command> this will renumber all your
+messages so that there are no holes. It doesn't actually delete any
+messages though. So you may need to periodically go through and
+physically delete <command>rmm</>'d messages.</para>
+
+<para>If you need statistics on your folders you can do a
+<command>folders</> or <command>folder -all</command> to list all
+your folders, how many messages they have, what the current message
+is in each one and so on. This line of stats it displays for all your
+folders is the same one you get when you change to a folder with
+<command>folder +foldername</>. A <command>folders</> command looks
+like this:
+<informalexample>
+<screen> Folder # of messages ( range ); cur msg (other files)
+ announce has 1 message ( 1- 1).
+ drafts has no messages.
+ f-hackers has 43 messages ( 1- 43).
+ f-questions has 16 messages ( 1- 16).
+ inbox+ has 35 messages ( 1- 38); cur= 37.
+ lists has 8 messages ( 1- 8).
+ netfuture has 1 message ( 1- 1).
+ out has 31 messages ( 1- 31).
+ personal has 6 messages ( 1- 6).
+ todo has 58 messages ( 1- 58); cur= 1.
+
+ TOTAL= 199 messages in 13 folders.
+</screen>
+</informalexample></para>
+
+<para>The <command>refile</> command is what you use to move messages
+between folders. When you do something like <command>refile 23
++netfuture</> message number 23 is moved into the
+<filename>netfuture</> folder. You could also do something like
+<command>refile 23 +netfuture/latest</> which would put message
+number 23 in a subfolder called <filename>latest</> under the
+<filename>netfuture</> folder. If you want to keep a message in the
+current folder and link it you can do a <command>refile -link 23
++netfuture</command> which would keep 23 in your current
+<filename>inbox</> but also list in your <filename>netfuture</>
+folder. You are probably beginning to realize some of the really
+powerful things you can do with MH.</para>
+
+</sect1>
+</chapter>
+
+<chapter>
+<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 MH handles sending mail can be a
+bit difficult to follow at first, but it allows for incredible
+flexibility. The first thing MH does is to copy a components file
+into your outgoing email. A components file is basically a skeleton
+email letter with stuff like the To: and Subject: 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. Then to the <command>whatnow</> program. When
+you are at the <prompt>What now?</prompt> prompt you can tell it to
+<command>send</>, <command>list</>, <command>edit</>,
+<command>edit</>, <command>push</>, and <command>quit</>. 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</> program what to do with your
+email.</para>
+
+
+<sect1>
+<title><command>comp</>, <command>forw</>, <command>reply</>&mdash;compose, forward or reply to a message to someone</title>
+
+<para>The <command>comp</> program has a few useful command line
+options. The most important one to know right now is the
+<option>-editor</option> option. When MH is installed the default
+editor is usually a program called <command>prompter</> which comes
+with MH. It's not a very exciting editor and basically just gets the
+job done. So when you go to compose a message to someone you might
+want to use <command>comp -editor /usr/bin/vi/</> or <command>comp
+-editor /usr/local/bin/pico/</> instead. Once you have run
+<emphasis>comp</emphasis> you are in your editor and you see
+something that looks like this:
+<informalexample>
+<screen>To:
+cc:
+Subject:
+--------
+</screen>
+</informalexample></para>
+
+<para>You need to put the person you are sending the mail to after the
+<literal>To:</> line. It works the same way for the other headers
+also, so you would need to put your subject after the
+<literal>Subject:</> line. Then you would just put the body of your
+message after the dashed lines. It may seem a bit simplistic since a
+lot of email programs have special requesters that ask you for this
+information but there really isn't any point to that. Plus this
+really gives you excellent flexibility.
+<informalexample>
+<screen>To:<userinput>freebsd-rave@freebsd.org</>
+cc:
+Subject:<userinput>And on the 8th day God created the FreeBSD core team</>
+--------
+<userinput>Wow this is an amazing operating system. Thanks!</></screen>
+</informalexample>
+You can now save this message and exit your editor. You will see the
+<prompt>What now?</> prompt and you can type in
+<userinput>send</> or <userinput>s</> and hit
+<keycap>return</>. Then the freebsd core team will receive their just
+rewards. As I mentioned earlier you can also use other commands, for
+example <command>quit</> if you don't want to send the
+message.</para>
+
+<para>The <command>forw</> command is stunningly similar. The big
+difference being that the message you are forwarding is automatically
+included in the outgoing message. When you run <command>forw</> it
+will forward your current message. You can always tell it to forward
+something else by doing something like <command>forw 23</> and then
+message number 23 will be put in your outgoing message instead of the
+current message. Beyond those small differences <command>forw</>
+functions exactly the same as <command>comp</>. You go through the
+exact same message sending process.</para>
+
+<para>The <command>repl</> command will reply to whatever your
+current message is, unless you give it a different message to reply
+to. <command>repl</> will do its best to go ahead and fill in some of
+the email headers already. So you will notice that the
+<literal>To:</> header already has the address of the recipient in
+there. Also the <literal>Subject:</> 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>to</>, <parameter>cc</>, <parameter>me</> after the
+<option>-cc</option> option to have <command>repl</> automatically
+add the various addresses to the cc list in the message. You have
+probably noticed that the original message isn't included. This is
+because most MH setups are configured to do this from the
+start.</para>
+
+</sect1>
+
+<sect1>
+<title><filename>components</>, and <filename>replcomps</>&mdash;components files for <command>comp</> and <command>repl</></title>
+
+<para>The <filename>components</> file is usually in
+<filename>/usr/local/lib/mh</filename>. You can copy that file into
+your MH 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</> 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</> file:
+<informalexample>
+<screen>To:
+Fcc: out
+Subject:
+X-Mailer: MH 6.8.3
+X-Home-Page: http://www.freebsd.org/
+-------</screen>
+</informalexample>
+
+MH would then copy this components file and throw you into your
+editor. The <filename>components</> file is fairly simple. If you
+wanted to have a signature on those messages you would just put your
+signature in that <filename>components</> file.</para>
+
+<para>The <filename>replcomps</> file is a bit more complex. The default
+<filename>replcomps</> looks like this:
+<informalexample>
+<screen>%(lit)%(formataddr %&lt;{reply-to}%?{from}%?{sender}%?{return-path}%&gt;)\
+%&lt;(nonnull)%(void(width))%(putaddr To: )\n%&gt;\
+%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
+%&lt;(nonnull)%(void(width))%(putaddr cc: )\n%&gt;\
+%&lt;{fcc}Fcc: %{fcc}\n%&gt;\
+%&lt;{subject}Subject: Re: %{subject}\n%&gt;\
+%&lt;{date}In-reply-to: Your message of "\
+%&lt;(nodate{date})%{date}%|%(pretty{date})%&gt;."%&lt;{message-id}
+ %{message-id}%&gt;\n%&gt;\
+--------
+</screen>
+</informalexample></para>
+
+<para>It's in the same basic format as the <filename>components</> file but
+it contains quite a few extra formatting codes. The
+<literal>%(lit)</> command makes room for the address. The
+<literal>%(formataddr</> is a function that returns a proper email
+address. The next part is <literal>%&lt;</literal> which means if and
+the <literal>{reply-to}</> means the reply-to field in the original
+message. So that might be translated this way:
+<informalexample>
+<screen>%&lt;<emphasis remap=bf>if</emphasis> {reply-to} <emphasis remap=bf>the original message has a reply-to</emphasis>
+then give that to formataddr, %? <emphasis remap=bf>else</emphasis> {from} <emphasis remap=bf>take the
+from address</emphasis>, %? <emphasis remap=bf>else</emphasis> {sender} <emphasis remap=bf>take the sender address</emphasis>, %?
+<emphasis remap=bf>else</emphasis> {return-path} <emphasis remap=bf>take the return-path from the original
+message</emphasis>, %&gt; <emphasis remap=bf>endif</emphasis>.</screen>
+</informalexample></para>
+
+<para>As you can tell MH 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 man page. The really nice thing is that once you have built
+your customized <filename>replcomps</> file you won't need to touch it
+again. No other email program really gives you the power and
+flexibility that MH gives you.</para>
+
+</sect1>
+</chapter>
+</book>