<!--
     The FreeBSD Russian Documentation Project

     $FreeBSD$
     $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/mh/article.sgml,v 1.2 2001/07/19 10:20:35 phantom Exp $

     Original revision: 1.9
-->

<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN">
<article>
  <articleinfo>
    <title>Учебник по MH</title>

    <authorgroup>
      <author>
	<firstname>Matt</firstname>

	<surname>Midboe</surname>

	<affiliation>
	  <address>
	    <email>matt@garply.com</email>
	  </address>
	</affiliation>
      </author>
    </authorgroup>

    <pubdate>v1.0, 16 января 1996</pubdate>

<!--
    <para>Перевод на русский язык: Андрей Захватов
      (<email>andy@FreeBSD.org</email>)</para>
--> 

    <abstract>
      <para>В этом документе даются основы работы с MH во FreeBSD</para>
    </abstract>
  </articleinfo>

  <sect1 id="mhintro">
    <title>Введение</title>

    <para>MH ведет свою историю с 1977 года, с компании RAND Corporation, где
      были разработаны основы работы MH.  MH не является единой программой для
      работы с электронной почтой, но подходом к тому, как лучше всего
      разрабатывать инструменты для чтения электронной почты.  Разработчики MH
      провели большую работу, твердо придерживаясь принципа
      <acronym>KISS</acronym>: Keep It Simple Stupid.  Вместо того, чтобы
      разработать одну большую программу для чтения, отсылки и обработки
      электронной почты, они написали специальные программы для каждого случая
      вашей работы с электронной почтой.  Некоторым нравится MH по причине
      его специализации, которую очень проста и естественна.  Каждый инструмент
      в MH выполняет одно действие, но выполняет его очень хорошо.</para>

    <para>Кроме различных инструментов, которые можно использовать для
      обработки своей электронной почты, MH прекрасно выполняет работу по
      сохранению настроек каждого из этих инструментов однообразными и
      соответствующими друг другу.  На самом деле, если вы не совсем понимаете,
      как что-то должно работать, и какими должны быть аргументы некоторой
      команды, то вы можете попытаться угадать и окажетесь правы.  Каждая
      команда MH однообразна в обработке конфигурационных файлов и передаче
      параметров командной строки.  Вам полезно будет помнить, что вы всегда
      можете добавить <option>-help</option> к команде для вывода опций этой
      команды.</para>

    <para>Первым делом вам нужно убедиться, что на вашей машине с FreeBSD
      установлен пакет MH.  Если вы устанавливали систему с компакт-диска, то
      для установки mh можете выполнить такую команду:

      <informalexample>
	<screen>
