Я пытаюсь получить все Назначения комнаты в Exchange через Exchange EWS.Обмен EWS: Как получить все встречи в комнате
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("[email protected]", RedirectionUrlValidationCallback);
// Return all the room lists in the organization.
EmailAddressCollection roomLists = service.GetRoomLists();
System.Collections.ObjectModel.Collection<EmailAddress> rooms = service.GetRooms("[email protected]");
EmailAddress roomAdress = rooms[31];
FolderId folderid = new FolderId(WellKnownFolderName.Calendar, new Mailbox(roomAdress.Address));
FindItemsResults<Appointment> aps = service.FindAppointments(folderid, new CalendarView(DateTime.Now, DateTime.Now.AddHours(24)));
Если я запускаю этот код я получаю сообщение об ошибке:
{"The specified folder could not be found in the store."}.
И действительно, если бы я показал мне коллекцию всех папок для такого номера почтового ящика, нет папки внутри него.
Что я делаю неправильно? Все примеры в Интернете работают с WellKnownFolderName.Calendar.
, но когда я открываю календарь в Outlook, с теми же учетными данными, у меня нет проблемы с доступом к его. Должен ли я получить доступ к почтовому ящику еще одним способом? – murratore
Вы пытались указать учетные данные, используя service.credentials? можете ли вы использовать EWSEditor для доступа к почтовому ящику комнаты http://ewseditor.codeplex.com/ –
Добавление разрешения в папку календаря решило проблему. Например, чтобы позволить пользователю 'readonly' видеть календарные встречи на' room123': 'Add-MailboxFolderPermission -Identity [email protected]: \ Calendar -AccessRights Reviewer -User readonly @ test.example.com' –