Автоматическая сортировка почты по каталогам
Если ваша ситуация подобна моей, то вы получаете около 3,500 тысяч сообщений в день. Каждый раз после получения почты, вам придется просмотреть все сообщения, выбрав те, которые вас интересуют.
Эта проблема разрешима с помощью Procmail.
Procmail работает примерно так: Procmail проверяет каждое приходящее сообщение и выполняет над ними действия, основанные на некоторых, определенных вами правилах.
Скажем, например, что каждый день я получаю приблизительно 200 сообщений от некоторого списка рассылки (в этом примере я использую список рассылки под названием linux-foo). Все эти сообщения прямиком попадают в мою главную папку входящих сообщений (inbox), а я бы хотел, что они были автоматически отфильтровывались в папку под названием "foo-list".
На первом шаге должен обрабатываться заголовок письма.
В каждом сообщение, приходящем из этого списка рассылки, есть строка, в которой написано следующее:
Sender: owner-linux-foo@bar.foogers.com
Теперь я могу указать procmail перемещать каждое сообщение, содержащее эту строку, в некоторую папку. Это делается при помощи файла ".procmailrc".
Я буду использовать мой любимый текстовый редактор, чтобы создать текстовый файл под названием ".procmailrc" в моем домашнем каталоге.
Файл будет выглядеть примерно так:
LOGFILE=$HOME/.pmlog
MAILDIR=$HOME/mail
VERBOSE
# linux-foo list
:0 Hw
* ^.*[Ss]ender: owner-linux-foo@bar.foogers.edu
foo-list
# if it got to this point, put it in my new mail folder
:0 Hw
newmail
|
Рассмотрим подробнее строку "[Ss]ender". Заметьте, что эта строка есть во всех сообщениях от нашего списка рассылки.
Эта строка указывает procmail перемещать все сообщения, содержащие эту строку, в каталог "foo-list".
Следующая строка означает, что если сообщение не соответствовало ничему, описанному выше, то его необходимо поместить в newmail.
Теперь предположим, что я получаю сообщение от моего хорошего друга, EJ, и я хочу, чтобы оно попало в папку по имени "EJ".
Я добавлю новый раздел в мой файл .procmailrc.
LOGFILE=$HOME/.pmlog
MAILDIR=$HOME/mail
VERBOSE
# список рассылки linux-foo
:0 Hw
* ^.*[Ss]ender: owner-linux-foo@bar.foogers.edu
foo-list
# Сообщение от E.J.!
:0 Hw
* ^.*[Ff]rom: ej@mypal.com
ej
# если добрались до этой точки, помещаем в каталог для новой почты
:0 Hw
newmail
|
Обратите внимание на новую секцию EJ. Когда приходит сообщение с его адресом в поле "From", оно автоматически помещается в каталог "ej".
Теперь, скажем, имеется некоторый ламер, который шлет мне письма. Я не хочу получать сообщения от него, но он постоянно шлет их. Еще раз спасает procmail.
Так, предположим, что я не хочу получать почту от Билла Гейтса. Я могу добавить в файл .procmailrc раздел, удаляющий любую почту, приходящую БГ:
LOGFILE=$HOME/.pmlog
MAILDIR=$HOME/mail
VERBOSE
# Это пришло от Билла Гейтса? Если да, то УДАЛИТЬ ЕГО!!!
:0 Hw
* ^.*[Ff]rom: bgates@microsoft.com
/dev/null
# список рассылки linux-foo
:0 Hw
* ^.*[Ss]ender: owner-linux-foo@bar.foogers.edu
foo-list
# Сообщение от E.J.!
:0 Hw
* ^.*[Ff]rom: ej@mypal.com
ej
# если добрались до этой точки, помещаем в каталог для новой почты
:0 Hw
newmail
|
Теперь у меня есть хороший файл .procmailrc. Давайте посмотрим на то, что procmail будет делать с каждым приходящим сообщением
Во-первых, он проверит, пришло ли это письмо от "bgates@microsoft.com". Если это так, то procmail удалит его.
Если письмо прошло через первую проверку, то procmail будет искать в его заголовке строку "owner-linux-foo@bar.foogers.edu". Если она есть, то procmail поместит сообщение в папку "foo-list".
Если сообщение прошло через предыдущие проверки, procmail проверяет, пришло ли оно от EJ. Если так, то procmail помещает его в папку "ej".
Теперь, если сообщение прошло через все проверки, то оно просто помещается в мою папку новой почты newmail.
После того, как вы настроили этот файл, и procmail должным образом фильтрует почту, можно войти в TkRat, выбрать "Admin - New/Edit Folder" и создать папки для каждого файла. Они будут расположены в /home/username/mail/foldername.