&prompt.root; <userinput>pkg_add /cdrom/packages/mh-6.8.3.tgz</>
	</screen>
      </informalexample>

      Вы увидите, что при этом будет создан каталог
      <filename>/usr/local/lib/mh</filename>, а в каталог
      <filename>/usr/local/bin</filename> будут добавлены несколько выполнимых
      файлов.  Если вы предпочитаете откомпилировать все самостоятельно, то
      можете сгрузить исходный код с общедоступного ftp-сервера по адресу
      <ulink URL="ftp://ftp.ics.uci.edu/">ftp.ics.uci.edu</ulink> или <ulink
      URL="ftp://louie.udel.edu/">louie.udel.edu</ulink>.</para>

    <para>Этот учебник не является полным и подробным описанием того, как
      работает MH.  Он предназначен для того, чтобы вы начали свой путь по
      дороге к более удобному и эффективному чтению электронной почты.  Вы
      должны прочесть страницы справочной системы по различным командам.  Также
      вас может заинтересовать телеконференция <ulink
      URL="news:comp.mail.mh">comp.mail.mh</ulink>.  Прочтите <ulink
      URL="http://www.cis.ohio-state.edu/hypertext/faq/usenet/mh-faq/part1/faq.html">FAQ
      по MH</ulink>.  Лучшим источником информации по MH является книга
      издательства O'Reilly and Associates, которую написал Jerry Peek.</para>
  </sect1>

  <sect1>
    <title>Чтение почты</title>

    <para>Этот раздел посвящен тому, как использовать команды
      <command>inc</command>, <command>show</command>, <command>scan</command>,
      <command>next</command>, <command>prev</command>, <command>rmm</command>,
      <command>rmf</command> и <command>msgchk</command>.  Одной из приятнейших
      особенностей MH является единообразие интерфейсов программ.  При
      использовании этих программ нужно помнить лишь несколько вещей, например,
      способ задания списков сообщений.  В случае команды
      <command>inc</command> это не обязательно, но с командами типа
      <command>show</command> это полезно знать.</para>

    <para>Список сообщений может иметь вид типа <parameter>23 20
      16</parameter>, что будет означать сообщения 23, 20 и 16.  Это весьма
      просто, но можно делать более полезные вещи, типа
      <parameter>23-30</parameter>, что будет означать все сообщения с 23 до
      30.  Вы можете также указывать здесь в виде
      <parameter>cur:10</parameter>, что будет действовать на текущее сообщение
      и на следующие 9 сообщений.  Сообщения <parameter>cur</parameter>,
      <parameter>last</parameter> и <parameter>first</parameter> являются
      особыми обозначениями, соответствующими текущему, последнему и первому
      сообщениям в почтовом ящике.</para>

    <sect2 id="inc">
      <title><command>inc</command>, <command>msgchk</command>&mdash;чтение
        новой почты или проверка ее наличия</title>

      <para>Если вы просто наберете <userinput>inc</userinput> и нажмете
	<keycap>return</keycap>, то начнете работать с MH.  При выполнении
        команды <command>inc</command> первый раз, она настроит вашу учетную
        запись для использования настроек MH по умолчанию и запросит создание
        каталога Mail.  Если у вас имеется почта, ожидающая сгрузки, вы увидите
        нечто вроде следующего:</para>

      <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>

      <para>Это то же самое, что вы увидите при выполнении команды
	<command>scan</command> (смотрите <xref linkend="scan">).  Если вы
        просто запустили команду <command>inc</command> без параметров, она
        проверит ваш компьютер на наличие электронной почты, которая
        предназначается вам.</para>

      <para>Многим нравится для получения своей электронной почты использовать
        протокол POP.  MH может работать с ним для получения вашей электронной
        почты.  Вам нужно передать команде <command>inc</command> несколько
        аргументов командной строки.</para>

      <informalexample>
	<screen>
