2016-10-13 2 views
0

Я пытаюсь получить тело электронной почты с сервера обмена для назначения в определенную комнату, но не получил успеха. Проверял все блоги через Интернет, но ничего не помогло. Вот код, где я пытаюсь связаться с сервером обмена, чтобы получить подробную информацию:Как получить текст основного назначения для встречи с сервером обмена Outlook (EWS), C#?

подхода

service.GetUserAvailability 
(
    attendees, 
    new TimeWindow(twStart, twEnd), 
    AvailabilityData.FreeBusy 
).AttendeesAvailability[0].CalendarEvents; 

подхода B

public class MailItem 
{ 
    public string From; 
    public string[] Recipients; 
    public string Subject; 
    public string Body; 
} 

public static MailItem[] GetUnreadMailFromInbox(ExchangeService service, string address) 
{ 
    // Address is the email address for an meeting room 
    try 
    { 
     service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, address); 
     FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(128)); 
     ServiceResponseCollection<GetItemResponse> items = 
     service.BindToItems(findResults.Select(item => item.Id), new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.From, EmailMessageSchema.ToRecipients)); 

     FindItemsResults<Item> findResults2 = service.FindItems(WellKnownFolderName.Calendar, new ItemView(128)); 
     ServiceResponseCollection<GetItemResponse> items2 = 
     service.BindToItems(findResults2.Select(item2 => item2.Id), new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.From, EmailMessageSchema.ToRecipients)); 

     return items.Select(item => 
     { 
      return new MailItem() 
      { 
       From = address, 
       Recipients = ((Microsoft.Exchange.WebServices.Data.EmailAddressCollection)item.Item[EmailMessageSchema.ToRecipients]).Select(recipient => recipient.Address).ToArray(), 
       Subject = item.Item.Subject, 
       Body = item.Item.Body.ToString(), 
      }; 
     }).ToArray(); 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
} 

Мне нужно решение для извлечения содержимого тела для назначения от сервера обмена.

ответ

0

Предполагая, что вы уже подключаетесь к службе Exchange успешно и только пытаетесь получить часть тела для встреч, попробуйте это.

Попробуйте добавить EmailMessageSchema.Body в вашу недвижимость.

service.BindToItems(findResults2.Select(item2 => item2.Id), new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.From, EmailMessageSchema.Body, EmailMessageSchema.ToRecipients));