Новая версия сайта: The Bat!
Робот на основе The Bat! от Homeric
...или как это делал я...

Ну что ж, вот мои рекомендации по созданию почтового робота.

Во-первых, робот не должен отвечать на письма с yahoogroups.com (опыт на robot@luga.ru - примечание Yavorsky Vadim)

Во-вторых, лучше отвечать на адрес указанный в поле From, чтобы избежать сюрпризов.

В-третьих, адрес на котором размещён робот не должен быть подписан на конференции или рассылки (опыт на robot@luga.ru - примечание Yavorsky Vadim).

Хороший документ про роботов - статья Леонида Ивонина, здесь: http://www.nobat.ru/frobot.html

А я сделал так:

У меня робот имеет два интерфейса: r01@nm.ru и r02@nm.ru. Письма валятся в один POP-аккаунт. На письма приходящие на первый адрес робот отвечает по-русски, на второй - по-английски. Система рассчитана на добавление других интерфейсов, причём без проблем.

Нужны шаблоны для ответа, а также шаблоны для рассылки хелпа и рассылки списка файлов.

Создаю такие файлы:

!========> Here begins ~r01_help.txt... <========!
======================================================================
ИНСТРУКЦИЯ ПО РАБОТЕ С РОБОТОМ r01@nm.ru

Обновлена Sat, 28 Apr 2001 19:50:19 -0400
  1. Для того чтобы заказать файл с данного робота, нужно поместить в поле "Тема" (Subject) соответствующую команду и отправить письмо на адрес r01@nm.ru. Полный список команд можно получить, послав письмо с темой LIST
  2. В одном письме можно указывать только один заказ. Несколько заказов в теме письма не распознаются - в результате ни одного файла не будет выслано.
  3. Тело письма может быть любым, оно не обрабатывается роботом.
  4. Файлы высылаются в течение трех (3) дней.
  5. Перед заказом файла убедитесь, что в Вашем почтовом ящике достаточно места для его приёма. Большие файлы не рассылаются на бесплатные почтовые ящики.
  6. Английский интерфейс робота находится по адресу r02@nm.ru
======================================================================
!========> And here ~r01_help.txt ends. <========!

!========> Here begins ~r01_list.txt... <========!
======================================================================
СПИСОК КОМАНД на r01@nm.ru

Обновлен Sat, 06 Apr 2002 14:59:00 EST

HELP

> Help                                        Sat, 28 Apr 2001 19:50:19
mailto:r01@nm.ru?body=%TRACKINGNUMBER&subject=HELP
Инструкция по использованию робота, на русском языке

LIST

> List                                        Sat, 06 Apr 2002 14:59:00
mailto:r01@nm.ru?body=%TRACKINGNUMBER&subject=LIST
Список команд на русском языке

.....
.....

TB.REKLAMA.PL

> remove_reklama2.zip                 8 476   Sat, 06 Apr 2002 14:59:00
mailto:r01@nm.ru?body=%TRACKINGNUMBER&subject=TB.REKLAMA.PL
Скрипт на Perl для удаления рекламы из UNIX-ящиков (v2.6)

======================================================================
!========> And here ~r01_list.txt ends. <========!

!========> Here begins ~r01_reply.txt... <========!

%TO=""%TO="%IF:'%SETPATTREGEXP=""([@,])""%REGEXPMATCH=""%OFROMNAME""'>'':'""%OFROMNAME""':'%OFROMNAME' <%OFROMADDR>"%-
%FROM=""%FROM="File Robot <r01@nm.ru>"%-
%SUBJECT="Вы запросили %OSUBJ"%-
Здравствуйте, %OFromFName!
%INCLUDE="D:\SHARED\FROBOT\~R01MSGS.TXT"%
%ODATESHORT в %OTIME (EST) %OFROMNAME пишет %OTOADDR:

%QUOTES="%OSUBJ"
%QUOTES="%TEXT=""1"""
Ваш запрос принят. Спасибо за использование файлового робота!
-- 
Робот
!========> And here ~r01_reply.txt ends. <========!
Такие же файлы (~r02_reply.txt, ~r02_list.txt, ~r02_help.txt) для английского языка создаём.

Это файлы на диске. Теперь используем быстрые шаблоны чтобы обеспечить доступность к ним без указания путей, а также вызов при приёме письма с соответствующего адреса (Бат тогда не позволял использовать макросы в %INCLUDE, да и опасно это).

БШ (быстрый шаблон) r01@nm.ru.~REPLY содержит такой текст
%INCLUDE="D:\shared\frobot\~r01reply.txt"

БШ r01@nm.ru.HELP
%INCLUDE="D:\shared\frobot\~r01_help.txt"

БШ r01@nm.ru.LIST
%INCLUDE="D:\shared\frobot\~r01_list.txt"

БШ r02@nm.ru.~REPLY
%INCLUDE="D:\shared\frobot\~r02reply.txt"

БШ r02@nm.ru.HELP
%INCLUDE="D:\shared\frobot\~r02_help.txt"

БШ r02@nm.ru.LIST
%INCLUDE="D:\shared\frobot\~r02_list.txt"

Теперь открываем сортировщик и создаём правило для нежелательных писем, на которые робот отвечать не будет. Сюда входят ошибки серверов, например.

Правило:
СтрокиГдеНаличие
failure|warning|failedТемаДа
Альтернативы:
СтрокиГдеНаличие
support@newmail.ru|@yahoogroups.com|@egroups.comЗаголовокДа
Действия - кидать в корзину не отвечая

Теперь можно начинать создавать правила сортировки для рассылки файлов. Вот пример правила для рассылки по сабжу ADHOSTS

Правило:
СтрокиГдеНаличие
r01@nm.ru|r02@nm.ruПолучательДа
ADHOSTSТемаДа
Действия - [х] Отправить автоответ

Шаблон:

%QINCLUDE="%OTOADDR.~REPLY"
%ATTACHFILE="D:\shared\frobot\full_127001.zip"
%ATTACHFILE="D:\shared\frobot\full_127001.zip.sig"

(первый аттач - сам файл, второй аттач - сигнатура PGP. Количество аттачей может быть любым)

Как отсюда понятно, на письмо отправленное на r01@nm.ru сработает шаблон r01@nm.ru.~REPLY и ответ пойдёт по-русски.

Скопировать правило несколько раз, меняя сигнальную тему и имена аттачей, остальное трогать не нужно.

В самом конце поставить правила HELP:

!========> Here begins Windows Clipboard... <========!

Правило:
СтрокиГдеНаличие
r01@nm.ru|r02@nm.ruПолучательДа
HELPТемаДа
Действия - [х] Отправить автоответ

Шаблон:

%QINCLUDE="%OTOADDR.~REPLY"
%QINCLUDE="%OTOADDR.HELP"

!========> And here Windows Clipboard ends. <========!

...и LIST
!========> Here begins Windows Clipboard... <========!

Правило:
СтрокиГдеНаличие
r01@nm.ru|r02@nm.ruПолучательДа
Действия - [х] Отправить автоответ

Шаблон:

%QINCLUDE="%OTOADDR.~REPLY"
%QINCLUDE="%OTOADDR.LIST"

!========> And here Windows Clipboard ends. <========!

Как видно, если нужно добавить ещё один интерфейс (например французский), нужно копать только быстрые шаблоны (создать файлы и добавить БШ с именами frenchrobot@example.com.~REPLY, frenchrobot@example.com.HELP, frenchrobot@example.com.LIST.

Homeric