Каждый, кто пользуется электронной почтой (а таких среди пользователей Интернета большинство), старается разместить входящие сообщения таким образом, чтобы с ними было удобно работать, чтобы можно было быстрее и проще находить нужные. Для этого в почтовом ящике создаются дополнительные папки и в зависимости от используемого почтового клиента тем или иным образом выполняется сортировка входящих писем. Чаще всего обработка ведется по почтовым адресам, по рассылкам, на которые подписан пользователь.

Возможна сортировка по теме сообщения, ключевым словам. Но выполняется все это в почтовых программах.
А вот компания "Твик Маркетинг" предлагает использовать подобную же схему, но расширив возможности ее применения. В решении Advanced Email Parcer (AEP) обработка входящей корреспонденции выполняется вне почтового клиента, а за счет использования элементов ActiveX появилась возможность интеграции программы с любыми программами, поддерживающими эту технологию. Интеграция осуществляется с помощью скриптовых языков на основе технологии Microsoft Active Scripting. Возможно использование большинства скриптовых языков, в том числе JScript и VBScript.

С помощью этой программы можно автоматизировать некоторые рутинные операции. К примеру, можно автоматизировать:
- обработку форм заказов и анкет, присланных по электронной почте;
- заполнение баз данных заказов;
- сортировку и перенаправление потоков почтовых сообщений;
- составление списков рассылок, ведение разнообразной статистики;
- создание служб автоматических ответов, почтовых роботов;
- резервное копирование важных почтовых сообщений.
Программа может работать в двух основных режимах - режиме посредника, когда AEP выступает в качестве промежуточного обработчика на стыке почтового сервера и клиента, и в режиме сборщика, при котором программа самостоятельно подключается к почтовому серверу и в зависимости от настроек учетной записи обрабатывает сообщения и удаляет или оставляет их на сервере (в зависимости от настроек учетной записи). При подключении в качестве посредника выполняется перенастройка подключения почтового клиента. Новая настройка подобна настройке при работе со спам-фильтрами, когда клиент подключается не к серверу, а к промежуточному обработчику. (Интересно, а как в этом случае устанавливать и парсер, и спам-фильтр?)

Поступившие в AEP сообщения обрабатываются с помощью списка правил, сформированных из фильтров и компонентов обработки. Фильтры выполняются последовательно и определяют, подлежит сообщение обработке или нет. Те сообщения, которые подпадают под одно из правил, размещаются в очереди, обработка которой начинается после загрузки всех новых сообщений с почтового сервера. Результаты обработки можно в дальнейшем просмотреть в журнале, в который записываются все события.
Компоненты обработки обеспечивают извлечение, изменение и сохранение определенных данных из сообщений. В процессе обработки возможны сохранение данных во внешних файлах, передача в иные программы, обработка с помощью скриптов, изменение с помощью шаблонов. Для формирования правил и компонент используется специальный конструктор, обеспечивающий также выполнение отладки на основе тестовых данных (их можно сформировать в виде файла или выполнить отладку на входящих сообщениях).
Последовательность формирования правил весьма подробно показана на сайте разработчика в виде онлайнового тура. Жаль, что он не включен в состав документации, тогда с ней работать было бы намного проще и освоить настройку было бы легче. Тем не менее рассмотрим, как формируются правила.

К примеру, как сформировать список рассылки на основе входящих сообщений. Создадим новое правило, дадим ему название. Первое, что необходимо будет сделать, - обработать входящее сообщение. Будем считать, что в список рассылки попадают только те респонденты, от которых пришло письмо с определенным заголовком. Поэтому первый фильтр надо будет настроить на отбор писем с таким заголовком. Добавим в правило фильтр (
Subject Filter) и в свойствах, в поле
Contains, добавим требуемую тему.
Из тех сообщений, которые будут отобраны этим фильтром, необходимо выделить имя и адрес отправителя. Для этого используем функцию выборки (Line Parcer). Добавляем ее путем простого перетаскивания из дерева доступных функций в формируемое правило. Функций должно быть две: одна будет обрабатывать поле, в котором содержится имя отправителя, вторая - поле с его адресом (Sender Name и Sender Email). Выделенные данные будут сохранены в определенные вами переменные. Теперь их надо сохранить.
Для сохранения полученных данных применим функцию File Writer. Добавим ее в правило так же, как и предыдущие функции. Теперь необходимо настроить ее свойства. К ним относится имя файла, в который будет записываться информация. В шаблон для записи информации внесем названия переменных, содержащих требуемые данные. Завершить строку с переменными надо переводом каретки, чтобы следующая запись начиналась с новой строки. И выбрать вариант - записывать в новый файл или добавлять в существующий. (Если в новый, то можно назначить префикс для формирования уникального имени файла.)

Осталось проверить, правильно ли подготовлено правило. Для этого создайте файлы с тестовыми сообщениями и через панель управления выполните их загрузку в правило (они появятся в разделе
Debug Messages). Теперь можно выполнить процесс тестирования и в журнале отладки просмотреть результаты. Эти результаты помогут однозначно определить, есть или нет в вашем правиле ошибки. Если ошибок нет, то правило можно будет использовать для обработки входящей почты. Если у вас не одно правило, а несколько, то одно и то же сообщение может быть обработано несколькими правилами. Для обеспечения такой возможности в свойствах правила надо отметить пункт
Continue With Next Rule.
Можно создать правило и для обработки вложений - для автоматического их сохранения. Обработка входящих выполняется на основе анализа заголовка сообщения, которое должно в случае вложений содержать слово multipart. Для сохранения вложений на диск есть специальная функция - Attachments Writer. Этот компонент позволяет задать список переменных, в которые будут помещены имена сохраненных файлов, а также папку, в которую они будут сохранены. Чтобы у вас не проявилась ситуация появления файлов с одним и тем же именем, вы можете назначить добавление к имени файла даты и времени. Эти данные будут браться на момент сохранения вложений на диск.
В качестве дополнительной обработки можно уточнить, какие именно файлы вы хотите сохранять. Например, это должны быть файлы с определенным расширением. Для этого вам потребуется использовать функцию DeleteFile объекта FileSystemObject. Этот объект создается и используется в коде JScript Component.
Можно создать правило и для ответов на запросы респондентов. Например, если они запрашивают определенную документацию. Определим, что для этого тема письма должна иметь определенный формат, а сами письма посланы на определенный адрес. Следовательно, в первую очередь выделяем письма на этот адрес, а затем выполняем фильтр сообщений по их теме. (Для фильтрации по адресу используем фильтр Recipient Email Filter.)

Следующий шаг - определение адреса отправителя (аналогично описанному выше). Далее из темы сообщения надо выделить название документа, который запрашивает пользователь. Эти данные сохраняем в определяемых нами переменных. Для отправки ответа используйте функцию
SMTP Sender (но перед этим надо еще проверить на корректность название запрошенного документа, что можно выполнить с помощью функции
Simple Condition).
Для функции SMTP Sender в ее свойствах укажем тему письма и текст, который будет отправлен. Документация, запрошенная респондентом, будет отправлена в виде вложения. Если ваш пользователь может запросить разную документацию, то для отправки каждой из них надо создать свою функцию обработки. Сделать это можно за счет копирования первой созданной обработки и корректировки ее свойств.
Здесь были представлены реализованные примеры использования программы. Но можно придумать и другие варианты. В программе достаточно разноообразные возможности и широкий набор функций. Хотя по сравнению с настройкой обработчиков сообщений в почтовых клиентах настройка AEP сложнее, поскольку здесь она в большей степени ориентирована все же на программистов, а не на рядовых пользователей. Но так как программа предназначена для использования в компании, то наверняка там найдется системный администратор, который сможет настроить эту систему.