3. Папки и поиск почты

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

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

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

3.1. pick--поиск почты по некоторому критерию

Команда pick является одной из более сложных команд в системе MH. Так что вам может понадобиться прочесть справочную страницу по pick(1) для его более полного понимания. В простейшем случае вы можете делать нечто вроде следующего:

% pick -search pci
15
42
55
56
57

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

% pick -search pci -seq pick
5 hits
% show pick

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

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

-to

поиск по адресату сообщения

-cc

поиск по содержимому cc-списка

-from

поиск по тому, от кого исходит сообщение

-subject

поиск электронной почты с заданной темой письма

-date

поиск электронных писем с указанной датой

--component

поиск по любому другому компоненту заголовка письма. (То есть --reply-to для поиска всех электронных писем с определенным значением поля reply-to в заголовке)

Это позволяет вам выполнять действия типа

% pick -to freebsd-hackers@FreeBSD.org -seq hackers
для получения списка всех электронных писем, посланных в список рассылки FreeBSD hackers. Команда pick также позволяет вам группировать эти критерии различными способами при помощи следующих параметров:

  • ... -and ...

  • ... -or ...

  • -not ...

  • -lbrace ... -rbrace

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

% pick -to freebsd-hackers -or -cc freebsd-hackers

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

% pick -lbrace -to freebsd-hackers -and 
 -not -cc freebsd-questions -rbrace -and -subject pci

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

3.2. folder, folders, refile--три полезные программы для управления папками

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

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

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

    Folder  # of messages ( range ); cur msg (other files)
    announce has 1 message ( 1- 1).
    drafts has no messages.
    f-hackers has 43 messages ( 1- 43).
   f-questions has 16 messages ( 1- 16).
     inbox+ has 35 messages ( 1- 38); cur= 37.
     lists has 8 messages ( 1- 8).
    netfuture has 1 message ( 1- 1).
     out has 31 messages ( 1- 31).
    personal has 6 messages ( 1- 6).
     todo has 58 messages ( 1- 58); cur= 1.

      TOTAL= 199 messages in 13 folders.

Команду refile нужно использовать для перемещения сообщения между папками. Когда вы выполняете команду типа refile 23 +netfuture, то сообщение номер 23 перемещается в папку netfuture. Вы можете также выполнить команду типа refile 23 +netfuture/latest, которая поместит сообщение номер 23 в папку с именем latest, вложенную в папку netfuture. Если вы хотите сохранить сообщение в текущей папке и связать его, вы можете выполнить команду refile -link 23 +netfuture, которая оставит 23 в вашем текущей папке inbox, но также и в вашей папке netfuture. Наверное, вы уже начали понимать, какие по настоящему мощные действия вы можете выполнять с MH.

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

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

Обновлено: 12.03.2015