簡體   English   中英

Thunderbid擴展名:打開EML文件

[英]Thunderbid extension: open eml file

我已經創建了執行以下操作的擴展程序:

當我使用thunderbird -MyCustomParam1 "12345"命令行運行Thinderbird時,我的擴展程序將打開一個撰寫窗口,並將參數"12345"添加到該窗口中。

我使用的一些代碼:

// In the calling code
var args = {
  param1: 12345,

};

args.wrappedJSObject = args;
var watcher = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
                            .getService(Components.interfaces.nsIWindowWatcher);
watcher.openWindow(null, url, windowName, features, args);


// In the window code
var args = window.arguments[0].wrappedJSObject;

當然使用正確的網址和功能。

現在,我想做同樣的事情,但是對於消息窗口,並選擇一個eml文件。

您可以從命令行打開一個eml文件,如下所示: Thunderbird test.eml (這將在新窗口中打開郵件)。

我想要的是以下內容:

Thunderbird test.eml -MycustomParam1 "1234"應該會打開郵件,並將參數"1234"添加到屏幕上,因此我可以在文檔窗口中訪問它,就像示例1一樣。

因此,基本上我想要的是watcher.openWindow類的watcher.openWindow ,但是具有給定的eml文件。

有任何想法嗎?

您可以在MsgOpenFromFile函數中看到此操作的完成方式,該函數在File / Open Saved Message菜單項中被調用。 基本上,您必須獲取eml文件( 從文件路徑獲取nsIFile實例 ), 將其轉換為URI ,然后在打開消息窗口之前更改查詢字符串:

uri.QueryInterface(Components.interfaces.nsIURL);
uri.query = "type=application/x-message-display";
watcher.openWindow(null, "chrome://messenger/content/messageWindow.xul", "_blank",
                   "all,chrome,dialog=no,status,toolbar", uri);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM