0

在我在这里提出第一个问题之后,我现在正在寻找一种方法来做同样的事情,但我不想将 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);
4

1 回答 1

0

我建议将 eml 文件注入本地 Drafts 文件夹以获得 nsIMsgDBHdr,然后ComposeMessage使用Ci.nsIMsgCompType.Draft, Ci.nsIMsgCompFormat.Default, yourMsgHdr.folder, yourMsgHdr'sURI.

我认为有几个关于如何将给定消息注入文件夹的 StackOverflow 答案。

于 2013-01-31T16:45:10.410 回答