I wrote about IMAP tools recently. When I saw how well the imapfiler.pl tool worked, I contacted the author to suggest that he write a specific tool to archive Kerio user mailboxes. He agreed, and we worked on it together over the next few days.
One of the problems we ran into was in trying to avoid the need to have user passwords. IMAP does support an administrative login method that should allow that, but we couldn't make it work with Kerio Connect - it would authenticate, but it wouldn't access other users messages.
I knew there was a way to do this because Connect has a "Master Authentication" password in Advanced Options and Kerio uses that with its own tools. For years I have tried to get documentation on that, but no one at Kerio would tell me. However, last year there was this post where somone had exposed the secret.. It's a fairly simple matter, actually: you send an IMAP command of "X-MASTERAUTH". The server sends back a challenge string, to which you add the Master Password that was set in Advanced Options. You send that back as a md5_hex string and you are now logged in. To access a particular user's mailboxes, you send "X-SETUSER userlogin" and you are in.
So, with that in hand, it's possible to write an user archiver for Kerio. I'm happy to say that archiver is available now at http://www.athensfbc.com/imap-tools/Kerio/Kerio_Archiver.html for just $50.00. Note that it is being sold and supported by Rick Sanders, not by me - contact him through that web page if you have any questions.
In testing, I did find one potential glitch: if a mailbox is corrupt, the archiver may skip some messages. I had that problem with my wife's INBOX - there are 49 messages that the archive script just cannot see even after rebuilding her indexes.
I found no problems in other mailboxes and no bugs in testing.
If you found something useful today, please consider a small donation.
Got something to add? Send me email.
More Articles by Anthony Lawrence © 2014-12-15 Anthony Lawrence
The activity of "debugging", or removing bugs from a program, ends when people get tired of doing it, not when the bugs are removed. (Datamation)