diff options
author | John Fieber <jfieber@FreeBSD.org> | 1997-01-19 21:30:25 +0000 |
---|---|---|
committer | John Fieber <jfieber@FreeBSD.org> | 1997-01-19 21:30:25 +0000 |
commit | e7838ea2738c38cea8817a60ce97c200eccd9c35 (patch) | |
tree | 623d9c279f27ba0227d87e750a3ff1ef1fe37b47 /en_US.ISO8859-1 | |
parent | c3f730b5ab8c53e47f693312ffd557b8f172e3f1 (diff) | |
download | doc-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/Makefile | 6 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/mh/article.sgml | 704 |
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</>—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<<On Mon, 15 J + 30 01/16 "Jordan K. Hubbar Re: FBSD 2.1<<> Do you want a library instead of + 31 01/16 Bruce Evans Re: location of bad144 table<<>> >It would appea + 32 01/16 "Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev + 33 01/16 Michael Smith Re: FBSD 2.1<<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</>—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</>—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<<> Do you want a library instead of + 31 01/16 Bruce Evans Re: location of bad144 table<<>> >It would appea + 32 01/16 "Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev + 33 01/16 Michael Smith Re: FBSD 2.1<<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</>—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...<<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<<>>> Bill Fenner said: > 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" <stvlange@wwa.com> +To: matt@garply.com +Subject: Request... +Message-Id: <Pine.BSD.3.91.960119133211.824A-100000@sashimi.wwa.com> +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: <199601191756.RAA24416@whydos.lkg.dec.com> +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." + <199601182318.AA11772@Sysiphos> +X-Mailer: exmh version 1.5omega 10/6/94 +Date: Fri, 19 Jan 1996 17:56:40 +0000 +From: Matt Thomas <matt@lkg.dec.com> +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<<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<<>From matt@tempest.garply.com Tue + 29 01/16 Karl Heuer need configure/make volunteers<<The FSF is looki + 30 01/18 Paul Stephanouk Re: [alt.religion.scientology] Raw Meat (humor)< + 31 01/18 Bill Lenherr Re: Linux NIS Solaris<<--- On Thu, 18 Jan 1996 1 + 34 01/19 John Fieber Re: Stuff for the email section?<<On Fri, 19 Jan + 35 01/19 support@foo.garpl [garply.com #1138] parlor<<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<<>>> Bill Fenner said: > 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</>—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>… <option>-and</option> …</para> +</listitem> + +<listitem> +<para>… <option>-or</option> &hellip</para> +</listitem> + +<listitem> +<para><option>-not</option> …</para> +</listitem> + +<listitem> +<para><option>-lbrace</option> … <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</>—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</>—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</>—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 %<{reply-to}%?{from}%?{sender}%?{return-path}%>)\ +%<(nonnull)%(void(width))%(putaddr To: )\n%>\ +%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\ +%<(nonnull)%(void(width))%(putaddr cc: )\n%>\ +%<{fcc}Fcc: %{fcc}\n%>\ +%<{subject}Subject: Re: %{subject}\n%>\ +%<{date}In-reply-to: Your message of "\ +%<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id} + %{message-id}%>\n%>\ +-------- +</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>%<</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>%<<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>, %> <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> |