Учебник по MH
Пред. |  | След.

# 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>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.