আরও উন্নত ফিল্টার মানদণ্ড তৈরি করতে থান্ডারবার্ডে বার্তা ফিল্টারগুলিতে ফিল্টার নিয়মগুলি কীভাবে একত্রিত করা যায়?


13

থান্ডারবার্ডে যে কোনও একটি নির্দিষ্ট ফিল্টার নিয়মের জন্য নীচের সমস্তটির সাথে মেলে বা নীচের যে কোনওটি মিলে বেছে নিতে পারে । ((এএন্ড বি) বা (সি এবং ডি)) এবং ই এর মতো আরও জটিল মানদণ্ড তৈরি করার জন্য অরঅ্যান্ড লজিকাল অপারেটরদের অবাধে মিশ্রিত করার কোনও উপায় নেই এবং উপরে। উপরেরটি অর্জনের জন্য কোনও প্লাগ-ইন রয়েছে কি?

উত্তর:


5

আমার এক ব্যক্তির কাছ থেকে আগত বিভিন্ন বিষয়গুলির একটি গুচ্ছ ফিল্টার করা দরকার ছিল, তাই আমার সমাধানটি ছিল:

  1. নিম্নলিখিত যে কোনওটির সাথে মেলে একটি ফিল্টার যুক্ত করেছে, এবং আমার পছন্দের যে কোনও বিষয় যুক্ত করেছে।
  2. আমি এটি সম্পাদন করতে যে ক্রিয়াটি সেট করেছি সেটি হল অগ্রাধিকারটি সর্বনিম্নে সেট করা।
  3. তারপরে আমি নীচের সমস্তটির সাথে মিলে একটি নতুন ফিল্টার যুক্ত করেছি: অগ্রাধিকারটি সর্বনিম্ন এবং এর মধ্যে রয়েছে (আমি যে ইমেল ঠিকানাটি থেকে ফিল্টার করতে চাইছিলাম) তা অন্তর্ভুক্ত।
  4. আমি যে ক্রিয়াটি সেট করেছি তা হ'ল একটি নির্দিষ্ট ফোল্ডারে চলে যাওয়া।

আপনার অবশ্যই একটি জিনিস নিশ্চিত করতে হবে তা হল প্রথম ফাইলার তালিকায় শীর্ষে রয়েছে তাই এটি প্রথম সঞ্চালিত হয়। আমি জানি এটি সর্বাধিক মার্জিত সমাধান নয় তবে এটি আপনার প্রয়োজনের সাথে মাপসই করা যেতে পারে।


3

এটি করার জন্য আমি কোনও ভাল এক্সটেনশানটি খুঁজে পাচ্ছি বলে মনে হয় না, তবে আপনি যদি কেবল একটি ফোল্ডারে সন্ধান করছেন তবে দ্রুত অনুসন্ধান সরঞ্জামদণ্ডটি ঠিক তেমন কাজ করবে।

উদাহরণস্বরূপ - যদি আমি টমি এবং বিলির সমস্ত বার্তাগুলির জন্য মানদণ্ড তৈরি করতে চাইতাম তবে বিষয়টিতে Fwd এর সাথে না, পাশাপাশি সান্দ্রার বার্তাগুলিও আমি একটি অনুসন্ধান সেট আপ করতাম (এটির সাথে দ্রুত অনুসন্ধান সরঞ্জামদণ্ডটি ব্যবহার করে সন্ধানের জন্য সেট করা হয়েছিল) অভিব্যক্তি দ্বারা):

((থেকে: টমি ওআর থেকে: বিলি)) এবং সাবজেক্ট: এফডাব্লুড) বা (থেকে: স্যান্ড্রা)

তবে একাধিক ফোল্ডার দিয়ে এটি সম্ভব নয়।

জে


ভাল মন্তব্য। দুঃখের বিষয় এই বৈশিষ্ট্যটি ফিল্টার নিয়মের মডিউলটিতে উপলব্ধ নয়।
পাইটর ডব্রোগোস্ট

2

ফিল্টা কুইলা এবং কিছু জাভাস্ক্রিপ্ট ক্রিয়া / নিয়ম সহ এটি করণীয়। যাইহোক, এখানে ফিল্টা কুইলা উত্সটিতে কিছু সংশোধন করার উদাহরণ রয়েছে যাতে প্রক্রিয়াটি সহজ করা যায়।

