Warning: This content is for older versions of Thunderbird. Much of it may no longer be relevant. See developer.thunderbird.net for newer information.
This page is badly broken (https://bugzilla.mozilla.org/show_bug.cgi?id=868872), use http://mdn.beonex.com/en/Extensions/Thunderbird/HowTos.html in the meanwhile.
Please add questions or answers to this page so that other people can benefit from your work. Also, you will see that there are many topics for which there is a question, but no answer. Please help by adding an answer! (Adding another question helps too!)
To get started creating the most basic extension framework, please see Building a Thunderbird Extension.
This page is organized into two parts: common extension techniques and Thunderbird-specific APIs. The former discusses general methods to hook into Thunderbird, while the latter is more focused on how to do interesting things once Thunderbird has started running your code.
See also "An overview of Thunderbird components". Many of the components described on that page have links to related examples.
- Adding a Toolbar Button
- Adding an Option to the Context Menu TODO
- Opening a New Tab
- Accessing StringBundle from an Overlay
- Access Thunderbird Window Areas
- Access Window
- Access Message in Compose Window Editor
- Create Custom Column
- Detect Opening Folder
- Filter Incoming Mail NEW!
- Get Thunderbird version
- Use SQLite
Each of the pages listed in this section contains a number of related topics. For example, the "Compose New Message" page contains sections that describe how to open a new message window, modify a message body, etc.
- Getting the Current nsIMsgFolder
- Getting the Currently-Selected Message
- Changing the Current Message Selection
- Listing Messages in a Folder
- Listing Subfolders TODO
- Perform Operation on Folder TODO
- Check for New Mail TODO
- Watch for New Mail TODO
- Check if a Message is a Feed Item TODO
- Move Selected Message TODO
- Copy Selected Message TODO
- Get all address books
- Get one address book
- Search for a particular contact property (name, email)
- Search for multiple contacts
- Add / edit / Delete contacts
- Add and use custom properties
- Add / edit / delete mailing lists
- Display properties dialogs to the user
- Set up custom address book
- Set up auto-complete to use the address book
- Show a user-defined activity in the Activity Manager window NEW!
- Show a user-defined activity with undo capability (C++) in the Activity Manager window NEW!
- Add an activity with a custom context type in the Activity Manager window NEW!
- Add a fully customized activity in the Activity Manager window NEW!