这就是所谓的模拟(邮件服务器管理员必须运行功率shell命令超级用户权限分配给指定的邮件帐户)。
这里是链接https://msdn.microsoft.com/en-us/library/office/dd633680(v=exchg.80).aspx
而且,这里是我如何使用模拟数百个用户的工作示例。 您需要的是将用户名存储在哈希集或字典中而不是访问令牌(EWS中没有访问令牌)。
Private _ExchangeServicesMainThread As New Dictionary(Of String, ExchangeService)
Private _UserIdState As New Dictionary(Of String, Integer)
Private _Connections As New Dictionary(Of String, StreamingSubscriptionConnection)
Private _Subscriptions As New Dictionary(Of String, StreamingSubscription)
Private Function InitializeService(pUsername As String) As ExchangeService
Dim oExService As ExchangeService
Dim strEmailAddress As String = pUsername & config.MailDomain
Dim strAdminEmailAddress As String = config.ExchangeServerAdminUserName & config.MailDomain
oExService = New ExchangeService(config.ExchangeVersion)
oExService.UseDefaultCredentials = False
oExService.Url = New Uri(config.SecureHTTP & config.EmailServer & config.ExchangeManagedAPIEndpoint)
oExService.Credentials = New Net.NetworkCredential(config.ExchangeServerAdminUserName, config.ExchangeServerAdminPass, config.ActiveDirectoryDomain)
oExService.ImpersonatedUserId = New ImpersonatedUserId(ConnectingIdType.SmtpAddress, strEmailAddress)
Return oExService
End Function
假设你有所有用户的初始化字典那么虽然你的字典,让您分配一个exchangeservice给他们中的每一个和这个用户名/ exchangeservice存储在一个新的字典
For Each strUserName As String In _UserIdDictionary.Keys
_ExchangeServicesMainThread.Add(strUserName, InitializeService(strUserName))
Next
谢谢环你为你的答案!糟糕的是,他们没有一个使用权。我无法以管理员的身份访问交易所,因此这不适合我。 Stil知道没有使用权是有帮助的。 – Arnout