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

nsIMsgDBHdrを取得するためにemlファイルをローカルのDraftsフォルダーに挿入してから、を使用してComposeMessage関数を呼び出すことをお勧めしCi.nsIMsgCompType.Draft, Ci.nsIMsgCompFormat.Default, yourMsgHdr.folder, yourMsgHdr'sURIます。

特定のメッセージをフォルダに挿入する方法については、StackOverflowの回答がいくつかあると思います。

于 2013-01-31T16:45:10.410 に答える