2016-05-09 18 views
0

我需要獲取使用EWS管理在C#中API不同的郵件ID的多個O365郵件的細節API郵件的ID。假設我有O365郵件ID,如1,2,3 ...我怎麼能取多個O365郵件信息使用EWS管理在C#

當我將通過這些郵件ID和調用EWS託管API,然後應該填充郵件ID的細節。我使用下面的代碼完成了單個電子郵件ID的詳細填充:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1); 
      service.Credentials = new WebCredentials("username", "Password"); 
      service.AutodiscoverUrl(Ownerusername, RedirectionUrlValidationCallback); 
      EmailMessage mail = EmailMessage.Bind(service, mailID, PropertySet.FirstClassProperties); 

如果任何人有任何建議,請分享。

回答

0

試試這個:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1); 
service.Credentials = new WebCredentials("username", "Password"); 
service.AutodiscoverUrl(Ownerusername, RedirectionUrlValidationCallback); 

//Make sure you include the properties you are looking for in EmailMessageSchema 
PropertySet propSet = new PropertySet(BasePropertySet.IdOnly, EmailMessageSchema.Subject, EmailMessageSchema.ToRecipients); 

//Add your Ids stored in the database here 
var itemIds = new List<ItemId>(); 
foreach(var MailIds in db.Mails.select(a=>a.Ids)) 
{ 
    itemIds.add(new ItemId(MailIds)); 
} 

//Send one request to EWS and get all mails by Id 
ServiceResponseCollection<GetItemResponse> response = service.BindToItems(itemIds, propSet); 

//Get the emails 
foreach (GetItemResponse getItemResponse in response) 
{ 
    Item item = getItemResponse.Item; 
    EmailMessage message = (EmailMessage)item; 
} 
+0

感謝您寶貴的意見,但我需要在一個實例爲某些特定郵件的ID獲取郵件的細節。我認爲service.BindToItems應該是一個選項。 –

+0

好的,你如何獲得你知道你要搜索的郵件ID?你是否正在搜索EWS以獲取這些不屬於代碼示例的部分?我可以更新我的例子有查詢來獲取取決於郵件,抄送,發件人等內容,但沒有對郵件的ID具體... –

+0

我已經保存在我的數據庫郵件ID和基於特定標準的一些郵件的ID細節需要填充。我已經使用service.FindItems()來查找和存儲郵件ID在我的數據庫中。 –