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
:
FindItemsResults<Item> findResults = ex.FindItems(
new FolderId(WellKnownFolderName.Inbox, new Mailbox("[email protected]")),
new ItemView(10));
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:
ExchangeService ex = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
ex.AutodiscoverUrl("[email protected]");
ex.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "[email protected]");
ItemsResults<Item> findResults = ex.FindItems(WellKnownFolderName.Inbox, new ItemView(10));
Disclaimer: I have written the above code without actually testing it on a real Exchange server.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…