Thunderbird:Autoconfiguration
Objective: Make my non-tech friends use Thunderbird, by making it dead-simple to set up.
Most people are using webmail these days, mainly because it's so easy. You only need to know the URL (usually linked from the provider's homepage) and email address and password, and there's your inbox already. ISPs, although all of them provide POP/IMAP, are leading users to webmail because of that ease of use (and free mail providers do so for the advertizing revenue).
Goal: Setting up Thunderbird should be as easy as download/install and entering real name, email address and password. The Account Setup Wizard consists of only one screen.
Proposal: In the Account Setup wizard, if the "Email account" radio button is selected (which is the default), 3 text fields are visible and enabled: real name, email address and password.
Email address is properly syntax-checked, and the existance of the domain in DNS is checked.
The domain if the email address is used to determine the configuration (POP/IMAP and SMTP server names, SSL yes/no, authentication methods etc.), via several mechanisms:
- The legacy rdf files in <installdir>/isp/, like we have for Google Mail right now. (This may be dropped in favor of the next steps.)
- Try to contact a mail configuration server of the provider
- E.g. define an DNS TXT record or similar on domain example.net (for my.account@example.net) which contains an URL like https://mailconfig.example.net/mozilla.xml .
- That file contains the mail configuration, essentially the same as in RDF files, just the format in normal XML and a bit cleaned up. The email address (before @ or with domain) that the user can be used as placeholder in the config file, so the file is the same for all users (i.e. static).
- The protocol should be https (otherwise a MITM can direct my traffic and login request to him by just telling me his server as config).
- If the email provider does not provide the configuration, we try to find it at a Mozilla server
- E.g. https://autoconfig.mozillamessaging.com/example.net/config.xml
- This service will have the configuration for all the major ISPs and email providers, so there's a 90+% hit rate.
- It will not work for company email addresses.
- If a provider disagrees with a setting there, it can override the configuration by simply providing the config server in step 2.
- Other ways, esp. for company email accounts? Avoid heuristics and trail&error!
- If all fails, we ask the user to enter the configuration, using the existing wizard. We should also provide an option to ignore the autoconfig and go into manual config, e.g. using a new radio button "Email account, manual configuration".
Unless we go into manual config, the "Next" button turns into "Done", on the first page already. In that case, there is no second page, not even the summary screen. The user ends up directly in his inbox. (The password dialog does not need to come up either, as the password has already been entered by the user and the wizard filled it in using the password manager.)