2013-06-21 29 views
2

我需要在我的Thunderbird擴展中獲取一些電子郵件消息數據。我發現MDN這個例子(https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIMsgMessageService):在Thunderbird擴展中獲取選定的消息數據

var content = ""; 
    var MessageURI = GetFirstSelectedMessage(); 
    var MsgService = messenger.messageServiceFromURI(MessageURI); 
    var MsgStream = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance(); 
    var consumer = MsgStream.QueryInterface(Components.interfaces.nsIInputStream); 
    var ScriptInput = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(); 
    var ScriptInputStream = ScriptInput.QueryInterface(Components.interfaces.nsIScriptableInputStream); 
    ScriptInputStream.init(consumer); 
    try { 
    MsgService.streamMessage(MessageURI, MsgStream, msgWindow, null, false, null); 
    } catch (ex) { 
    alert("error: "+ex) 
    } 
    ScriptInputStream .available(); 
    while (ScriptInputStream .available()) { 
    content = content + ScriptInputStream .read(512); 
    } 
    alert(content); 

然而,當我運行它,我得到以下錯誤:

Timestamp: 2013.06.21. 14:47:21 
Error: ReferenceError: GetFirstSelectedMessage is not defined 
Source File: chrome://edus_extension/content/messengerOverlay.js 
Line: 90 

這是什麼「GetFirstSelectedMessage」功能,如何才能得到消息URI沒有使用它?

回答

2

此文檔看起來相當過時。我建議:

  • 使用gFolderDisplay.selectedMessage(嘗試在錯誤控制檯中輸入top.opener.gFolderDisplay.selectedMessage
  • 閱讀使用ServicesMailServices從而簡化代碼最近的一些代碼。

話雖這麼說,我不知道你想實現什麼,但:

祝你好運,一旦你得到一個工作示例,請將其添加到MDN維基!

乾杯,

喬納森