Thunderbird 78対応アドオン作成のメモ。
■表示しているメッセージの取得
messageDisplay.getDisplayedMessage() で取得する。
//アクティブなタブを取得して
let tabs = await browser.tabs.query({
active: true,
currentWindow: true
});
//そのタブで表示しているメッセージを取得する
let msg = await browser.messageDisplay.getDisplayedMessage(tabs[0].id);
■選択されているメッセージの取得
mailTabs.getSelectedMessages()で取得する。最大100メッセージしか返さないので、それ以上の場合は、messages.continueList()で、残りを取得する。
//アクティブなタブを取得して
let tabs = await browser.tabs.query({
active: true,
currentWindow: true
});
//そのタブが、3ペインタブだったら、選択しているメッセージを取得する
if (tabs[0].mailTab) {
let msgs = await browser.mailTabs.getSelectedMessages(tabs[0].id);
//選択メッセージに何か処理。メッセージは、msgs.messagesに入っている。
//残りがある場合は、msgs.idにIDがセットされているので、これがundefinedになるまで繰り返す
while (msgs.id) {
msgs = await browser.messages.continueList(msgs.id);
//選択メッセージに何か処理。メッセージは、msgs.messagesに入っている。
}
}
■メッセージ全体を取得
mailTabs.getSelectedMessages()等で取得されるオブジェクトは、メッセージの一部の情報しかない。全ヘッダ情報など、他の情報を取るには、messages.getFull()メッセージ全体を読み込まないといけない。読み込み時間が必要なため、大量のメッセージを扱う場合は要注意。
let msg = await browser.messageDisplay.getDisplayedMessage(tabId);
let fullMsg = await messages.getFull(msg.id);
//fullMsg は、Partごとのオブジェクトになっている。
■メッセージのソースを取得
メールのソースそのものを文字列として読み出す。読み込み時間が必要なため、大量のメッセージを扱う場合は要注意。
let msg = await browser.messageDisplay.getDisplayedMessage(tabId);
let fullMsg = await messages.getRaw(msg.id);
0 件のコメント:
コメントを投稿