З FiltaQuilla та деякими діями / правилами JavaScript це можливо. Однак тут наводиться приклад з деякими модифікаціями джерела FiltaQuilla, щоб спростити процес.
У цьому прикладі буде зроблено три етапи фільтрації: маркування - що класифікує лише електронні листи. Потім, модифікація - це робить деякі логічні обчислення та змінює тематику чи заголовки електронної пошти. І, дія - здійснення фактичної дії. Кожен з етапів передбачає редагування фільтрів у діалоговому вікні фільтра Thunderbird, але з доданими параметрами FiltaQuilla. Етапи 1 і 2 зберігають свої результати в щойно доданому полі заголовка електронної пошти, а на етапах 2 і 3 використовують результати в полі, щоб виконати певну логіку перед звичайними діями.
Кроки:
Встановіть FiltaQuilla
Здається, багато функцій працюють лише з Thunderbird 3.1. Таким чином, спочатку перейдіть до ТБ 3.1. Потім встановіть FiltaQuilla.
На вкладці «Налаштування FiltaQuilla» увімкніть «Суфікс до теми» та «Дія Javascript».
Змінення джерела FiltaQuilla
Відредагуйте "filtaquilla@mesquilla.com/content/filtaquilla.js" у каталозі розширень, щоб він виглядав так:
// Suffix to subject
self.subjectSuffix =
{
...
apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow)
{
for (var i = 0; i < aMsgHdrs.length; i++)
{
var msgHdr = aMsgHdrs.queryElementAt(i, Ci.nsIMsgDBHdr);
////var appSubject = _mimeAppend(aActionValue, msgHdr.subject, false);
////msgHdr.subject = appSubject;
var headerName = "mykeywords";
var headerValue = msgHdr.getStringProperty(headerName);
msgHdr.setStringProperty(headerName, headerValue + " " + aActionValue);
headerValue = msgHdr.getStringProperty(headerName);
// Cu.reportError("chg : " + headerName + " : " + headerValue);
}
},
Код змінює оригінальну дію "Суфікс до теми" на те, що додасть суфіксальні рядки до нового заголовка під назвою "мої ключові слова". Це нове поле заголовка буде використано для збереження результату з перших двох етапів фільтрації у формах рядкових слів.
Ця зміна вихідного коду полягає в повторному використанні дії "Суфікс", оскільки зазвичай суфікс до теми не дуже корисний. Таким чином, повторне використання внутрішніх кишок не сильно вплине на зручність використання FiltaQuilla. Якщо цього не зробити, офіційний запит на функцію повинен бути надісланий творцю FiltaQuilla, щоб додати потрібну функцію, або вам потрібно буде написати трохи більше коду Javascript у стані фільтра як стан Javasctipt.
Створіть правила фільтрування для маркування
Наприклад, створити ряд правил, кожне з яких буде мати лише одну дію: "Суфікс до теми", але слова суфіксів визначають, який результат він отримав. Наприклад, класифікуйте електронні листи відповідно до того, звідки вони походять із суфіксами слів "компанія-A", "компанія-B", ... і т. Д. Пам'ятайте, що ці слова "компанія-A", "компанія-B" тощо ., буде об'єднано в поле заголовка "мої ключові слова".
Розмістіть ці правила на початку списку правил фільтра.
Створіть правила фільтра для логічної модифікації
У спадному списку правил фільтру у полі заголовка використовуйте "Налаштувати", щоб додати в список "мої ключові слова". Потім у діалоговому вікні фільтра виберіть "умова".
У розділі дій виберіть "Дія Javascript". Додайте такий код:
for (let index = 0; index < msgHdrs.length; index++)
{
let hdr = msgHdrs.queryElementAt(index, Ci.nsIMsgDBHdr);
let s = hdr.getStringProperty("mykeywords");
let v = s.split("company-"); /* result words are in v[] now */
let r = ""; /* logic conversion result */
let cnt = 0;
if ( v != undefined && v.length != undefined && v.length > 0) {
let lastVN = 0;
for(var i=v.length -1; i>=0; i--) {
let ss = v[i];
if ( ss.length > 1 ) {
ss = ss.substring(0);
/* convert company A into VIP, B into NORMAL, C into IGNORE.
* Assume the marking section starts with A,B, then C thus
* C gets parsed first, then A and B.
*/
if (ss.search(/A/) == 0) { ss = "V"; lastVN = 1; } /*VIP*/
else if (ss.search(/B/) == 0 ) { ss = "N"; lastVN = 1; } /*NORMAL*/
else if (ss.search(/C/) == 0 ) { ss = "IGNORE"; }
/* prepend subject line */
if ( cnt == 0 ) { r = ss + "] ";
} else { if (lastVN == 0) r = ss + " " + r; else r = ss + r; }
cnt ++;
}
} /* for(var i=v.length -1; */
if ( cnt > 0 ) { r = "[" + r; }
} /* if ( v != undefined && */
hdr.subject = r + hdr.subject;
} /* for (let index = 0; */
На цьому етапі до всіх результатів маркування можна отримати доступ зі скрипту з поля заголовка «мої ключі». Просто проаналізуйте рядок, тоді будь-яка логіка може бути застосована після синтаксичного аналізу для досягнення логічного результату, який вам подобається. Наприклад, ви можете застосувати, якщо "A" і "B", додайте "result-AB" до "mykeywords" і т. Д. Потім на наступному етапі встановіть прапорець "mykeywords contains result-AB" на те, що насправді означає для "A і B" ".
Вищенаведений приклад також показує, що "[VN IGNORE]" може бути попередньо доданий до рядка теми, щоб вказати, яка з трьох компаній була залучена до теми електронної пошти.
Створіть правила фільтра для дії
Тепер створіть правило дії на основі значень, що містяться в "моїх ключових словах". Це будуть просто звичайні налаштування.
Примітки:
FiltaQuilla підтримує javascripts у розділі стану. Таким чином, якщо ви не хочете змінювати вихідний код розширення, вам потрібно буде написати трохи більше коду в розділі стану діалогового вікна фільтра. З цим кодом можна зробити і будь-які логічні розрахунки.
Відвідайте сайт FiltaQuilla для отримання додаткової інформації.