Changes in Thunderbird 74


  • The legacy API has been removed. This has been covered elsewhere.


  • The MailFolder object gained a subFolders property. From now on the accounts API functions will return a hierarchy of folders instead of a flat list. If you still need a flat list you should traverse the folder hierarchy:

    browser.accounts.list().then(accounts => {
      let arrayOfFolders = [];
      function traverse(folders) {
        if (!folders) {
        for (let f of folders) {
      for (let account of accounts) {
      return arrayOfFolders;

    This example code works with both the current API in 68 and the new version in 74 (which will be backported to 68 after some time in beta).


  • The compose API gained two new functions and an event. The getComposeDetails and setComposeDetails functions let you retrieve or change the recipients and subject of a message being composed. More details will be added later. The onBeforeSend event is fired when a message is about to be sent. At this point your extension can prevent sending or change the same details as in the new functions.


  • The query function can now query by tags.

  • The MessageHeader object now has junk properties: junkScore is an integer score from 0 (not spam) to 100 (spam). junk shows whether or not that score is greater than the junk threshold.