【http://www.cnblogs.com/nbpowerboy/p/3539422.html】
可以使用ExchangeServiceBinding獲取郵件,他相當于outlook, 來獲取服務器的未接受的郵件.
至于 “該帳戶無權模擬所請求的用戶 ” ,是由于在exchange服務器上面沒有配置模擬賬戶.
需要在Exchange Management Shell上執行:?New-ManagementRoleAssignment –Name:impersonationAssignmentName –Role:ApplicationImpersonation –User:administrator
見: Configuring Exchange Impersonation:http://msdn.microsoft.com/en-us/library/bb204095.aspx
設置后, 就不會有該帳戶無權模擬所請求的用戶問題了。
public static int GetUnReadMailCountByUserMailAddress(string UserMailAddress){int unRead = 0;string url = "https://{0}/ews/exchange.asmx";url = string.Format(url, m_ExchangeMachine);try{ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);service.Credentials = new NetworkCredential(m_ServerUser, m_Password, m_Domain);service.Url = new Uri(url);service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, UserMailAddress);unRead = Folder.Bind(service,WellKnownFolderName.Inbox).UnreadCount;}catch (Exception ex){return unRead;throw;}return unRead;}
?