EWS создает встречи в прошлом без уведомлений

Я работаю над синхронизацией встреч, задач из нашего приложения в Exchange и обратно.

EWS показывает встречи в календаре ресурсов (обязательных участников, необязательных участников) только в том случае, если перечисление SendInvitationsMode передается как SendInvitationsMode.SendToAllAndSaveCopy или SendInvitationsMode.SendOnlyToAll .

Если мы установим для перечисления SendInvitationsMode значение SendInvitationsMode. SendToNone, тогда встреча сохранится только в календаре Организатора.

Образец кода

        Appointment meeting1 = new Appointment(service);

        ImpersonatedUserId impersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "organizer email");
        service.ImpersonatedUserId = impersonatedUserId;
        meeting1.Subject = "Checking responses";
        meeting1.Body = "The purpose of this meeting is to check status.";
        meeting1.Start = new DateTime(2017, 4,14, 12, 0, 0);
        meeting1.End = meeting1.Start.AddHours(2);
        meeting1.Location = "Conf Room";

        Attendee attendee = new Attendee();
        attendee.Address = "attendee email address";
        attendee.Name = "name";
        meeting1.RequiredAttendees.Add(attendee);
        meeting1.Save(SendInvitationsMode.SendToNone);

Есть ли способ вставлять встречи, которые все участники могут видеть в своих календарях без уведомлений по электронной почте? Не имеет смысла отправлять уведомление о прошлых встречах.


person Sivakrishna Donepudi    schedule 06.03.2017    source источник


Ответы (1)


Вы используете клиентский API, поэтому вызов API, который вы используете, имеет доступ только к почтовому ящику организатора. Если вы хотите что-то делать с почтовыми ящиками посетителей (и вам также необходимо понимать, что посетители могут быть внутренними или внешними, поэтому у вас здесь общая логика не работает), вам нужно изменить контекст безопасности, например, с олицетворения Организатора на олицетворение конкретного посетителя. а затем примите собрание для этого участника и всех участников, которых вы хотите обновить.

Другая ваша логическая ошибка заключается в том, что вам нужно учитывать, принял ли участник или отклонил ответ на собрание в первую очередь. Участники поддерживают свой собственный элемент Exchange Store для каждой встречи, и клиент может поддерживать статус/обновления, а не сервер. Единственным исключением из этого правила является почтовый ящик комнаты, в котором включено автоматическое принятие, но даже в этом случае есть помощник по почтовому ящику, который управляет обработкой приглашений, обновлений и отмен.

person Glen Scales    schedule 07.03.2017