&prompt.user; <userinput>inc -host mail.pop.org -user <replaceable>username</> -norpop</>
	</screen>
      </informalexample>

      <para>Это укажет команде <command>inc</command> на соединение с
	<parameter>mail.pop.org</parameter> для сгрузки вашей электронной
        почты, а также сообщит о том, что ваше имя пользователя в той системе
	<replaceable>username</replaceable>.  Параметр <option>-norpop</option>
	указывает команде <command>inc</command> на использование обычного POP3
        для сгрузки вашей электронной почты.  В MH имеется поддержка нескольких
        разновидностей POP.  Более чем вероятно, что вам никогда не придется
        ими пользоваться.  Хотя с inc вы можете выполнять более сложные
        действия, такие, как проверка файлов и сканирование формата файлов, это
        позволит вам начать работу.</para>

      <para>Команда <command>msgchk</command> используется для получения
        информации о том, есть ли у вас новая почта.  <command>msgchk</command>
        воспринимает те же самые параметры <option>-host</option> и
        <option>-user</option>, что и команда <command>inc</command>.</para>
    </sect2>

    <sect2 id="show">
      <title><command>show</command>, <command>next</command> и
	<command>prev</command>&mdash;вывод и передвижение по электронной
        почте</title>

      <para><command>show</command> выводит письмо в вашей текущем почтовом
        ящике.  Как и <command>inc</command>, команда <command>show</command>
        незатейлива.  Если вы просто наберете <userinput>show</userinput> и
	нажмете <keycap>return</keycap>, то она выдаст текущее сообщение.  Вы
        можете также указать конкретные номера выводимых сообщений:</para>

      <informalexample>
	<screen>&prompt.user; <userinput>show 32 45 56</></screen>
      </informalexample>

      <para>По этой команде выведутся сообщения с номерами 32, 45 и 56 друг за
        другом.  Пока вы не поменяете действия по умолчанию, команда
	<command>show</command> в основном выполняет команду
        <command>more</command> над сообщением электронной почты.</para>

      <para><command>next</command> используется для перехода к следующему
        сообщению, а <command>prev</command> для перехода к предыдущему
        сообщению.  Обе команды подразумевают выполнение команды
        <command>show</command>, поэтому при переходе к следующему сообщению
        оно будет автоматически выведено на экран.</para>
    </sect2>

    <sect2 id="scan">
      <title><command>scan</command>&mdash;сканирование ваших сообщений</title>

      <para><command>scan</command> выдает краткий список сообщений в вашем
        текущем почтовом ящике.  Вот пример того, что вам выдаст команда
	<command>scan</command>.</para>

      <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>

      <para>Как и практически все в MH, этот вывод можно настроить.  Это
        обычный формат вывода по умолчанию.  В нем дается номер сообщения,
        дата, отправитель, строка темы и фрагмент начала письма, если он
        помещается.  Знак <literal>+</literal> означает, что данное сообщение
        является текущим, так что при выполнении команды
        <command>show</command> будет выдано именно это сообщение.</para>

      <para>Одним из полезных параметров для команды scan является является
	<option>-reverse</option>.  При этом ваши сообщения будут выдаваться в
        порядке, при котором сообщения с наибольшими номерами следуют первыми,
        а сообщения с меньшими номерами последними.  Другим полезным параметром
        для <command>scan</command> является чтение из файла.  Если вы хотите
        просканировать почтовый ящик с входящей почтой во FreeBSD без
        использования команды <command>inc</command>, то это можно сделать
        командой <command>scan -file
        /var/mail/<replaceable>username</replaceable></command>.  Это можно
        сделать с любым файлом в формате <database>mbox</database>.</para>
    </sect2>

    <sect2 id="rmm">
      <title><command>rmm</command> и <command>rmf</command>&mdash;удаление
        текущего сообщения или почтового ящика</title>

      <para><command>rmm</command> используется для удаления почтового
        сообщения.  По умолчанию обычно сообщение на самом деле не удаляется,
        а переименовывается и игнорируется командами MH.  Вам нужно
        переодически просматривать сообщения и физически удалять
	<quote>удаленные</quote> сообщения.</para>

      <para>Команда <command>rmf</command> используется для удаления почтовых
        ящиков.  Она не переименовывает файлы, а действительно их удаляет с
        диска, так что при использовании этой команды вам нужно быть
        внимательными.</para>
    </sect2>

    <sect2 id="samplereading">
      <title>Типичный сеанс чтения с использованием MH</title>

      <para>Сначала вам нужно получить новую почту командой
        <command>inc</command>.  Так что в командной строке наберите
	<command>inc</command> и нажмите <keycap>return</keycap>.</para>

      <informalexample>
	<screen>
&prompt.user; <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 
&prompt.user;
	</screen>
      </informalexample>

      <para>При этом выдается ваша новая электронная почта, которая была
        добавлена в ваш почтовый ящик.  Так что следующими действиями будут
	вывод сообщений по команде <command>show</command> и переход от
        сообщения к сообщению.</para>

      <informalexample>
	<screen>
&prompt.user; <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

&prompt.user; <userinput>rmm</>
&prompt.user; <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>По команде <command>rmm</command> было удалено текущее сообщение, а
        по команде <command>next</command> был выполнен переход к следующему
        сообщению.  Теперь, если я захочу просмотреть десять последних
        сообщений для чтения одного из них, я должен сделать следующее:</para>

      <informalexample>
	<screen>