এখানে উদাহরণস্বরূপ ফিল্টারিংয়ের তিনটি ধাপ করবে: চিহ্নিত করা - যা কেবলমাত্র ইমেলগুলিকে শ্রেণিবদ্ধ করে। তারপরে, সংশোধন করা - যা কিছু যৌক্তিক গণনা করে এবং ইমেল বিষয় বা শিরোনামকে সংশোধন করে। এবং, ক্রিয়া - আসল ক্রিয়া করছে। প্রতিটি পর্যায়ে থান্ডারবার্ড ফিল্টার ডায়ালগটিতে সাধারণত ফিল্টার সম্পাদনা করা জড়িত তবে ফিল্টা কুইলা দ্বারা যুক্ত বিকল্পগুলির সাথে। মঞ্চ 1 এবং 2 একটি নতুন যুক্ত হওয়া ইমেল শিরোলেখের ক্ষেত্রগুলিতে তাদের ফলাফলগুলি সংরক্ষণ করে এবং 2 এবং 3 পর্যায়ে ফলাফলগুলি সাধারণ ক্রিয়াগুলির আগে কিছু যুক্তি করার জন্য ব্যবহার করে।

পদক্ষেপ:

ফিল্টা কুইলা ইনস্টল করুন

দেখে মনে হচ্ছে অনেকগুলি ফাংশন কেবল থান্ডারবার্ড ৩.১ এর সাথে কাজ করছে। এভাবে প্রথমে টিবি ৩.১ এ উন্নীত করুন। তারপরে ফিল্টা কুইলা ইনস্টল করুন।

ফিল্টা কুইলা পছন্দ ট্যাবে, "সাবজেক্ট থেকে সাবজিক্স" এবং "জাভাস্ক্রিপ্ট অ্যাকশন" সক্ষম করুন।

ফিল্টা কুইলা উত্সটি সংশোধন করুন

এক্সটেনশন ডিরেক্টরিতে "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);
    }
  },

কোডটি "প্রত্যয়কে সাবজেক্টে" এর মূল ক্রিয়াকে পরিবর্তিত করে যে এটি প্রত্যয়যুক্ত স্ট্রিংগুলিকে "মাইকিওয়ার্ডস" নামের নতুন শিরোনামে যুক্ত করবে। এই নতুন শিরোলেখ ক্ষেত্রটি স্ট্রিং শব্দের আকারে ফিল্টারিংয়ের প্রথম দুটি পর্যায়ে থেকে ফলাফল রাখতে ব্যবহার করা হবে।

এই উত্স কোড পরিবর্তনটি "প্রত্যয়" ক্রিয়াটি পুনরায় ব্যবহার করা হয় যেহেতু সাধারণত কোনও বিষয়ের প্রত্যয়টি খুব দরকারী নয়। সুতরাং এর অভ্যন্তরীণ সাহস পুনরায় ব্যবহার করা ফিল্টা কুইলার ব্যবহারের খুব বেশি প্রভাব ফেলবে না। যদি এটি না করা হয় তবে আপনি যে বৈশিষ্ট্যটি চান তা যুক্ত করতে একটি অফিশিয়াল ফিচার অনুরোধ ফিল্টা কুইল্লা স্রষ্টাকে পোস্ট করা উচিত, বা আপনাকে জাভাস্কিপ্ট শর্ত হিসাবে ফিল্টার অবস্থায় আরও কিছুটা জাভাস্ক্রিপ্ট কোড লিখতে হবে।

চিহ্নিত করার জন্য ফিল্টার বিধি তৈরি করুন

একটি উদাহরণ রয়েছে প্রতিটি নিয়মের একটি সিরিজ তৈরি করার জন্য কেবল একটি ক্রিয়া থাকবে: "প্রত্যয় থেকে সাবজেক্ট", তবে প্রত্যয়যুক্ত শব্দের প্রতিটি তার ফলাফল কী পেয়েছে তা সনাক্ত করবে। উদাহরণস্বরূপ, ইমেলগুলি "সংস্থাগুলি-এ", "সংস্থা-বি", ... ইত্যাদি শব্দগুলির দ্বারা প্রত্যাহার করে যেখানে সেগুলি অনুসারে শ্রেণিবদ্ধ করুন মনে রাখবেন যে এই শব্দগুলি "সংস্থা-এ", "সংস্থা-বি", ইত্যাদি ব্যবহার করে ।, "মাইকিওয়ার্ডস" শিরোলেখ ক্ষেত্রের সাথে সংযুক্ত করা হবে।

