Given a particular MailItem, the method below will help you to get the SMTP address of the person who send the email. The code is simple but take care of the fact that, in case of an Exchange user, we cant to get the SMTP address (and not the X.500 address):

public static string GetSenderEmailAddress(Outlook.MailItem mailItem)

{

    var propSMTP = “http://schemas.microsoft.com/mapi/proptag/0x39FE001F”;

    string emailAddress = string.Empty;

 

    if (mailItem.Sender.AddressEntryUserType == OlAddressEntryUserType.olExchangeUserAddressEntry)

    {

        var exchangeUser = mailItem.Sender.GetExchangeUser();

        if (exchangeUser != null)

        {

            emailAddress = exchangeUser.PrimarySmtpAddress;

 

            exchangeUser.ReleaseComObject();

        }

    }

    else

    {

        emailAddress = (string)mailItem.Sender.PropertyAccessor.GetProperty(propSMTP);

    }

 

    return emailAddress;

}

The method use the following extension method to release the COM object:

public static void ReleaseComObject(this object obj)

{

    if (obj != null && Marshal.IsComObject(obj))

        Marshal.ReleaseComObject(obj);

}

Note that the code can be easily modified to be used with the email’s recipients or, in fact, with any AddressEntry object !

Please, note that the code use the PropertyAccessor method so it’ll work only for Outlook version > 2007.

 

Happy coding!

Bonjour à tous,

J’y pensais depuis un moment, c’est maintenant chose faîte ! J’ai décidé de changer de plateforme de blog pour me lancer dans ma “propre” aventure.

Les activités prévues au programme seront les mêmes que sur mon précédent blog à savoir WPF, Silverlight,  Windows Phone, etc. mais en essayant de varier les plaisirs de temps en temps et surtout, en essayant de retrouver une activité un peu plus dense.

Je tiens à remercier la communauté de CodeS-SourceS, et notamment Nix et Cyril, pour m’avoir hébergé durant toutes ces années !

Vous remarqerez que le design de ce blog n’est, pour le moment, pas tout à fait abouti: j’espère que cela changera rapidement (si d’ailleurs vous souhaitez me filer un coup de main sur la partie  design/logo, n’hésitez pas à me le faire savoir, je risque d’en avoir besoin !)

 

A bientôt pour la suite !