Dengan FiltaQuilla, dan beberapa tindakan / aturan javascript, itu bisa dilakukan. Namun, ini adalah contoh dengan beberapa modifikasi pada sumber FiltaQuilla untuk mempermudah proses.
Contoh di sini akan melakukan tiga tahap penyaringan: penandaan - yang hanya mengklasifikasikan email. Kemudian, modifikasi - yang melakukan perhitungan logis dan memodifikasi subjek atau header email. Dan, tindakan - melakukan tindakan yang sebenarnya. Setiap tahap akan melibatkan filter pengeditan dalam dialog filter Thunderbird secara normal, tetapi dengan opsi tambahan oleh FiltaQuilla. Tahap 1 dan 2 menyimpan hasil mereka di bidang tajuk email yang baru ditambahkan, dan tahap 2 dan 3 menggunakan hasil di bidang untuk melakukan beberapa logika sebelum tindakan normal.
Langkah:
Instal FiltaQuilla
Sepertinya banyak fungsi yang hanya bekerja dengan Thunderbird 3.1. Jadi tingkatkan ke TB 3.1 terlebih dahulu. Kemudian instal FiltaQuilla.
Di tab preferensi FiltaQuilla, aktifkan "Suffix to Subject", dan "Javascript Action".
Ubah Sumber FiltaQuilla
Edit "filtaquilla@mesquilla.com/content/filtaquilla.js" di direktori ekstensi sehingga terlihat seperti ini:
// 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);
}
},
Kode mengubah aksi asli dari "Suffix to Subject" menjadi bahwa ia akan menambahkan string suffixed ke header baru bernama "mykeywords". Bidang tajuk baru ini akan digunakan untuk menjaga hasil dari dua tahap penyaringan pertama dalam bentuk kata-kata string.
Perubahan kode sumber ini adalah untuk menggunakan kembali tindakan "Suffix" karena biasanya suffixing ke subjek tidak terlalu berguna. Dengan demikian menggunakan kembali nyali internalnya tidak akan banyak mempengaruhi kegunaan FiltaQuilla. Jika tidak melakukan ini, permintaan fitur resmi harus dikirim ke pembuat FiltaQuilla untuk menambahkan fitur yang Anda inginkan, atau Anda harus menulis sedikit lebih banyak kode Javascript dalam kondisi filter sebagai kondisi Javasctipt.
Buat Aturan Filter untuk Ditandai
Contohnya adalah membuat serangkaian aturan yang masing-masing hanya akan memiliki satu tindakan: "Suffix to Subject", tetapi kata-kata suffixed masing-masing akan mengidentifikasi apa hasil yang didapat. Misalnya, klasifikasikan email berdasarkan dari mana asalnya dengan kata suffixing "company-A", "company-B", ..., dll. Ingat bahwa kata-kata "company-A", "company-B", dll ., akan digabungkan ke dalam bidang tajuk "mykeywords".
Tempatkan aturan-aturan ini di awal daftar aturan filter.
Buat Aturan Filter untuk Modifikasi Logis
Dalam aturan drop-bidang header-kotak aturan, gunakan "Kustomisasi" untuk menambahkan "mykeywords" ke daftar. Kemudian pilih "mykeywords mengandung perusahaan-" untuk kondisi dalam dialog filter.
Pilih "Aksi Javascript" di bagian tindakan. Tambahkan beberapa kode seperti ini:
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; */
Pada titik ini, semua hasil penandaan dapat diakses oleh skrip dari bidang header "mykeywords". Cukup parsing string, maka logika apa pun dapat diterapkan setelah parsing untuk mencapai hasil logika yang Anda suka. Misalnya, Anda dapat menerapkan jika "A" dan "B", tambahkan "result-AB" ke "mykeywords", dll. Kemudian pada tahap berikutnya untuk memeriksa "mykeywords mengandung result-AB" untuk arti sebenarnya dari "A dan B ".
Contoh di atas juga menunjukkan bahwa "[VN IGNORE]" dapat ditambahkan ke baris subjek untuk menunjukkan yang mana dari tiga perusahaan yang telah terlibat dalam email subjek.
Buat Aturan Filter untuk Tindakan
Sekarang buat aturan tindakan berdasarkan nilai-nilai yang terkandung dalam "mykeywords". Ini hanya pengaturan normal.
Catatan:
FiltaQuilla mendukung javascripts di bagian kondisi. Jadi, jika Anda tidak ingin mengubah kode sumber ekstensi, Anda harus menulis kode lebih banyak di bagian kondisi dialog filter. Dengan kode itu setiap perhitungan logika dapat dilakukan juga.
Lihat situs FiltaQuilla untuk informasi lebih lanjut.