&prompt.user; <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 
&prompt.user;
	</screen>
      </informalexample>

      <para>Теперь, если я хочу прочесть сообщение номер 27, я выполняю команду
	<userinput>show 27</userinput>, и сообщение будет показано.  Как вы
        можете видеть на примере этого простого сеанса работы, MH весьма легок
        в использовании, а просмотр электронной почты и ее вывод интуитивен и
        прост.</para>
    </sect2>
  </sect1>

  <sect1>
    <title>Папки и поиск почты</title>

    <para>Любому, кто получает много электронной почты, определенно требуется
      сортировать, помечать, сжимать и нумеровать свою электронную почту
      различными способами.  MH может делать это лучше, чем какой-либо другой
      инструмент.  Мы пока еще не обсуждали концепцию папок.  Несомненно, вы
      уже встречались с папками при использовании других почтовых программ.  В
      MH также используются папки.  MH может даже создавать в папках вложенные
      в них папки.  При работе с MH вы должны помнить, что при запуске команды
      <command>inc</command> первый раз она запрашивает создание каталога
      <filename>Mail</filename> и начинает сохранять все в этом каталоге.  Если
      вы посмотрите на содержимое этого каталога, то обнаружите там каталог с
      именем <filename>inbox</filename>.  В этом каталоге находится вся ваша
      входящая почта, которая не была еще никуда перемещена.</para>

    <para>При создании новой папки в каталоге программы MH
      <filename>Mail</filename> будет создан новый каталог, а сообщения этой
      папки будут размещаться в этом каталоге.  Когда приходит новая
      электронная почта, то она размещается в каталоге
      <filename>inbox</filename> в файле с именем, соответствующим номеру
      сообщения.  Поэтому, даже если у вас нет ни одного инструмента MH для
      чтения вашей электронной почты, вы можете продолжать использовать
      стандартные команды UNIX для работы с этими каталогами и просмотра ваших
      файлов.  Такой упрощенный подход на самом деле дает вам простор для
      действий, которые вы можете выполнять над вашей электронной
      почтой.</para>

    <para>Так же, как вы можете использовать списик сообщений типа
      <parameter>23 16 42</parameter> с большинством команд MH, имеется режим
      и для папок, который вы можете задать практически с каждой командой MH.
      Если вы выполняете команду <command>scan +freebsd</command>, она будет
      сканировать вашу папку <filename>freebsd</filename>, а ваша текущая папка
      будет изменена на <filename>freebsd</filename>.  При выполнении команды
      <command>show +freebsd 23 16 42</command>, <command>show</command>
      перейдет к вашей папке <filename>freebsd</filename> и выведет сообщения
      23, 16 и 42.  Поэтому запомните этот синтаксис
      <option>+<replaceable>folder</replaceable></option>.  Вам нужно
      использовать такие команды для работы с разными папками.  Помните, что
      вашей папкой для почты по умолчанию является <filename>inbox</filename>,
      так что выполнение команды <command>folder +inbox</command> должно всегда
      вернуть вас обратно к вашей почте.  Конечно, с бесконечной гибкостью MH
      такое поведение может быть изменено, но в большинстве случаев лучше
      оставить папку <command>inbox</command>.</para>

    <sect2>
      <title><command>pick</command>&mdash;поиск почты по некоторому
        критерию</title>

      <para>Команда <command>pick</command> является одной из более сложных
        команд в системе MH.  Так что вам может понадобиться прочесть
        справочник по
        <citerefentry><refentrytitle>pick</refentrytitle><manvolnum>1</manvolnum></citerefentry>
        для его более полного понимания.  В простейшем случае вы можете делать
        нечто вроде следующего:</para>

      <informalexample>
	<screen>
