थंडरबर्ड में संदेश फ़िल्टर में फ़िल्टर नियमों को कैसे संयोजित करें ताकि अधिक उन्नत फ़िल्टर मानदंड बना सकें?


13

थंडरबर्ड में कोई भी निम्नलिखित सभी में से किसी एक को चुन सकता है या किसी दिए गए फ़िल्टर नियमों के लिए निम्नलिखित में से किसी से भी मिलान कर सकता है। वहाँ मिश्रण कोई रास्ता नहीं है या और और तार्किक ऑपरेटरों को स्वतंत्र रूप से ((ए और बी) या (सी और डी)) और ई की तरह अधिक जटिल मापदंड बनाने के लिए
कोई प्लग-इन से ऊपर प्राप्त करने के लिए अनुमति देता है है?

जवाबों:


5

मुझे एक व्यक्ति से आने वाले विभिन्न विषयों के एक समूह को फ़िल्टर करने की आवश्यकता थी, इसलिए मेरा समाधान यह था:

  1. निम्नलिखित में से किसी से मेल खाने के लिए एक फ़िल्टर जोड़ा, और जो भी विषय मुझे चाहिए था, उसमें जोड़ा।
  2. मैंने इसे करने के लिए जो कार्रवाई की, वह प्राथमिकता को सबसे कम पर सेट करना है।
  3. फिर मैंने निम्नलिखित में से सभी से मिलान करने के लिए एक नया फ़िल्टर जोड़ा: प्राथमिकता सबसे कम है, और इसमें (वह ईमेल पता है जिसे मैं फ़िल्टर करना चाहता था)।
  4. मैंने जो कार्रवाई की वह एक निश्चित फ़ोल्डर में ले जाना था।

एक बात जो आपको सुनिश्चित करने की आवश्यकता है कि पहली फाइलर सूची में ऊपर है, इसलिए यह पहले प्रदर्शन करती है। मुझे पता है कि यह सबसे सुंदर समाधान नहीं है, लेकिन इसे अपनी आवश्यकताओं के अनुसार बढ़ाया जा सकता है।


3

मुझे ऐसा करने के लिए एक अच्छा एक्सटेंशन नहीं मिल रहा है, लेकिन त्वरित खोज टूलबार तब भी कार्य करेगा जब आप केवल एक फ़ोल्डर पर खोज कर रहे हों।

उदाहरण के लिए - अगर मैं टॉमी और बिली से सभी संदेशों के लिए मापदंड बनाना चाहता था, लेकिन इस विषय में Fwd के साथ नहीं, साथ ही सैंड्रा के संदेशों में फॉरवर्ड सहित मैं एक खोज स्थापित करूंगा (त्वरित खोज टूलबार का उपयोग करके इसे खोजने के लिए सेट किया गया था) अभिव्यक्ति द्वारा):

((से: टॉमी या से: बिली)

हालाँकि, कई फ़ोल्डरों के साथ, यह संभव नहीं है।

जे


अच्छी टिप्पणी है। यह एक दया है कि यह सुविधा फ़िल्टर नियम मॉड्यूल में उपलब्ध नहीं है।
पिओट्र डोब्रोगोस्ट

2

FiltaQuilla, और कुछ जावास्क्रिप्ट कार्यों / नियमों के साथ, यह उल्लेखनीय है। हालाँकि, यहाँ यह कुछ उदाहरणों के साथ फिल्टेकविला स्रोत का एक उदाहरण है ताकि प्रक्रिया को सरल बनाया जा सके।

यहां उदाहरण फ़िल्टरिंग के तीन चरण करेगा: अंकन - जो केवल ईमेल को वर्गीकृत करता है। फिर, संशोधन - जो कुछ तार्किक गणना करता है और ईमेल विषय या हेडर को संशोधित करता है। और, क्रिया - वास्तविक क्रिया करना। प्रत्येक चरण में थंडरबर्ड फिल्टर संवाद में संपादन फिल्टर शामिल होंगे, लेकिन FiltaQuilla द्वारा अतिरिक्त विकल्पों के साथ। चरण 1 और 2 एक नए जोड़े गए ईमेल हेडर फ़ील्ड में अपने परिणाम सहेजते हैं, और चरण 2 और 3 सामान्य क्रियाओं से पहले कुछ तर्क करने के लिए फ़ील्ड में परिणामों का उपयोग करते हैं।

कदम:

FiltaQuilla स्थापित करें

ऐसा लगता है कि कई कार्य केवल थंडरबर्ड 3.1 के साथ काम कर रहे हैं। इस प्रकार पहले टीबी 3.1 में अपग्रेड करें। फिर FiltaQuilla इंस्टॉल करें।

FiltaQuilla वरीयता टैब में, "सफ़िक्स टू सब्जेक्ट" और "जावास्क्रिप्ट एक्शन" को सक्षम करें।

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);
    }
  },

