Blog
Scribe IMAP
Date: 7/6/2010
I've finally got sick of the way that Scribe doesn't seem to pick up on new email in the IMAP inbox. So I started watching what Thunderbird does and basically it's using the IDLE command to force the server to notify it when new email arrives (as well as other events). I was under the mistaken impression that IMAP server should be sending untagged data to the client to achieve that sort of "push" notification.

So I've added IDLE support to Scribe's IMAP protocol stack and I'm now working on integrating the resulting events back into the IMAP thread code so that they do useful things like show new email. The next release should be more standard in it's new mail behaviour.

One thing I did notice with the IMAP support in Thunderbird is that it regularly uses 2 socket connections. And I never attempt to open a 2nd connection (one is complicated enough). But it's something I'll have to probably look at in the future to avoid lag if the main connection is busy downloading a large email or something.

With respect to Gmail support, I've read the spec and even tried some implementation of the OAUTH authentication method but so far it's a dark twisty maze of tokens, encryption hashing and parameter encoding. Sigh... and so far it's winning, not me. Unfortunately Gmail uses SSL and that means I can't spy on the traffic between Thunderbird and Gmail to try and get an "example" to follow. One thing I need to investigate is whether there is a way of dumping the unencrypted SSL traffic from inside Thunderbird. Worst case I could download the source and build a version that DOES dump the traffic. But thats worst case... I'm sure that's a non-trivial amount of effort.

Anyway, enough drivel. Back to it.
Comments:
fret
18/06/2010 7:43am
Testing over the last week has shown that IDLE is good... and the implementation is now reasonably stable. However when you leave the client on some other folder other than inbox is doesn't pick up inbox related events like new mail. It never ends :)
 
Reply
From:
Email (optional): (Will be HTML encoded to evade harvesting)
Message:
 
Remember username and/or email in a cookie.
Notify me of new posts in this thread via email.
BBcode:
[q]text[/q]
[url=link]description[/url]
[img]url_to_image[/img]
[pre]some_code[/pre]
[b]bold_text[/b]