&prompt.user; <userinput>pick -search pci</>
15
42
55
56
57
	</screen>
      </informalexample>

      <para>Команде <command>pick</command> будет указано на просмотр каждой
        строки всех сообщений в текущей папке и выдачу номеров тех сообщений,
        в которых было найдено слово <literal>pci</literal>.  Затем по команде
	<command>show</command> вы можете вывести эти сообщения и прочесть их
        или удалить командой <command>rmm</command>.  Вам нужно задать команды
        типа <command>show 15 42 55-57</command> для их вывода.  Более полезной
        сделать следующее:</para>

      <informalexample>
	<screen>
&prompt.user; <userinput>pick -search pci -seq pick</>
5 hits
&prompt.user; <userinput>show pick</>
	</screen>
      </informalexample>

      <para>При этом будут выведены те же самые сообщения, но вам не придется
        тратить на них столько усилий.  Параметр <option>-seq</option> на самом
        деле является сокращенным выриантом для <option>-sequence</option>, а
        <command>pick</command> является именем последовательности, которая
        содержит номера сообщений, которые удовлетворяют заданному условию.  Вы
        можете использовать последовательности практически с люой командой MH.
        Так что вы можете выполнить команду <command>rmm pick</command>, и все
        эти сообщения будут удалены.  Вы можете именовать последовательности
        как угодно.  Если вы снова выполните команду pick, то она перезапишет
        старую последовательность, если вы используете то же самое имя.</para>

      <para>Выполнение команды <command>pick -search</command> может оказаться
        более длительной операцией, чем просто поиск сообщений от кого-то или
        для кого-то.  Поэтому <command>pick</command> позволяет вам
        использовать такой предопределенный критерий поиска:</para>

      <variablelist>
	<varlistentry>
	  <term><option>-to</option></term>

	  <listitem>
	    <para>поиск по адресату сообщения</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-cc</option></term>

	  <listitem>
	    <para>поиск по содержимому cc-списка</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-from</option></term>

	  <listitem>
	    <para>поиск по тому, от кого исходит сообщение</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-subject</option></term>

	  <listitem>
	    <para>поиск электронной почты с заданной темой письма</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-date</option></term>

	  <listitem>
	    <para>поиск электронных писем с указанной датой</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>--<replaceable>component</replaceable></option></term>

	  <listitem>
	    <para>поиск по любому другому компоненту заголовка письма. (То есть
	      <option>--reply-to</option> для поиска всех электронных писем с
              опеределенным значением поля reply-to в заголовке)</para>
	  </listitem>
	</varlistentry>
      </variablelist>
  
      <para>Это позволяет вам выполнять действия типа

	<informalexample>
	  <screen>
