<!--
     The FreeBSD Documentation Project

     $FreeBSD$
     $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml,v 1.20 2004/03/26 13:07:06 den Exp $

     Original revision: 1.98
-->

<chapter id="mail">
  <chapterinfo>
    <authorgroup>
      <author>
       <firstname>Bill</firstname>
       <surname>Lloyd</surname>
       <contrib>Оригинальную версию предоставил </contrib>
      </author>
    </authorgroup>
    <authorgroup>
      <author>
       <firstname>Jim</firstname>
       <surname>Mock</surname>
       <contrib>Переписал </contrib>
       <!-- 2 Dec 1999 -->
      </author>
    </authorgroup>
  </chapterinfo>

  <title>Электронная почта</title>

  <sect1 id="mail-synopsis">
    <title>Краткий обзор</title>
      <indexterm><primary>email</primary></indexterm>
      <indexterm><primary>электронная почта</primary></indexterm>

    <para><quote>Электронная почта</quote> называемая также email, является
      на сегодняшний день одним из самых популярных средств связи.  Эта глава
      описывает основы работы с почтовым сервером в &os;, а также введение
      в процесс отправки и получения почты в &os;; однако, это не полноценный
      справочник и фактически в главу не вошло множество важной информации.
      Более подробно эта тема рассмотрена во множестве прекрасных книг, список
      которых приведен в <xref linkend="bibliography">.</para>

    <para>После прочтения этой главы вы узнаете:</para>

    <itemizedlist>
      <listitem>
	<para>Какие программные компоненты задействованы в отправке и
	  получении электронной почты.</para>
      </listitem>

      <listitem>
	<para>Какие основные файлы настройки
	  <application>sendmail</application> имеются в FreeBSD.</para>
      </listitem>

      <listitem>
	<para>Разницу между удаленными и локальными почтовыми
	  ящиками.</para>
      </listitem>

      <listitem>
	<para>Как запретить спамерам использовать ваш почтовый
	  сервер для пересылки почты.</para>
      </listitem>

      <listitem>
	<para>Как установить и настроить альтернативный агент передачи почты
	  (mail transfer agent, MTA), заменив им
	  <application>sendmail</application>.</para>
      </listitem>

      <listitem>
	<para>Как разрешить наиболее часто встречающиеся проблемы с почтовым
	  сервером.</para>
      </listitem>

      <listitem>
	<para>Как использовать SMTP с UUCP.</para>
      </listitem>

      <listitem>
	<para>Как настроить систему только для отправки почты.</para>
      </listitem>

      <listitem>
	<para>Как использовать почту с коммутируемым подключением к
	  сети.</para>
      </listitem>

      <listitem>
	<para>Как настроить SMTP аутентификацию для дополнительной
	  защиты.</para>
      </listitem>

      <listitem>
	<para>Как установить и настроить почтовый агент пользователя
	  (Mail User Agent, MUA), такой как
	  <application>mutt</application> для отправки и получения
	  почты.</para>
      </listitem>

      <listitem>

	<para>Как загрузить почту с удаленного <acronym>POP</acronym> или
	  <acronym>IMAP</acronym> сервера.</para>
      </listitem>

      <listitem>
	<para>Как автоматически применять фильтры и правила к входящей
	  почте.</para>
      </listitem>
    </itemizedlist>

    <para>Перед прочтением этой главы вам потребуется:</para>

    <itemizedlist>
      <listitem>
	<para>Правильно настроить сетевое подключение
	  (<xref linkend="advanced-networking">).</para>
      </listitem>

      <listitem>
	<para>Правильно настроить DNS для почтового сервера
	  (<xref linkend="advanced-networking">).</para>
      </listitem>

      <listitem>
	<para>Знать как устанавливать дополнительное программное обеспечение
	  сторонних разработчиков (<xref linkend="ports">).</para>
      </listitem>
    </itemizedlist>

  </sect1>

  <sect1 id="mail-using">
    <title>Использование электронной почты</title>

    <indexterm><primary>POP</primary></indexterm>
    <indexterm><primary>IMAP</primary></indexterm>
    <indexterm><primary>DNS</primary></indexterm>

    <para>В работе почтовой системы задействованы пять основных частей:
      <link linkend="mail-mua">пользовательский почтовый клиент</link>,
      <link linkend="mail-mta">почтовый сервер (даемон)</link>, <link
      linkend="mail-dns">сервер DNS</link>, <link
      linkend="mail-receive">удаленный или локальный почтовый ящик</link>,
      и конечно <link linkend="mail-host">сам почтовый сервер</link>.</para>

    <sect2 id="mail-mua">
      <title>Пользовательский почтовый клиент</title>

      <para>Обычно, это программа типа <application>mutt</application>,
	<application>pine</application>, <application>elm</application>,
	<application>mail</application>, а также программы с графическим
	интерфейсом, такие, как <application>balsa</application> или
	<application>xfmail</application>, или интегрированные приложения
	(например, какой-либо WWW браузер типа Netscape).  Все эти программы
	общаются с локальным <link linkend="mail-host">почтовым
	сервером</link>, вызывая какой-либо даемон, или напрямую по протоколу
	<acronym>TCP</acronym>.</para>
    </sect2>

    <sect2 id="mail-mta">
      <title>Почтовый даемон</title>
      <indexterm>
	<primary>почтовые даемоны</primary>
       <secondary><application>sendmail</application></secondary>
      </indexterm>
      <indexterm>
	<primary>почтовые даемоны</primary>
       <secondary><application>postfix</application></secondary>
      </indexterm>
      <indexterm>
	<primary>почтовые даемоны</primary>
       <secondary><application>qmail</application></secondary>
      </indexterm>
      <indexterm>
	<primary>почтовые даемоны</primary>
       <secondary><application>exim</application></secondary>
      </indexterm>

      <para>Обычно это <application>sendmail</application> (поставляется
	вместе с FreeBSD), однако, им может быть любая из нижеперечисленных
	программ: <application>qmail</application>,
	<application>postfix</application> или
	<application>exim</application>.  Остальные менее
	распространены.</para>

      <para>Почтовый даемон выполняет только две функции: принимает входящую
	почту и отправляет исходящую.  Он не отвечает за выдачу пользователю
	почты по протоколам <acronym>POP</acronym> или
	<acronym>IMAP</acronym>, и не обеспечивает подключения к локальным
	почтовым ящикам <filename>mbox</filename> или Maildir.  Для этих целей
	вам может потребоваться дополнительный
	<link linkend="mail-receive">даемон</link>.</para>

      <para>Имейте ввиду, что старые версии
	<application>sendmail</application> имели серьезные проблемы с
	безопасностью, поэтому старайтесь всегда использовать последнюю
	версию.  Это правило, кстати, справедливо в отношении практически
	любых программных продуктов.</para>
    </sect2>

    <sect2 id="mail-dns">
      <title>Email и DNS</title>

      <para>Служба имен доменов (Domain Name System, DNS) и соответствующий
	ей даемон <command>named</command> играют важную роль в доставке
	почты.  Для доставки почты с вашего сайта другому, даемон почтового
	сервера обратится к DNS для определения хоста, отвечающего за
	доставку почты по назначению.</para>

	<para>Точно те же действия производятся при доставке почты в ваш
	адрес.  DNS содержит базу данных соответствия между именем домена и
	IP адресом, и между именем домена и почтовым сервером.  IP адрес
	задается в записи A.  Запись MX (Mail eXchanger) указывает
	компьютер, который обрабатывает корреспонденцию для данного домена.
	Если для вашего хоста запись MX отсутствует, почта будет
	доставляться на него непосредственно.</para>
    </sect2>

    <sect2 id="mail-receive">
      <title>Получение почты</title>
      <indexterm>
	<primary>email</primary>
       <secondary>получение</secondary>
      </indexterm>

      <para>Получение почты для вашего домена выполняет почтовый сервер.
	Он сохраняет отправленную вам почту в формате либо
	<filename>mbox</filename>, либо Maildir (в зависимости от настроек)
	для последующего прочтения или сбора.  Удаленный доступ к почте
	может быть осуществлен по протоколам <acronym>POP</acronym>,
	<acronym>IMAP</acronym>, а также путем использования
	установленного на почтовом сервере почтового агента пользователя,
	который будет обращаться к почтовому ящику непосредственно.  Это
	означает, что для локального чтения почты вам не потребуется
	устанавливать сервер <acronym>POP</acronym> или
	<acronym>IMAP</acronym>.</para>

      <sect3 id="pop-and-imap">
	<title>Доступ к удаленным почтовым ящикам по протоколам
	  <acronym>POP</acronym> и <acronym>IMAP</acronym></title>

	<indexterm><primary>POP</primary></indexterm>
	<indexterm><primary>IMAP</primary></indexterm>
	<para>Для удаленного доступа к почтовым ящикам вам потребуется
	  доступ к <acronym>POP</acronym> или <acronym>IMAP</acronym>
	  серверу.  <!-- избыточно: Эти протоколы обеспечивают пользователям
	  простой способ удаленного доступа к почтовым ящикам. -->
	  Хотя удаленный доступ обеспечивают оба протокола
	  <acronym>POP</acronym> и <acronym>IMAP</acronym>, последний
	  предоставляет множество дополнительных возможностей, вот некоторые
	  из них:</para>

	<itemizedlist>
	  <listitem>
	    <para><acronym>IMAP</acronym> может как хранить сообщения на
	      удаленном сервере, так и забирать их.<para>
	  </listitem>

	  <listitem>
	    <para><acronym>IMAP</acronym> поддерживает одновременные
	      обновления.</para>
	  </listitem>

	  <listitem>
	    <para><acronym>IMAP</acronym> может быть очень полезен для
	      низкоскоростных соединений, поскольку позволяет пользователям
	      получить структуру сообщений без их загрузки; он также может
	      использоваться для выполнения таких задач как поиск на сервере
	      для минимизации объема передаваемых между клиентом и сервером
	      данных.</para>
	  </listitem>

	</itemizedlist>

	<para>Для установки <acronym>POP</acronym> или
	  <acronym>IMAP</acronym> сервера необходимо выполнить следующие
	  действия:</para>

	<procedure>
	  <step>
	    <para>Выберите <acronym>IMAP</acronym> или
	      <acronym>POP</acronym> сервер, который подходит вам наилучшим
	      образом.  Следующие <acronym>POP</acronym> и
	      <acronym>IMAP</acronym> серверы хорошо известны и могут быть
	      приведены в качестве примера:</para>

	      <itemizedlist>
		<listitem>
		  <para><application>qpopper</application>;</para>
		</listitem>

		<listitem>
		  <para><application>teapop</application>;</para>
		</listitem>

		<listitem>
		  <para><application>imap-uw</application>;</para>
		</listitem>

		<listitem>
		  <para><application>courier-imap</application>;</para>
		</listitem>
	      </itemizedlist>

	  </step>

	  <step>
	    <para>Установите <acronym>POP</acronym> или
	      <acronym>IMAP</acronym> даемон, выбранный из коллекции
	      портов.</para>
	  </step>

	  <step>
	    <para>Если потребуется, настройте
	      <filename>/etc/inetd.conf</filename>
	      для запуска <acronym>POP</acronym> или
	      <acronym>IMAP</acronym> сервера.</para>
	  </step>
	</procedure>

	<warning>
	  <para>Необходимо отметить, что и <acronym>POP</acronym> и
	    <acronym>IMAP</acronym> серверы передают информацию, включая
	    имя пользователя и пароль, в незашифрованном виде.  Это означает,
	    что если вы хотите защитить передачу информации по этим
	    протоколам, потребуется использовать тунеллирование сессий через
	    &man.ssh.1;.  Обратитесь к <ulink
	    url="../handbook/openssh.html#AEN13610">Руководству &os;</ulink>
	    за дополнительной информацией.</para>
	</warning>
      </sect3>

      <sect3 id="local">
	<title>Доступ к локальным почтовым ящикам</title>

	<para>Доступ к почтовым ящикам может быть осуществлен непосредственно
	  путем использования <acronym>MUA</acronym> на сервере, где
	  эти ящики расположены.  Это можно сделать используя приложения
	  вроде <application>mutt</application> или
	  <command>mail</command>.</para>
      </sect3>
    </sect2>

    <sect2 id="mail-host">
      <title>Почтовый хост</title>
      <indexterm><primary>почтовый хост</primary></indexterm>

      <para>Почтовый хост это сервер, который отвечает за отправку и получение
	почты для вашего компьютера, и возможно для всей вашей сети.</para>
    </sect2>
  </sect1>

  <sect1 id="sendmail">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Christopher</firstname>
	  <surname>Shumway</surname>
	  <contrib>Предоставил </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>Настройка <application>sendmail</application></title>

    <indexterm>
      <primary><application>sendmail</application></primary>
    </indexterm>

    <para>В FreeBSD по умолчанию программой передачи почты (Mail Transfer
      Agent, MTA) является &man.sendmail.8;.  Работа
      <application>sendmail</application> заключается в приеме почты от
      почтовых программ пользователей (Mail User Agents,
      <acronym>MUA</acronym>) и отправке ее на соответствующий адрес,
      в соответствии с имеющимися настройками.
      <application>sendmail</application> может также принимать входящие
      соединения по сети и доставлять почту в локальные почтовые ящики
      или перенаправлять их другой программе.</para>

    <para><application>sendmail</application> использует следующие файлы
      настройки:</para>

    <indexterm>
      <primary><filename>/etc/mail/access</filename></primary>
    </indexterm>
    <indexterm>
      <primary><filename>/etc/mail/aliases</filename></primary>
    </indexterm>
    <indexterm>
      <primary><filename>/etc/mail/local-host-names</filename></primary>
    </indexterm>
    <indexterm>
      <primary><filename>/etc/mail/mailer.conf</filename></primary>
    </indexterm>
    <indexterm>
      <primary><filename>/etc/mail/mailertable</filename></primary>
    </indexterm>
    <indexterm>
      <primary><filename>/etc/mail/sendmail.cf</filename></primary>
    </indexterm>
    <indexterm>
      <primary><filename>/etc/mail/virtusertable</filename></primary>
    </indexterm>
    <informaltable>
      <tgroup cols="2">
	<thead>
	  <row>
	    <entry>Имя файла</entry>
	    <entry>Назначение</entry>
	  </row>
	</thead>
	<tbody>
	  <row>
	    <entry>
	      <filename>/etc/mail/access</filename>
	    </entry>
	    <entry>Файл базы данных доступа
	      <application>sendmail</application></entry>
	  </row>
	  <row>
	    <entry>
	      <filename>/etc/mail/aliases</filename>
	    </entry>
	    <entry>Синонимы почтовых ящиков</entry>
	  </row>
	  <row>
	    <entry>
	      <filename>/etc/mail/local-host-names</filename>
	    </entry>
	    <entry>Список хостов, для которых
	      <application>sendmail</application> принимает почту</entry>
	  </row>
	  <row>
	    <entry>
	      <filename>/etc/mail/mailer.conf</filename>
	    </entry>
	    <entry>Настройки почтовой программы</entry>
	  </row>
	  <row>
	    <entry>
	      <filename>/etc/mail/mailertable</filename>
	    </entry>
	    <entry>Таблица доставки почтовой программы</entry>
	  </row>
	  <row>
	    <entry>
	      <filename>/etc/mail/sendmail.cf</filename>
	    </entry>
	    <entry>Основной файл настройки
	      <application>sendmail</application></entry>
	  </row>
	  <row>
	    <entry>
	      <filename>/etc/mail/virtusertable</filename>
	    </entry>
	    <entry>Таблицы виртуальных пользователей и доменов</entry>
	  </row>
	</tbody>
      </tgroup>
    </informaltable>

  <sect2>
    <title><filename>/etc/mail/access</filename></title>

    <para>База данных доступа определяет список хостов или IP адресов,
      имеющих доступ к локальному почтовому серверу, а также тип
      предоставляемого доступа.  Хосты могут быть перечислены как
      <option>OK</option>, <option>REJECT</option>, <option>RELAY</option>
      или просто переданы процедуре обработки ошибок
      <application>sendmail</application> с заданным сообщением об ошибке.
      Хостам, перечисленным с параметром по умолчанию <option>OK</option>,
      разрешено отправлять почты на этот хост, если адрес назначения почты
      принадлежит локальной машине.  Все почтовые соединения от хостов,
      перечисленных с параметром <option>REJECT</option>, отбрасываются.
      Для хостов, перечисленных с параметром <option>RELAY</option>,
      разрешена передача через этот сервер почты с любым адресом
      назначения.</para>

      <example>
	<title>Настройка базы данных доступа
	  <application>sendmail</application></title>

    <programlisting>cyberspammer.com                550 We don't accept mail from spammers
