Each of these email providers has its own API:
- GMail: Google Contacts Data API – Google Contacts API version 3.0
- Yahoo! Mail: Yahoo! Address Book API – Developer’s Guide
- Hotmail: Windows Live Contacts API Beta – API Reference
There are usually Java samples that you can use to start your work. I’ve been using Google Data API to successfully download my GMail contacts and Google Docs&Spreadsheets.
There seem to be commercial Java libraries for what you’re asking for. Some of them are:
- Contacts Importer from Malasian Octazen that supports 30+ web mails in total (with a price tag of $234US) whereas the version you’re looking for would cost $88US.
- another Contacts Importer from Indian Improsys that supports less “networks” and Java version costs $550.
I’m not aware of any open-source Java libraries offering a general access to all of these three email providers. There’s one for PHP called Open Inviter which supports 10+ networks (if the big three you mentioned could be considered as such at all).
Also, Plaxo has kicked off an effort called Portable Contacts (and draft specification looks promising) but this is at a very early stage. Anyway, I wouldn’t Portable Contacts to solve your problem and that won’t happen in the next 6+ months anyway. It’s something they’re doing to advance their business in backing up peoples’ address books, creating a more natural network around it and advancing data portability in general with such a strong competition from Google, Facebook and MySpace.
Other than that, I don’t think there’s anything feasible at the time of this writing. Otherwise I would find it. 😉
Cheers!
Shonzilla