I'm trying to write an extension for thunderbird, the version i use is 45.1.0.
The extension needs to do the following: I select x messages from the threadpane, those are streamed. After some checks i add the message headers of messages that can be deleted to an array. After finishing some tasks on those messages i want these messages to be moved into the trash folder.
I use this code:
Code: Select all
function procesmessages() {
// build the hdrarray
var hdrarray = [];
for (var x = 0; x < gFolderDisplay.selectedCount; x++ ) {
var MessageURI = gFolderDisplay.selectedMessageUris[x];
// Stream email and do some checks. If msg can be moved to trash:
if (move == true) hdrarray.push(gFolderDisplay.selectedMessages[x]);
}
// perform some tasks and move to trash:
var srcfolder = gFolderDisplay.displayedFolder;
var destfolder = "imap://username%40gmail.com@imap.gmail.com/%5BGmail%5D/Prullenbak";
var messages = Cc["@mozilla.org/array;1"].createInstance(Components.interfaces.nsIMutableArray);
for each (var msgHdr in fixIterator(hdrarray, Components.interfaces.nsIMsgDBHdr)) {
messages.appendElement(msgHdr, false);
}
var copyService = Components.classes["@mozilla.org/messenger/messagecopyservice;1"]
.getService(Components.interfaces.nsIMsgCopyService);
copyService.CopyMessages(srcfolder, messages, destfolder, true, false, msgWindow, false);
}
Code: Select all
NS_ERROR_XPC_BAD_CONVERT_JS: Could not convert JavaScript argument arg 2 [nsIMsgCopyService.CopyMessages]
Code: Select all
for (var index = 0; index < hdrarray.length; index++){
var srcfolder = gFolderDisplay.displayedFolder;
var destfolder = "imap://username%40gmail.com@imap.gmail.com/%5BGmail%5D/Prullenbak";
var hdr = hdrarray.queryElementAt(index, Components.interfaces.nsIMsgDBHdr);
var messages = Components.classes["@mozilla.org/array;1"]
.createInstance(Components.interfaces.nsIMutableArray);
messages.appendElement(hdr, false);
copyService.CopyMessages(srcfolder, messages, destfolder, true, true, msgWindow, false);
}
Thanx in advance,
Greets Raymond.