FREE.STEALTH.MAILER@            550 We don't accept mail from spammers
another.source.of.spam          REJECT
okay.cyberspammer.com           OK
128.32                          RELAY</programlisting>
      </example>

    <para>В этом примере приведены пять записей.  К отправителям, чей адрес
      соответствует записи в левой части таблицы, применяется правило
      записанное в правой части таблицы.  В первых двух примерах
      код ошибки будет передан процедуре обработке ошибок
      <application>sendmail</application>.  В этом случае на удаленном хосте
      будет получено соответствующее сообщение.  В следующем примере почта
      отбрасывается почта от определенного хоста,
      <hostid>another.source.of.spam</hostid>.  В четвертом примере
      разрешается прием почты от хоста <hostid
      role="fqdn">okay.cyberspammer.com</hostid>, имя которого более точно
      совпадает с этой записью, чем с <hostid
      role="domainname">cyberspammer.com</hostid> в примере выше.  При более
      точном совпадении правила перезаписываются.  В последнем примере
      разрешается пересылка почты от хостов с IP адресами, начинающимися
      с <hostid>128.32</hostid>.  Эти хосты смогут отправлять почту через
      этот почтовый сервер для других почтовых серверов.</para>

    <para>После обновления этого файла для обновления базы данных
      вам потребуется запустить <command>make</command> в каталоге
      <filename>/etc/mail/</filename>.</para>
   </sect2>

   <sect2>
    <title><filename>/etc/mail/aliases</filename></title>

    <para>База данных синонимов содержит список виртуальных почтовых
      ящиков, принадлежащих другим пользователям, файлам, программам или
      другим синонимам.  Вот несколько примеров, которые могут быть
      использованы для <filename>/etc/mail/aliases</filename>:</para>

      <example>
	<title>Mail Aliases</title>
    <programlisting>root: localuser
ftp-bugs: joe,eric,paul
bit.bucket:  /dev/null
procmail: "|/usr/local/bin/procmail"</programlisting>
      </example>

    <para>Формат файла прост; имя почтового ящика слева от двоеточия
      сопоставляется назначению(ям) справа.  В первом примере
      производится простое сопоставление почтового ящика
      <username>root</username> почтовому ящику
      <username>localuser</username>, для которого затем опять будет
      произведен поиск в базе данных синонимов.  Если совпадений не
      обнаружится, сообщение будет доставлено локальному пользователю
      <username>localuser</username>.  В следующем примере приведен
      список рассылки.  Почта на адрес <username>ftp-bugs</username>
      рассылается на три локальных почтовых ящика: <username>joe</username>,
      <username>eric</username> и <username>paul</username>. Обратите
      внимание, что удаленный почтовый ящик может быть задан в виде
      <literal>user@example.com</literal>.  В следующем примере
      показана запись почты в файл, в данном случае
      <filename>/dev/null</filename>.  И в последнем примере показано
      отправление почты программе, в данном случае почтовое сообщение
      переправляется через канал &unix; на стандартный вход
      <filename>/usr/local/bin/procmail</filename>.</para>

    <para>После обновления этого файла вам потребуется запустить
      <command>make</command> в каталоге <filename>/etc/mail/</filename>
      для обновления базы данных.</para>
  </sect2>

  <sect2>
    <title><filename>/etc/mail/local-host-names</filename></title>

    <para>В этом файле находится список имен хостов, принимаемых
      программой &man.sendmail.8; в качестве локальных.  Поместите в
      этот файл любые домены или хосты, для которых
      <application>sendmail</application> должен принимать почту.
      Например, если этот почтовый сервер должен принимать почту для
      домена <hostid role="domainname">example.com</hostid> и хоста
      <hostid role="fqdn">mail.example.com</hostid>, его файл
      <filename>local-host-names</filename> может выглядеть примерно
      так:</para>

    <programlisting>example.com
mail.example.com</programlisting>

    <para>После обновления этого файла необходимо перезапустить
      &man.sendmail.8;, чтобы он смог перечитать изменения.</para>

  </sect2>

  <sect2>
    <title><filename>/etc/mail/sendmail.cf</filename></title>

    <para>Основной файл настройки <application>sendmail</application>,
      <filename>sendmail.cf</filename> управляет общим поведением
      <application>sendmail</application>, включая все, от перезаписи
      почтовых адресов до отправки удаленным серверам сообщений об
      отказе от пересылки почты.  Конечно, файл настройки с таким
      многообразием возможностей очень сложен и подробное его описание
      выходит за рамки данного раздела.  К счастью, для стандартных
      почтовых серверов изменять этот файл придется не часто.</para>

    <para>Основной файл настройки <application>sendmail</application>
      может быть собран из макроса &man.m4.1;, определяющего возможности
      и поведение <application>sendmail</application>.  Подробнее
      этот процесс описан в файле
      <filename>/usr/src/contrib/sendmail/cf/README</filename>.</para>

    <para>Для применения изменений после правки файла необходимо
      перезапустить <application>sendmail</application>.</para>
  </sect2>

  <sect2>
    <title><filename>/etc/mail/virtusertable</filename></title>

    <para>Файл <filename>virtusertable</filename> сопоставляет виртуальные
      почтовые домены и почтовые ящики реальным почтовым ящикам.  Эти
      почтовые ящики могут быть локальными, удаленными, синонимами,
      определенными в <filename>/etc/mail/aliases</filename>, или
      файлами.</para>

    <example>
	<title>Пример таблицы виртуального домена</title>

    <programlisting>root@example.com                root
