繁体   English   中英

如何将邮件移到垃圾文件夹-Thunderbird

[英]How to move mail to junk folder - Thunderbird

我将收到的电子邮件移到垃圾文件夹时遇到问题。 我写雷鸟扩展,我使用功能CopyMessage()nsIMsgMessageService收到的邮件移动到垃圾邮件文件夹。 我在使用此功能时遇到问题。 在此功能的文档中,正在编写“在URI中传递要复制的消息。aCopyListener已经知道目标文件夹。” 可变aCopyListener是从界面nsIStreamListener和我没有看到谁还会有关于目的地的传入邮件信息的任何属性。 如何正确使用此功能并将邮件复制到垃圾文件夹?

文档链接: https : //developer.mozilla.org/zh-CN/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMsgMessageService#CopyMessage()

function listMessages(aFolder) {  
Components.utils.import("resource:///modules/iteratorUtils.jsm");
let database = aFolder.msgDatabase; 
for each (let msgHdr in fixIterator(database.EnumerateMessages(),
Components.interfaces.nsIMsgDBHdr)) {
let title = msgHdr.mime2DecodedSubject;
let messenger = Components.classes["@mozilla.org/messenger;1"].createInstance(Components.interfaces.nsIMessenger);
let listener = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance(Components.interfaces.nsISyncStreamListener);
let uri = msgHdr.folder.getUriForMsg(msgHdr);
var messageService = messenger.messageServiceFromURI(uri); 
messenger.messageServiceFromURI(uri).streamMessage(uri, listener, null, null, false, "");
let folder = msgHdr.folder;
let messageBody = folder.getMsgTextFromStream(listener.inputStream,
                   msgHdr.Charset,
                   65536,
                   32768,
                   false,
                   true,
                   { }); 
var incomingMail = folder.server.rootFolder.getChildNamed("Odebrane");
var junkyMail = folder.server.rootFolder.getChildNamed("Niechciane");
messageService.CopyMessage(incomingMail.URI, listener, true, null, null, new Object);
  } 
  aFolder.msgDatabase = null;
  database.forceFolderDBClosed(aFolder);
}

这是我用来将当前选定的消息复制到另一个文件夹的方法:

Components.utils.import("resource:///modules/mailServices.js");

var msgs = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
msgs.appendElement(gFolderDisplay.selectedMessage, false);

var isMove = false;
var copyService = MailServices.copy; // nsIMsgCopyService
let destFolder = gFolderDisplay.displayedFolder.rootFolder;
copyService.CopyMessages(gFolderDisplay, msgs, destFolder, isMove, CopyListener, null, false);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM