I'm trying to retrieve Inbox items from a specific mailbox (in which i have permissions), using Exchange Web Services managed API. I've tested the code first using my own email address via AutodiscoverUrl, and it works fine. However when i tried using the other email address, EWS still retrieves my own inbox items. Is this due to a cache or something?
My code is as follows:
ExchangeService ex = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
ex.AutodiscoverUrl("someothermailbox@company.com");
FindItemsResults<Item> findResults = ex.FindItems(WellKnownFolderName.Inbox, new ItemView(10));
foreach (Item item in findResults.Items)
Console.WriteLine(item.Subject);
Best Answer
The e-mail address given to
AutodiscoverUrl
has nothing to do with which mailbox you are binding to.There are (at least) two ways to get the inbox items from another users mailbox: Delegate access and impersonation.
If you have delegate access to the other users mailbox, you can specify the mailbox as a parameter in the call to
FindItems
:If you have the permissions to impersonate the other user, you can impersonate the other user when connecting to the EWS and the following call to
FindItem
will work on the inbox of the impersonated user:Disclaimer: I have written the above code without actually testing it on a real Exchange server.