Sharepoint2013 獲取用戶郵箱信息

有的時候,在作Sharepoint開發的時候咱們須要獲取用戶的郵件信息,一般都是經過調用EWS API來實現。shell

如下是實現的核心代碼:dom

第一步須要在Exchange服務上受權一個帳戶有模擬其餘用戶的權限,在Exhcange服務上打開Exchange powershell命名窗口,輸入下面命名spa

New-ManagementRoleAssignment -Name:impersonationAssignmentName -Role:ApplicationImpersonation -User:須要受權的帳號server

 

//模擬用戶名,密碼,域
string ImpersonatedUser="test";
string ImpersonatedPwd="test";
string domain="test";
//目標用戶郵箱地址
string emailserverAddress="user1@test.com.cn";
//ExchangeService版本爲2013
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.Credentials = new NetworkCredential(ImpersonatedUser, ImpersonatedPwd, domain);
//打開目標用戶的郵箱地址
service.Url = new Uri(emailserverAddress);
//對目標用戶進行模擬
service.ImpersonatedUserId = new Microsoft.Exchange.WebServices.Data.ImpersonatedUserId(Microsoft.Exchange.WebServices.Data.ConnectingIdType.SmtpAddress, UserMailAddress);
//只讀取目標用戶未讀的信息
SearchFilter sf = new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false);
//只讀取前10條信息
ItemView view = new ItemView(int.Parse(top));
FindItemsResults<Item> findMailResults = service.FindItems(WellKnownFolderName.Inbox, sf, view);
if (findMailResults.Count() > 0)
{
foreach (Item m in findMailResults)
{
    EmailEntity em = new EmailEntity();
    Microsoft.Exchange.WebServices.Data.EmailMessage e = Microsoft.Exchange.WebServices.Data.EmailMessage.Bind(service, m.Id);
    em.ID = e.Id.ToString();
    em.Subject = e.Subject;
    lists.Add(em);
}
}
相關文章
相關標籤/搜索