【问题标题】:Get selected message data in Thunderbird extension在 Thunderbird 扩展中获取选定的消息数据
【发布时间】:2013-06-18 14:17:25
【问题描述】:

我需要在我的 Thunderbird 扩展中获取一些电子邮件信息数据。我在 MDN (https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIMsgMessageService) 上找到了这个例子:

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?

【问题讨论】:

    标签: javascript xpcom thunderbird thunderbird-addon


    【解决方案1】:

    此文档看起来已经过时了。我建议:

    • 使用gFolderDisplay.selectedMessage(尝试在错误控制台中输入top.opener.gFolderDisplay.selectedMessage),
    • 阅读一些最近使用ServicesMailServices 的代码,以简化您的代码。

    话虽如此,我不知道你想要实现什么,但是:

    祝你好运,一旦你得到一个工作样本,请将它添加到 MDN wiki!

    干杯,

    乔纳森

    【讨论】:

      猜你喜欢
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 2019-02-28
      • 1970-01-01
      • 2014-04-14
      • 1970-01-01
      相关资源
      最近更新 更多