썬더 버드에서 일 중 하나를 선택할 수 있습니다 일치에게 다음의 모든 또는 일치 다음의 필터 규칙의 주어진 세트를. 혼합하는 방법은 없습니다 OR 및 AND 논리 연산자 자유롭게 ((A와 B) 또는 (C와 D))와 E. 같이 더 복잡한 조건을 만들 수
있는 플러그인이 이상 달성 할 수 있는가가?
썬더 버드에서 일 중 하나를 선택할 수 있습니다 일치에게 다음의 모든 또는 일치 다음의 필터 규칙의 주어진 세트를. 혼합하는 방법은 없습니다 OR 및 AND 논리 연산자 자유롭게 ((A와 B) 또는 (C와 D))와 E. 같이 더 복잡한 조건을 만들 수
있는 플러그인이 이상 달성 할 수 있는가가?
답변:
한 사람에게서 나오는 여러 가지 주제를 필터링해야했기 때문에 내 해결책은 다음과 같습니다.
확인해야 할 한 가지는 첫 번째 파일러가 목록에서 더 높아서 먼저 수행된다는 것입니다. 나는 그것이 가장 우아한 해결책은 아니지만 당신의 요구에 맞게 확장 될 수 있다는 것을 알고 있습니다.
이 작업을 수행하는 데 도움이되는 확장명을 찾을 수 없지만 빠른 검색 도구 모음은 단일 폴더를 검색하는 경우에도 작동합니다.
예를 들어-Tommy와 Billy의 모든 메시지에 대한 기준을 만들고 주제에 Fwd가 아닌 메시지와 전달을 포함하여 Sandra의 메시지에 대한 기준을 만들려면 검색을 설정합니다 (빠른 검색 도구 모음을 사용하여 검색하도록 설정) 식으로) :
((보낸 사람 : Tommy OR from : 빌리) AND-제목 : Fwd) OR (보낸 사람 : 산드라)
그러나 폴더가 여러 개인 경우에는 불가능합니다.
제이
FiltaQuilla 및 일부 자바 스크립트 작업 / 규칙을 사용하면 가능합니다. 그러나 여기서는 프로세스를 단순화하기 위해 FiltaQuilla 소스를 약간 수정 한 예입니다.
여기의 예는 3 단계의 필터링을 수행합니다. 표시-이메일 만 분류합니다. 그런 다음 수정-논리적 계산을 수행하고 이메일 제목 또는 헤더를 수정합니다. 그리고 행동-실제 행동을합니다. 각 단계에는 일반적으로 Thunderbird 필터 대화 상자에서 필터를 편집해야하지만 FiltaQuilla에 의해 추가 된 옵션이 있습니다. 1 단계와 2 단계는 결과를 새로 추가 된 이메일 헤더 필드에 저장하고 2 단계와 3 단계는 필드의 결과를 사용하여 정상적인 조치 전에 일부 논리를 수행합니다.
많은 기능이 Thunderbird 3.1에서만 작동하는 것 같습니다. 따라서 먼저 TB 3.1로 업그레이드하십시오. 그런 다음 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"라는 새 헤더에 추가하도록 "Suffix to Subject"의 원래 작업을 변경합니다. 이 새로운 헤더 필드는 문자열 단어의 형태로 필터링의 처음 두 단계에서 결과를 유지하는 데 사용됩니다.
이 소스 코드 변경은 일반적으로 제목에 접미사가 유용하지 않기 때문에 "접미사"조치를 재사용하는 것입니다. 따라서 내부 내장을 재사용해도 FiltaQuilla의 유용성에는 큰 영향을 미치지 않습니다. 그렇지 않으면 공식 기능 요청을 FiltaQuilla 작성자에게 게시하여 원하는 기능을 추가하거나 필터 조건에서 Javasctipt 조건으로 Javascript 코드를 조금 더 작성해야합니다.
예를 들어, 일련의 규칙을 작성하여 각각 하나의 조치 ( "접미사에서 주제로") 만 갖지만 접미사로 된 단어는 각각 결과가 무엇인지 식별합니다. 예를 들어, "company-A", "company-B"등의 접미사를 붙여 전자 메일을 보낸 위치에 따라 분류합니다. "company-A", "company-B"등의 단어를 기억하십시오. , "mykeywords"헤더 필드에 연결됩니다.
이 규칙을 필터 규칙 목록의 시작 부분에 배치하십시오.
필터 규칙 헤더 필드 드롭 상자에서 "사용자 정의"를 사용하여 "mykeywords"를 목록에 추가하십시오. 그런 다음 필터 대화 상자에서 조건에 대해 "mykeywords contains company-"를 선택하십시오.
작업 섹션에서 "자바 스크립트 작업"을 선택하십시오. 다음과 같은 코드를 추가하십시오.
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"헤더 필드에서 모든 마킹 결과에 액세스 할 수 있습니다. 문자열을 구문 분석하면 구문 분석 후에 원하는 논리 결과를 얻기 위해 모든 논리를 적용 할 수 있습니다. 예를 들어, "A"및 "B"인 경우 "result-AB"를 "mykeywords"에 추가하는 등의 작업을 수행 할 수 있습니다. 그런 다음 다음 단계에서 "mykeywords contains result-AB"를 확인하여 "A 및 B ".
위의 예는 또한 "[VN IGNORE]"를 제목 줄 앞에 추가하여 세 회사 중 어느 회사가 제목 전자 메일에 참여했는지를 나타냅니다.
이제 "mykeywords"에 포함 된 값을 기반으로 조치 규칙을 작성하십시오. 이것은 단지 정상적인 설정입니다.
FiltaQuilla는 조건 섹션에서 자바 스크립트를 지원합니다. 따라서 확장 소스 코드를 변경하지 않으려면 필터 대화 상자의 조건 섹션에 약간 더 많은 코드를 작성해야합니다. 이 코드를 사용하면 모든 논리 계산도 수행 할 수 있습니다.
자세한 내용은 FiltaQuilla 사이트를 확인하십시오.