Windows Live Mail

Just a quick note to let everybody know that I’m making good progress reverse engineering the Windows Live Mail protocol.  With the help of a couple of other people I’ve managed to determine the nature of the compression used on the message data.  We’ve successfully managed to build the decompression table and I’m now working through the routine to do the actual decompression.  IDA Pro is an amazing piece of software and I highly recommend it if you ever need to do any reverse engineering of compiled programs.

Microsoft is going to disable WebDav access to Hotmail

Well, it was fun while it lasted, but Microsoft has finally decided to close access to its servers via the WebDav (or HttpMail) protocol.  As my hotmail plugin uses this protocol to communicate with the hotmail servers this means that as of June 30th 2008 my plugin will no longer work 🙁

I am looking into their new protocol called DeltaSync, but from what I can see Microsoft is using some proprietry encryption/compression on message contents, so it might take a little while (if ever) for it to see the light of day.
Thanks to everyone for all the donations and support over the last 5 years or so.
If I manage to figure out the compression then a new plugin supporting Windows Live mail should be fairly easy to create.  I’ll post progress here if there is any 😉

Weird characters in the previous post

Something really strange happened in the previous post.  There were these weird characters appearing in the text.  From what I can see it is WebKit trying to be helpful and create non-breaking spaces.  Unfortunately rather than insert a good old   it is inserting 0xA0 characters.  I’ve just added some code to look for these characters and replace then with  .  It should be interesting to see if it works 😉

WebView woes

I have been working on a little blog posting app for my wife for some time called BlogThing.  The first version worked well enough that I released it for download from the Automagic Software site.  It used some pretty nasty stuff that iterated over the chunks in an NSAttributedString, and while it worked pretty well I decided I wanted something a little more future proof.  To that end I decided to look into using WebView in edit mode.  Under 10.4 this worked really nicely.  I could drag in imanges, set the fonts and do all sorts of really neat things.  Unfortunately under 10.5 dragging and pasting images into the blog posting just stopped working 🙁 and I’ve not had a lot of time to look into it.  Tonight I’ve managed to get it working well enough that I think I can finally give it to my wife to play with.

The following is an example of what I’ve had to do to get dragging to work the way I want it do.  I really don’t like it though

– (unsigned)webView:(WebView *)sender dragDestinationActionMaskForDraggingInfo:(id <NSDraggingInfo>)draggingInfo {

NSPasteboard* pb = [draggingInfo draggingPasteboard];

if([pb availableTypeFromArray: [NSArray arrayWithObject: NSFilenamesPboardType]]) {

// @TODO: this code assumes that any file dragged in is an image!  Bad things will probably happen if they aren’t

NSArray* filenames = [pb propertyListForType: NSFilenamesPboardType];

NSMutableString* html = [NSMutableString string];

for(NSString* filename in filenames) {

[html appendFormat: @”<img src=\”%@\”/>”, [[[NSURL alloc] initFileURLWithPath: filename] absoluteString]];

}

[pb declareTypes: [NSArray arrayWithObject: NSHTMLPboardType] owner: self];

[pb setString: html forType: NSHTMLPboardType];

}

return WebDragDestinationActionAny;

}

Incidentally I’m posting this with BlogThing 2.0

MMKeys songbird plugin

I’ve been insanely busy the last few months. I’ve recently changed jobs and had to go overseas to meet the client so have not had as much time to work on things such as my HTTPMail plugin 🙁
Anyway, today I got an email saying there was a new version of Sonbird (a really nice music player for Linux, OS X and another popular OS that I wont name here 😉 ). Quite some time ago I wrote a plugin for Songbird to get the multimedia keys on my keyboard working, unfortunately upgrades to both Songbird and Ubuntu seemed to break the plugin but I’d not had much of a chance to look into it. Today I decided to have a quick look and see what I could see. The result is a new version of the plugin that seems to work for me 🙂
I’ll be posting the source to my git repository as soon as I can some time 😉

Come and get it

The Leopard version of my HTTPMail plugin for Mail can be downloaded from here. Please note that as with any first release with a new version of OS X things may not be as stable as I would like. It works on my machine 😉

I have updated the documentation to show screen shots from Leopard and overall the installation and setup procedures are a little more streamlined.

Enjoy

Almost there!

Yesterday I got account editing working, and tonight’s effort sees sending working. It is still not possible to create new accounts, but that is something for another time. It’s almost midnight and I’m going to be woken up at some time around 3 or 4 am by the little one for a feed so I’d better go get some sleep while I can 😉

Once I’ve got account creation working then the plugin is pretty much done for Leopard 🙂

git

I’ve been using darcs as my version control software of choice for quite a while now, but unfortunately I’m having trouble using it with dreamhost 🙁 I’ve looked about on the web for anybody who has successfully created public repositories on dreamhost, but all I can find is people asking how to do it. Since I want to make the source for my httpmail plugin available and working with the sourceforge subversion repository is a pain I’ve decided to give git a try.

My public git repository is available at http://git.danielparnell.com/ and the httpmail project can be accessed directly via
http://git.danielparnell.com/public/httpmail.git.

The code currently in the repository contains a target for Leopard which partially works. I’m not going to release binaries as yet because it is nowhere near ready for prime time at this stage.

What works:

  1. Connecting to Hotmail
  2. Downloading messages from the inbox
  3. Downloading messages from sub-folders (as long as the plugin is configured to store sub-folders under the root folder, not the inbox folder)

What doesn’t work

  1. Creating accounts
  2. Sending mail
  3. Pretty much everything else

So, if you’re feeling brave, and have git installed on your system along with XCode 3.0, feel free to check out the source and have a play (any code contributions will be greatly appreciated). For everybody else, rest assured I am working on it, if somewhat slowly.