Как я могу получить несколько сведений о почте o365 для идентификаторов почты, используя управляемый API EWS в С#

Мне нужно получить несколько сведений о почте o365 для разных идентификаторов почты, используя управляемый API EWS в С#. Предположим, у меня есть почтовые идентификаторы o365, такие как 1,2,3...

Когда я передам эти почтовые идентификаторы и вызову управляемый API EWS, тогда должны быть заполнены данные для почтовых идентификаторов. Я сделал подробную информацию для одного идентификатора электронной почты, используя код, как показано ниже:

 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);

Если у кого-то есть какие-либо предложения, пожалуйста, поделитесь.


person Gopal Biswas    schedule 09.05.2016    source источник


Ответы (1)


Попробуй это:

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;
}
person Marcus Höglund    schedule 09.05.2016
comment
Спасибо за ваше ценное мнение, но мне нужно получить почтовые данные для некоторых конкретных почтовых идентификаторов за один раз. Я думаю, что service.BindToItems должен быть вариантом. - person Gopal Biswas; 09.05.2016
comment
хорошо, как вы получаете почтовые идентификаторы, которые, как вы знаете, собираетесь искать? Вы выполняете поиск в EWS, чтобы получить то, что не является частью кода в примере? Я могу обновить свой пример с помощью запроса, чтобы получить конкретную информацию в зависимости от содержимого почты, копии, отправителя и т. д., но не от идентификаторов почты... - person Marcus Höglund; 09.05.2016
comment
Я сохранил почтовые идентификаторы в своей базе данных, и на основе определенных критериев необходимо заполнить некоторые данные почтового идентификатора. Я использовал service.FindItems() для поиска и хранения почтовых идентификаторов в моей базе данных. - person Gopal Biswas; 10.05.2016
comment
Обновил мой ответ @GopalBiswas - person Marcus Höglund; 10.05.2016
comment
Не беда, рад помочь! - person Marcus Höglund; 10.05.2016
comment
У меня есть такое же требование, как вы упомянули ранее, мне нужно получить все данные почты для определенного отправителя/идентификатора почты. Не могли бы вы написать запрос. - person Gopal Biswas; 11.05.2016
comment
Прочитайте принятый ответ маткс. Я думаю, что параметр запроса решит вашу проблему. stackoverflow .com/questions/18126804/ - person Marcus Höglund; 11.05.2016