I like using gmail, it’s interface is slick, its web-based so I can log on anywhere, and its calendaring is powerful and easy to use. BUT, I don’t like having all my mail stored on a server I don’t control and may possibly go away someday (or worse become subscription only so I use an email client to keep a local copy of my email on my own machine. The email is available even if I’m offline (which is pretty rare I’ll admit), and I have the peace of mind that I have a personal backup of all my email. Over the years I’ve kept important email from family and friends and it would suck to lose any of them. I use a Mac but my email client of choice has always been Thunderbird (Tb) mainly because it works on all the operating systems I find myself shifting between, but also because it keeps all archived email in plain text files which conform to an open standard. ie: I can read my old email in a text editor if I have to – and believe me, if you keep local copies of your email – someday you may wish you had done the same. That’s fodder for another article though… today’s story is about syncing gmail’s contacts with Tb.
I realize I’m not your average user, but here’s my setup: I have a Macbook running OS X 10.5 and I have gmail configured to check several personal email accounts (my work email is completely separate and isn’t discussed here). Tb is installed on the Mac and connects to the gmail account via IMAP, but is configured to keep local copies of some important folders. I have gnupg installed on the Mac, and I use the enigmail TB add-on which allows TB to use gnupg directly for key management and of course, encrypting and decrypting of email right in Thunderbird. This is the main reason I don’t use Apple’s Mail app, because the only method available for doing this in Apple Mac (GPGMail) isn’t updated for Leopard as of the date of this post. I don’t encrypt very many things, but one thing it’s really good for is storing passwords and such. Instead of keeping a plain text file of passwords as some folks do, I just encrypt that stuff with gnupg, and it’s even easier to do so in an email. But what about gmail contact info?
Gmail’s contact management is excellent. It really is almost as nice as Apple’s Address Book (if not better), and my biggest gripe about Thunderbird on the Mac is that it doesn’t (yet) integrate with the Apple Address Book application. This is supposed to be remedied soon in Thunderbird 3, but I haven’t messed with that at all. The problem is, since I use gmail’s web interface a lot, I have ended up maintaining contact info there, and to not be able to access it (using LDAP would be the most sensible solution if google would allow that since you can set up custom LDAP queries in Tb easily) inevitably leads to multiple databases of inconsistent info. The panacea is to have all three in perfect synchronicity of course, but to date I’ve only seen for-pay subscription services that offer this kind of thing. Basically you get an account on one of these services, and set all your programs (and mobiles) to point to it and they keep your information in sync.
What I’ve been doing is occasionally exporting the Google contacts to vCard format, saving it to the Desktop and double clicking, and Apple’s Address Book (the default app for vcard on the Mac) will open an import dialog which works really well – allowing me to choose to keep the old one, the new one, or merge the data. But Tb doesn’t import these vcards (it’s supposed to be able to if you receive the vcard in an email, but in my experience it hasn’t worked on my Mac), and the .csv import is a massive pain in the butt. The Tb dialog to match up the fields is difficult to set up and the fields don’t match exactly anyway, so some info is lost. When I found the Zimbra Tb add-on I thought I had a solution, but it just didn’t work well for me. I have had very good luck so far with the Google Contacts Tb Add-on however. The add-on looks for gmail accounts that are already set up in Tb, and creates a new address book in Tb’s address book (including groups), and refreshes the contacts at Tb start up. I don’t use Tb’s local address book too often, but in a quick test it appears that the add-on doesn’t work both ways. I only made a change to one of the contacts in the address book created in Tb’s address book, but at next ‘sync’ the change did not appear in my Google contacts. This isn’t a big deal, my main concern is to keep a local copy of my Google contacts anyway.