Towards an Alpha supporting Thunderbird 3.1 (Mailnews Exchange Support)

By | August 18, 2010

Things have been a little slower lately, what with summer and family visits and so forth, but my project to support Exchange server in Thunderbird proceeds nevertheless. I’m starting to think seriously of an Alpha release.

Originally I had assummed that there would be changes required in core to support what I am doing. But so far, that has not been absolutely necessary. I had problems earlier with the database code, but I’ve managed to get around that by just using a standard nsMailDatabase object instead of doing my own version.

So I tried to build a version that could run on current Thunderbird 3.1 releases. That required staring at the build code for a couple of weeks, which I guess is the price that I pay for writing much of this extension in C++.  In the end, the magic that I needed was surprisingly simple:

ifndef MOZ_STATIC_MAIL_BUILD
 EXTRA_DSO_LIBS = msgbsutl
 else
 SHARED_LIBRARY_LIBS =
   $(DEPTH)/mailnews/base/util/$(LIB_PREFIX)msgbsutl_s.$(LIB_SUFFIX)
endif

I am now running my EWS extension with my normal Thunderbird profile – but I have not had the courage yet to use the email address for anything real. Fortunately, the spammers of the world have discovered my test address rkentjames@caspia.org, and are kindly providing me with a wide variety of test emails.

The question I have now is what is the minimum functionality required for an alpha release. I’ve recently added the ability to read attachments from my Exchange messages, but I don’t yet have the ability to create emails that contain attachments. I think that after I add that ability, I will have a basic email read/write capability, and will stop adding features and concentrate on fixing annoyances prior to releasing an alpha.

I’ll still be missing a zillion features, including:

  • using the exchange address book
  • copying and moving messages to other folders
  • message filters

and a whole lot more. But the alpha application could be used to do a basic check of someone’s work email from a home Thunderbird installation.