postmaster@example.com          postmaster@noc.example.net
@example.com                    joe</programlisting>
      </example>

    <para>В примере выше мы видим сопоставление адресов для домена
      <hostid role="domainname">example.com</hostid>.  Почта
      обрабатывается по первому совпадению с записью в этом файле.
      Первая запись сопоставляет адрес <literal>root@example.com</literal>
      локальному почтовому ящику <username>root</username>.
      Вторая запись сопоставляет <literal>postmaster@example.com</literal>
      локальному почтовому ящику <username>postmaster</username>
      на хосте <hostid role="fqdn">noc.example.net</hostid>.  Наконец,
      до этого момента адрес в домене <hostid
      role="domainname">example.com</hostid> не совпал ни с одним из
      предыдущих, будет применено последнее сопоставление, в которому
      соответствует всякое другое почтовое сообщение, отправленное на любой
      адрес в <hostid role="domainname">example.com</hostid>.  Это сообщение
      будет доставлено в локальный почтовый ящик
      <username>joe</username>.</para>

  </sect2>
  </sect1>

  <sect1 id="mail-changingmta">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Andrew</firstname>
	  <surname>Boothman</surname>
	  <contrib>Написал </contrib>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <firstname>Gregory</firstname>
	  <surname>Neil Shapiro</surname>
	  <contrib>Информация получена из писем, написанных </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>Установка другой почтовой программы</title>
    <indexterm>
      <primary>email</primary>
      <secondary>замена mta</secondary>
    </indexterm>

    <para>Как уже упоминалось, FreeBSD поставляется с MTA (Mail Transfer Agent)
      <application>sendmail</application>.  Следовательно, по умолчанию
      именно эта программа отвечает за вашу исходящую и входящую
      почту.</para>

    <para>Однако, по различным причинам некоторые системные администраторы
      заменяют системный MTA.  Эти причины варьируются от простого желания
      попробовать другой MTA до потребности в определенных возможностях
      пакета, основанного на другой почтовой программе.  К счастью, вне
      зависимости от причины, в FreeBSD такая замена выполняется
      просто.</para>

    <sect2>
      <title>Установка нового MTA</title>

      <para>Вам предоставлен широкий выбор MTA.  Начните с поиска в
	<link linkend="ports">коллекции портов FreeBSD</link>,
	где их немало.  Конечно, вы можете использовать любой MTA
	по желанию, взятый откуда угодно, если только сможете
	запустить его под FreeBSD.</para>

      <para>Начните с установки нового MTA.  После установки у вас будет
	возможность решить, действительно ли он подходит вашем нуждам,
	а также настроить новое программное обеспечение перед тем, как
	заменить им <application>sendmail</application>.  При установке
	новой программы убедитесь, что она не пытается перезаписать
	системные файлы, такие как <filename>/usr/bin/sendmail</filename>.
	Иначе ваша новая почтовая программа фактически начнет работать
	до того, как вы ее настроите.</para>

      <para>Обратитесь к документации на выбранный MTA
	за информацией по его настройке.</para>
    </sect2>

    <sect2>
      <title>Отключение <application>sendmail</application></title>

      <para>Процедура, используемая для запуска
	<application>sendmail</application>, значительно изменилась между
	релизами 4.5-RELEASE и 4.6-RELEASE.  Поэтому процедура, используемая
	для его отключения немного отличается.</para>

      <sect3>
	<title>FreeBSD 4.5-STABLE до 2002/4/4 и раньше
	  (включая 4.5-RELEASE и более ранние)</title>

	<para>Добавьте:</para>

	  <programlisting>sendmail_enable="NO"</programlisting>

	<para>в <filename>/etc/rc.conf</filename>.  Это отключит
	  сервис входящей почты <application>sendmail</application>,
	  но если <filename>/etc/mail/mailer.conf</filename> (см. ниже)
	  не изменен, <application>sendmail</application> все еще
	  будет использоваться для отправки почты.</para>
      </sect3>

      <sect3>
	<title>FreeBSD 4.5-STABLE после 2002/4/4
	  (включая 4.6-RELEASE и более поздние)</title>

	<para>Для полного отключения
	  <application>sendmail</application> используйте</para>

	  <programlisting>sendmail_enable="NONE"</programlisting>

	  <para>в <filename>/etc/rc.conf.</filename></para>

	<warning>
	  <para>Если вы отключите сервис исходящей почты
	    <application>sendmail</application> таким способом, необходимо
	    заменить его полностью работоспособной альтернативной системой
	    доставки почты.  Если вы не сделаете этого, системные программы,
	    такие как &man.periodic.8;, не смогут отправлять сообщения
	    по электронной почте как обычно.  Многие программы в вашей
	    системе могут требовать наличия функционирующей
	    <application>sendmail</application>-совместимой системы.
	    Если приложения будут продолжать использовать программу
	    <application>sendmail</application>, пытаясь отправить почту
	    после отключения почтовой системы, почта может попасть в
	    неактивную очередь <application>sendmail</application> и никогда
	    не будет доставлена.</para>
	</warning>

	<para>Если вы хотите отключить только сервис входящей почты
	  <application>sendmail</application>, установите</para>

	  <programlisting>sendmail_enable="NO"</programlisting>

	<para>в <filename>/etc/rc.conf</filename>.  Дополнительная информация
	  о параметрах запуска <application>sendmail</application>
	  доступна на странице справочника &man.rc.sendmail.8;.</para>
      </sect3>
    </sect2>

    <sect2>
      <title>Запуск нового MTA при загрузке</title>

      <para>Вы можете выбрать один из двух методов для запуска нового MTA
	при загрузке, опять же в зависимости от используемой версии
	FreeBSD.</para>

      <sect3>
	<title>FreeBSD 4.5-STABLE до 2002/4/11
	  (включая 4.5-RELEASE и более ранние)</title>

	<para>Добавьте в каталог
	  <filename>/usr/local/etc/rc.d/</filename>, скрипт с расширением
	  <filename>.sh</filename> и с правами выполнения пользователем
	  <username>root</username>.  Скрипт должен принимать параметры
	  <literal>start</literal> и <literal>stop</literal>.
	  Во время запуска системы он будет запущен командой</para>

	<programlisting>/usr/local/etc/rc.d/supermailer.sh start</programlisting>

	<para>которая также может использоваться для запуска сервера вручную
	  Во время завершения работы системы, системные скрипты используют
	  параметр <literal>stop</literal>, выполнив команду</para>

	<programlisting>/usr/local/etc/rc.d/supermailer.sh stop</programlisting>

	<para>которая также может использоваться для остановки почтового сервера
	  при работающей системе.</para>

      </sect3>

      <sect3>
	<title>FreeBSD 4.5-STABLE после 2002/4/11
	  (включая 4.6-RELEASE и более поздние)</title>

	<para>С более поздними версиями FreeBSD, вы можете использовать
	  метод, описанный выше, или добавить строку</para>

	<programlisting>mta_start_script="filename"</programlisting>

	<para>в <filename>/etc/rc.conf</filename>, где
	  <replaceable>filename</replaceable> это имя скрипта, который вы
	  хотите выполнить при загрузке для запуска MTA.</para>
      </sect3>

    </sect2>

    <sect2>
      <title>Замещение <application>sendmail</application> как
	почтовой программы по умолчанию</title>

      <para>Программа <application>sendmail</application> настолько
	распространена в качестве стандартной программы для систем &unix;,
	что многие программы считают, что она уже установлена и настроена.
	По этой причине многие альтернативные MTA предоставляют собственные
	совместимые реализации интерфейса командной строки
	<application>sendmail</application>; это облегчает их использование
	в качестве <quote>прозрачной</quote> замены
	<application>sendmail</application>.</para>

      <para>Поэтому если вы используете альтернативную почтовую программу,
	потребуется убедиться, что когда программное обеспечение
	пытается выполнить стандартные исполняемые файлы
	<application>sendmail</application>, такие как
	<filename>/usr/bin/sendmail</filename>, на самом деле выполняются
	программы вновь установленной почтовой системы.  К счастью,
	FreeBSD предоставляет систему, называемую &man.mailwrapper.8;,
	которая выполняет эту работу за вас.</para>

      <para>Когда установлен <application>sendmail</application>,
	файл <filename>/etc/mail/mailer.conf</filename> выглядит
	примерно так:</para>

<programlisting>sendmail	 /usr/libexec/sendmail/sendmail
send-mail	/usr/libexec/sendmail/sendmail
mailq		/usr/libexec/sendmail/sendmail
newaliases	/usr/libexec/sendmail/sendmail
hoststat	/usr/libexec/sendmail/sendmail
purgestat	/usr/libexec/sendmail/sendmail</programlisting>

      <para>Это означает, что когда выполняется какая-то из этих стандартных
	программ (например сам <filename>sendmail</filename>), система на
	самом деле вызывает копию mailwrapper, называемую
	<filename>sendmail</filename>, которая обращается к
	<filename>mailer.conf</filename> и выполняет вместо этого
	<filename>/usr/libexec/sendmail/sendmail</filename>.
	Такая система делает простой замену программ, которые на самом деле
	выполняются, когда вызываются стандартные функции
	<filename>sendmail</filename>.</para>

      <para>Поэтому если вы хотите выполнять
	<filename>/usr/local/supermailer/bin/sendmail-compat</filename>
	вместо <application>sendmail</application>, отредактируйте
	<filename>/etc/mail/mailer.conf</filename> так:</para>

<programlisting>sendmail	 /usr/local/supermailer/bin/sendmail-compat
send-mail	/usr/local/supermailer/bin/sendmail-compat
mailq		/usr/local/supermailer/bin/mailq-compat
newaliases	/usr/local/supermailer/bin/newaliases-compat
hoststat	/usr/local/supermailer/bin/hoststat-compat
purgestat	/usr/local/supermailer/bin/purgestat-compat</programlisting>

	</sect2>

	<sect2>
	  <title>Запуск новой почтовой программы</title>

	<para>Как только вы все настроили, потребуется или уничтожить
	  процесс <application>sendmail</application>, который уже не
	  нужен и запустить новую почтовую программу, или просто перегрузить
	  систему.  Перезагрузка также даст вам возможность проверить
	  правильно ли настроена система для автоматического запуска
	  MTA при загрузке.</para>
      </sect2>
    </sect1>

  <sect1 id="mail-trouble">
    <title>Поиск и устранение неисправностей</title>
    <indexterm>
      <primary>email</primary>
      <secondary>устранение неисправностей</secondary>
    </indexterm>

    <qandaset>
      <qandaentry>
	<question>
	<para>Почему я должен использовать FQDN для хостов вне моей подсети?</para>
	</question>

	<answer>
	<para>Вы, видимо, обнаружили, что хост, к которому вы обратились,
	  оказался на самом деле в другом домене; например, если вы
	  находитесь в домене <hostid role="fqdn">foo.bar.edu</hostid> и
	  хотите обратиться к хосту <hostid>mumble</hostid> в домене <hostid
	  role="domainname">bar.edu</hostid>, то должны указать его полное
	  доменное имя, <hostid role="fqdn">mumble.bar.edu</hostid>, а не
	  просто <hostid>mumble</hostid>.</para>

    <indexterm><primary>BIND</primary></indexterm>
	<para>Традиционно, программа разрешения имен BSD BIND позволяла это
	  делать.  Однако, текущая версия <application>BIND</application>,
	  поставляемая с FreeBSD, больше не добавляет имена доменов,
	  отличающихся от того, в котором вы находитесь, для не полностью
	  указанных имен хостов.  То есть, имя <hostid>mumble</hostid> будет
	  опознан как <hostid role="fqdn">mumble.foo.bar.edu</hostid> или
	  будет искаться в корневом домене.</para>

	<para>Это отличается от предыдущего поведения, при котором поиск
	  продолжался в доменах <hostid
	  role="domainname">mumble.bar.edu</hostid> и <hostid
	  role="domainname">mumble.edu</hostid>.  Если вам интересны причины
	  объявления такого поведения плохой практикой и даже ошибкой в
	  безопасности, обратитесь к RFC 1535.</para>

	<para>Хорошим решением будет поместить строку

	  <programlisting>search foo.bar.edu bar.edu</programlisting>

	  вместо ранее используемой:

	  <programlisting>domain foo.bar.edu</programlisting>

	  в файл <filename>/etc/resolv.conf</filename>.  Однако
	  удостоверьтесь, что порядок поиска не нарушает <quote>границ
	  полномочий между локальным и внешним администрированием</quote>, в
	  терминологии RFC 1535.</para>
	</answer>
      </qandaentry>

      <qandaentry>
	<question>
	<para><application>sendmail</application> выдает ошибку
	  <errorname>mail loops back to myself</errorname></para>
	</question>

	<answer>
	<para>В FAQ по <application>sendmail</application> дан следующий ответ:</para>

	<programlisting>Выдаются сообщения <quote>Local configuration error</quote>, например:

