Я хотел бы отметить все входящие письма, которые включают приглашение в календарь. Затем я хотел бы переместить их в другую папку. Я попробовал метод, описанный в этом ответе, но он не работает: я попытался найти заголовок с именем «Content-Type» с контентом «text /calendar», но он не работал.
Я также попробовал аддон 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 и сохраняю свои электронные письма на локальном жестком диске для чтения в автономном режиме.
Была более старая версия Thunderbird, в которой работал FiltaQuilla (что-то вроде 24.x), и там, где работали даже более старые версии Thunderbird (например, 3.x), где работали фильтры по заголовкам. Но что-то изменилось, и теперь я не знаю, как фильтровать.