Этот файл фильтра даёт Вам возможность легко выполнять различные изменения сообщения. Сначала используются инициализаторы объектов для создания массива объектов. Каждый их этих объектов представляет набор сообщений и действия функции с сообщениями этого набора. Эти объекты могут иметь следующие свойства:
field | Поле, относительно которого выполняется подстановка (такое как From или Resent-From). |
probe | Значение совпадающего поля. |
folder | Почтовая папка, в которую поместить сообщение. |
trash | True, если сообщение нужно поместить в папку Trash. |
priority | Новый приоритет сообщения. |
После получения массива фильтров, код создаёт из этих фильтров регулярные выражения для использования при подстановках к конкретным сообщениям. Если Messenger вызывает ApplyFilters для сообщения, производится поиск совпадений в массиве MyFilters. Если совпадение найдено, функция помещает сообщение в trash, перемещает сообщение в новую папку или изменяет приоритет сообщения.
var MyFilters = [Всё сказанное выше rule-файла относится и к фильтрам новостей. Единственное отличие - в строке type. Для фильтров почты Вы используете type="2". Для фильтров новостей Вы используете type="8".
Функции фильтра принимают один аргумент, объект сообщения. Для фильтров новостей это объект News Message, а для фильтров почты - объект Mail Message.
Если с фильтрами имеются какие-нибудь проблемы, Вы можете получить стандартное предупреждение JavaScript о природе ошибки. При наличии проблем, фильтры не используются для фильтрации сообщений. Соответственно, если проблемы имеются, вся почта в папке Inbox остаётся без изменений.
Объект почтового сообщения имеет следующие методы:
killThread() | Помечает поток как игнорируемый. |
watchThread() | Помечает поток как наблюдаемый. |
trash() | Помечает сообщение как прочитанное и перемещает его в папку trash/мусор. |
Объект почтового сообщения имеет следующие свойства:
folder | Папка, содержащая данное сообщение. |
read | Прочитано сообщение или нет. |
priority | Приоритет сообщения. |
Для перемещения почтового сообщения Вы устанавливаете свойство folder объекта сообщения. Можно использовать полный путь или синтаксис mailbox: в URL для специфицирования папки назначения.
Свойство priority можно устанавливать, используя целые числа или строки. Возможные значения:
NoneLowest LowNormalHigh HighestВ этом приложении показано, как применять JavaScript для фильтрации входящей почты и новостей при использовании Netscape Messenger.
Процесс фильтрации состоит из двух этапов:
Написать функцию JavaScript для работы в качестве фильтра и поместить её в файл фильтров. Эта функция принимает один аргумент, объект сообщения, и может изменять это сообщение. Добавить вхождения этой JavaScript-функции в файл правил/mail rules file. Ваш rules-файл может содержать несколько фильтров. Messenger применяет каждый фильтр к сообщению, пока один из них не сработает.В приложении имеются следующие разделы:
Создание фильтра и добавление его в rules-файл Фильтры новостей Обращение к объекту сообщения Отладка фильтров Более сложный примерПомимо свойств, приведённых выше, объект почтового сообщения предоставляет все шапки /headers сообщения как свойства только для чтения. Так, тема сообщения может быть получена как message.subject, а список CC как message.cc. Шапки с дефисами в именах (как Resent-from) не могут быть получены с dot-синтаксисом. Запрашивайте их с использованием синтаксиса массива для значения свойства (как message["Resent-from"]).
Объект сообщения новостей/News Message имеет следующие методы:
killThread() | Помечает поток как игнорируемый. |
watchThread() | Помечает поток как наблюдаемый. |
Объект сообщения новостей имеет следующие свойства:
group | (Только для чтения) Группа новостей, содержащая данное сообщение. |
read | Прочитано сообщение или нет. |
sender | (Только для чтения) Отправитель сообщения. |
subject | (Только для чтения) Тема сообщения. |
Сначала нужно написать файл filters.js. Он содержит функции JavaScript, которые выполняют фильтрацию почты. Эти функции могут использовать все возможности клиентского JavaScript. Размещение этого файла зависит от платформы, как показано в следующей таблице.
Unix |
$(HOME)/.netscape/filters.js где $(HOME) это директория, в которой установлен Navigator. |
Windows | \Program Files\Communicator\Users\<username>\Mail\filters.js |
Macintosh | filters.js в корневой директории каталога Вашего профиля. |
Вот пример простого файла фильтра. Он сохраняет все сообщения от my_mom в папке "FromMom" и помечает их как имеющие приоритет high. Он также высылает все сообщения из my_sister в папку trash.
// файл filters.jsПРИМЕЧАНИЕ: Нет способа специфицировать папку IMAP через использование синтаксиса mailbox:. Поэтому, если Вы перераспределяете что-либо с использованием IMAP, всё это будет происходить на Вашей локальной машине.
После того как функция фильтра JavaScript написана, Вы добавляете ссылку на этот фильтр в Ваш файл почтовых правил/mail rules file. Размещение rules-файла также зависит от платформы, как показано в следующей таблице.
Unix | $(HOME)/.netscape/mailrule где $(HOME) это директория, в которой установлен Navigator. |
Windows | \Program Files\Communicator\Users\<username>\Mail\rules.dat |
Macintosh | Filter Rules в корневой директории каталога Вашего профиля. |
Как правило этот файл записывается системой фильтрации Netscape Messenger'а. Если у Вас уже есть файл фильтров, добавьте в него следующие строки:
name="filterName"где
name="filterName" | Описательное имя фильтра. |
enabled="yes" | Использовать этот фильтр. Для отключения фильтра запишите enabled="no". |
type="2" | Пометить этот фильтр как фильтр JavaScript. |
scriptName="scriptName" | Выполняемая функция JavaScript. |
Реальный ввод может быть таким:
name="Filter for Mom"Вы можете добавлять несколько таких групп строк в Ваш rules-файл, добавляя таким образом несколько фильтров. Они выполняются в указанном в файле порядке, пока один из ник не выполнит действия над сообщением (установит свойство или вызовет метод).
Если у Вас ещё нет rule-файла почты, Вы должны будете добавить две строки вверху файла (до любых ссылок на фильтры):
version="6"