553 relay.domain.net config error: mail loops back to myself
554 &lt;user@domain.net&gt;... Local configuration error

Как можно решить эту проблему?

Согласно записям MX, почта для домена <hostid
role="domainname">domain.net</hostid> перенаправляется на хост
<hostid>relay.domain.net</hostid>, однако последний не распознается как
<hostid role="domainname">domain.net</hostid>.  Добавьте <hostid
role="domainname">domain.net</hostid> в файл
<filename>/etc/mail/local-host-names</filename> (если вы используете
FETURE(use_cw_file)) или добавьте <quote>Cw domain.net</quote> в файл
<filename>/etc/mail/sendmail.cf</filename>.</programlisting>

	<para>FAQ по <application>sendmail</application> можно найти на
	  <ulink URL="http://www.sendmail.org/faq/"></ulink> и рекомендуется
	  прочесть его при желании произвести некоторые
	  <quote>усовершенствования</quote> настроек почтовой системы.</para>
	</answer>
      </qandaentry>

      <indexterm><primary>PPP</primary></indexterm>
      <qandaentry>
	<question>
	<para>Как организовать работу почтового сервера при коммутируемом соединении
	  с Интернет?</para>
	</question>

	<answer>
	<para>Вы хотите подключить к интернет компьютер с FreeBSD, работающий
	  в локальной сети.  Компьютер с FreeBSD будет почтовым шлюзом
	  для локальной сети.  PPP соединение не выделенное.</para>

	<indexterm><primary>UUCP</primary></indexterm>

	<para>Существует как минимум два пути, чтобы сделать это.  Один способ
	  это использование UUCP.</para>

	<para>Другой способ это использование постоянно работающего интернет
	  сервера для обеспечения вторичного MX сервиса вашего домена.
	  Например, домен вашей компании <hostid
	  role="domainname">example.com</hostid>, и провайдер интернет
	  настроил <hostid role="domainname">example.net</hostid>
	  для обеспечения вторичного MX сервиса:

	<programlisting>example.com.          MX        10      example.com.
                      MX        20      example.net.</programlisting>

	<para>Только один хост должен быть указан в качестве последнего
	  получателя (добавьте запись <literal>Cw example.com</literal> в файл
	  <filename>/etc/mail/sendmail.cf</filename> на машине
	  <hostid role="domainname">example.com</hostid>).</para>

	<para>Когда программа <command>sendmail</command> (со стороны
	  отправителя) <quote>захочет</quote> доставить почту, она
	  попытается соединиться с вашим хостом (<hostid
	  role="domainname">example.com</hostid>) через модемное подключение.
	  Скорее всего, ей это не удастся (вы,
	  вероятнее всего, не будете подключены к интернет).
	  Программа <application>sendmail</application>
	  автоматически перейдет ко вторичному MX серверу, т.е. вашему провайдеру
	  (<hostid role="domainname">example.net</hostid>).
	  Вторичный MX сервер будет периодически пытаться соединиться с
	  вашим хостом и доставить почту на основной сервер MX
	  (<hostid role="domainname">example.com</hostid>).</para>

	<para>Вы можете воспользоваться следующим сценарием, чтобы забирать
	  почту каждый раз, когда вы входите в систему:</para>

	<programlisting>#!/bin/sh
# Put me in /usr/local/bin/pppmyisp
( sleep 60 ; /usr/sbin/sendmail -q ) &amp;
/usr/sbin/ppp -direct pppmyisp</programlisting>

	<para>Если же вы хотите написать отдельный пользовательский скрипт,
	  лучше воспользоваться командой <command>sendmail
	  -qRexample.com</command> вместо вышеприведенного сценария, так как в
	  этом случае вся почта в очереди для хоста
	  <hostid role="domainname">example.com</hostid> будет обработана
	  немедленно.</para>

	<para>Рассмотрим эту ситуацию подробнее:</para>

	<para>Вот пример сообщения от &a.isp;.</para>

	<programlisting>&gt; Мы предоставляем вторичный MX для наших клиентов.  Вы соединяетесь
&gt; с нашим сервером несколько раз в день, чтобы забрать почту для вашего
&gt; первичного (главного) MX (мы не соединяемся с ним каждый раз, когда
&gt; приходит новая почта для его доменов).  Далее, sendmail отправляет
&gt; почту, находящуюся в очереди каждые 30 минут, и клиент должен быть
&gt; подключен к Интернет в течении 30 минут, чтобы удостовериться, что
&gt; вся почта <quote>ушла</quote> на основной MX-сервер.
&gt;
&gt; Может быть, есть какая-либо команда, которая заставит sendmail
&gt; немедленно отправить все почту, находящуюся в очереди?  Естественно,
&gt; пользователи не обладают какими-либо повышенными привилегиями на
&gt; нашем сервере.

В секции <quote>privacy flags</quote> файла
<filename>sendmail.cf</filename>, определяется опция
<option>Opgoaway,restrictqrun</option>

Уберите <literal>restrictqrun</literal>, чтобы разрешить рядовым
пользователям инициировать работу с очередью.  Вам также может понадобиться
изменить порядок MX-серверов.  Так, если вы предоставляете первый (основной)
MX-сервер для ваши пользователей, мы указываем:

# If we are the best MX for a host, try directly instead of generating
# local config error.
OwTrue

Таким образом, удаленный хост будет доставлять почту непосредственно к вам,
не пытаясь установить соединение с клиентом. Затем уже вы, в свою очередь,
отсылаете ее клиенту.  Удостоверьтесь, что в DNS есть записи про
<quote>customer.com</quote> и <quote>hostname.customer.com</quote>.  Просто
добавьте запись A в DNS для <quote>customer.com</quote>.</programlisting>
	</answer>
      </qandaentry>

      <qandaentry>
	<question>
	  <para>Почему я продолжаю получать ошибки <errorname>Relaying
	    Denied</errorname> при отправки почты через другие
	    хосты?</para>
	</question>

	<answer>
	  <para>В установке FreeBSD по умолчанию,
 	    <application>sendmail</application> настроен для отправки
	    почты только от хоста, на котором он работает.  Например,
	    если доступен <acronym>POP</acronym> сервер, пользователи
	    смогут проверять почту из школы, с работы или других
	    удаленных точек, но не смогут отправлять письма.  Обычно,
	    через некоторое время после попытки будет отправлено письмо
	    от <application>MAILER-DAEMON</application> с сообщением
	    об ошибке <errorname>5.7 Relaying Denied</errorname>.</para>

	  <para>Есть несколько путей разрешения этой ситуации.  Самый прямой
	    путь это использование адреса вашего провайдера в файле
	    relay-domains, расположенном в
	    <filename>/etc/mail/relay-domains</filename>.  Быстрый способ
	    сделать это:</para>

	  <screen>&prompt.root; <userinput>echo "your.isp.example.com" &gt; /etc/mail/relay-domains</userinput></screen>

	  <para>После создания или редактирования этого файла вы должны
	    перезапустить <application>sendmail</application>.  Это отлично
	    работает, если вы администратор сервера и не хотите отправлять
	    почту локально, или хотите воспользоваться почтовым
	    клиентом/системой на другом компьютере или даже через другого
	    провайдера.  Это также очень полезно, если у вас настроены одна
	    или две почтовые записи.  Если необходимо добавить несколько
	    адресов, вы можете просто открыть этот файл в текстовом редакторе и
	    добавить домены, по одному на строку:</para>

	  <programlisting>your.isp.example.com
other.isp.example.net
users-isp.example.org
www.example.org</programlisting>

	  <para>Теперь будет отправляться любая почта, посылаемая через вашу
	    систему любым хостом из этого списка (предоставляемого
	    пользователем, имеющим учетную запись в вашей системе).
	    Это отличный способ разрешить пользователям отправлять почту
	    через вашу систему удаленно, одновременно он блокирует отправку
	    спама.</para>
	</answer>
      </qandaentry>
    </qandaset>
  </sect1>

  <sect1 id="mail-advanced">
    <title>Расширенное руководство</title>

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

    <sect2 id="mail-config">
      <title>Базовая конфигурация</title>

      <indexterm>
	<primary>email</primary>
	<secondary>настройка</secondary>
      </indexterm>

      <para>Изначально, вы можете отправлять почту <quote>во внешний
	мир</quote> если правильно составлен файл
	<filename>/etc/resolv.conf</filename> или запущен свой сервер
	имен.  Если вы хотите, чтобы почта, предназначенная для хоста в
	вашем домене, доставлялась MTA (например,
	<application>sendmail</application>) на вашем хосте FreeBSD, есть два
	пути:</para>

      <itemizedlist>
	<listitem>
	  <para>Запустите свой собственный сервер DNS, тем самым организовав
	    собственный домен, например, <hostid
	    role="domainname">FreeBSD.org</hostid></para>
	</listitem>

	<listitem>
	  <para>Получайте почту для вашего хоста непосредственно.  Это
	    работает при доставке почты непосредственно на DNS имя вашей
	    машины.  Например, <hostid
            role="fqdn">example.FreeBSD.org</hostid>.</para>
	</listitem>
      </itemizedlist>

      <indexterm><primary>SMTP</primary></indexterm>
      <para>Независимо от выбранного из предложенных выше вариантов, для
	доставки почты непосредственно на ваш хост у него должен быть
	постоянный IP адрес (а не динамический,
	как у большинства PPP соединений).  Если вы находитесь за
	брандмауэром, то последний должен пропускать SMTP-пакеты.  Если
	вы хотите, чтобы почта приходила непосредственно на ваш
	хост, необходимо убедиться в одном из двух:</para>

      <itemizedlist>
    <indexterm><primary>MX record</primary></indexterm>
	<listitem>
	  <para>Убедитесь, что запись (с наименьшим номером) MX в
	    DNS соответствует IP адресу
	    вашего хоста.</para>
	</listitem>

	<listitem>
	  <para>Убедитесь, что в DNS для вашего хоста вообще отсутствует
	    MX-запись.</para>
	</listitem>
      </itemizedlist>

      <para>Выполнение любого из перечисленных условий обеспечит доставку
	почты для вашего хоста.</para>

      <para>Попробуйте это:</para>

      <screen>&prompt.root; <userinput>hostname</userinput>
