Обработка почты в момент доставки пользователю

Обработка почты в момент доставки пользователю

Эта ситуация встречается практически каждому, кто интенсивно использует электронную почту, причем хранит ее не всю в папке "Входящие", а автоматически сортирует по набору папок по отправителю (или с более сложными условиями — по отправителю и теме, например), а также, может быть, пользуется возможностями автоответа или автоматического перенаправления почты. Когда-то, когда фильтров было десяток, а вся почта лежала на локальном диске, работа фильтров была практически незаметна. Потом число фильтров выросло и перевалило за две сотни, и задержка из-за их работы при сканировании почты стала… не то, чтобы ощутимой, но заметной.

Потом почта переехала на IMAP, чтобы ее можно было читать отовсюду, и работать стало практически невозможно: почтовая программа только тем и занимается, что сканирует и разбирает почту, и на это у нее уходит все время интервала между проверками.

При этом замена клиента практически нереальна — все, кто много работает с электронной почтой, привыкают к определенному клиенту и меняют его только в случае атомной войны. Ну а уж про замену сервера и говорить не будем, да и не поможет это на самом деле.

Выход напрашивается сам собой: вместо того, чтобы загружать по сети письмо только для того, чтобы его тут же перенести в другую папку IMAP, выполнять эти же действия в момент получения письма при работе локального агента доставки (LDA) или локального протокола доставки почты (LMTP). Этим, собственно говоря, и занимается скрипт, написанный на Sieve.

Отметьте этот важный момент: Sieve не является программой или каким-либо другим инструментом — это упрощенный скриптовой язык программирования, предназначенный именно для обработки почты в момент ее доставки в локальный почтовый ящик пользователя. Ничего другого, кроме сообщений электронной почты, придерживающихся RFC822, этот язык обрабатывать не умеет. (В переводе с английского sieve — "сито" или "просеивать". Вот мы и "просеиваем" поступившую почту)

История Sieve довольно давняя. Первая его спецификация, RFC3028 [1], появилась в 2001 году. Создан он был компанией Cyrusoft International, Inc./ISAMET во время работы над почтовым сервером Cyrus.

Компания Cyrusoft объявила о банкротстве 1 октября 2005 года.

После этого работа над Sieve была продолжена сообществом Open Source, в том числе рабочей группой Sieve организации IETF. В 2008-м были утверждены новая спецификация языка в RFC5228 [2] и множество расширений.

"Ну, хорошо, — скажете вы. — И как мне воспользоваться этим чудо-инструментом?" Вот здесь, к сожалению, и порылась самая большая собака.

Применить его вы сможете, если клиент и сервер, которыми вы пользуетесь, поддерживают функцию ManageSieve (мы еще поговорим о ней), позволяющую всего лишь редактировать скрипты на сервере, пользуясь окном почтового клиента как окном редактора!

Представляете себе бухгалтера или менеджера по продажам, который решил "немножко попрограммить"? Снег летом пойдет, не иначе.

Здесь надо иметь все же какие-никакие навыки программиста. Видимо, поэтому Cyrusoft и разорился. Зато следующие преимущества крепко перекрывают некоторое неудобство в использовании:

> Самое главное, скрипт исполняется на сервере в момент поступления письма (а не в момент подключения клиента на компьютере клиента). То есть никаких ресурсов вашего компьютера на раскладку сообщений по папкам тратиться не будет — пусть этим занимается сервер.
> Возможность полного контроля над письмом — можно добавить/удалить флаги, заголовки, отправителей, получателей, проверить размер письма, тему, текст письма, дату и время.
> Возможность создавать папки при их отсутствии.
> Возможность отвергнуть письмо, перенаправить письмо, установить автоответчик.
> Возможность выполнить некоторые внешние программы, например, отправить письмо на печать.

159 просмотров

Рейтинг: 0 Голосов: 0

Комментарии

Нет комментариев. Ваш будет первым!