Михаил Е. Захаров zakharov@ipb.redline.ru
Почтовый клиент mutt (http://www.mutt.org/) cреди пользователей операционных систем семейства Unix заслуженно считается одним из лучших поскольку обладает несколькими важными качествами:
Если же о достоинствах mutt говорить кратко, лучше всего процетировать разработчиков: "Mutt is a small but very powerful text-based mail client for Unix operating systems".
Эта статья предназначена для новичков, поэтому я буду рассматривать настройку mutt довольно поверхностно, станавливаясь лишь на тех моментах, которые точно будут полезны при первом знакомстве с mutt.
Mutt это cвободно-распространяемая программа, которая портирована на множесто ОС, поэтому с компиляцией из исходных текстов, которые можно взять здесь http://www.mutt.org/download.html, или с установкой из прекомпилированных пакетов проблем возникнуть не должно.
Например, с CD-ROM'а FreeBSD, mutt, соответствующей версии, можно установить как пакет:
su && mount /cdrom && pkg_add /cdrom/packages/mail/mutt/mutt-1.4.1i.tar.gz
или скомпилировать из исходных текстов через систему портов:
$ su && cd /usr/ports/mail/mutt && make install && make clean && exit
Сразу после установки можно убедиться, что mutt вполне работоспособен даже с конфигурацией по-умочанию. Для этого выполним команду:
$ mutt
На экране должен появиться черно-белый интерфейс mutt:
Читая man mutt видим, что mutt имеет два глобальных конфигурационных файла, /etc/Muttrc и /etc/mailcap. Первый файл как раз и является основным конфигурационным файлом mutt. Во FreeBSD он нашелся, что вполне логично, в каталоге /usr/local/etc. Второй, который вообще нигде не обнаружился, должен содержать описания реакций mutt на нетекстовые типы MIME в теле писльма.
Поскольку в разных операционных системах файлы конфигурации могут находится в различных местах файловой системы, разбираться в деталях вопроса их точного местонахождения для каждой ОС мы не будем. Сами глобальные настройки мы тоже оставим впокое поскольку конфигурация почтового клиента вещь индивидуальная для каждого пользователя. Поэтому сразу перейдем к практической части.
Для того, чтобы настроить mutt для своих нужд, пользователю достаточно в своем домашнем каталоге создать два файла: .muttrc и .mailcap, которые в полной мере заменят ему неуловимые глобальные файлы конфигурации. Mutt поставляется с примерами таких конфигураций, во FreeBSD у меня эти файлы во время установки попали в каталог /usr/local/share/examples/mutt. За основу для творчества возьмем sample.muttrc и sample.mailcap из этого каталога. Для этого, находясь в своей домашней директории выполняем:
$ cp /usr/local/share/examples/mutt/sample.mailcap ./.mailcap
$ cp /usr/local/share/examples/mutt/sample.muttrc ./.muttrc
Поскольку большинство параметров .muttrc достаточно прозрачны и хорошо прокомментированы в самом конфигурационном файле, вы их сами смело измените по своему усмотрению, а я пока оставлю почти все как есть, ограничившись лишь минимальными изменениями:
set arrow_cursor # используем "->" вместо того, чтобы выделять всю строку
set attribution="On %d, %n wrote:" # при ответе на письмо пишем эту строчку в начале цитаты
set charset="koi8-r" # кодировка терминала
set copy=yes # всегда сохранять копии исходящей почты
set delete=yes # выбрасывать "удаленные" письма
set edit_headers # редактирование заголовков при создании письма
set editor="vim" # редактор
set help # показываем помощь
set include # в ответное письмо всегда включаем исходное
set mail_check=5 # как часто проверяем новую почту
set mbox=+mbox # здесь сохраняем прочитанную почту
set pager_index_lines=6 # количество строк показываемых в пэйджере
set record=+outbox # сюда по-умолчанию сохраняем исходящие сообщения
set reply_to # Если есть reply-to используем
set reverse_name # Используем наш адрес так, как он указан
# в сообщении, на которое отвечаем
set nosave_empty # удаляем файл, если в нем не осталось сообщений
set sort=threads # метод сортировки
set sort_browser=reverse-date # сортировка файлов в браузере каталогов
set spoolfile='/var/mail/zakharov' # файл, который проверяем на наличие новой почты, (почтовый ящик МТА)
set tilde # рисуем ~ чтобы указать пустые строки
set nouse_domain # не дописываем домен
# set use_mailcap=yes # всегда используем значения из mailcap. Мой mutt отказался
# использовать эту переменную. На всякий случай закомментировали ее.
set pgp_verify_sig=no # не проверяем сигнатуры PGP
set visual=vim # редактор, вызываемый по ~v
Цвета, сочетания клавиш, описания своих заголовков и т.д. можно менять по вкусу, я же оставлю их без изменения.
# Укажем порядок представления заголовков писем:
unhdr_order * # сбросим предыдущие установки
hdr_order date from subject to cc # укажем порядок следования заголовков
Далее закомментируем сортировщик входящей почты по файлам, кучу лишних почтовых ящиков и списков рассылок, на которые автор примера подписан:
# save-hook ^judge +diplomacy
# mailboxes ! +mutt-dev +mutt-users +open-pgp +wmaker +hurricane +vim +ietf \
# +drums
# lists mutt-dev mutt-users
Конфигурационный файл mutt может составляться из нескольких других, но поскольку мы делаем простую конфигурацию, постараемся уместить все только в один файл и, следовательно, убираем из файла ссылки на другие файлы:
# source ~/.muttrc-local
В заключении описания файла .muttrc хочу обратить внимание, на строку set charset="koi8-r". Наличие правильной кодировки в этой строке, гарантирует вам отсутствие проблем при чтении русских писем.
На этом примитивную настройку можно считать законченной. Уже сейчас можно читать "русские" письма, включилась поддержка цвета, это особенно удобно если при составлении писем вы используете редактор с подсветкой синтаксиса, например указали set editor="vim" или соответствующим образом выставлены переменные окружения EDITOR или VISUAL.
Однако почти сразу обнаруживаются и не слишком приятные моменты. Оказывается, плохо читаются так называемые html-письма, еще хуже обстоит дело с вложениями в виде файлов от офисных продуктов Microsoft. В этом случае, можно пойти двумя путями, принципиально не читать такие письма или соответствующим образом настроить .mailcap.
Формат файла .mailcap прост: слева MIME, справа команды. Например, для того чтобы решить проблему с просмотром html-вложений можно настроить вызов lynx'a. Для этого воспользуемся следующей записью в файле .mailcap:
text/html; lynx -force_html %s; needsterminal;
Если у вас определены несколько дествий для одного и того же MIME, то выполняться будет первое:
text/html; lynx -force_html %s; needsterminal;
text/html; netscape -remote openURL\(%s\)
Кроме того, для одного и того же типа файлов в письмах могут быть разные MIME. Тогда в .mailcap для всех этих MIME приходится использовать одинаковые описания действий. Например, поскольку у нас стояла задача научить mutt просматривать вложения в виде файлов MS Word и MS Excel, то можно в .mailcap написать следующее:
application/msword; antiword -m koi8-r.txt %s; copiousoutput
application/vnd.msword; antiword -m koi8-r.txt %s; copiousoutput
application/excel; xls2csv %s; | sed 's/,/ /g'; copiousoutput
application/msexcel; xls2csv %s; | sed 's/,/ /g'; copiousoutput
application/ms-Excel; xls2csv %s | sed 's/,/ /g'; copiousoutput
application/vnd.ms-excel; xls2csv %s | sed 's/,/ /g'; copiousoutput
application/x-excel; xls2csv %s | sed 's/,/ /g'; copiousoutput
antiword (http://www.winfield.demon.nl/) может быть установлен из портов или скомпилирован из исходных текстов. xls2csv входит в состав дистрибутива catdoc (http://www.45.free.net/~vitus/ice/catdoc/) который тоже может быть взят из портов, пакетов, или скомпилирован самостоятельно.
Мы рассмотрели самые азы настройки mutt, которые, между тем, позволят сразу приступить к почти полноценной работе с электронной почтой. Однако, очень многое из возможностей mutt осталось за пределами рассмотрения:
Все эти возможности без особых проблем могут быть реализованы, поскольку на сайте mutt даны хорошие описания и приведено множество примеров.