Получить выбранные данные сообщения в расширении Thunderbird

Мне нужно получить некоторые данные сообщения электронной почты в моем расширении 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 сообщения без ее использования?


person noname    schedule 21.06.2013    source источник


Ответы (1)


Эта документация выглядит довольно устаревшей. Я бы предложил:

  • используя gFolderDisplay.selectedMessage (попробуйте ввести top.opener.gFolderDisplay.selectedMessage в консоли ошибок),
  • чтение недавнего кода, который использует Services и MailServices, чтобы упростить ваш код.

При этом я не знаю, чего вы пытаетесь достичь, но:

Удачи с этим, как только вы получите рабочий пример, добавьте его в вики MDN!

Ваше здоровье,

Джонатан

person Jonathan Protzenko    schedule 24.06.2013