Free Support Forum - aspose.com

Exchange impersonation issue

Based upon previous discussions that delegate access is not supported, I have now enabled Exchange impersonation.
Here is the scenario: I have a mailbox app_mailbox@mydomain.com and I have created a ID mydomain\app_id and granted impersonation rights.

I test it using Exchange Web Services ImpersonatedUserId() object and it works correctly.
However, when I try to use the same impersonation using the GetMailboxInfo("app_mailbox@mydomain.com") function of ExchangeWebServicesClient I get an error, Index was outside the bounds of the array.

Please test and let me know.

Hi,

Thank you for inquiry.

The error message means that this mailbox cannot be accessed due to rights. Could you please check by using outlook web, login with app_id and open the mailbox of app_mailbox, as shown in the attached screenshot?

The method you are mentioning assumes that the impersonator has a mailbox. That is not the case.
The app_id does not have a mailbox. Its a domain production-id. the mailbox is app_mailbox@mydomain.com

If I am able to access the same mailbox using Exchange Web Service .NET API using the Impersonation object, then the same should work with Aspose!
Initially you mentioned that access via delegate is not supported in Aspose and only Impersonation is supported; now that we are trying with impersonation, even then the code is not working!

We had procured 100 licenses of Aspose Total, but this is becoming a stopper for now!

Hi,

Sorry for creating the confusion. The feature which is currently supported by Aspose.Email is to access all mailboxes for which a user has rights.

Example: user1, user2, user3 are 3 different users with an Exchange account and mailbox
app_access is another user with an Exchange mailbox.
If we open the Exchange Management Console and for each 3 users (1, 2 and 3), we give “full access permission” to app_access, then by using Aspose.Email, we can

Provide credentials information of app_access in ExchangeWebServiceClient.
And can access other 3 mailboxes by calling
ExchangeMailboxInfo mailboxInfo = client.GetMailboxInfo(“user1@domain”); // user2 and user3

I have also attached a screenshot of this.

We are currently working on the delegate method of accessing other mailboxes, this feature might be available in next version (not guaranteed). If you want to know then I can contact the developers and come up with an ETA.