Быстрое руководство пользователя E-mail клиента Mutt
Автор: Mike Polniak
Редактор: Ken Nowack
Переводчик: Иван Зенков
Данное руководство расскажет вам, с чего начинается использование
мощных консольных приложений для работы с электронной почтой. Таких,
например, как: fetchmail, procmail, mutt и nbsmtp.
Версия: 1.0
19 Feb 2003
Введение в E-Mail
Если вы не любитель e-mail клиентов с замысловатым графическим
интерфейсом, или если вы просто хотите поэксперементировать с другими
клиентами, чтобы выбрать подходящий для себя, самым простым способом в
вашем случае будет использование связки консольных приложений:
fetchmail->procmail->mutt->smtp
Программы эти не просто мощные и сложно-конфигурируемые, они так же
легковесны и эффективны. Поэтому, однажды настроив и запустив всю эту
e-mail систему, вы будете просто ошеломлены тем, что сможете делать с
ее помощью.
Поскольку это быстрое руководство, мы не будем рассматривать службы
отправки почты (Mail Transfer Agent), такие как sendmail, postfix или
exim. Мы так же не будем использовать 25-й порт для почтовых сервисов.
Мы можем себе это позволить, так как fetchmail способен передавать
принятую почту непосредственно службе доставки почты (MDA) вместо
того, чтобы перенаправлять ее на 25 порт. И мы можем не использовать
службу отправки почты (MTA) для простой передачи почты.
Для запуска своей e-mail системы вам понадобится установить следующие
программное обеспечение.
$ emerge fetchmail procmail mutt nbsmtp
Теперь от полностью рабочей e-mail системы нас отделяют четыре
маленьких шажка в направлении конфигурации файлов.
После каждого шага необходимо тестировать настройку на корректность.
Это конечно же подразумевают, что все необходимое программное
обеспечение у вас уже установлено.
Fetchmail
Fetchmail забирает почту с удаленного сервера на вашу локальную
машину. Для этого вам необходимо настроить файл .fetchmailrc в вашей
домашней директории, подобно этому примеру:
poll mail.myisp.net protocol pop3 user "myname" password "mypassword"
Сразу после создания файла, необходимо выставить права доступа к нему
(он должен быть читаем только его владельцем). Сделать это можно
следующей командой:
$ chmod 710 .fetchmailrc
Чтобы увидеть процесс в действии, используйте ключ -v. Чтобы получить
все сообщения, используйте -a. И еще - вы должны использовать ключ -m
для того чтобы передать принятую почту procmail.
Будет так же хорошей идеей использовать ключ -k, в этом случае, если
что-то пойдет не так, ваша почта не будет удалена с сервера и вы
сможете ее повторно забрать.
Пришло время проверить fetchmail в действии!
$ fetchmail -akv -m "/usr/bin/procmail -d %T"
Как только вы добьетесь работающей системы, вы можете добавить процесс
в cron или какой-нибудь монитор навроде gkrellm. Fetchmail также может
быть запущен как демон с указанием секундного интервала.
Procmail
Procmail - это программа, фильтрующая почту, получаемую от fetchmail.
А далее, так же как и MDA, она поставляет отфильтрованную почту в ваши
почтовые ящики, а оттуда ее уже можно прочитать программой mutt (это
почтовый клиент, который мы будем использовать).
Для использования procmail так же необходимо создать файл .procmailrc
в своем домашнем каталоге. Для наших целей "быстрой настройки" мы
будем использовать простой .procmailrc, который фильтрует почту от
трех списков рассылки gentoo в три почтовых ящика: gentoo-dev,
gentoo-user и gentoo-announce. Правила фильтра вызывают условия, я
также использовал условия для того, чтобы отфильтровать некоторый
спам.
MAILDIR=$HOME/MuttMail ##проверьте правильность пути
LOGFILE=$HOME/.procmaillog
LOGABSTRACT=no
#VERBOSE=on... используется только для отладки
VERBOSE=off
FORMAIL=/usr/bin/formail
NL="
"
##условные строки начинаются с :0
##не записывайте комментарии в строки условия
##отредактируйте ненужные условия!
##Строки условий начинаются с *, а регулярные выражения ваши лучшие друзья
##условия добавленные после * попадают прямо в egrep
##строка следущая за условиями, в следующем регистре является именем почтового
ящика
#никаких html писем
:0
* ^Content-Type:.*html
$MAILDIR/junk
#складировать письма из списков рассылки в мои почтовые ящики
:0
* ^List-Id:.*gentoo-user
gentoo-user
:0
* ^List-Id:.*gentoo-dev
gentoo-dev
:0
* ^List-Id:.*gentoo-announce
gentoo-announce
#Получать любую другую почту с gentoo
:0
* ^From:.*gentoo.org
gentoo
:0
* ^From:.*@freshmeat.net
freshmeat
###########################################
# Последние условие: складирует остальную #
# почту в почтовый ящик по умолчанию #
###########################################
:0
* .*
default
# Конец файла
В данном случае вам только потребуется создать почтовую директорию в
$HOME/MuttMail, после чего Procmail создаст все необходимые файлы
почтового ящика в этом каталоге, используя названия из строк условий.
Для дополнительной информации посетите http://www.procmail.org/
Для проверки нашего .procmailrc повторно запустите fetchmail (который
мы уже настроили). Помните также, что опция -k оставляет почту на
удаленном сервере, потому ее можно использовать для нашего теста.
$ fetchmail -akv -m "/usr/bin/procmail -d %T"
Ну всё, теперь когда fetchmail и procmail работают, мы можем, зайдя в
$HOME/MuttMail, прочитать нашу почту программой less или вашим любимым
файловым менеджером.
Mutt e-mail client
Mutt используется для чтения и написания писем. Это очень мощное,
сложно-настраиваемое, легковесное и эффективное приложение.
Mutt поддерживает чтение и запись в различных форматах почтового
ящика: mbox, MMDF, MH и Maildir. Тип почтового ящика распознается
автоматически. В нашем случае мы используем формат mbox, где все
сообщения почтового ящика сохраняются в отдельном файле.
Mutt также имеет способность работать с папками, расположенными на
удаленном IMAP сервере. См. Поддержку IMAP в разделе 4.11 руководства
по Mutt и сайт Mutt http://www.mutt.org/.
При установке mutt создается основной файл конфигурации
/etc/mutt/Muttrc. Вам также необходимо создать файл .muttrc в своем
домашнем каталоге.
Конечно также было бы неплохо прочитать Mutt документацию из
/usr/share/doc/mutt*
Пример .muttrc. Любые настройки в данном случае отменяют параметры
общей конфигурации из /etc/mutt/Muttrc.
# cp /etc/mutt/Muttrc ~/.muttrc
$ nano -w .muttrc
set pager_context=1
set pager_index_lines=6 #показывать оглавления окне программы
set menu_scroll
set pgp_verify_sig=no #не показывать pgp на странице
set status_on_top #разместить статусную строку вверху.
set sort=threads #сортировать сообщения по заголовкам
set status_format=" %r %b %f %n Del %d Msgs %m %l %> (%P)"
set pager_format="%-10.10i %[!%a %b %d %R]"
set date_format="!%H:%M %a %d %b "
set index_format="%4C %Z %[%b%d] %-15.15F %s"
set folder_format="%2C %t %8s %d %N %f"
#set from="default-mailaddress" #задает ваш адрес в строке "from"
#set realname="myname"
set record="$HOME/MuttMail/sent" #сохранять отправленную почту здесь
set delete=yes #удалить без подтверждения
set include=yes #выделять сообщение в ответе
set fast_reply=yes #не подтверждать ответ
set beep=no #не пищать
set markers=no #не помечать + сложенные строки
set confirmappend=no #не подтверждать сохранение в =keep
set to_chars=" +TCF" #нет L для mail_list
save-hook .* =keep #mbox поумолчанию сохраняет (s) почту в
=keep
subscribe gentoo-user gentoo-dev #подписанные списки
bind pager h display-toggle-weed #переключать заголовки кнопкой h
# симулировать старое url меню
macro index cb |urlview
'call urlview to extract URLs out of a message'
macro pager cb |urlview
'call urlview to extract URLs out of a message'
#запуск fetchmail нажатием кнопки G
macro index G "!fetchmail -a -m 'procmail -d %T'
"
macro pager G "!fetchmail -a -m 'procmail -d %T'
"
#редактирование .muttrc...не требует перезапуска
macro generic ,sm ":source $HOME/.muttrc
"
macro generic cj "!rxvt -bg wheat -e joe $HOME/.muttrc
"
#по умолчанию список заголовков в полях удаляется перед показом почты
#игнорирует все, кроме того что вам нужно
ignore *
unignore Date To From: Subject X-Mailer Organization User-Agent
hdr_order Date From To Subject X-Mailer User-Agent Organization
##ваш Mutt должен поддерживать несколько цветов
##для обозначения четырех уровней выделенного текста
##данные настройки отменяют параметры общей конфигурации в /etc/mutt/Muttrc
#color quoted green default
color quoted1 magenta blue
#color quoted2 yellow default
#color quoted3 red default
#color signature cyan cyan
#эта цветовая схема взята из /etc/mutt/Muttrc.color
#закомментируйте ее, если вам нужна цветовая схема по умолчанию из /etc/mutt/Mu
ttrc
# Je vois la vie en rose :-)
color hdrdefault brightcyan blue
color header brightwhite blue "^from:"
color header brightwhite blue "^subject:"
color quoted brightgreen blue
color signature brightwhite blue
color indicator blue green
color error red black
mono error bold
color status black cyan
mono status bold
color tree yellow blue
color tilde brightmagenta blue
color body brightwhite blue "[-a-z_0-9.]+@[-a-z_0-9.]+"
mono body bold "[-a-z_0-9.]+@[-a-z_0-9.]+"
color body brightyellow black "^Good signature"
mono body bold "^Good signature"
color body brightwhite red "^Bad signature from.*"
mono body bold "^Bad signature from.*"
color normal white blue
color message green black
color attachment brightgreen blue
# Конец файла...но вы можете его дописывать и дописывать....:)
Это только маленький пример файла .muttrc. На самом же деле гораздо
больше опций поддаются конфигурации, например те же настройки gpg. Для
примеров и помощи посмотрите http://mutt.netliberte.org/.
Теперь вы можете протестировать наш .muttrc
$ mutt -y
После чего должно появится окно Mutt с почтовыми ящиками которые мы
создали, когда настраивали fetchmail.
Нажмите ? для получения помощи в навигации по почтовым ящикам в Mutt.
SMTP
Последний шаг - это настройка nbsmtp ('No-Brainer SMTP'),
используемого для отправки почты на ваш сервер SMTP. Данная настройка
самая простая и требует лишь добавления нескольких строк в
конфигурационный файл .muttrc.
domain: домен, сообщаемый nbsmtp. Будет почти постоянно схож с
окончанием вашего адреса электронной почты.
from@addr: Это тот адрес, который будет сообщаться nbsmtp в строке
"from". Обратите внимания, что данный адрес может отличаться от того,
что записан в поле "From:" вашего почтового клиента (MUA).
host: Сервер smtp, куда собственно и будет отправляться почта.
$ nano -w .muttrc
set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f urname@isp.net"
Теперь все готово для создания письма. В окне Mutt нажмите m для того,
чтобы написать текстовое сообщение на ваш же почтовый ящик. Mutt
использует значение EDITOR или VISUAL, указываемое с помощью опции
editor= в .muttrc. После того как сообщение будет написано, нажмите y
для его отправки. Если все прошло удачно мы увидим сообщение 'sending
mail' следующие за 'New mail in =sent'.
Помните, в .muttrc у нас задано сохранять всю отправленную почту при
помощи строки :set record="$HOME/MuttMail/sent".
Теперь, чтобы завершить испытание, снова запустите fetchmail для
получения всей почты и вашего тестового письма, которое вы себе
отправили. Как только это тестовое письмо будет найдено, нажмите h для
того чтобы посмотреть все его заголовки и полный путь прохождения
почты (mail transfer path).
Есть еще одна программа, которая, возможно, вам пригодится, с
названием urlview. Она извлекает ссылки из текстовых сообщений и
перенаправляет их в ваш браузер.
$ emerge urlview
После этого создайте ~/.urlview, копируя конфигурационный файл из
/usr/share/doc/urlview*/, и подправьте необходимые настройки под ваш
браузер.
Что ж, теперь у нас есть мощная почтовая система. Читайте различную
документацию и руководства, а так же ищите примеры конфигурационных
файлов в 'google' по ключевым словам muttrc и procmailrc.