example.FreeBSD.org
&prompt.root; <userinput>host example.FreeBSD.org</userinput>
example.FreeBSD.org has address 204.216.27.XX</screen>

      <para>Если вы это видите, то можно без проблем посылать почту на
	<email>yourlogin@example.FreeBSD.org</email> (предполагается,
	что <application>sendmail</application> на <hostid
	role="fqdn">example.FreeBSD.org</hostid> работает правильно).</para>

      <para>Однако, если вы видите это:</para>

      <screen>&prompt.root; <userinput>host example.FreeBSD.org</userinput>
example.FreeBSD.org has address 204.216.27.XX
example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org</screen>

      <para>то вся почта, посланная на <hostid
	role="fqdn">example.FreeBSD.org</hostid> будет собираться на
	<hostid>hub</hostid> (для того же пользователя), вместо того, чтобы
	быть отосланной непосредственно на ваш хост.</para>

      <para>Эта информация обрабатывается вашим DNS сервером.  Соответствующая
	запись DNS, указывающая, через какой хост будет проходить ваша
	почта, называется MX (от англ. <emphasis>M</emphasis>ail
	e<emphasis>X</emphasis>changer).  Если для хоста отсутствует такая
	запись, почта будет приходить прямо на этот хост.</para>

      <para>Допустим, что запись MX для хоста <hostid
	role="fqdn">freefall.FreeBSD.org</hostid> в какой-то момент
	выглядела так:</para>

      <programlisting>freefall		MX	30	mail.crl.net
