0

요소가 생성되거나 Exchange Server에서 수정 된 경우 고유 ID 및 해당 연락처/달력에 대한 다른 정보가 포함 된 StreamingNotification이 표시되지만 삭제 된 항목에 대한 정보는 어떻게 얻을 수 있습니까? 목?Exchange 웹 서버에서 삭제 된 항목을 잡는 방법

어디에서 ID를 가져 옵니까? 또는 적어도 첫 번째 전자 메일 주소 또는 제목? 당신은 이 삭제 된 항목의 ID를 얻기 위해 조작이나 SyncFolderItems 작동 구독 사용할 수 있습니다

StreamingSubscription subscription = 
ser.SubscribeToStreamingNotifications(
    new FolderId[] { WellKnownFolderName.Contacts, 
    WellKnownFolderName.Calendar }, 
    EventType.Created, 
    EventType.Modified, 
    EventType.Deleted 
); 
+3

EventType.Moved를 사용해 보셨나요? 연락처를 삭제하면 삭제 된 항목으로 이동하기 때문입니다. – Jageen

+0

이제 Moved Event로 시도했지만 약간의 문제가 남아 있습니다. 하나 이상의 사용자를 선택하고 Shift + Delete 키를 누르면 영구적으로 삭제되므로이 해결 방법이 작동하지 않습니다. – Pixelmonster

+0

@ Jageen 실제로 교환 서버 2013에만 해당됩니다. cf http://msdn.microsoft.com/en-us/library/office/dn424761(v=exchg.150).aspx –

답변

2

: 나는 EWS 여기 API를 관리하고 사용하고


내 코드입니다.
referance에 -
http://msdn.microsoft.com/en-us/library/exchange/aa566188%28v=exchg.80%29.aspx
http://msdn.microsoft.com/en-us/library/exchange/aa563967%28v=exchg.80%29.aspx
나는 아이폰 OS이 개발,하지만 난 당신이 내가 코드를 공유 할 수 있도록 C#을 에 EWSAPI을 사용하는 것 같아요.

구독 작업에서 이벤트 유형 "DeletedEvent"를 지정하여 알림을받을 수 있습니다.
및 SyncFolderItems 작업에서 당신은 "변경"

<Changes> 
    <Create/> 
    <Update/> 
    <Delete/> 
</Changes> 
+0

의견을 제출하지 않았습니다. 제 업데이트를보세요. – Pixelmonster

+0

SyncFolderItems를 사용할 수 있습니까? http://msdn.microsoft.com/en-us/library/exchange/ee693003%28v=exchg.80%29.aspx – Jageen

+0

물론 SyncFolderItems를 사용하도록 코드를 변경할 수 있습니다. 정말이 솔루션을 주셔서 감사합니다,하지만 그것은 내 질문을 해결하지 않습니다. 왜냐하면 나는 StreamingNotifications가있는 또 다른 솔루션이 있어야만한다고 생각하기 때문입니다. 아니면 Microsoft가 그 사실을 정말로 잊었습니까? – Pixelmonster

6

스트리밍 알림이 "삭제"이벤트를 생성하지 않습니다 아래 태그 "삭제"에서 항목을 삭제 얻을 것이다. 삭제, 삭제 또는 Shift + Delete의 경우 모두 항목은 실제로 삭제 된 항목 폴더 중 하나로 이동됩니다. 일반 삭제는 항목을 "DeletedItems"폴더로 이동합니다. Exchange는 모든 "shift + del"항목을 보낼 쓰레기 수거통 폴더를 유지 관리합니다. 그것들을 복구 할 수는 있지만 조금 더 어렵습니다.

당신은이 기사에서 거래소의 삭제 메커니즘에 대한 자세한 내용을보실 수 있습니다 :

  1. http://msdn.microsoft.com/en-us/library/office/dn424760(v=exchg.150).aspx
  2. http://technet.microsoft.com/en-us/library/ee364755(v=exchg.150).aspx

이제 삭제 된 항목을 복구하기 위해 돌아오고,이 중요한 일이

을주의해야
  1. 항목을 복구하려는 사용자의 사서함에 대한 가장 액세스. 위임 액세스를 사용하면 삭제 된 항목을 찾을 수있는 RecoverableItems 폴더의 항목을 검색 할 수 없습니다.

  2. 삭제 된 항목의 항목 ID가 변경됩니다. Exchange의 ItemId는 폴더에서만 고유합니다. 폴더간에 항목을 이동하면 ItemId가 변경됩니다. 그러나 이전 항목 Id는 스트리밍 이벤트 속성에 발견하면 삭제 된 항목에 대한 핸들을 얻을 수있게된다

다음 코드

을 OldItemId.

private void OnNotificationEvent(object sender, NotificationEventArgs args) 
{ 
    foreach (var notification in args.Events.OfType<ItemEvent>()) 
    { 
     if (notification.EventType == EventType.Moved) 
     { 
     ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "[email protected]"); 
     var item = Item.Bind(service, notification.ItemId); 
     } 
    } 
} 
+0

내가 받아 들여야하는 대답 인 것 같지만 그 솔루션에서 더 이상 일하지 않기 때문에 해결책을 찾지 못한다. – Pixelmonster