&prompt.user; <userinput>pick -to freebsd-hackers@FreeBSD.org -seq hackers</>
	  </screen>
	</informalexample>

	для получения списка всех электронных писем, посланных в список
        рассылки FreeBSD hackers.  Команда <command>pick</command> также
        позволяет вам группировать эти критерии различными способами при помощи
        следующих параметров:</para>

      <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>

      <para>Эти команды позволяют вам выполнять следующее</para>

      <informalexample>
	<screen>&prompt.user; <userinput>pick -to freebsd-hackers -and -cc freebsd-hackers</>
	</screen>
      </informalexample>

      <para>При этом будет взята вся почта в вашем входящем почтовом ящике,
        которая была послана по адресу freebsd-hackers или этот адрес
        присутствовал в cc-списке.  Параметры brace позволяют вам группировать
        критерии поиска.  Иногда это очень нужно, как в следующем
        примере</para>

      <informalexample>
	<screen>&prompt.user; <userinput>pick -lbrace -to freebsd-hackers -and 
  -not -cc freebsd-questions -rbrace -and -subject pci</>
	</screen>
      </informalexample>

      <para>В общем, это означает <quote>выбрать (во freebsd-hackers и не
        в cc-списке для freebsd-questions) с темой pci</quote>.  По этой
        команде должна быть просмотрена ваша папка и найдены все сообщения,
        посланные в список freebsd-hackers, которые не были также включены в
        cc-список для freebsd-questions, и в строке темы которых присутствовало
        упоминание pci.  Теперь вам стоит задуматься о том, что называется
        порядком выполнения операторов.  Помните, как при вычислении значений
        математических выражений вы начинали слева направо и сначала умножали
        и делили, и только потом складывали и вычитали?  В MH присутствует
        тот же набор правил для команды <command>pick</command>.  Он достаточно
        сложен, так что вам нужно будет изучить справочную страницу.  Этот
        документ только знакомит с MH.</para>
    </sect2>

    <sect2>
      <title><command>folder</command>, <command>folders</command>,
	<command>refile</command>&mdash;три полезные программы для управления
        папками</title>

      <para>Имеются три программы, которые предназначены только для управления
        вашими папками.  Программа <command>folder</command> используется для
        переключения между папками, их сжатия и вывода их списка.  В самом
        простом случае вы можете выполнить команду <command>folder
	+<replaceable>newfolder</replaceable></command>, и вы переключитесь на
        папку <replaceable>newfolder</replaceable>.  С этого момента все ваши
        команды MH типа <command>comp</command>, <command>repl</command>,
	<command>scan</command> и <command>show</command> будут выполняться над
        этой папкой <command>newfolder</command>.</para>

      <para>Иногда при чтении и удалении сообщений в ваших папках образуются
        <quote>holes</quote>.  Если вы выполните команду
        <command>scan</command>, то можете увидеть только сообщения 34, 35, 36,
        43, 55, 56, 57, 80.  Если вы выполните команду
        <command>folder -pack</command>, то она перенумерует все ваши
        сообщения, так что там не будет дыр.  Однако она не удаляет никаких
        сообщений.  Так что вам может понадобиться периодически просматривать
        и физически удалять <command>rmm</command>-сообщения.</para>

      <para>Если вам нужна информация о ваших папках, вы можете получить ее
        командами <command>folders</command> или
        <command>folder -all</command>, которые выводят список всех ваших
        папок, количество хранящихся в них сообщений, номер текущего сообщения
        в каждой папке, и так далее.  Такая строка статистики, которую выводят
        эти команды для всех папок, имеет тот же самый вид, что вы получаете
        при смене папки по команде <command>folder +foldername</command>.
        Результат выполнения команды <command>folders</command> выглядит
        примерно так:</para>

      <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>Команду <command>refile</command> нужно использовать для
        перемещения сообщения между папками.  Когда вы выполняете команду типа
	<command>refile 23 +netfuture</command>, то сообщение номер 23
        перемещается в папку <filename>netfuture</filename>.  Вы можете также
        выполнить команду типа <command>refile 23 +netfuture/latest</command>,
        которая поместит сообщение номер 23 в папку с именем
	<filename>latest</filename>, вложенную в папку
        <filename>netfuture</filename>.  Если вы хотите сохранить сообщение
        в текущей папке и связать его, вы можете выполнить команду
	<command>refile -link 23 +netfuture</command>, которая оставит 23
        в вашем текущей папке <filename>inbox</filename>, но также и в вашей
        папке <filename>netfuture</filename>.  Наверное, вы уже начали
        понимать, какие по настоящему мощные действия вы можете выполнять с
        MH.</para>
    </sect2>
  </sect1>

  <sect1>
    <title>Посылка почты</title>

    <para>Электронная почта для большинства людей является улицей с движением в
      два ряда, так что вы можете захотеть послать что-то обратно.  Способ,
      каким MH выполняет посылку почты, может сначала показаться трудным для
      использования, но он обеспечивает удивительную гибкость.  Сначала MH
      копирует файл компонентов в исходящую электронную почту.  Файл
      компонентов в основном представляет собой скелет элетронного письма с уже
      помещенными туда заголовками To: и Subject:.  Затем вы отсылаетесь к
      редактору текстов, в котором вы заполняете информацию заголовков и
      набираете тело письма ниже разделительных строк.  Затем вызывается
      программа <command>whatnow</command>.  Находясь в приглашении
      <prompt>What now?</prompt>, вы можете выбрать одно из действий
      <command>send</command>, <command>list</command>,
      <command>edit</command>, <command>edit</command>,
      <command>push</command> или <command>quit</command>.  Большинство этих
      команд говорят сами за себя.  Итак, процесс посылки сообщения включает
      копирование файла компонент, редактирование вашей электронной почты и
      указание программе <command>whatnow</command> действия, которое нужно
      сделать с вашей электронной почтой.</para>

    <sect2>
      <title><command>comp</command>, <command>forw</command>,
	<command>reply</command>&mdash;создание, пересылка или ответ на
        чье-либо сообщение</title>

      <para>Программа <command>comp</command> имеет несколько полезных
        параметров командной строки.  Самой важной сейчас является опция
	<option>-editor</option>.  При установке MH используемым по умолчанию
        редактором обычно становится программа <command>prompter</command>,
        поставляемая с MH.  Это не очень привлекательный редактор, он просто
        делает то, что должен делать.  Так что когда вы собираетесь написать
        кому-либо письмо, вы можете воспользоваться командами
	<command>comp -editor /usr/bin/vi/</command> или <command>comp -editor
	/usr/local/bin/pico/</command>.  После запуска
        <emphasis>comp</emphasis> вы оказываетесь в вашем редакторе и видите
        нечто вроде следующего:</para>

      <informalexample>
	<screen>To:
