The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Настройка почты (sendmail, postfix, qmail)" (Архив | Для печати)

Mutt'ная дока

Copyright © 2004 Mike Belopuhov, mkb@cvs.hnet.spb.ru


Оригинал: openbsd.hnet.spb.ru

Содержание:

1. Об использовании почты в UNIX

2. Получение почты -- fetchmail

3. Обработка принятой корреспонденции -- procmail

4. Посылка писем

4.1. sendmail

4.2. msmtp

5. Роль mutt в этом всем деле

6. Фильтры спама

6.1. Bayesian spamfilter

7. See Also


1. Об использовании почты в UNIX

В этой статье аккумулирован опыт многих авторов, посвятивших какую-либо часть своего времени теме электронной почты. И прежде всего я хочу выразить им свою признательность. Эта статья не ставит себе целью описать весь функционал используемых программ, на то есть соответствующие страницы руководства.

Сразу же хочу ответить на вопрос "Почему mutt?": потому что это действительно удобно. Unix way это, когда несколько отдельных программ делают свою работу на 5+ и, объеденив все их усилия вместе, можно получить мощную, настраиваемую и расширяемую систему, в данном случае, для работы с электронной корреспонденцией.

Возрастающая популярность mutt говорит о реинкарнации стандартных для Unix подходов к решению каждодневных задач. То, что все большее и большее количество начинающих и опытных пользователей обращают свой взор на консольные почтовые клиенты, и прежде всего на mutt, дает возможность говорить о том, что идеи Unix процветают. Так тому и быть!

Покончив с идеологическими вопросами, перейдем к техническим. Та связка программ, которую предлагается использовать не нова, что позволяет говорить о ее удобстве и простоте. Итак процесс работы с почтой начинается с приема письма. Эту роль уже несколько лет отводят программе fetchmail. Она поддерживает все основные протоколы приема почты (различные версии IMAP и варианты POP3). Далее, вместо того, чтобы отдать почту SMTP серверу на localhost, мы будем ее отдавать для локальной доставки procmail'у, который обеспечит необходимую фильтрацию и разбор писем по почтовым ящикам. Но все по порядку...

2. Получение почты -- fetchmail

Итак получение почты. Мы ограничимся рассмотрением приема почты по POP3 протоколу. Выглядит это так: в файл .fetchmailrc в домашней директории пользователя записывается подобная информация:

poll mail.server.com proto pop3
    user 'username' pass 'password' is 'localuser' here
    mda 'procmail -d %T'

Параметр mda указывает кому отдать письма после приема для доставки (по умолчанию используется sendmail). В данном случае мы отдаем их procmail'у.

Для каждого ящика делается своя запись наподобие этой.

3. Обработка принятой корреспонденции -- procmail

Фильтровать почту можно как угодно. Потенциал procmail по-настоящему велик. В примере мы будем фильтровать почту, приходящую с дискуссионного листа в отдельный ящик и еще кое-что. Для этого в ~/.procmailrc пишется следующее:

MAILDIR=	$HOME/Mail
LOGFILE=	/dev/null
LOGABSTRACT=	no
VERBOSE=	off
FORMAIL=	/usr/local/bin/formail
DEFAULT=	$MAILDIR/default

:0
* ^Subject:.*(credit|cash|money|debt|sex|sale|loan)
$MAILDIR/spam

:0 Whc: .msgid.lock
| $FORMAIL -D 16384 .msgid.cache

:0 a
$MAILDIR/duplicates

:0
* ^Content-type:.*html
$MAILDIR/junk

:0
* ^X-Mailing-List: openbsd\@openbsd\.ru
$MAILDIR/openbsd_ru

Значение переменных MAILDIR, LOGFILE, VERBOSE, FORMAIL должно быть понятно из контекста. Подробнее можно узнать на странице руководства procmailrc(5).

Все что прошло, будет сваливаться в ~/Mail/default -- это и будет основной почтовый ящик. Письма дискуссионного листа будут попадать в отдельный ящик. HTML письма будут сохраняться в ящике ~/Mail/junk. Дубликаты писем будут сохраняться в ~/Mail/duplicates. Вызов formail нужен для фиксирования прошедших писем по полю Message-ID. Результат работы formail будет сохраняться в ~/Mail/.msgid.cache .

4. Посылка писем

Собственно здесь рекомендовать что-либо сложнее, поскольку sendmail это обычно обертка (wrapper) вокруг реальной почтовой системы. Поэтому разобъем этот параграф на несколько частей. Я напишу о sendmail (еще сумел написать о msmtp), кто хочет, пусть добавит про другие MTA. Вообще не грех посмотреть в параграфе See Also в разделе Статьи.

4.1. sendmail

Говорить много не придется, поскольку sendmail практически не требует конфигурации. Единственное, что если Вы не хотите сами доставлять почту SMTP серверу получателя или вынуждены использовать какой-либо промежуточный SMTP сервер (к примеру корпоративный почтовый сервер или сервер Вашего ISP), то это можно осуществить, указав в sendmail.mc строку:

