ฉันต้องการแท็กเมลขาเข้าทั้งหมดซึ่งรวมถึงคำเชิญในปฏิทิน จากนั้นฉันต้องการย้ายพวกเขาไปยังโฟลเดอร์อื่น ฉันลองวิธีที่อธิบายไว้ในคำตอบนี้แต่ไม่ได้ผล: ฉันลองค้นหาส่วนหัวชื่อ "Content-Type" ด้วยเนื้อหา "text / calendar" แต่ไม่ได้ผล
ฉันยังลองใช้ addon FiltaQuillaซึ่งล้มเหลวเช่นกัน ฉันใช้รหัสต่อไปนี้ที่นั่น:
var sHeaderToLookFor = "content-type";
var sContentInHeader = "text/calendar";
var bFoundIt = false;
function msgHdrGetHeaders(aMsgHdr, k) {
let uri = aMsgHdr.folder.getUriForMsg(aMsgHdr);
let messageService = MailServices.messenger.messageServiceFromURI(uri);
MsgHdrToMimeMessage(aMsgHdr, null, function (aMsgHdr, aMimeMsg) { k(aMimeMsg); }, true, { partsOnDemand: true, examineEncryptedParts:true });
}
msgHdrGetHeaders(message, function (aHeaders) {
if (aHeaders.has(sHeaderToLookFor)) {
var pattern = new RegExp(sContentInHeader);
Application.console.log("InBetween_1");
if (!bFoundIt)
bFoundIt= pattern.test(aHeaders.get(sHeaderToLookFor));
Application.console.log(bFoundIt);
Application.console.log("InBetween_2");
}
});
Application.console.log("AtEnd_1");
Application.console.log(bFoundIt);
Application.console.log("AtEnd_2");
bFoundIt;
ฉันมีเอาต์พุตต่อไปนี้บนคอนโซลหลังจากทดสอบตัวกรองในอีเมลด้วยคำเชิญ. ics:
AtEnd_1
false
AtEnd_2
InBetween_1
true
InBetween_2
ดังนั้นโดยพื้นฐานแล้วตัวกรองนี้กับ JavaScript จะใช้งานได้ แต่มันไม่ทำงานเพราะ MsgHdrToMimeMessage () จะโทรกลับหลังจากตัวกรองคืนค่า "false" ไปที่ FiltaQuilla ฉันจะต้องทำให้รหัสรอ (ใช้มันแบบซิงโครนัสแทนแบบอะซิงโครนัส) แต่ฉันไม่มีความคิดว่าจะทำอย่างไร
อย่างไรก็ตามฉันไม่ได้ตั้งใจจะใช้ FiltaQuilla จริงๆ ฉันต้องการแก้ไขปัญหาของฉัน
ฉันใช้ IMAP และฉันบันทึกอีเมลของฉันลงในเครื่อง HD สำหรับการอ่านอีเมลออฟไลน์
มีรุ่นธันเดอร์เบิร์ดรุ่นเก่าที่ FiltaQuilla ทำงาน (บางอย่างเช่น 24.x) และที่นั่นแม้แต่รุ่นเก่าของธันเดอร์เบิร์ด (เช่น 3.x) ที่ตัวกรองบนส่วนหัวทำงาน แต่มีบางอย่างเปลี่ยนไปและตอนนี้ฉันไม่รู้วิธีกรองอีกต่อไป