Dzięki FiltaQuilla i niektórym działaniom / regułom javascript jest to wykonalne. Jest to jednak przykład z pewnymi modyfikacjami źródła FiltaQuilla, aby uprościć proces.
W tym przykładzie zostaną wykonane trzy etapy filtrowania: oznaczanie - które tylko klasyfikuje wiadomości e-mail. Następnie modyfikacja - wykonuje logiczne obliczenia i modyfikuje temat lub nagłówki wiadomości e-mail. I akcja - wykonywanie rzeczywistej akcji. Każdy etap będzie wymagał normalnej edycji filtrów w oknie dialogowym filtrów Thunderbirda, ale z dodanymi opcjami FiltaQuilla. Etapy 1 i 2 zapisują swoje wyniki w nowo dodanym polu nagłówka wiadomości e-mail, a etapy 2 i 3 wykorzystują wyniki w polu do wykonania logiki przed normalnymi działaniami.
Kroki:
Zainstaluj FiltaQuilla
Wygląda na to, że wiele funkcji działa tylko z Thunderbird 3.1. Dlatego najpierw zaktualizuj do wersji TB 3.1. Następnie zainstaluj FiltaQuilla.
Na karcie preferencji FiltaQuilla włącz „Przyrostek do tematu” i „Akcja JavaScript”.
Zmodyfikuj źródło FiltaQuilla
Edytuj „filtaquilla@mesquilla.com/content/filtaquilla.js” w katalogu rozszerzeń, aby wyglądał tak:
// 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);
}
},
Kod zmienia pierwotną akcję „Sufiksu na Temat” na to, że doda sufiksowane ciągi znaków do nowego nagłówka o nazwie „moje słowa kluczowe”. To nowe pole nagłówka zostanie wykorzystane do zachowania wyniku z pierwszych dwóch etapów filtrowania w postaci słów łańcuchowych.
Ta zmiana kodu źródłowego polega na ponownym użyciu akcji „Sufiks”, ponieważ zwykle sufiks w temacie nie jest zbyt przydatny. Dlatego ponowne użycie jego wewnętrznych wnętrzności nie wpłynie znacząco na użyteczność FiltaQuilla. Jeśli tego nie zrobisz, oficjalne żądanie funkcji powinno zostać wysłane do twórcy FiltaQuilla, aby dodać żądaną funkcję, lub będziesz musiał napisać nieco więcej kodu JavaScript w warunku filtru jako warunek JavaScript.
Utwórz reguły filtrowania do oznaczania
Przykładem jest utworzenie szeregu reguł, z których każda będzie miała tylko jedną akcję: „Sufiks do tematu”, ale każde z sufiksów będzie określać, jaki wynik uzyska. Na przykład sklasyfikuj wiadomości e-mail według miejsca, z którego pochodzą, dodając przyrostki „firma-A”, „firma-B”, ... itd. Pamiętaj, że te słowa „firma-A”, „firma-B” itp. ., zostaną połączone w polu nagłówka „myke words”.
Umieść te reguły na początku listy reguł filtrowania.
Utwórz reguły filtrów dla modyfikacji logicznej
W polu rozwijanym reguły filtru pola nagłówka użyj „Dostosuj”, aby dodać „moje słowa kluczowe” do listy. Następnie wybierz „moje słowa kluczowe zawiera firmę-” dla warunku w oknie dialogowym filtra.
Wybierz „JavaScript Action” w sekcji akcji. Dodaj trochę kodu:
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; */
W tym momencie skrypt może uzyskać dostęp do wszystkich wyników oznaczania z pola nagłówka „myke words”. Wystarczy przeanalizować ciąg, a następnie można zastosować dowolną logikę po analizie, aby uzyskać pożądany wynik logiki. Na przykład, możesz zastosować, jeśli „A” i „B”, dodać „wynik-AB” do „moich słów kluczowych” itp. Następnie w następnym etapie sprawdź, czy „moje słowa kluczowe zawiera wynik-AB” dla faktycznego znaczenia dla „A i B „.
Powyższy przykład pokazuje również, że „[VN IGNORE]” można wstawić do wiersza tematu, aby wskazać, która z trzech firm brała udział w temacie wiadomości e-mail.
Utwórz reguły filtrowania dla akcji
Teraz utwórz regułę działania w oparciu o wartości zawarte w „myke words”. To będą tylko normalne ustawienia.
Uwagi:
FiltaQuilla obsługuje skrypty javascript w sekcji warunku. Dlatego jeśli nie chcesz zmieniać kodu źródłowego rozszerzenia, musisz napisać nieco więcej kodu w sekcji warunków okna dialogowego filtru. Za pomocą tego kodu można również wykonać dowolne obliczenia logiczne.
Sprawdź stronę FiltaQuilla, aby uzyskać więcej informacji.