Follow us on Twitter
Follow us in Facebook
Office Dev Content
SharePoint Dev Content
Michael Bauer* recently contributed a code example that shows a simple but common way to use the new MailItem proeprty, Sender, in Microsoft Outlook 2010.
*Michael is a Microsoft Most Valuable Professional with expertise in developing Outlook solutions in Visual Basic and Visual Basic for Applications (VBA). Michael maintains a professional site at VBOffice.net.
The new MailItem property, Sender, allows you to get or set an AddressEntry object that corresponds to the user of the account from which the mail item is sent. Using this AddressEntry object, you can use the Details property, or the GetContact method if the sender is saved as a contact, to obtain information of the sender.
The following VBA code example shows how to display the details of the sender of an e-mail. If the sender corresponds to a contact in the user's Outlook Contacts Address Book (CAB), the code example displays information about that contact in an inspector. If the sender is not a contact in the user's CAB, the code example displays details from the user's address entry (taken from the transport provider's address book container) in a dialog box.
To display information about a sender, this code example requires the user to have selected a MailItem in the explorer. The code example also checks whether the selected MailItem has been sent, because the Sender property is defined only if the Mailtem has been sent. The example then accesses the Sender property to obtain the AddressEntry object that corresponds to the sender of that mail item, and displays the contact information, if it exists; otherwise, the example displays the address entry details.
Public Sub DisplaySenderDetails() Dim Explorer As Outlook.Explorer Dim CurrentItem As Object Dim Sender As Outlook.AddressEntry Dim Contact As Outlook.ContactItem Set Explorer = Application.ActiveExplorer ' Check whether any item is selected in the current folder. If Explorer.Selection.Count Then ' Get the first selected item. Set CurrentItem = Explorer.Selection(1) ' Check for the type of the selected item as only the ' MailItem object has the Sender property. If CurrentItem.Class = olMail Then Set Sender = CurrentItem.Sender ' There is no sender if the item has not been sent yet. If Sender Is Nothing Then MsgBox "There's no sender for the current email", vbInformation Exit Sub End If Set Contact = Sender.GetContact If Not Contact Is Nothing Then ' The sender is stored in the contacts folder, ' so the contact item can be displayed. Contact.Display Else ' If the contact cannot be found, display the ' address entry in the properties dialog box. Sender.Details 0 End If End If End IfEnd Sub