ফিল্টার নিয়মের তালিকার শুরুতে এই নিয়মগুলি রাখুন।

যৌক্তিক পরিবর্তনের জন্য ফিল্টার বিধি তৈরি করুন

ফিল্টার নিয়মের শিরোনাম-ক্ষেত্রের ড্রপ বাক্সে, "মাইকিওয়ার্ডস" তালিকায় যুক্ত করতে "কাস্টমাইজ করুন" ব্যবহার করুন। তারপরে ফিল্টার সংলাপের শর্তের জন্য "মাইকিওয়ার্ডস সংস্থাগুলি" নির্বাচন করুন।

ক্রিয়া বিভাগে "জাভাস্ক্রিপ্ট অ্যাকশন" চয়ন করুন। এর মতো কিছু কোড যুক্ত করুন:

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

এই মুহুর্তে, সমস্ত চিহ্নিতকরণের ফলাফলগুলি "মাইকিওয়ার্ডস" শিরোনাম ক্ষেত্র থেকে স্ক্রিপ্ট দ্বারা অ্যাক্সেস করা যায়। কেবল স্ট্রিংকে বিশ্লেষণ করুন, তারপরে আপনার পছন্দসই যুক্তির ফলাফলটি পার্সিংয়ের পরে কোনও যুক্তি প্রয়োগ করা যেতে পারে। উদাহরণস্বরূপ, আপনি "এ" এবং "বি" প্রয়োগ করতে পারেন, "মাইকিওয়ার্ডস" ইত্যাদিতে "ফলাফল-এবি" যুক্ত করতে পারেন, তারপরে পরবর্তী পর্যায়ে "মাইকিওয়ার্ডগুলিতে রেজাল্ট-এবি" রয়েছে তা পরীক্ষা করার জন্য "এ এবং বি" এর প্রকৃত অর্থ রয়েছে "।

উপরের উদাহরণটি আরও দেখায় যে "[VN IGNORE]" সাবজেক্ট লাইনে চাপ দেওয়া যেতে পারে তা বোঝাতে তিনটি সংস্থার মধ্যে কোনটি ইমেইল ইমেইলে জড়িত ছিল।

কর্মের জন্য ফিল্টার বিধি তৈরি করুন

এখন "মাইকিওয়ার্ডস" এর মধ্যে থাকা মানগুলির ভিত্তিতে অ্যাকশন বিধি তৈরি করুন। এটি কেবলমাত্র সাধারণ সেটিংস হবে।

মন্তব্য:

ফিল্টা কুইলা শর্ত বিভাগে জাভাস্ক্রিপ্ট সমর্থন করে। সুতরাং আপনি যদি এক্সটেনশন উত্স কোডটি পরিবর্তন করতে না চান তবে ফিল্টার সংলাপের শর্ত বিভাগে আপনাকে আরও কিছু কোড লিখতে হবে। সেই কোড দিয়ে যে কোনও যুক্তি গণনাও করা যায়।

আরও অনেক তথ্যের জন্য ফিল্টা কুইলা সাইটটি দেখুন।


1

হতে পারে আপনি প্রকাশের প্রতিটি সাব-ক্লজের জন্য ট্যাগ ব্যবহার করতে পারেন। যদি ((থেকে: টমি ওআর থেকে: বিলি) তারপরে "টমএন্ডবিলি" ট্যাগের সাথে ট্যাগ করে তারপরে ফিল্টার করুন বিষয় নয়: এফডাব্লুডি এবং ট্যাগ টমএন্ডবিলি। একাধিকবার ফিল্টার করুন সম্ভবত আপনি বিভিন্ন ফোল্ডার বা এমনকি অ্যাকাউন্টগুলিতে মেল সশব্দ করে একাধিকবার যেতে বাধ্য করতে পারেন (তবে এটি সত্যিই কুৎসিত হতে শুরু করেছে )।

আমি শুনেছি টিবি 3-তে আরও ভাল ট্যাগিং ছিল, তবে এটি ইউআইতে সুস্পষ্ট বলে মনে হচ্ছে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.