Thunderbird:Easy Account Setup


Note 2008-08-20: Thunderbird:Autoconfiguration describes the same idea, independently, and is being implemented right now

Account setup is a large entry barrier for many consumers getting up and running quickly with Thunderbird. It requires users to know details about their mail server such as the host name, IMAP or POP, smtp server name, etc. Many users don't know this information, get discouraged and don't get any further with using the product.

Thunderbird 2 started to address this problem by shipping ISP configuration files for gmail and .mac accounts. The user provides his e-mail address for these accounts and Thunderbird figures out the rest of the information. We've been getting a lot of positive feedback on this approach but it needs to be taken further.


  • Make account setup easy for users using ISPs and web mail providers around the world.
  • Leverage and empower our global community of volunteers to generate the ISP configuration data for users.

There are two solutions we can explore to meet this goal

  • Ship with as many ISP configuration files as we can.
  • Host a web service which given a users's mail domain can return the ISP configuration file for that ISP if we have one.

Ship ISP Files

ISP configuration files can currently be packaged on a per locale basis. We can work with the l10n owners for each localized version of Thunderbird so it ships with the most popular ISPs.

This is a straight forward solution using known pieces of the platform.

It lacks flexibility in that we can't easily add ISP files without doing new releases, and all of the ISP files end up in the CVS tree.

Hosted Web Service

When creating a new mail account, the user provides his e-mail address. We take the domain from the address and look it up on a server. If we have the information for that ISP, we return the RDF file to use for it. If we can't find a match, the user is presented with the usual set of account wizard screens asking for the required information.


  • New configuration files can be added and all users benefit right away instead of waiting for the next release to include them.
  • Makes it possible to have a lot more ISP files available to users. For instance, would we ship in the default Thunderbird build an ISP file for say a university? Probably not, but we would gladly host it on a server...
  • Easy to update configuration files over time.
  • We aren't cluttering up the download package with potentially hundreds of ISP files.


  • Must make it easy for volunteers to submit ISP files.
  • Can we leverage for this? We don't want it to be an extension that gets installed into the extension directory. Maybe we can unpack the extension ourselves just to get at the configuration data during the account setup process instead of installing the extension.
  • If we use addons, let's add a packaging tool that takes the RDF file and turns it into an extension for addons directly (like we do for dictionaries) instead of expecting each volunteer to know how to do this.
  • Using a hosted service adds complexity.

User Experience

Regardless of the approach we take, there are some changes we'll have to make to the existing account wizard. Currently we list each ISP file we ship with as a radio item in the account wizard. So the user sees:

  • Email account
  • RSS News & Blogs
  • Newsgroup account
  • Gmail
  • .dotmac
  • Random ISP

This obviously doesn't scale well if we hope to have a large number of these ISP files available.

Explicitly list each available ISP

We could add a 'Other' item to the list of account types in the account wizard. This item would have a menu list associated with it that lists all of the known ISPs. Something like:

  • Email account
  • RSS News & Blogs
  • Newsgroup account
  • Other [ menulist containing all known ISP files]

Obviously this UI approach would not work for the hosted service without us downloading a list of all known ISPs, and I don't think a list of several hundred items would be useful anyway.

E-mail Address

The first page of the wizard shows the various account types (Email, RSS and Newsgroup). When creating a new email account, we continue to prompt for the users's name and e-mail address. Once we have the e-mail address, we try to find the appropriate ISP configuration data (regardless of the solution we use) and use it to complete the account setup.

This solution is appealing because the user doesn't have to see a long list of ISPs. One downside is that it isn't going to be clear to them up front that we can fill in the server information until they actually try!

ISP Policy

We'll need to specify a policy for creating an ISP file. For instance, we should insist that configuration data use the highest security settings the ISP supports (SSL, TLS, secure auth, etc). Other options we should have a policy on include global inbox, leave on server, etc.

Other Questions

  • How do we resolve conflicts? i.e. What if an ISP supports both POP and IMAP? How do we represent this to the user?