कोड "सफ़िक्स टू सब्जेक्ट" की मूल क्रिया को बदल देता है, जिससे यह "mykeywords" नामक एक नए हेडर में प्रत्यय के तार जोड़ देगा। इस नए हेडर फ़ील्ड का उपयोग स्ट्रिंग शब्दों के रूपों में फ़िल्टरिंग के पहले दो चरणों से परिणाम रखने के लिए किया जाएगा।

यह स्रोत कोड परिवर्तन "प्रत्यय" कार्रवाई का पुन: उपयोग करना है क्योंकि आमतौर पर किसी विषय पर प्रत्यय देना बहुत उपयोगी नहीं होता है। इस प्रकार अपनी आंतरिक हिम्मत का पुन: उपयोग करने से FiltaQuilla की उपयोगिता बहुत प्रभावित नहीं होगी। यदि ऐसा नहीं कर रहे हैं, तो फिल्क्विला निर्माता के लिए एक आधिकारिक सुविधा अनुरोध पोस्ट किया जाना चाहिए जिसे आप चाहते हैं कि सुविधा को जोड़ने के लिए, या आपको जावास्क्रिप्ट स्थिति के रूप में फ़िल्टर स्थिति में थोड़ा और जावास्क्रिप्ट कोड लिखना होगा।

मार्किंग के लिए फ़िल्टर नियम बनाएं

एक उदाहरण नियमों की एक श्रृंखला बनाना है प्रत्येक में केवल एक कार्रवाई होगी: "प्रत्यय से विषय", लेकिन प्रत्यय वाले शब्द प्रत्येक को पहचानेंगे कि इसका परिणाम क्या निकला है। उदाहरण के लिए, ईमेल को वर्गीकृत करें जहां वे "कंपनी-ए", "कंपनी-बी", ..., इत्यादि शब्दों के आधार पर याद रखें कि ये शब्द "कंपनी-ए", "कंपनी-बी", आदि। ।, "mykeywords" हेडर फ़ील्ड में सम्‍मिलित किया जाएगा।

इन नियमों को फ़िल्टर नियम सूची की शुरुआत में रखें।

तार्किक संशोधन के लिए फ़िल्टर नियम बनाएं

फ़िल्टर नियम शीर्ष लेख-फ़ील्ड ड्रॉप बॉक्स में, "mykeywords" को सूची में जोड़ने के लिए "अनुकूलित करें" का उपयोग करें। फिर फ़िल्टर डायलॉग में "mykeywords में कंपनी-" चुनें।

कार्रवाई अनुभाग में "जावास्क्रिप्ट एक्शन" चुनें। इस तरह कुछ कोड जोड़ें:

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; */

इस बिंदु पर, सभी अंकन परिणाम "mykeywords" हेडर फ़ील्ड से स्क्रिप्ट द्वारा एक्सेस किए जा सकते हैं। बस स्ट्रिंग को पार्स करें, फिर आपके द्वारा पसंद किए गए तर्क परिणाम को प्राप्त करने के लिए पार्स करने के बाद किसी भी तर्क को लागू किया जा सकता है। उदाहरण के लिए, यदि आप "ए" और "बी" लागू कर सकते हैं, तो "परिणाम-एबी" को "mykeywords" आदि में जोड़ें, फिर अगले चरण में "ए और बी के लिए" mykeywords में परिणाम-एबी "की जाँच करें। "।

उपरोक्त उदाहरण से यह भी पता चलता है कि "[VN IGNORE]" को विषय रेखा से पहले संकेत दिया जा सकता है कि यह इंगित करने के लिए कि कौन सी तीन कंपनियां विषय ईमेल में शामिल हैं।

कार्रवाई के लिए फ़िल्टर नियम बनाएं

अब "mykeywords" में निहित मूल्यों के आधार पर कार्रवाई नियम बनाएं। यह सिर्फ सामान्य सेटिंग्स होगी।

टिप्पणियाँ:

FiltaQuilla हालत अनुभाग में javascripts का समर्थन करता है। इस प्रकार यदि आप एक्सटेंशन सोर्स कोड नहीं बदलना चाहते हैं, तो आपको फ़िल्टर डायलॉग के कंडीशन सेक्शन में थोड़ा और कोड लिखना होगा। उस कोड के साथ कोई भी तर्क संगणना भी की जा सकती है।

अधिक जानकारी के लिए FiltaQuilla साइट देखें।


1

हो सकता है कि आप अभिव्यक्ति के प्रत्येक उप-खंड के लिए टैग का उपयोग कर सकें। अगर ((से: टॉमी या से: बिली) तो "टॉमएंडबिली" टैग के साथ टैग करें। फिर फ़िल्टर करें जो विषय नहीं खोज रहा है: Fwd और टैग टॉमएंडली। एक से अधिक बार फ़िल्टर करें। हो सकता है कि आप मेल को अलग-अलग फ़ोल्डरों, या यहां तक ​​कि खातों में उछाल कर एक से अधिक बार जाने के लिए मजबूर कर सकते हैं (लेकिन फिर यह वास्तव में बदसूरत होने लगा है)।

मैंने सुना है कि टीबी 3 में टैगिंग बेहतर थी, लेकिन यह यूआई में स्पष्ट नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.