Настройка почтового пейджера Mutt
На сервере под управлением FreeBSD 7.2-RELEASE работает почтовый сервер postfix-2.6.5,1. В нем заведены почтовые ящики, на которые приходит различная почта. Возникла задача установить клиент, с помощью которого можно было бы локально читать эту почту и при необходимости отправлять письма. Перебирая почтовые клиенты, остановился на Mutt. Самым главным преимуществом которого посчитал отсутствие необходимости устанавливать X-windows. |
Идем по пути:
# cd /usr/ports/mail/mutt
Из файла distinfo узнаем устанавливаемую версию: mutt-1.4.2.3
Конфигурировать тут нечего, поэтому делаем сразу:
# make install clean
В тоге получаем в системе необходимый нам готовый программный продукт.
Он уже работает! Запустите его командой mutt, и вы увидите окно работающей программы. Теперь нам необходимо настроить его под наши нужды.
mutt имеет два глобальных конфигурационных файла:
/usr/local/etc/Muttrc – это основной конфигурационный файл mutt;
/usr/local/etc/mailcap – должен содержать описания реакций mutt на не текстовые типы MIME в теле письма (но этот файл в системе не обнаружился).
Чтобы настроить mutt под определенного пользователя, заходим под ним в систему, переходим (если этого сразу не произошло) в корень его домашнего каталога.
Далее копируем примеры файлов настройки mutt (созданные при установке пакета) к себе в корень домашнего каталога:
# cp /usr/local/share/examples/mutt/sample.mailcap ./.mailcap # cp /usr/local/share/examples/mutt/sample.muttrc ./.muttrc
Теперь нам надо внести свои изменения в файл ./.muttrc в соответствии с нашими нуждами. Формат этого файла имеет вид – одна команда на одну стоку. Все что написано после (#) – это комментарий.
set folder=~/Mail # папка, где хранится вся обработанная почта set alias_file=~/.mail_aliases # файл, где хранятся алиасы set arrow_cursor # использовать "->" вместо выделения всей строки set attribution="On %d, %n wrote:" # при ответе на письмо в начале пишем эту строчку set autoedit # перейти к редактору при составлении письма set charset="koi8-r" # кодировка терминала set noconfirmappend # не спрашивать, если я делаю вложение в письмо set copy=yes # всегда сохранять копии исходящей почты set delete=yes # навсегда удалять письма без подтверждения set edit_headers # редактировать заголовки при составлении письма set editor="nano -w" # используемый редактор при составлении письма set hdr_format="%4C %Z %{%m/%d} %-15.15F (%4c) %s" # формат индекса set help # показывать справку set hostname="your_domain.ru" # укажите ваше доменное имя set include # всегда включать тело исходного письма в ответное set nomark_old # нас не заботит, если сообщение старое set mail_check=5 # как часто проверять почту set mbox=+mbox # где хранить прочитанную почту set mime_forward # использовать rfc822-формат для пересылаемой почты set move=yes # не спрашивать о перемещении сообщений set pager_index_lines=6 # количество строк показываемых в пейджере set postponed=+postponed # где хранить отложенные сообщения set print_command=/bin/false # каким образом выводить на печать (I like to save trees) ;-) set noprompt_after # запросить мое действие после отработки пейджера set read_inc=25 # показать статусбар при загрузки сообщений 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/user' # где расположена входящая почта (почтовый ящик МТА) set tilde # рисуем ~ чтобы указать пустые строки set nouse_domain # не дописываем домен set pgp_verify_sig=no # автоматически не проверять PGP сигнатуры сообщений set visual=nano # редактор, вызываемый по ~v set write_inc=25 # показать статусбар при подготовке сообщений ignore * # игнорируровать все строки по умолчанию unignore from: subject to cc mail-followup-to \ date x-mailer x-url # каким образом переносить длинные строки
Далее идет настройка цветовой гаммы окна mutt, я их оставил без изменения:
color hdrdefault red default color quoted brightblue default color signature red default color indicator brightyellow red color error brightred default color status yellow blue color tree magenta default color tilde magenta default color message brightcyan default color markers brightcyan default color attachment brightmagenta default color search default green color header brightred default ^(From|Subject): color body magenta default "(ftp|http)://[^ ]+" color body magenta default [-a-z_0-9.]+@[-a-z_0-9.]+ color underline brightgreen default mono quoted bold
Далее указаны кнопки “быстрого” поиска/перемещения:
bind generic "\e<" first-entry bind generic \e> last-entry bind generic { top-page bind generic } bottom-page bind generic \177 last-entry macro index \cb |urlview\n macro index S s+spam\n macro pager S s+spam\n bind pager G bottom # клавиша быстрого запуска редактора
Закомментируйте сортировщик входящей почты по файлам, кучу лишних почтовых ящиков и списков рассылок, на которые подписан автор примера:
#save-hook mutt- =mutt-mail #save-hook aol\.com +spam #save-hook ^judge +diplomacy #mbox-hook =mutt-users.in =mutt-users #mbox-hook +TEST +inbox #send-hook mutt- 'set signature=~/.sigmutt; my_hdr From: Mutt User <user@example.com>' #fcc-hook joe +joe #fcc-hook bob +bob #mailboxes ! +mutt-dev +mutt-users +open-pgp +wmaker +hurricane +vim +ietf \ # +drums #mailboxes `echo $HOME/Mail/*` #lists mutt-dev mutt-usersДалее укажем порядок представления заголовков писем:
unhdr_order * # сбросить все прежние настройки hdr_order date from subject to cc # укажем порядок следования заголовков
Далее идут настройки для автоматического использования способов, описанные в ~/.mailcap для чтения различных типов вложений MIME:
auto_view application/x-gunzip auto_view application/x-gzip
Конфигурационный файл mutt может составляться из нескольких других, но для простоты давайте уместим все в один файл, поэтому убираем из него ссылки на другие файлы. Закомментируем:
#source ~/.muttrc-local
В заключении описания конфигурационного файла ~/.muttrc хочу обратить ваше внимание на значение параметра:
set charset=“koi8-r”
Наличие правильной кодировки в этой строке, гарантирует вам отсутствие проблем при чтении русских писем.
И еще, mutt отказывался работать при указании переменной:
#set use_mailcap=yes # всегда используем значения из mailcap
Я закомменитровал ее, и mutt заработал.
На этом простейшую настройку можно считать законченной.
Однако вы обнаружите несколько неприятных моментов, когда попытаетесь прочитать html-письма или открыть вложения в виде файлов от офисных продуктов Microsoft. Если читать такие письма для вас является необходимостью, то вам нужно соответствующим образом настроить ~/.mailcap.
Формат файла ~/.mailcap прост: слева – тип вложения MIME, справа – команды, с помощью которых их надо обрабатывать.
Например, для того чтобы решить проблему с просмотром html-вложений можно настроить вызов lynx. Для этого воспользуемся следующей записью в файле ~/.mailcap:
text/html; lynx -force_html %s; needsterminal;
Если у вас определены несколько действий для одного и того же MIME, то выполняться будет первое. (Надеюсь, не надо напоминать, что при этом lynx уже должен быть установлен в системе).
Кроме того, для одного и того же типа файлов в письмах могут быть разные MIME. Тогда в ~/.mailcap для всех этих MIME придется использовать одинаковые описания действий. Если в письме есть вложения в виде файлов MS Word и MS Excel, то нужно внести следующие строки:
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
Для просмотра картинок надо будет внести соответствующие настройки сопоставления вложения программе. Например:
image/gif; xv %s image/jpg; xv %s
Повторюсь, что для полноценного чтения MIME разных типов у вас в системе должно стоять соответствующее приложение для его обработки.
Вот в принципе и все. Данные настройки позволят вам сразу получать, отправлять и читать практически всю входящую корреспонденцию. Остальное можно почерпнуть из man mutt, документации по пути /usr/local/share/doc/mutt или на официальном сайте продукта.
Удачи!