freefall		MX	40	agora.rdrop.com
freefall		MX	10	freefall.FreeBSD.org
freefall		MX	20	who.cdrom.com</programlisting>

      <para>Вы видите, что для хоста <hostid>freefall</hostid> существуют
	несколько MX-записей.  Запись с наименьшим номером соответствует
	хосту, получающему почту непосредственно, если он доступен; если
	он недоступен по каким-то причинам, другие сервера (иногда называемые
	(<quote>резервными MX</quote>) временно получают почту, и хранят ее
	пока не станут доступны хосты с меньшими номерами, в конечном итоге
	отправляя почту на эти хосты.</para>

      <para>Чтобы альтернативные MX-хосты использовались наиболее
	эффективно, они должны быть независимо подключены к Интернет.  Ваш
	провайдер (или дружественный сайт) скорее всего без проблем сможет
	оказать подобные услуги.</para>
    </sect2>

    <sect2 id="mail-domain">
      <title>Почта для вашего домена</title>

      <para>Для настройки <quote>почтового хоста</quote> (a.k.a. почтовый
	сервер) вам потребуется, чтобы почта, направляемая различным рабочим
	станциям, пересылалась этому хосту.  Обычно вам необходима
	доставка всей почты для любого хоста вашего домена (в данном случае
	<hostid role="fqdn">*.FreeBSD.org</hostid>) на почтовый сервер, чтобы
	пользователи могли получать свою почту на с этого сервера.</para>

      <indexterm><primary>DNS</primary></indexterm>
      <para>Чтобы облегчить себе (и другим) жизнь, создайте на обеих машинах
	учетные записи с одинаковыми именами пользователей, например, с помощью
	команды &man.adduser.8;.</para>

      <para>Сервер, который вы будете использовать в качестве почтового,
	должен быть объявлен таковым для каждой машины в домене.  Вот
	фрагмент примерной конфигурации:</para>

      <programlisting>example.FreeBSD.org	A	204.216.27.XX		; Рабочая станция
			MX	10 hub.FreeBSD.org	; Почтовый шлюз</programlisting>

      <para>Таким образом, вся корреспонденция, адресованная рабочей
	станции, будет обрабатываться вашим почтовым сервером, независимо от
	того, что указано в A-записи.</para>

      <para>Все это можно реализовать только в том случае, если вы
	используете сервер DNS.  Если вы по каким-либо причинам не имеете
	возможности установить свой собственный сервер имен, необходимо
	договориться с провайдером или теми, кто поддерживает ваш
	DNS.</para>

      <para>Если вы хотите поддерживать несколько виртуальных почтовых
	серверов, может пригодиться следующая информация.  Допустим, что
	ваш клиент зарезервировал домен, например, <hostid
	role="domainname">customer1.org</hostid>, и вам требуется, чтобы
	почта, предназначенная для <hostid
	role="domainname">customer1.org</hostid> приходила на ваш хост,
	например, <hostid role="fqdn">mail.myhost.com</hostid>.  В таком
	случае, DNS должен выглядеть так:</para>

      <programlisting>customer1.org		MX	10	mail.myhost.com</programlisting>

      <para>Заметьте, что если вам требуется только получать почту для
	домена, соответствующая A-запись <emphasis>не</emphasis>
	нужна.</para>

      <note>
	<para>Помните, что если вы попытаетесь каким-либо образом обратиться
	  к хосту <hostid role="domainname">customer1.org</hostid>, у вас
	  вряд ли что-либо получится, если нет A-записи для этого
	  хоста.</para>
      </note>

      <para>Последнее, что вы должны сделать &ndash; это сказать программе
	<application>sendmail</application>, для каких доменов и/или хостов
	она должна принимать почту.  Это можно сделать несколькими
	способами:</para>

      <itemizedlist>
	<listitem>
	  <para>Добавьте названия этих хостов в файл
	    <filename>/etc/mail/local-host-names</filename>, если вы используете
	    <literal>FEATURE(use_cw_file)</literal>.  Если у вас
	    <application>sendmail</application>
	    версии ниже 8.10, необходимо отредактировать файл
	    <filename>/etc/sendmail.cw</filename>.</para>
	</listitem>

	<listitem>
	  <para>Добавьте строку <literal>Cwyour.host.com</literal> в файл
	    <filename>/etc/sendmail.cf</filename> или
	    <filename>/etc/mail/sendmail.cf</filename> (если у вас
	    <application>sendmail</application>
	    версии 8.10 или более поздней).</para>
	</listitem>
      </itemizedlist>
    </sect2>
  </sect1>

  <sect1 id="SMTP-UUCP">
  <title>SMTP через UUCP</title>

    <para>Настройка поставляемого с FreeBSD <application>sendmail</application>
      предназначена для сайтов, подключенных к интернет непосредственно.
      Сайты, осуществляющие обмен почтой через UUCP, должны использовать
      другой файл настройки <application>sendmail</application>.</para>

    <para>Редактирование <filename>/etc/mail/sendmail.cf</filename> вручную
      это сложная задача.  <application>sendmail</application> версии 8
      генерирует файлы настройки через препроцессор &man.m4.1;, реально
      настройка выполняется на более высоком уровне абстракции.
      Файлы настройки &man.m4.1; можно найти в
      <filename>/usr/src/usr.sbin/sendmail/cf</filename>.</para>

    <para>Если вы не установили в систему все исходные тексты, пакет настройки
      <application>sendmail</application> можно найти в отдельном архиве
      исходных текстов.  Если CDROM с исходными текстами
      FreeBSD смонтирован, выполните:</para>

    <screen>&prompt.root; <userinput>cd /cdrom/src</userinput>
&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail</userinput></screen>

    <para>Эта установка займет всего несколько сотен килобайт.  Файл
      <filename>README</filename> в каталоге <filename>cf</filename>
      содержит введение в основы настройки &man.m4.1;.</para>

    <para>Лучшим способом настройки поддержки передачи по UUCP является
      использование возможности <literal>mailertable</literal>.
      При этом создается база данных, которая помогает
      <application>sendmail</application> решать вопросы маршрутизации.</para>

    <para>Во-первых, создайте файл <filename>.mc</filename>.  В каталоге
      <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename> находятся
      несколько примеров.  Возьмем для примера имя файла
      <filename>foo.mc</filename>.  Все, что потребуется для преобразования
      его в <filename>sendmail.cf</filename>, это:</para>

    <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput>
&prompt.root; <userinput>make foo.cf</userinput>
&prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen>

    <para>Типичный <filename>.mc</filename> файл может выглядеть примерно
      так:</para>

    <programlisting>VERSIONID(`<replaceable>Your version number</replaceable>') OSTYPE(bsd4.4)

FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')

define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')

MAILER(local)
MAILER(smtp)
MAILER(uucp)

Cw    <replaceable>your.alias.host.name</replaceable>
Cw    <replaceable>youruucpnodename.UUCP</replaceable></programlisting>

    <para>Строки, содержащие
      <literal>accept_unresolvable_domains</literal>,
      <literal>nocanonify</literal>, и
      <literal>confDONT_PROBE_INTERFACES</literal>, предотвратят использование
      DNS для доставки почты.  Пункт <literal>UUCP_RELAY</literal>
      необходим для поддержки доставки по UUCP.  Просто поместите сюда
      имя хоста в интернет, способного работать с .UUCP адресами
      псевдо-доменов; скорее всего, вы введете сюда основной сервер
      пересылки почты провайдера.</para>

    <para>Как только вы сделаете это, потребуется файл
      <filename>/etc/mail/mailertable</filename>.  Если вы используете
      для всей почты только одно внешнее соединение, подойдет следующий
      файл:</para>

    <programlisting>#
# makemap hash /etc/mail/mailertable.db &lt; /etc/mail/mailertable
.                             uucp-dom:<replaceable>your.uucp.relay</replaceable></programlisting>

    <para>Более сложный пример может выглядеть так:</para>

    <programlisting>#
# makemap hash /etc/mail/mailertable.db &lt; /etc/mail/mailertable
#
horus.interface-business.de   uucp-dom:horus
.interface-business.de        uucp-dom:if-bus
interface-business.de         uucp-dom:if-bus
.heep.sax.de                  smtp8:%1
horus.UUCP                    uucp-dom:horus
if-bus.UUCP                   uucp-dom:if-bus
.                             uucp-dom:</programlisting>


    <para>В первых трех строках обрабатываются специальные случаи, когда
      почта для домена должна отправляться не на маршрут по умолчанию,
      а на ближайшее соединение UUCP для сокращения пути доставки.
      Следующая строка обрабатывает почту, которая может быть доставлена
      по SMTP для локального Ethernet домена.  Наконец, определены
      маршруты UUCP в нотации псевдо-доменов .UUCP, для включения
      перезаписи правил по умолчанию правилом
      <literal><replaceable>uucp-neighbor
      </replaceable>!<replaceable>recipient</replaceable></literal>.
      Последняя строка всегда содержит одиночную точку, означающую
      <quote>все остальное</quote>, с отправкой через UUCP, являющимся
      универсальным почтовым шлюзом.  Все имена узлов после ключевого слова
      <literal>uucp-dom:</literal> должны представлять существующие маршруты
      UUCP, проверить их можно с помощью команды
      <literal>uuname</literal>.</para>

    <para>Напоминаем, что этот файл должен быть преобразован в базу данных
      DBM перед использованием.  Командную строку для этой задачи лучше всего
      поместить в качестве комментария в верхней части файла
      <filename>mailertable</filename>.  Всегда выполняйте эту команду после
      правки файла <filename>mailertable</filename>.</para>

    <para>И наконец: если вы не уверены, что некоторые отдельные почтовые
      маршруты будут работать, запомните параметр
      <application>sendmail</application> <option>-bt</option>.  С этим
      параметром <application>sendmail</application> запускается в
      <emphasis>режиме тестирования адреса</emphasis>; просто введите
      <literal>3,0</literal> и адрес, который вы хотите протестировать.
      В последней строке появится сообщение об используемом внутреннем
      почтовом агенте, хосте назначения, с которым вызывается этот агент,
      и (возможно транслированный) адрес.  Выход из этого режима
      происходит при нажатии <keycombo
      action="simul"><keycap>Ctrl</keycap><keycap>D</keycap></keycombo>.</para>

    <screen>&prompt.user; <userinput>sendmail -bt</userinput>
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter &lt;ruleset&gt; &lt;address&gt;
<prompt>&gt;</prompt> <userinput>3,0 foo@example.com</userinput>
canonify           input: foo @ example . com
...
parse            returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceable> $: foo &lt; @ example . com . &gt;
<prompt>&gt;</prompt> <userinput>^D</userinput></screen>
  </sect1>

  <sect1 id="outgoing-only">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Bill</firstname>
	  <surname>Moran</surname>
	  <contrib>Предоставил </contrib>
	</author>
      </authorgroup>
    </sect1info>

    <title>Настройка почты только для отправки</title>

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

    <itemizedlist>
      <listitem>
	<para>У вас настольный компьютер, но вы хотите использовать такие
	  программы как &man.send-pr.1;.  Для пересылки почты вам потребуется
	  использовать почтовый сервер провайдера.</para>
      </listitem>

      <listitem>
	<para>Ваш компьютер является сервером, где почта не хранится локально,
	  необходима только переправка всей почты через внешний почтовый
	  сервер.</para>
      </listitem>
    </itemizedlist>

    <para>Практически любой <acronym>MTA</acronym> способен работать и в
      этих условиях.  К сожалению, может быть очень сложно правильно настроить
      полноценный <acronym>MTA</acronym> для работы только с исходящей
      почтой.  Такие программы, как <application>sendmail</application>
      и <application>postfix</application> слишком избыточны для этих
      целей.</para>

    <para>К тому же, если вы используете обычные средства доступа в
      интернет, условий для запуска <quote>почтового сервера</quote> может
      быть недостаточно.</para>

    <para>Простейшим способом удовлетворить имеющиеся потребности может быть
      установка порта <filename role="package">mail/ssmtp</filename>.
      Выполните под <username>root</username> следующие команды:</para>

    <screen>&prompt.root; <userinput>cd /usr/ports/mail/ssmtp</userinput></screen>
    <screen>&prompt.root; <userinput>make install replace clean</userinput></screen>

    <para>После установки потребуется настроить
      <filename role="package">mail/ssmtp</filename> с помощью файла из
      четырех строк, расположенного в
      <filename>/usr/local/etc/ssmtp/ssmtp.conf</filename>:</para>

    <programlisting>root=yourrealemail@example.com
mailhub=mail.example.com
rewriteDomain=example.com
hostname=_HOSTNAME_</programlisting>

    <para>Убедитесь, что используете существующий почтовый адрес для
      <username>root</username>.  Введите сервер вашего провайдера для
      пересылки исходящей почты вместо <hostid
      role="fqdn">mail.example.com</hostid> (некоторые провайдеры
      называют его <quote>сервером исходящей почты</quote> или
      <quote>SMTP сервером</quote>).</para>

    <para>Убедитесь, <application>sendmail</application> выключен путем
      добавления строки <literal>sendmail_enable="NONE"</literal>
      в <filename>/etc/rc.conf</filename>.</para>

    <para>У пакета <filename role="package">mail/ssmtp</filename> имеются
      и другие параметры.  Обратитесь к файлу с примером настройки
      в <filename>/usr/local/etc/ssmtp</filename> или к странице справочника
      <application>ssmtp</application> за примерами и дополнительной
      информацией.</para>

    <para>Установка <application>ssmtp</application> таким способом
      позволит правильно работать любым программам на вашем компьютере,
      которым требуется отправка почты, но не нарушит политику вашего
      провайдера и не позволит вашему компьютеру быть использованным
      спамерами.</para>
  </sect1>

  <sect1 id="SMTP-dialup">
    <title>Использование почты с коммутируемым соединением</title>

    <para>Если у вас есть статический IP, настройки по умолчанию менять
      не потребуется.  Установите имя хоста в соответствии с присвоенным
      именем интернет и <application>sendmail</application> будет делать
      свою работу.</para>

    <para>Если у вас динамический IP адрес и используется коммутируемое
      PPP соединение с интернет, у вас возможно уже есть почтовый ящик
      на сервере провайдера.  Предположим, что домен провайдера называется
      <hostid role="domainname">example.net</hostid>, и что ваше
      имя пользователя <username>user</username>, ваш компьютер называется
      <hostid role="fqdn">bsd.home</hostid>, и провайдер сообщил вам, что
      возможно использование <hostid
      role="fqdn">relay.example.net</hostid> в качестве сервера для пересылки
      почты.</para>

    <para>Для получения почты из почтового ящика необходима установка
      соответствующей программы.  Хорошим выбором является
      утилита <application>fetchmail</application>, она поддерживает
      множество различных протоколов.  Эта программа доступна в виде
      пакета или из коллекции портов (<filename
      role="package">mail/fetchmail</filename>).  Обычно провайдер
      предоставляет доступ по протоколу <acronym>POP</acronym>.  Если
      вы работаете с пользовательским <acronym>PPP</acronym>, то можете
      автоматически забирать почту после установления соединения с
      интернет с помощью следующей записи в
      <filename>/etc/ppp/ppp.linkup</filename>:</para>

    <programlisting>MYADDR:
!bg su user -c fetchmail</programlisting>

    <para>Если вы используете <application>sendmail</application> (как
      показано ниже) для доставки почты к не-локальным учетным записям,
      вам возможно потребуется обработка почтовой очереди
      <application>sendmail</application> сразу после установки
      соединения с интернет.  Для выполнения этой работы поместите
      в <filename>/etc/ppp/ppp.linkup</filename> следующую команду
      сразу после <command>fetchmail</command>:</para>

    <programlisting>  !bg su user -c "sendmail -q"</programlisting>

    <para>Предполагается, что учетная запись для
      <username>user</username> существует на <hostid
      role="fqdn">bsd.home</hostid>.  В домашнем каталоге
      <username>user</username> на <hostid
      role="fqdn">bsd.home</hostid>, создайте файл
      <filename>.fetchmailrc</filename>:</para>

    <programlisting>poll example.net protocol pop3 fetchall pass MySecret</programlisting>

    <para>Этот файл не должен быть доступен на чтение никому, кроме
      <username>user</username>, поскольку в нем находится пароль
      <literal>MySecret</literal>.</para>

    <para>Для отправки почты с правильным заголовком
      <literal>from:</literal>, вам потребуется сообщить
      <application>sendmail</application> использовать
      <literal>user@example.net</literal> вместо
      <literal>user@bsd.home</literal>.  Вы можете также указать
      <application>sendmail</application> отправлять почту через <hostid
      role="fqdn">relay.example.net</hostid>, для более быстрой пересылки
      почты.</para>

    <para>Должен подойти следующий файл <filename>.mc</filename>:</para>

    <programlisting>VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`example.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.example.net')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnl</programlisting>

    <para>Обратитесь к предыдущему разделу за информацией о том, как
      преобразовать этот файл <filename>.mc</filename> в файл
      <filename>sendmail.cf</filename>.  Не забудьте также перезапустить
      <application>sendmail</application> после обновления
      <filename>sendmail.cf</filename>.</para>
  </sect1>

  <sect1 id="SMTP-Auth">
    <title>SMTP аутентификация</title>

    <para>Наличие <acronym>SMTP</acronym> аутентификации на почтовом сервере
      дает множество преимуществ.  <acronym>SMTP</acronym> аутентификация
      может добавить дополнительный уровень безопасности к
      <application>sendmail</application>, и позволяет мобильным пользователям,
      подключающимся к разным хостам, возможность использовать тот же
      почтовый сервер без необходимости перенастройки почтового клиента
      при каждом подключении.</para>

    <procedure>
      <step>
	<para>Установите <filename role="package">security/cyrus-sasl</filename>
	  из портов. Вы можете найти этот порт в
	  <filename role="package">security/cyrus-sasl</filename>.
	  В пакете <filename role="package">security/cyrus-sasl</filename>
	  есть множество параметров компиляции, и для используемого здесь
	  метода убедитесь, что выбран параметр
	  <option>pwcheck</option>.</para>
      </step>


      <step>
	<para>После установки
	  <filename role="package">security/cyrus-sasl</filename>,
	  отредактируйте <filename>/usr/local/lib/sasl/Sendmail.conf</filename>
	  (или создайте его если он не существует) и добавьте следующую
	  строку:</para>

	<programlisting>pwcheck_method: passwd</programlisting>

	<para>Этот метод включит аутентификацию
	  <application>sendmail</application> через базу данных
	  <filename>passwd</filename> FreeBSD.  Это позволяет избежать
	  проблем, связанных с созданием нового набора имен пользователей
	  и паролей для каждого пользователя, которому необходима
	  <acronym>SMTP</acronym> аутентификация, пароль для входа в систему
	  и для отправки почты будет одним и тем же.</para>
      </step>

      <step>
	<para>Теперь отредактируйте <filename>/etc/make.conf</filename> и
	  добавьте следующие строки:</para>

	<programlisting>SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl</programlisting>

	<para>Эти параметры необходимы <application>sendmail</application>
	  для подключения <filename role="package">cyrus-sasl</filename>
	  во время компиляции.  Убедитесь, что <filename
	  role="package">cyrus-sasl</filename> был установлен до
	  перекомпиляции <application>sendmail</application>.</para>
      </step>

      <step>
	<para>Перекомпилируйте <application>sendmail</application>, выполнив
	  следующие команды:</para>

	<screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail</userinput>
&prompt.root; <userinput>make cleandir</userinput>
&prompt.root; <userinput>make obj</userinput>
&prompt.root; <userinput>make</userinput>
&prompt.root; <userinput>make install</userinput></screen>

	<para>Компиляция <application>sendmail</application> должна пройти
	  без проблем, если <filename>/usr/src</filename> не был сильно
	  изменен и доступны необходимые разделяемые библиотеки.</para>
      </step>

      <step>
	<para>После компилирования и переустановки
	  <application>sendmail</application>, отредактируйте файл
	  <filename>/etc/mail/freebsd.mc</filename> (или тот файл, который
	  используется в качестве <filename>.mc</filename>; многие
	  администраторы используют в качестве имени этого файла
	  вывод &man.hostname.1; для обеспечения уникальности).
	  Добавьте к нему следующие строки:</para>

	<programlisting>dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl</programlisting>

	<para>Эти параметры настраивают различные методы, доступные
	  <application>sendmail</application> для аутентификации пользователей.
	  Если вы хотите использовать вместо
	  <application>pwcheck</application> другой метод, обратитесь к
	  прилагаемой документации.</para>
      </step>

      <step>
	<para>Наконец, запустите &man.make.1; в каталоге
	  <filename>/etc/mail</filename>.  Из файла
	  <filename>.mc</filename> будет создан файл
	  <filename>.cf</filename>, называющийся
	  <filename>freebsd.cf</filename> (или с тем именем, которое было
	  использовано для файла <filename>.mc</filename>).  Затем
	  используйте команду <command>make install restart</command>,
	  которая скопирует файл в <filename>sendmail.cf</filename>,
	  и правильно перезапустит <application>sendmail</application>.
	  Дополнительная информация об этом процессе находится в
	  <filename>/etc/mail/Makefile</filename>.</para>
      </step>
    </procedure>

    <para>Если все шаги пройдены успешно, введите информацию для
      аутентификации в настройки почтового клиента и отправьте тестовое
      сообщение.  Для определения причин возможных ошибок установите
      параметр <application>sendmail</application>
      <option>LogLevel</option> в 13 и просмотрите
      <filename>/var/log/maillog</filename>.</para>

    <para>Для включения сервиса после каждой загрузки системы вам может
      потребоваться добавление в <filename>/etc/rc.conf</filename>
      следующих строк:</para>

    <programlisting>sasl_pwcheck_enable="YES"
sasl_pwcheck_program="/usr/local/sbin/pwcheck"</programlisting>

    <para>Эти строки инициализируют <acronym>SMTP_AUTH</acronym> при загрузке
      системы.</para>

    <para>За дальнейшей информацией обратитесь к странице
      <application>sendmail</application>, посвященной
      <ulink url="http://www.sendmail.org/~ca/email/auth.html">
      <acronym>SMTP</acronym> аутентификации</ulink>.</para>
  </sect1>

  <sect1 id="mail-agents">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Marc</firstname>
	  <surname>Silver</surname>
	  <contrib>Предоставил </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>Почтовые программы пользователей</title>

    <indexterm>
      <primary>почтовые программы пользователей</primary>
    </indexterm>

    <para>Почтовая программа пользователя (Mail User Agent,
      <acronym>MUA</acronym>) это приложение, используемое для отправки
      и получения почты.  Кроме того, поскольку почта
      <quote>эволюционирует</quote> и становится более сложной,
      <acronym>MUA</acronym> совершенствуют свои функции по обработке
      почты, становятся более удобны в использовании.  &os; поддерживает
      множество различных пользовательских почтовых программ, каждая
      из которых может быть легко установлена из <link
      linkend="ports">коллекции портов FreeBSD</link>.  Пользователи могут
      выбирать между графическими почтовыми клиентами, такими как
      <application>evolution</application> или
      <application>balsa</application>, консольными клиентами, такими
      как <application>mutt</application>, <application>pine</application>
      или <command>mail</command>, или веб интерфейсами, используемыми в
      некоторых больших организациях.</para>

    <sect2 id="mail-command">
      <title>mail</title>

      <para>В &os; в качестве <acronym>MUA</acronym> по умолчанию используется
	&man.mail.1;.  Это консольный <acronym>MUA</acronym>, предоставляющий
	все основные функции, необходимые для отправки и получения текстовых
	сообщений, хотя его возможности по работе с вложениями ограничены и
	он может работать только с локальными почтовыми ящиками.</para>

      <para>Хотя <command>mail</command> не поддерживает работу с серверами
	<acronym>POP</acronym> или <acronym>IMAP</acronym>, эти почтовые
	ящики могут быть загружены в локальный файл <filename>mbox</filename>
	с помощью <application>fetchmail</application>, который будет
	обсуждаться далее в этой главе.</para>

      <para>Для отправки и получения почты просто выполните команду
	<command>mail</command>, как в этом примере:</para>

      <screen>&prompt.user; <userinput>mail</userinput></screen>

      <para>Содержимое почтового ящика в каталоге
	<filename role="directory">/var/mail/</filename> будет автоматически
	прочитано утилитой <command>mail</command>.  Если почтовый ящик
	пуст, утилита завершит работу с сообщением о том, что почта не
	была обнаружена.  После чтения почтового ящика запустится
	интерфейс программы и будет отображен список сообщений.  Сообщения
	нумеруются автоматически и будут выглядеть как в этом примере:</para>

      <screen>Mail version 8.1 6/6/93.  Type ? for help.
"/var/mail/marcs": 3 messages 3 new
>N  1 root@localhost        Mon Mar  8 14:05  14/510   "test"
 N  2 root@localhost        Mon Mar  8 14:05  14/509   "user account"
 N  3 root@localhost        Mon Mar  8 14:05  14/509   "sample"</screen>

      <para>Теперь сообщения могут быть прочитаны с помощью команды
	<keycap>t</keycap>, завершаемой номером сообщения, которое должно
	быть отображено.  В этом примере мы прочтем первое сообщение:</para>

      <screen>& t 1
Message 1:
From root@localhost  Mon Mar  8 14:05:52 2004
X-Original-To: marcs@localhost
Delivered-To: marcs@localhost
To: marcs@localhost
Subject: test
Date: Mon,  8 Mar 2004 14:05:52 +0200 (SAST)
From: root@localhost (Charlie Root)

This is a test message, please reply if you receive it.</screen>

      <para>Как видно в примере выше, клавиша <keycap>t</keycap> выводит
	сообщение со всеми заголовками.  Для повторного вывода
	списка сообщений необходимо использовать клавишу
	<keycap>h</keycap>.</para>

      <para>Если требуется ответить на сообщение, используйте для
	ответа <command>mail</command>, нажав клавишу <keycap>R</keycap> или
	<keycap>r</keycap>.  Клавиша <keycap>R</keycap> используется в
	<command>mail</command> для ответа только отправителю,
	а <keycap>r</keycap> для ответа и отправителю, и другим получателям
	сообщения.  Вы можете также завершить эти команды номером письма,
	на которое хотите составить ответ.  После этого необходимо ввести
	ответ, конец сообщения должен быть завершен символом
	<keycap>.</keycap> на новой строке.  Пример можно увидеть ниже:</para>

      <screen>& R 1 To: root@localhost Subject: Re: test

Thank you, I did get your email.
.
EOT</screen>

      <para>Для отправки нового сообщения используйте клавишу
	<keycap>m</keycap> и введите адрес получателя.  Несколько получателей
	могут быть указаны через запятую.  Введите тему сообщения и
	его содержимое.  Конец сообщения отмечается помещением
	символа <keycap>.</keycap> на новой строке.</para>

      <screen>& mail root@localhost
Subject: I mastered mail

Now I can send and receive email using mail ... :)
.
EOT</screen>

      <para>В утилите <command>mail</command> для вызова справки в любой
	момент может быть использована команда <keycap>?</keycap>.
	Для получения помощи по <command>mail</command> необходимо также
	обратиться к странице справочника &man.mail.1;.</para>

      <note>
	<para>Как упоминалось выше, команда &man.mail.1; не была первоначально
	  предназначена для работы с вложениями, и поэтому их поддержка
	  довольно слабая.  Современные <acronym>MUA</acronym>,
	  такие как <application>mutt</application>, работают с вложениями
	  гораздо более уверенно.  Но если вы все же предпочитаете
	  использовать <command>mail</command>, для работы с вложениями
	  может подойти порт <filename
	  role="package">converters/mpack</filename>.</para>
      </note>
    </sect2>

    <sect2 id="mutt-command">
      <title>mutt</title>

      <para><application>mutt</application> это небольшая но очень
	мощная почтовая программа с отличными возможностями, в числе
	которых:</para>

      <itemizedlist>
	<listitem>
	  <para>Возможность сортировки сообщений по дискуссиям;</para>
	</listitem>

	<listitem>
	  <para>Поддержка PGP для подписи и шифрования сообщений;</para>
	</listitem>

	<listitem>
	  <para>Поддержка MIME;</para>
	</listitem>

	<listitem>
	  <para>Поддержка Maildir;</para>
	</listitem>

	<listitem>
	  <para>Широкие возможности настройки.</para>
	</listitem>
      </itemizedlist>

      <para>Все эти возможности делают
	<application>mutt</application> одним из самых лучших почтовых
	клиентов.  Обратитесь к <ulink
	url="http://www.mutt.org">http://www.mutt.org</ulink> за
	дополнительной информацией по mutt.</para>

      <para>Стабильная версия <application>mutt</application> может быть
	установлена из порта <filename role="package">mail/mutt</filename>.
	После установки порта, <application>mutt</application> может
	быть запущен следующей командой:</para>

      <screen>&prompt.user; <userinput>mutt</userinput></screen>

      <para><application>mutt</application> автоматически прочтет содержимое
	пользовательского почтового ящика в каталоге <filename
	role="directory">/var/mail</filename> и отобразит почту,
	если она имеется в наличии.  Если почты в ящике пользователя нет,
	<application>mutt</application> будет ожидать команд от пользователя.
	В примере ниже показан <application>mutt</application> со
	списком сообщений.</para>

      <mediaobject>
	<imageobject>
	  <imagedata fileref="mail/mutt1" format="PNG">
	</imageobject>
      </mediaobject>

      <para>Для чтения почты просто выберите сообщение с помощью клавиш
	навигации и нажмите <keycap>Enter</keycap>.  Пример
	<application>mutt</application>, отображающего сообщение, показан
	ниже:</para>

      <mediaobject>
	<imageobject>
	  <imagedata fileref="mail/mutt2" format="PNG">
	</imageobject>
      </mediaobject>

      <para>Как и команда &man.mail.1;, <application>mutt</application>
	позволяет пользователям отвечать как только отправителю, так и всем
	получателям.  Для ответа только отправителю почты, используйте
	клавишу <keycap>r</keycap>.  Для группового ответа и отправителю
	сообщения и всем получателям используйте клавишу
	<keycap>g</keycap>.</para>

      <note>
	<para><application>mutt</application> использует &man.vi.1; в качестве
	  редактора для создания писем и ответа на них.  Редактор можно
	  заменить путем создания или редактирования собственного
	  <filename>.muttrc</filename> и установки переменной
	  <option>editor</option>.</para>
      </note>

      <para>Для создания нового почтового сообщения нажмите
	<keycap>m</keycap>.  После введения темы
	<application>mutt</application> запустит &man.vi.1; для создания
	письма.  Как только письмо будет завершено, сохраните его и закройте
	<command>vi</command>, <application>mutt</application> продолжит
	работу, отобразив окно с сообщением, которое должно быть отправлено.
	Для отправки сообщения нажмите <keycap>y</keycap>.  Пример окна с
	сообщением показан ниже:</para>

      <mediaobject>
	<imageobject>
	  <imagedata fileref="mail/mutt3" format="PNG">
	</imageobject>
      </mediaobject>

      <para><application>mutt</application> также содержит исчерпывающий
	справочник, к которому можно обратиться из большинства меню,
	нажав клавишу <keycap>?</keycap>.  Верхняя строка также показывает
	клавиатурные сокращения, которые могут быть использованы.</para>
    </sect2>

    <sect2 id="pine-command">
      <title>pine</title>

      <para><application>pine</application> предназначен для начинающих
	пользователей, но включает некоторые дополнительные
	возможности.</para>

      <warning>
	<para>В программе pine ранее были обнаружены некоторые уязвимости,
	  позволяющие удаленному взломщику выполнять произвольный код
	  с правами пользователя локальной системы путем отправки
	  специально подготовленного письма.  Все эти
	  <emphasis>известные</emphasis> проблемы были исправлены,
	  но код pine написан в очень небезопасном стиле и офицеры
	  безопасности &os; считают, что возможно наличие других
	  не обнаруженных уязвимостей.  Имейте это ввиду при установке
	  <application>pine</application>.</para>
      </warning>

      <para>Текущая версия <application>pine</application> может быть
	установлена из порта <filename role="package">mail/pine4</filename>.
	Как только порт установлен, <application>pine</application> можно
	запустить командой:</para>

      <screen>&prompt.user; <userinput>pine</userinput></screen>

      <para>При первом запуске <application>pine</application> отображает
	страницу приветствия с кратким введением, а также просьбу
	команды разработчиков <application>pine</application>
	отправить анонимное почтовое сообщение, позволяющее им
	определить количество пользователей, работающих с их почтовым
	клиентом.  Для отправки анонимного сообщения нажмите
	<keycap>Enter</keycap>, или <keycap>E</keycap> для выхода
	из из приветствия без отправки анонимного сообщения.  Пример
	приветствия показан ниже:</para>

      <mediaobject>
	<imageobject>
	  <imagedata fileref="mail/pine1" format="PNG">
	</imageobject>
      </mediaobject>

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

      <para>По умолчанию <application>pine</application> открывает каталог
	<filename role="directory">inbox</filename>.  Для просмотра списка
	сообщений нажмите <keycap>I</keycap>, или выберите <quote>MESSAGE
	INDEX</quote>, как показано ниже:</para>

      <mediaobject>
	<imageobject>
	  <imagedata fileref="mail/pine2" format="PNG">
	</imageobject>
      </mediaobject>

      <para>В списке показаны сообщения в текущем каталоге, они могут быть
	просмотрены с помощью клавиш навигации.  Подсвеченные сообщения
	можно прочесть нажав <keycap>Enter</keycap>.</para>

      <mediaobject>
	<imageobject>
	  <imagedata fileref="mail/pine3" format="PNG">
	</imageobject>
      </mediaobject>

      <para>На снимке экрана ниже показан пример письма, отображаемого
	<application>pine</application>.  Внизу экрана даны клавиатурные
	сокращения.  Например, <keycap>r</keycap> используется для
	указания <acronym>MUA</acronym> ответить на отображаемое в
	данный момент сообщение.</para>

      <mediaobject>
	<imageobject>
	  <imagedata fileref="mail/pine4" format="PNG">
	</imageobject>
      </mediaobject>

      <para>Ответ на письмо в <application>pine</application> осуществляется
	с помощью редактора <application>pico</application>, который
	устанавливается по умолчанию вместе с <application>pine</application>.
	<application>pico</application> упрощает навигацию в сообщении
	гораздо проще для новых пользователей, чем &man.vi.1; или
	&man.mail.1;.  Как только ответ будет готов, сообщение можно отправить
	нажав <keycombo
	action="simul"><keycap>Ctrl</keycap><keycap>X</keycap></keycombo>.
	<application>pine</application> запросит подтверждение.</para>

      <mediaobject>
	<imageobject>
	  <imagedata fileref="mail/pine5" format="PNG">
	</imageobject>
      </mediaobject>

      <para>Программа <application>pine</application> может быть настроена
	через пункт <option>SETUP</option> главного меню.  Обратитесь к
	странице <ulink
	url="http://www.washington.edu/pine/">http://www.washington.edu/pine/</ulink>
	за дальнейшей информацией.</para>

    </sect2>
  </sect1>

  <sect1 id="mail-fetchmail">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Marc</firstname>
	  <surname>Silver</surname>
	  <contrib>Предоставил </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>Использование fetchmail</title>

    <indexterm>
      <primary>использование fetchmail</primary>
    </indexterm>

    <para><application>fetchmail</application> это полноценный
      <acronym>IMAP</acronym> и <acronym>POP</acronym> клиент,
      позволяющий пользователям автоматически загружать почту с
      удаленных серверов <acronym>IMAP</acronym> и <acronym>POP</acronym>
      в локальные почтовые ящики; так доступ к почтовым ящикам упрощается.
      <application>fetchmail</application> может быть установлен из
      порта <filename role="package">mail/fetchmail</filename> и
      предоставляет различные возможности, в том числе:</para>

    <itemizedlist>
      <listitem>
	<para>Поддержка протоколов <acronym>POP3</acronym>,
	  <acronym>APOP</acronym>, <acronym>KPOP</acronym>,
	  <acronym>IMAP</acronym>, <acronym>ETRN</acronym> и
	  <acronym>ODMR</acronym>.</para>
      </listitem>

      <listitem>
	<para>Возможность пересылки почты через <acronym>SMTP</acronym>,
	  что позволяет использовать функции фильтрации, перенаправления и
	  синонимов.</para>
      </listitem>

      <listitem>
	<para>Может быт запущен в режиме даемона для периодической проверки
	  поступающих сообщений.</para>
      </listitem>

      <listitem>
	<para>Может забирать почту с нескольких почтовых ящиков и рассылать
	  ее различным локальным пользователям в зависимости от
	  настроек.</para>
      </listitem>
    </itemizedlist>

    <para>Описание всех возможностей
      <application>fetchmail</application> выходит за пределы этой главы,
      за дополнительной информацией обратитесь к документации по
      <application>fetchmail</application>.  Утилита
      <application>fetchmail</application> требует наличия
      файла настройки <filename>.fetchmailrc</filename>.  Этот файл
      включает информацию о сервере, а также информацию для аутентификации.
      Поскольку этот файл содержит важную информацию, правильно будет
      сделать его доступным для чтения только владельцем с помощью
      следующей команды:</para>

    <screen>&prompt.user; <userinput>chmod 600 .fetchmailrc</userinput></screen>

    <para>В следующем примере файл <filename>.fetchmailrc</filename>
      предназначен для загрузки одного почтового ящика по протоколу
      <acronym>POP</acronym>.  Этот файл указывает
      <application>fetchmail</application> соединиться с
      <hostid role="fqdn">example.com</hostid> с именем пользователя
      <username>joesoap</username> и паролем <quote>XXX</quote>.
      В примере подразумевается, что пользователь <username>joesoap</username>
      существует также и в локальной системе.</para>

    <programlisting>poll example.com protocol pop3 username "joesoap" password "XXX"</programlisting>

    <para>В следующем примере производится подключение к нескольким
      <acronym>POP</acronym> и <acronym>IMAP</acronym> серверам,
      при необходимости почта перенаправляется другим локальным
      пользователям.</para>

    <programlisting>poll example.com proto pop3:
user "joesoap", with password "XXX", is "jsoap" here;
user "andrea", with password "XXXX";
poll example2.net proto imap:
user "john", with password "XXXXX", is "myth" here;</programlisting>

    <para>Утилита <application>fetchmail</application> может работать
      в режиме даемона с флагом <option>-d</option>, заданным с
      интервалом (в секундах), через который
      <application>fetchmail</application> должен опрашивать
      серверы, перечисленные в <filename>.fetchmailrc</filename>.
      В следующем примере <application>fetchmail</application> будет
      забирать почту каждые 60 секунд:</para>

    <screen>&prompt.user; <userinput>fetchmail -d 60</userinput></screen>

    <para>Дополнительную информацию о <application>fetchmail</application>
      можно найти на сайте <ulink
      url="http://www.catb.org/~esr/fetchmail/">
      http://www.catb.org/~esr/fetchmail/</ulink>.</para>
  </sect1>

  <sect1 id="mail-procmail">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Marc</firstname>
	  <surname>Silver</surname>
	  <contrib>Предоставил </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>Использование procmail</title>

    <indexterm>
      <primary>использование procmail</primary>
    </indexterm>

    <para>Утилита <application>procmail</application> это невероятно
      мощное приложение, используемое для фильтрации входящей почты.
      Она позволяет пользователям определять <quote>правила</quote>,
      которые могут быть сопоставлены входящим письмам для выполнения
      определенных действий или для перенаправления почты в
      альтернативные почтовые ящики и/или на почтовые адреса.
      <application>procmail</application> может быть установлен
      с помощью порта <filename role="package">mail/procmail</filename>.
      После установки он может быть непосредственно интегрирован в
      большинство <acronym>MTA</acronym>; сверьтесь с документацией
      на ваш <acronym>MTA</acronym>.  Другой способ интеграции
      <application>procmail</application> &ndash; добавление в
      файл <filename>.forward</filename>, находящийся в домашнем
      каталоге пользователя, следующей строки:</para>

    <programlisting>"|exec /usr/local/bin/procmail || exit 75"</programlisting>

    <para>В этом разделе будут показаны основы настройки правил
      <application>procmail</application>, а также краткое описание их
      действия.  Эти и другие правила должны быть помещены в файл
      <filename>.procmailrc</filename>, который должен находиться в домашнем
      каталоге пользователя.<para>

    <para>Большую часть этих правил также можно найти на странице справочника
      <quote>procmailex</quote>.</para>

    <para>Перенаправление всей почты от <quote>user@example.com</quote> на
      внешний адрес <quote>goodmail@example2.com</quote>:</para>

    <programlisting>:0
* ^From.*user@example.com
! goodmail@example2.com</programlisting>

    <para>Перенаправление всей почты объемом меньше 1000 байт на внешний адрес
      <quote>goodmail@example2.com</quote>:</para>

    <programlisting>:0
* < 1000
! goodmail@example2.com</programlisting>

    <para>Перенаправление всей почты, отправляемой на
      <quote>alternate@example.com</quote>, в почтовый ящик
      <filename>alternate</filename>.</para>

    <programlisting>:0
* ^TOalternate@example.com
alternate</programlisting>

    <para>Перенаправление всей почты с <quote>Spam</quote> в
      <filename>/dev/null</filename>.</para>

    <programlisting>:0
^Subject:.*Spam
/dev/null</programlisting>

    <para>Полезный пример, обрабатывающий входящую почту со списков
      рассылки &os;.org и помещающий каждый список в отдельный почтовый
      ящик.</para>

    <programlisting>:0
* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
{
	LISTNAME=${MATCH}
	:0
	* LISTNAME??^\/[^@]+
	FreeBSD-${MATCH}
}</programlisting>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->
