Con FiltaQuilla e alcune azioni / regole javascript, è fattibile. Tuttavia, qui è un esempio con alcune modifiche alla fonte FiltaQuilla in modo da semplificare il processo.
L'esempio qui eseguirà tre fasi di filtraggio: marcatura - che classifica solo le e-mail. Quindi, modificando, questo esegue un calcolo logico e modifica l'oggetto o le intestazioni delle e-mail. E, azione - facendo l'azione reale. Ciascuna delle fasi prevede la modifica dei filtri nella finestra di dialogo del filtro Thunderbird normalmente, ma con opzioni aggiunte da FiltaQuilla. Le fasi 1 e 2 salvano i risultati in un campo di intestazione e-mail appena aggiunto e le fasi 2 e 3 utilizzano i risultati nel campo per eseguire alcune logiche prima delle normali azioni.
passi:
Installa FiltaQuilla
Sembra che molte funzioni funzionino solo con Thunderbird 3.1. Quindi aggiornare prima a TB 3.1. Quindi installare FiltaQuilla.
Nella scheda delle preferenze di FiltaQuilla, abilita "Suffisso per soggetto" e "Azione Javascript".
Modifica sorgente FiltaQuilla
Modifica "filtaquilla@mesquilla.com/content/filtaquilla.js" nella directory delle estensioni in modo che appaia così:
// 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);
}
},
Il codice modifica l'azione originale di "Suffisso in Oggetto" in quanto aggiungerà le stringhe con suffisso in una nuova intestazione denominata "parole chiave". Questo nuovo campo di intestazione verrà utilizzato per mantenere il risultato delle prime due fasi del filtro sotto forma di parole stringa.
Questa modifica del codice sorgente serve a riutilizzare l'azione "Suffisso" poiché di solito il suffisso su un argomento non è molto utile. Pertanto, il riutilizzo delle budella interne non influirebbe molto sull'usabilità di FiltaQuilla. In caso contrario, è necessario inviare una richiesta ufficiale di funzionalità al creatore di FiltaQuilla per aggiungere la funzionalità desiderata oppure è necessario scrivere un po 'più di codice Javascript nella condizione di filtro come condizione Javasctipt.
Crea regole di filtro per la marcatura
Un esempio è quello di creare una serie di regole ognuna avrà una sola azione: "Suffisso per soggetto", ma le parole con il suffisso identificheranno ognuna il risultato ottenuto. Ad esempio, classificare le e-mail in base alla loro provenienza inserendo il suffisso "azienda-A", "azienda-B", ... ecc. Ricordare che queste parole "azienda-A", "azienda-B", ecc. ., verranno concatenati nel campo di intestazione "parole chiave".
Posizionare queste regole all'inizio dell'elenco delle regole di filtro.
Crea regole di filtro per la modifica logica
Nella casella di riepilogo del campo dell'intestazione delle regole di filtro, utilizzare "Personalizza" per aggiungere "parole chiave" all'elenco. Quindi scegliere "mykeywords contiene società-" per la condizione nella finestra di dialogo del filtro.
Scegli "Azione Javascript" nella sezione azione. Aggiungi un codice come questo:
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 questo punto, tutti i risultati della marcatura sono accessibili dallo script dal campo di intestazione "parole chiave". Basta analizzare la stringa, quindi qualsiasi logica può essere applicata dopo l'analisi per ottenere il risultato logico che ti piace. Ad esempio, è possibile applicare se "A" e "B", aggiungere "risultato-AB" a "parole chiave", ecc. Quindi, nella fase successiva, controllare "parole chiave contiene risultato-AB" per il significato effettivo di "A e B ".
L'esempio sopra mostra anche che "[VN IGNORE]" può essere anteposto alla riga dell'oggetto per indicare quale delle tre società è stata coinvolta nell'e-mail dell'oggetto.
Crea regole filtro per l'azione
Ora crea la regola di azione in base ai valori contenuti in "parole chiave". Queste saranno solo impostazioni normali.
Appunti:
FiltaQuilla supporta javascripts nella sezione condition. Pertanto, se non si desidera modificare il codice sorgente dell'estensione, è necessario scrivere un po 'più di codice nella sezione delle condizioni della finestra di dialogo del filtro. Con quel codice si può fare anche qualsiasi calcolo logico.
Controlla il sito FiltaQuilla per molte più informazioni.