August 17, 2009

KDE, PIM, and MAPI

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 :)

21 comments:

  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.

    ReplyDelete
  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.

    ReplyDelete
  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!

    ReplyDelete
  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.

    ReplyDelete
  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 :)

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

    ReplyDelete
  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.

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

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

    ReplyDelete
  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.

    ReplyDelete
  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!
    Gregor

    ReplyDelete
  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!

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

    Good luck!

    ReplyDelete
  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.

    Regards.

    ReplyDelete
  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. :)

    ReplyDelete
  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 http://www.kolab-konsortium.de/en/about/kolab-konsortium.html ).
    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.

    ReplyDelete
  17. is this ready yet?

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

    ReplyDelete
  18. Got hit by a car? Or MS?

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

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

    ReplyDelete
  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?)

    ReplyDelete