August 17, 2009


Enough acronyms for you? I thought so.... For those that might not have heard, I'll be taking on the challenge of getting KDE PIM fully Exchange capable. This comes from my desire to kill Outlook and Entourage from my life and not force me to use a tool not integrated very well into my desktop of choice (Evolution).

So what is MAPI, you might ask? Well, MAPI stands for Messaging Application Programming Interface, which is the tier one option if you want a mail client to talk to Microsoft's Exchange server. This interface has gone through a number of changes over the years and thus far has been an elusive target for F/OSS projects. Lately a project called Openchange has been working on a library that much of my work on kdepim will be focused around integrating into KDE. This library covers all of the mess of having to write our own library to get access to these servers. As some know, this library is already used in a native MAPI method in Evolution that was released recently in the routine releases of GNOME. I'll just leverage that work and make KDE just as accessible to Enterprise users stuck in an MS powered shop.

I'll try to cover all the things I do to make this a reality, so stay tuned, Fun stuff ahead :)


  1. This is great news. I use KMail at work as my primary (the only) email client.
    I am eagerly looking forward to the result of your attempt.

  2. Wow... This is a fantastic news. Thank you very much. Does openchange take care of calender, notes syncing also along with mail? If yes, does this interact with exchange directory and show busy/idle of other people? If yes, I am so eager for your work to be done (even at alpha :).
    I also assume, this will integrate into akonadi.

  3. Oh my goodness, you're my new best friend!

    I have been hanging out for this functionality for a while! Currently, I'm having to install Gnome with Evolution on users desktops because it works well with Exchange for email, contacts and calendars.

    Really looking forward to your efforts Gary!

  4. I just read openchange website. it says:
    "This is the MAPI library development purpose (libmapi). MAPI stands for Messaging Application Programming Interface and is used within Microsoft Exchange. The OpenChange implementation provides a client-side library which can be used in existing messaging clients and offer native compatibility first with Exchange server; and in a near future with OpenChange server. Novell Gnome Evolution and KDE Akonadi (KMail, Mailody) are using the OpenChange MAPI library to access Microsoft Exchange servers natively."

    I suppose it is talking about your work. This is really cool. Thanks a lot for the work.

  5. Just a small fyi for those that have been commenting:

    Yes, my aim is for 100% parity with Outlook's capabilities with MAPI. This means that Mail, Contacts, Calendar, Notes, Journal, Public Folders, Tasks, and Projects are on my TODO list.

    Whether this will use openchange for all of that functionality has yet to be decided based off of testig and feature completion.

    Also, I think I should make it clear: the code I'll be working on was started in development around 2007 by Brad Hards and continued by Alan Alvares for his 2008 GSoC project. This WILL be an akonadi resource that talks Extended MAPI/RPC to the Exchange server and DBUS back to the Akonadi session daemon. Where necessary, I might call things in the various libraries from the Samba4 project to mimic an Active Directory backed Exchange client to make my work easier, we'll see if I have to do that or if I can rely on some things from LDAP..... Onwards and Upwards :)

  6. Definitely a great news! Thanks for your current and future work :)

  7. Fantastic news, I wrote about this for LWN what seems like years ago after talking with Brad Hards. I think it's a killer feature for so many offices where switching from Exchange just isn't an option.

  8. You are gonna boost Linux and KDE4 adoption, thank you!

  9. Cool! Have you got in contact with Brad Hards? He will welcome the support.

  10. Great news! I've always wondered when somebody will work on the OpenChange resource again, and I'm glad that you plan to do that.

    You'll find us Akonadi developers in #akonadi on IRC, so come there if you have any questions.

  11. Thank you so much for taking care of this long outstanding issue. I use KMail as mail client and am really annoyed of being cut off the university's exchange infrastructure.

    IMHO this project is a noble target!

    Thanks and best wishes!

  12. Excellent news - I'm rather surprised that KDAB haven't diverted funds towards this area already, but I'm very pleased that you've stepped up. Rock on!

  13. Can't wait really. Exchange compatibility will be the best thing on earth after sliced bread!

    Good luck!

  14. Thank you very much, Gary. This is a much needed addition to KDE PIM. I'm really tired of using IMAP+OWA in my work.


  15. Thankyou, thankyou, thankyou!!!

    I use KMail at work, and hook into the Exchange server via IMAP - works for e-mail (still kinda rough though), but obviously does not work for calendaring & etc. integration.

    Again - thankyou, thankyou, thankyou. ;)

    If you need an additional tester, feel free to ping me - I'd be happy to try out anything you have. :)

  16. > Excellent news - I'm rather surprised that KDAB haven't diverted funds towards this area already

    Well that is hardly suprising, since KDAB is part of the Kolab Konsortium ( see ).
    We at KDAB are involved in developing the Kolab Server, and Kontact is the offical Kolab client for Linux. And Kolab is actually Free Software.

    Wearing my KMail maintainer hat, I'm looking forward to exchange support though, since there are many people who are forced to use that and can't switch.

  17. is this ready yet?

    Just kidding... More seriously, how are things going on this very topic?

  18. Got hit by a car? Or MS?

  19. More like: hit by work. Being an under-paid, over-worked IT manager cuts into the fun coding projects pretty heavily.....

  20. Evolution has a mapi connector. Can you use it a starting base?

  21. So, any code to share so far? Don't be shy, I'm not that much of an upstream coder too. Just give me a link to proudly fork it (github, maybe?)