cc:
Subject:
--------
	</screen>
      </informalexample>

      <para>Вам нужно указать персону, которой вы посылаете почту, после строки
	<literal>To:</literal>.  То же самое относится и к остальным
        заголовкам, так что вам нужно будет указать тему письма после строки
	<literal>Subject:</literal>.  Затем вам просто нужно набрать тело
        письма после разделительной строки.  Это может показаться несколько
        упрощенным, так как многие почтовые программы имеют специальные
        опросники, которые запрашивают у вас эту информацию, но необходимости в
        этом нет.  Плюс это на самом деле дает вам дополнительную
        гибкость.</para>

      <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>

      <para>Теперь вы можете сохранить это сообщение и выйти из редактора.  Вы
        увидите приглашение <prompt>What now?</prompt> и здесь можете набрать
	<userinput>send</userinput> или <userinput>s</userinput> и нажать
	<keycap>return</keycap>.  После этого основная группа разработчиков
        FreeBSD получит свои слова восхищения.  Как я отмечал выше, вы можете
        также воспользоваться другими командами, например,
        <command>quit</command>, если не хотите посылать сообщение.</para>

      <para>Команда <command>forw</command> ошеломляюще похожа.  Большим
        отличием является то, что сообщение, которое вы пересылаете,
        автоматически включается в исходящее сообщение.  Когда вы выполняете
        команду	<command>forw</command>, она будет пересылать ваше текущее
        сообщение.  Вы всегда можете указать на пересылку другого сообщения,
        выполняя команду <command>forw 23</command>, после чего в исходящее
        сообщенее будет помещено сообщение номер 23, а не текущее сообщение.
        Кроме этих маленьких различий, команда <command>forw</command> работает
        абсолютно так же, как <command>comp</command>.  Вы проходите через
        в точности такой же процесс посылки сообщения.</para>

      <para>По команде <command>repl</command> будет делаться ответ на текущее
        сообщение, если только вы не указали другой номер сообщения.  Команда
        <command>repl</command> приложит все усилия, чтобы забежать вперед и
        заполнить некоторые заголовки почтового сообщения.  Поэтому вы
        заметите, что в заголовке <literal>To:</literal> уже присутствует
        адрес получателя.  Также уже будет заполнена строка
        <literal>Subject:</literal>.  Затем вы проходите обычный процесс
        написания сообщения и на этом все завершается.  Здесь полезно знать о
        параметре командной строки <option>-cc</option>.  Вы можете
        использовать параметры <parameter>all</parameter>,
        <parameter>to</parameter>, <parameter>cc</parameter> и
	<parameter>me</parameter> после <option>-cc</option> для того, чтобы
	<command>repl</command> автоматически добавила различные адреса к
        cc-списку сообщения.  Вы, наверное, заметили, что исходное сообщение
        не будет включаться.  Это происходит, потому что в большинстве настроек
        MH так указано изначально.</para>
    </sect2>

    <sect2>
      <title>Файлы <filename>components</filename> и
	<filename>replcomps</filename>&mdash;файлы компонент для команд
	<command>comp</command> и <command>repl</command></title>

      <para>Файл <filename>components</filename> обычно располагается в
        каталоге <filename>/usr/local/lib/mh</filename>.  Вы можете скопировать
        этот файл в ваш каталог Mail для MH и отредактировать его так, чтобы он
        содержал то, что вы хотите.  Это достаточно простой файл.  В начале
        файла расположены различные почтовые заголовки, разделительная строка
        и больше ничего.  Команда <command>comp</command> просто копирует этот
        файл <filename>components</filename> и затем редактирует его.  Вы
        можете добавить любой соответствующий стандарту RFC822 заголовок.
        Например, в вашем файле <filename>components</filename> вы можете
        поместить следующее:</para>

      <informalexample>
	<screen>
