Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№102-09-2010 11:07:57

ags68
Участник
 
Группа: Members
Зарегистрирован: 15-01-2007
Сообщений: 5
UA: Opera 10.6

Триггер на появление нового письма в папке

Здравствуйте!
Подскажите, пожалуйста, возможно ли с помощью Thunderbird (3.1.2, IMAP) решить такую задачу: Пользователь вручную сортирует письма - перетаскивает их из папки "Входящие" в нужные тематические папки. Так вот необходимо, чтобы на каждое вновь появившееся письмо в целевой папке запускалось бы некое действие с этим письмом (расссылалось бы уведомление определенному списку адресатов, вложение сохранялось бы в определенную сетевую папку, после этого вложение удалялось бы из тела письма). Как выполнить действия - понятно, расширений для этого полно, а вот как заставить Thunderbird реагировать на появление письма где-либо, кроме "Входящих" - не могу понять.
Заранее спасибо!

Отсутствует

 

№202-09-2010 14:49:11

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 4.0

Re: Триггер на появление нового письма в папке

Думаю, в первом приближении как-то так:

Выделить код

Код:

var folderListener = {
    OnItemAdded: function(parent, item)
    {
         alert('Письмо от ' + item.QueryInterface(Components.interfaces.nsIMsgDBHdr).mime2DecodedAuthor +
               ' добавлено в папку ' + parent.prettiestName);
    }
}

var mailSession = Components
    .classes["@mozilla.org/messenger/services/session;1"]
    .getService(Components.interfaces.nsIMsgMailSession);
    
mailSession.AddFolderListener(folderListener, 1);

Отредактировано luitzen (02-09-2010 14:50:15)

Отсутствует

 

№302-09-2010 14:56:05

ags68
Участник
 
Группа: Members
Зарегистрирован: 15-01-2007
Сообщений: 5
UA: Opera 10.6

Re: Триггер на появление нового письма в папке

luitzen пишет

Думаю, в первом приближении как-то так:

Выделить код

Код:

var folderListener = {
    OnItemAdded: function(parent, item)
    {
         alert('Письмо от ' + item.QueryInterface(Components.interfaces.nsIMsgDBHdr).mime2DecodedAuthor +
               ' добавлено в папку ' + parent.prettiestName);
    }
}

var mailSession = Components
    .classes["@mozilla.org/messenger/services/session;1"]
    .getService(Components.interfaces.nsIMsgMailSession);
    
mailSession.AddFolderListener(folderListener, 1);

Спасибо за пример, но я не программист и код на JS не разрабатывал, тем более для TB. Подскажите, пожалуйста, как применять данный код?

Ещё раз спасибо.

Отсутствует

 

№402-09-2010 16:29:38

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 4.0

Re: Триггер на появление нового письма в папке

ags68 пишет

Как выполнить действия - понятно, расширений для этого полно, а вот как заставить Thunderbird реагировать на появление письма где-либо, кроме "Входящих" - не могу понять.

Видимо, это надо расширения заставлять как-то реагировать.

ags68 пишет

Спасибо за пример, но я не программист и код на JS не разрабатывал, тем более для TB. Подскажите, пожалуйста, как применять данный код?

Слово «триггер» ввело меня в заблуждение. Думал, что вы хотите из вашего кода вызывать методы, предоставляемые расширениями. А по-другому мой код никак не применим, извините :(.

Отсутствует

 

№503-09-2010 09:45:08

ags68
Участник
 
Группа: Members
Зарегистрирован: 15-01-2007
Сообщений: 5
UA: Opera 10.6

Re: Триггер на появление нового письма в папке

Я правильно понимаю, что нужно писать расширение, переопределяющее обработчик событий в папках, дочерних по отношению к Inbox?

Отсутствует

 

№607-09-2010 14:35:51

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 3.6

Re: Триггер на появление нового письма в папке

ags68 пишет

Я правильно понимаю, что нужно писать расширение, переопределяющее обработчик событий в папках, дочерних по отношению к Inbox?

Расширение можно не писать, есть готовые расширения, позволяющие скармливать Thunderbird произвольный javascript-код.
Переопределение listener’а мне не кажется хорошей идеей, лучше добавить свой.
Повесить listener’ы на каждую папку возможно, но у меня не получилось, Thunderbird крашился при наступлении соответствующих событий. В моём коде listener вешался как бы на все папки разом, а потом устанавливалось, в какой папке событие произошло.
Как расширения, которые вы хотите натравливать на перетаскиваемые письма, определяют, что нужно обработать входящее письмо (соответственно, как имитировать выполнение этого условия применительно к перетаскиваемому письму), я понятия не имею ввиду чрезмерной общности вопроса :).

Отредактировано luitzen (07-09-2010 14:37:44)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]