define(`SMART_HOST', `mail.isp.com')dnl

Обратите внимание на открывающуюся и закрывающуюся кавычки.

4.2. msmtp

Это вещь, господа! Если Вы хотите отправлять почту не через свой SMTP, а, например, через SMTP одного из бесплатных почтовых серверов (особенно через те сервера, где присутствует аутентификация), то msmtp это то, что Вам нужно!

В ~/.muttc меняете значение параметра sendmail на "/usr/local/bin/msmtp" и создаете простой rc-файл (~/.msmtprc ):

account default
host mail.server.com
from username@mail.server.com
user username
password mypassword
auth plain

Домашняя страница проекта: msmtp.sf.net. Порт для OpenBSD можно взять здесь.

5. Роль mutt в этом всем деле

...очень непростая -- отображать письма, строить нити обсуждения, подготавливать письма к отправке, запускать программы зборщика почты и программу отправки почты.

Поскольку с конфигурацией mutt можно разбираться неделями, то стартовая конфигурация никогда не повредит...

# Сброс настроек
ignore *
unignore  Date To From: Subject

#
# Здесь оставлено место для цветовой гаммы...
#

# Забиндить на кнопку 'G' прием почты
macro index G "!fetchmail -a -f ~/.fetchmailrc"
macro pager G "!fetchmail -a -f ~/.fetchmailrc"
macro generic G "!fetchmail -a -f ~/.fetchmailrc"

# В mutt нет адресной книги, поэтому мы польземся алиасами
source "~/.mail_aliases"
set alias_file="~/.mail_aliases"

# Кириллизация всего и вся ;)
set allow_8bit=yes
set ascii_chars=yes
set charset="koi8-r"
set send_charset="koi8-r:us-ascii:iso-8859-1:utf-8"

# Не пищать!
set beep=no

# Внешний вид просмотрщика ящика
set index_format="%4C %Z %{%b %d} %-15.15F %s"
set to_chars="  TCF"
set sort=threads

# Что считать за квотирование
set quote_regexp="^([ \t[A-Za-z]*]*[>+])+"

# Какие заголовки отображать
hdr_order Date From To Subject

# Весьма удобная штука
set pager_context=1
set pager_index_lines=6

# Различные предустановки ответов
set include=ask-yes
set fast_reply=yes
set confirmappend=no

# К написанию писем
set edit_headers=yes
set attribution="On %d, %n wrote:"
set date_format="!%a, %b %d, %Y at %H:%M %Z"
set indent_string="> "
set editor="vim"

# Почтовые ящики
set folder="~/Mail"
mailboxes =default
mailboxes =openbsd_ru
subscribe openbsd_ru
set mbox="~/Mail/default"
set mbox_type=mbox
set postponed="~/Mail/postponed"
set record="~/Mail/sent"
set sort_browser=reverse-size

# Все связанное с отсылкой писем
set realname="Name Surname"
set from="Name Surname <username@mail.server.com>"
set envelope_from=yes
set sendmail="/usr/sbin/sendmail -oi"

# ПЖП пусть отдохнет...
set pgp_verify_sig=no

Все это пишется в ~/.muttrc.

Надо сказать, что почтовые алиасы (~/.mail_aliases), заменяющие адресную книгу, записываются несложно:

mkb	mkb@rbcmail.ru, mkb-mall@list.ru
leolik	leolik@hnet.spb.ru

Вниманее: Если Вы хотите поэкспериментировать с доставкой почты, добавте к опциям fetchmail опцию -k. В этом случае почта с сервера удаляться не будет.

Теперь про цвета... вот схема от Owl:

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|To|Cc|Reply-To|Subject):
color body       magenta       default "(ftp|https?)://[^ ]+"
color body       magenta       default [-a-z_0-9.+]+@[-a-z_0-9.]+
color underline  brightgreen   default

# attributes when using a mono terminal
mono  header     underline ^(From|To|Cc|Reply-To|Subject):
mono  quoted     bold

Если Вы готовы, то самое время запустить mutt:

$ mutt -y

Попробуйте принять почту, нажав 'G'. Если все прошло успешно, Вы можете убрать опцию -k fetchmail'а (если Вы ее устанавливали).

Наиболее вероятные в данный момент действия, а следовательно и комбинации клавиш отображаются сверху. Полный список можно получить нажав `?'.

6. Фильтры спама

Постоянно пополняющийся раздел о борьбе со спамом расположен здесь. Там так же есть ссылка на небольшой фильтр рекламы в письмах дискуссионных листов Subscribe.ru. Не грех будет продублировать ссылку -- разъяснения смотреть здесь.

6.1. Bayesian spamfilter

Небольшое howto по прикручиванию bmf к mutt лежит сдесь.

7. See Also

Страницы руководства (man pages):

fetchmail(1)

mutt(1)

muttrc(5) -- Очень полезно. Подробно рассказано о конфигурации mutt. Также следует посмотреть комментарии в примере rc файла, поставляющимся с mutt, обычно это /etc/mutt/Muttrc (или что-то наподобие, к примеру /usr/local/share/examples/mutt/Muttrc).

procmail(1)

procmailrc(5) -- Достаточно подробно описан конфигурационный файл procmail'а

procmailex(5) -- Примеры procmailrc. Обязательно посмотреть

sendmail(8)

Статьи:

Почтовая система для домашней машины, автор Илья Воронин.

Быстрое руководство пользователя E-mail клиента Mutt, перевод Ивана Зенкова.

getmail+procmail+mutt+msmtp (на примере FreeBSD), автор Роман Богородский.


Last updated: $Id: mutt.html,v 1.5 2004/09/05 14:43:27 mkb Exp $




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру