4. Посылка почты

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

4.1. comp, forw, reply--создание, пересылка или ответ на чье-либо сообщение

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

To:
cc:
Subject:
--------

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

To:freebsd-rave@FreeBSD.org
cc:
Subject:And on the 8th day God created the FreeBSD core team
--------
Wow this is an amazing operating system. Thanks!

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

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

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

4.2. Файлы components и replcomps--файлы компонент для команд comp и repl

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

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

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

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

%(lit)%(formataddr %<{reply-to}%?{from}%?{sender}%?{return-path}%>)
%<(nonnull)%(void(width))%(putaddr To: )
%>
%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))
%<(nonnull)%(void(width))%(putaddr cc: )
%>
%<{fcc}Fcc: %{fcc}
%>
%<{subject}Subject: Re: %{subject}
%>
%<{date}In-reply-to: Your message of "
%<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id}
    %{message-id}%>
%>
--------

Он имеет такой же простой формат, как и файл components, но содержит несколько дополнительных форматирующих кодов. Команда %(lit) определяет место для адреса. %(formataddr) является функцией, которая возвращает полный адрес электронной почты. Следующей частью является %<, которая означает условие если и {reply-to} соответствует полю reply-to исходного сообщения. Таким образом, это может быть проинтерпретировано следующим образом:

%<if {reply-to}
в исходном сообщении имеется поле reply-to 
то передать его в formataddr, %? else {from}
взять адрес from,
%? else {sender}
взять адрес sender, %?
else {return-path}
взять return-path из исходного сообщения,
%> endif.

Как вы можете видеть, форматирование MH может быть достаточно сложным. Вы можете выяснить, что значат остальные функции и переменные. Вся информация по написанию строк в таком формате находится в справочной странице по MH. Действительно удобной вещью является то, что единожды создав собственный файл replcomps, вам не нужно больше его трогать. Ни одна другая почтовая программа не даст вам той мощи и гибкости, что дает вам MH.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.

Обновлено: 12.03.2015