Ссылка на оригинал: http://www.gentoo.org/doc/ru/guide-to-mutt.xml
C версии: 1.0
Если вы не любитель e-mail клиентов с замысловатым графическим интерфейсом, или если вы просто хотите поэкспериментировать с другими клиентами, чтобы выбрать подходящий для себя, самым простым способом в вашем случае будет использование связки консольных приложений:
fetchmail->procmail->mutt->smtp
Программы эти не просто мощны и гибко настраиваемы, они также легковесны и эффективны. Потому, однажды настроив и запустив всю эту e-mail систему, вы будете просто ошеломлены тем, что сможете делать с её помощью.
Поскольку это краткое руководство, мы не будем рассматривать службы отправки почты (Mail Transfer Agent), такие как sendmail, postfix или exim. Мы также не будем использовать 25 порт для почтовых служб.
Мы можем себе это позволить, так как fetchmail способен передавать принятую почту непосредственно службе доставки почты (MDA) вместо того чтобы перенаправлять её на 25 порт. И мы можем не использовать службу отправки почты (MTA) для простой передачи почты.
Для запуска своей e-mail системы вам понадобится установить следующее программное обеспечение.
Листинг 1.1: Установка нужных программ
# emerge fetchmail procmail mutt nbsmtp
Теперь от полностью рабочей e-mail системы нас отделяют четыре маленьких шажка в направлении конфигурации файлов.
Важно: После каждого шага необходимо тестировать настройку на корректность. Это конечно же подразумевают, что всё необходимое программное обеспечение у вас уже установлено.
Fetchmail забирает почту с удаленного сервера на вашу локальную машину. Для этого вам необходимо настроить файл .fetchmailrc в вашей домашней директории, подобно примеру:
Листинг 2.1: Пример .fetchmailrc
poll mail.myisp.net protocol pop3 user "myname" password "mypassword"
Сразу после создания файла, необходимо выставить права доступа к нему (он должен быть читаем только его владельцем). Сделать это можно следующей командой:
Листинг 2.2: Изменение прав доступа
# chmod 710 .fetchmailrc
Чтобы увидеть процесс в действии, используйте ключ -v. Чтоб получить все сообщения, используйте -a. И ещё вы должны использовать ключ -m для того, чтобы передать принятую почту procmail.
Предупреждение: Будет также хорошей идеей использовать ключ -k, в этом случае если что-то пойдет не так, ваша почта не будет удалена с сервера и вы сможете её повторно забрать.
Пришло время проверить fetchmail в действии!
Листинг 2.3: Тест Fetchmail #1
# fetchmail -akv -m "/usr/bin/procmail -d %T"
Как только вы добьётесь работающей системы, вы можете добавить процесс в cron или какой-нибудь монитор навроде gkrellm. Fetchmail также может быть запущен как демон с указанием секундного интервала.
Procmail - это программа фильтрующая почту получаемую от fetchmail. А далее, также как и MDA, она поставляет отфильтрованную почту в ваши почтовые ящики, откуда её уже можно прочитать программой mutt (это почтовый клиент, который мы будем использовать).
Для использования procmail, также необходимо создать файл .procmailrc в своём домашнем каталоге. Для наших целей "быстрой настройки" мы будем использовать простой .procmailrc, который фильтрует почту от трех списков рассылки gentoo в три почтовых ящика: gentoo-dev, gentoo-user и gentoo-announce.
Примечание: Правила фильтра называются условиями. Я также добавил условия для того, чтобы отфильтровать некоторый спам.
Листинг 3.1: Пример .procmailrc
MAILDIR=$HOME/MuttMail ##проверьте правильность пути
5LOGFILE=$HOME/.procmaillog
LOGABSTRACT=no
#VERBOSE=on... используется только для отладки
VERBOSE=off
FORMAIL=/usr/bin/formail
NL="
"
##условные строки начинаются с :0
##не записывайте комментарии в строки условия
##отредактируйте ненужные условия!
##строки условий начинаются с *, а регулярные выражения ваши лучшие друзья
##условия добавленные после * попадают прямо в egrep
##строка следущая за условиями, в следующем регистре является именем почтового ящика
#отлавливание копий, используя formail
:0 Whc: .msgid.lock
| $FORMAIL -D 16384 .msgid.cache
:0 a
$MAILDIR/duplicates
#люди которые всегда пишут с одного почтового адреса
:0
* ^From:.*(craig\@hotmail|renee\@local.com)
$MAILDIR/friends
#выборка некоторого спама
:0
* ^Subject:.*(credit|cash|money|debt|sex|sale|loan)
$MAILDIR/spam
#никаких 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 оставляет почту на удаленном сервере, потому её можно использовать для нашего теста.
Листинг 3.2: Тест Procmail #1
# fetchmail -akv -m "/usr/bin/procmail -d %T"
Ну всё, теперь когда fetchmail и procmail работают, мы можем зайдя в $HOME/MuttMail прочитать нашу почту программой less или вашим любимым файловым менеджером.
Mutt используется для чтения и написания писем. Это очень мощное, сложно-настраиваемое, легковесное и эффективное приложение.
Mutt поддерживает чтение и запись в различных форматах почтового ящика: mbox, MMDF, MH и Maildir. Тип почтового ящика распознается автоматически. В нашем случае мы используем формат mbox, где все сообщения почтового ящика сохраняются в отдельных файлах.
Mutt также имеет способность работать с папками, расположенными на удаленном IMAP сервере. См. Поддержку IMAP в разделе 4.11 руководства по Mutt и сайт Mutt http://www.mutt.org/.
При установке mutt создаётся основной файл конфигурации /etc/mutt/Muttrc. Вам также необходимо создать файл .muttrc в своём домашнем каталоге.
Листинг 4.1: Пример .muttrc
(Конечно, неплохо бы прочитать документацию Mutt из /usr/share/doc/mutt*)
(Любые настройки здесь отменяют параметры общей конфигурации из /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 sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f yourname@isp.net"
#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
set folder = $HOME/MuttMail
mailboxes =gentoo-user
mailboxes =gentoo-dev
mailboxes =gentoo-announce
mailboxes =gentoo
mailboxes =freshmeat
mailboxes =duplicates
mailboxes =default
mailboxes =sent
mailboxes =friends
mailboxes =junk
mailboxes =spam
mailboxes =keep
save-hook .* =keep #mbox по умолчанию сохраняет (s) почту в =keep
subscribe gentoo-user gentoo-dev #подписанные списки
bind pager h display-toggle-weed #переключать заголовки кнопкой h
# симулировать старое url меню
macro index \cb |urlview\n 'call urlview to extract URLs out of a message'
macro pager \cb |urlview\n 'call urlview to extract URLs out of a message'
#запуск fetchmail нажатием кнопки G
macro index G "!fetchmail -a -m 'procmail -d %T'\r"
macro pager G "!fetchmail -a -m 'procmail -d %T'\r"
#редактирование .muttrc... не требует перезапуска
macro generic ,sm ":source $HOME/.muttrc\r"
macro generic \cj "!rxvt -bg wheat -e joe $HOME/.muttrc\r"
#по умолчанию список заголовков в полях удаляется перед показом почты
#игнорирует всё, кроме того, что вам нужно
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/Muttrc
# 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
Листинг 4.2: Тест .muttrc
# mutt -y
После чего должно появиться окно Mutt с почтовыми ящиками, которые мы создали, когда настраивали fetchmail.
Нажмите ? для получения помощи в навигации по почтовым ящикам в Mutt.
Последний шаг, это настройка nbsmtp ('No-Brainer SMTP'), используемого для отправки почты на ваш сервер SMTP. Данная настройка самая простая и требует лишь добавления нескольких строк в конфигурационный файл .muttrc
domain: домен, сообщаемый nbsmtp. Будет почти всегда похож на окончаниее вашего адреса электронной почты.
from@addr: Это тот адрес, который будет сообщаться nbsmtp в строке "from". Обратите внимание, что данный адрес может отличаться от того, что записан в поле "From:" вашего почтового клиента (MUA).
host: Сервер smtp, куда, собственно, и будет отправляться почта.
Листинг 5.1: Добавление поддержки 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. Она извлекает ссылки из текстовых сообщений и перенаправляет их в ваш браузер.
Листинг 5.2: Установка urlview
# emerge urlview
После чего создайте ~/.urlview копируя конфигурационный файл из /usr/share/doc/urlview*/, и подправьте необходимые настройки под свой браузер.
Чтож, теперь у нас есть мощная почтовая система. Читайте различную документацию и руководства, а также ищите примеры конфигурационных файлов в 'google' по ключевым словам muttrc и procmailrc.