Changes in Thunderbird 74
legacy
The legacy API has been removed. This has been covered elsewhere.
accounts/folders
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) { return; } for (let f of folders) { arrayOfFolders.push(f); traverse(f.subFolders); } } for (let account of accounts) { traverse(account.folders); } 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).
compose
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.
messages
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.
Bugzilla list of fixed WebExtension API defects in Thunderbird 74.