It looks so easy, Just click to add account, right? Nope! When I was at Fuser we spent a few sprints figuring out how to auto detect what kind of account the user was trying to add. For example if you had an account foo@foo.com is could be a IMAP, yahoo mail plus, or POP3 account. Each time you detected it would take a long time because you would have to try many different ports and protocols. Then you would need to pick the best one i.e. IMAP is better then POP3 if the mail server supports both. I also remember all the hard work that went into the UI and trying to handle all the async callback handling for the applet that had many threads running at the same time. Caching the domain so we could look up to see if we could skip the discovery phase. Oh, I miss the fun of working on a website that had a Java applet, .Net back end, and a very complex UI running in javascript. Having to work in C#, Java, and javascript and getting it all to work! Smial!!!
But the final result is worth it!