Предупреждение : Этот документ находится в разработке, и его пока не следует считать официальным. |
Если вы не любитель 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 ##проверьте правильность пути LOGFILE=$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.