在我的first question之后,我现在正在寻找一种相同的方式,但我不想将EML作为消息打开,而是想将其作为草稿打开。
基本上,我想将生成的EML文件加载到撰写窗口中,所以我可以直接发送它。
我已经找到了一些代码,但是我找不到关于如何使用它的正确文档
var filePath = new FileUtils.File(getPath(params));
var uri = io.newFileURI(filePath);
var msgComposeService = Components.classes["@mozilla.org/messengercompose;1"].getService(Components.interfaces.nsIMsgComposeService);
var messenger = Components.classes["@mozilla.org/messenger;1"].createInstance(Components.interfaces.nsIMessenger);
var hdr = messenger.msgHdrFromURI(uri.spec);
var identity = getIdentityForHeader(hdr, Components.interfaces.nsIMsgCompType.Draft);
var msgWindow = Components.classes["@mozilla.org/messenger/msgwindow;1"].createInstance(Components.interfaces.nsIMsgWindow);
msgComposeService.OpenComposeWindow(null,null,uri,Components.interfaces.nsIMsgCompType.Draft,Components.interfaces.nsIMsgCompFormat.Default,identity,msgWindow);
答案 0 :(得分:0)
我建议将eml文件注入本地Drafts文件夹,以便获取nsIMsgDBHdr,然后使用ComposeMessage
调用Ci.nsIMsgCompType.Draft, Ci.nsIMsgCompFormat.Default, yourMsgHdr.folder, yourMsgHdr'sURI
函数。
我认为有关如何将给定消息注入文件夹的几个StackOverflow答案。