MAPI programming is ugly. It needs a lot of attention to avoid memory leaks. Therefore I was interested to see an article on Extended MAPI with C#. This describes the use of a library called MAPI33. It looks like a thin layer over the MAPI API. I'm not sure about the use of an Error enumeration to return errors from each method. This adds a big coding overhead and is not really the .NET way of doing things.