To:
Fcc: out
Subject:
X-Mailer: MH 6.8.3
X-Home-Page: http://www.FreeBSD.org/
-------
	</screen>
      </informalexample>

      <para>Тогда MH будет копировать этот файл компонентов и передаст его в
        ваш редактор.  Файл <filename>components</filename> весьма прост.  Если
        вы хотите в сообщениях иметь подпись, просто поместите вашу подпись в
        этот файл <filename>components</filename>.</para>

      <para>Файл <filename>replcomps</filename> несколько более сложен.  По
        умолчанию <filename>replcomps</filename> имеет такой вид:</para>

      <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>Он имеет такой же простой формат, как и файл
	<filename>components</filename>, но содержит несколько дополнительных
        форматирующих кодов.  Команда <literal>%(lit)</literal> опеределяет
        место для адреса.  <literal>%(formataddr</literal> является функцией,
        которая возвращает полный адрес электронной почты.  Следующей частью
        является <literal>%&lt;</literal>, которая означает условие если и
        <literal>{reply-to}</literal> соответствует полю reply-to исходного
        сообщения.  Таким образом, это может быть проинтерпретировано
        следующим образом:</para>

      <informalexample>
	<screen>
%&lt;<emphasis remap=bf>if</emphasis> {reply-to}
<emphasis remap=bf>в исходном сообщении имеется поле reply-to</emphasis> 
то передать его в formataddr, %? <emphasis remap=bf>else</emphasis> {from}
<emphasis remap=bf>взять адрес from</emphasis>,
%? <emphasis remap=bf>else</emphasis> {sender}
<emphasis remap=bf>взять адрес sender</emphasis>, %?
<emphasis remap=bf>else</emphasis> {return-path}
<emphasis remap=bf>взять return-path из исходного сообщения</emphasis>,
%&gt; <emphasis remap=bf>endif</emphasis>.
	</screen>
      </informalexample>
  
      <para>Как вы можете видеть, форматирование MH может быть достаточно
        сложным.  Вы можете выяснить, что значат остальные функции и
        переменные.  Вся информация по написанию строк в таком формате
        находится в справочной странице по MH.  Действительно удобной вещью
        являюется то, что единожды создав собственный файл
	<filename>replcomps</filename>, вам не нужно больше его трогать.  Ни
        одна другая почтовая программа не даст вам той мощи и гибкости, что
        дает вам MH.</para>
    </sect2>
  </sect1>
</article>
