This is an archived page. It's not actively maintained.

Account interfaces

This page is not complete.

This content covers features introduced in Thunderbird 3

This page contains a list of the interfaces that you'll will most likely use when writing extensions that work with email or other accounts. See Account examples for examples and code snippets.


nsIMsgAccountManager is the service through which all accounts, identities, and servers can be retrieved. It is also responsible for the startup and shutdown handling of these objects, as well as the creation and destruction of accounts.


nsIMsgAccount is the interface that represents an account. Accounts only contain a single server and at least one identity, although they are associated with preferences that extensions may use as a base. In general, only nsIMsgAccountManager will be creating these.


nsIMsgIncomingServer is the interface that represents a server. Servers are one of the primary interfaces to the backend (the others being nsIMsgFolder and nsIMsgDatabase), and represent the basic connection to an external message source. Many of the attributes are ultimately shortcuts to various preferences (the preference key is the unique identifier for servers) and several are mostly used to impact UI choices. Most server implementations will also have another interface for protocol-specific attributes and methods.


nsIMsgIdentity is the interface that represents an identity. Identities are primarily composition configurations: options such as the email address or the compose drafts folder is stored here.


nsIMsgProtocolInfo is the interface that represents permissible actions by protocol level. Most of the attributes are currently limited to account creation concerns, although some do impact UI choices.