Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #83, НОЯБРЬ 2005 г.

Крылатая почта юниксоида

Anton Karpov

Хакер, номер #083, стр. 083-102-6


[retriever]

type = SimplePOP3SSLRetriever

server = toxahost.ru

port = 995

username = toxa

password = mycoolpass

В сведениях о доставке мы указали, что вся почта будет отдаваться на обработку procmail, который и займется сортировкой писем по папкам. Это очень удобно, когда ты подписан на несколько списков рассылки, или просто хочешь раскладывать письма по разным папкам в зависимости от отправителя. Синтаксис конфигурационного файла procmail выполнен в традиционном наркоманском стиле ;), характерным для oldschool-программ. Вкратце, после объявления переменных каждая запись имеет вид «действие до - условие - действие после», где «действие до» может быть перенаправлением другой программе, переписыванием полей письма и т.д., «условие» - регексп, по которому выполняется «действие после» - перемещение письма в заданную папку, вызов внешней программы и прочее. Синтаксис записей ужасен, но именно благодаря своим возможностям делать с почтой все, что душе угодно, procmail и по сей день остается самым мощным средством фильтрации сообщений.

$ vi ~/.procmailrc

MAILDIR=$HOME/Maildir/

LOGFILE=$HOME/.procmaillog

LOGABSTRACT=no

VERBOSE=no

DROPPRIVS=yes

FORMAIL=/usr/local/bin/formail

NL="

"

# прежде всего, вызываем проверку ВСЕХ писем на спам с помощью SpamAssassin. Об этом чуть позже.

:0fw: spamassassin.lock

| /usr/local/bin/spamc

# письма, помеченные как спам, уходят в трэш

:0:

* ^X-Spam-Status: Yes

$MAILDIR/junk/

# html-письма тоже уходят в трэш

:0

* ^Content-Type:.*html

$MAILDIR/junk/

# письма из списка рассылки freebsd перемещаются в отведенную для них папку

:0

* ^List-Id:.*freebsd

$MAILDIR/freebsd-lists/

# системные сообщения от рута уходят в специальную папку, чтобы не забивать мусором основной ящик

:0

* ^(FROM|TO):.*root@*

$MAILDIR/toxahost/

# все остальное сыпется в основной ящик по умолчанию

:0

* .*

$MAILDIR/default/

Пару слов о спаме. Самым первым вызовом procmail была проверка писем на спам. В принципе, для этого достаточно просто установить SpamAssassin, так как утилита spamc, входящая в его комплект, позволяет проверять письма автономно, без запуска сервера СпамАссассина, spamd. Но при запущенном сервере проверка идет гораздо быстрее.

# echo spamd_enable="YES" >> /etc/rc.conf

# /usr/local/etc/rc.d/sa-spamd start

[финальный штрих]

Вот и все. Последний штрих - создание файла ~/.mailcap, в котором будут прописаны соответствия вызываемых программ различным MIME-типам. Так, кто сказал, что mutt не умеет читать вложенные doc-файлы?

$ echo "application/msword; antiword -m koi8-r.txt %s; copiousoutput" >> ~/.mailcap

Теперь при получении письма с аттачем MIME-типа application/msword (когда тебе во вложении пришлют doc-файл) mutt вызовет программу antiword, которая удобно представит тебе содержимое doc-файла в текстовом виде. По аналогии можно сопоставить другие программы различным MIME-типам. На диске ты найдешь полные варианты всех упомянутых сегодня конфигов, в том числе и «боевой» mailcap. Просто поставь из пакетов/портов недостающие утилиты и - готово.

Назад на стр. 083-102-5  Содержание  Вперед на стр. 083-102-7