웹에서 개발 환경을 만들어 주는 사이트

( Python, Go, Node.js, Ruby, Django )


참조 URL
  1. http://www.nitrous.io



 웹에서 Python, Go, Node.js, Ruby, Django를 개발할 수 있도록 지원한다. 쉽게 개발하고 테스트를 할 수 있으니 입문자에게는 좋은 개발 환경이 될 것이다.







AppDomain.CurrentDomain의

기본 폴더 정의값 가져오기



var applicationBasePath = AppDomain.CurrentDomain.BaseDirectory;
applicationBasePath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

[코드1] 실행 되는 폴더의 기본 폴더를 가져온다.


 위 코드는 프로그램이 실행되는 환경의 폴더 위치를 가져오는 방법이다. 이 방법을 통해 디버깅이나 다른 용도로 로그를 사용할 때 쉽게 찾을 수 있도록 할 수 있을 것이다. 사용 방법을 "코드2"와 같이 할 수 있을 것이다.



public static object logLock = new object();
 
/// <summary>
/// 로그 저장
/// </summary>
/// <param name="str"></param>
/// <remarks>
/// 로그를 저장하고 쓰레드 안정성을 가지고 있다.
/// </remarks>
public void WriteLog(string str)
{
    var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory"log.txt");
    lock (logLock)
    {
        var sw = File.AppendText(path);
        sw.WriteLine(str);
        sw.Flush();
        sw.Close();
        sw = null;
    }
}

[코드2] 로그 저장 메소드



 이와 같이 사용하면 실행 폴더의 가장 상위에 "log.txt" 파일이 생성되며 로그가 저장이 될 것이다.


Go Programming Language


참조 URL
  1. http://golang.org/
  2. http://go-tour-kr.appspot.com/
  3. http://blog.golang.kr/
  4. Go (프로그래밍 언어) - wiki



 Go 언어는 구글이 개발한 가비지 컬렉션 기능이 있는 컴파일과 병행성을 지원하는 프로그래밍 언어이다. Go 언어는 아래와 같은 목적로 개발이 되었다.


  • Go는 정적 타입 컴파일 언어의 효율성과 동적 언어처럼 쉬운 프로그래밍을 할 수 있도록 하는 것을 목표로 한다
  • 안전성: 타입 안전성과 메모리 안전성
  • 병행성과 통신을 위한 훌륭한 지원
  • 효과적인 가비지 컬렉션
  • 빠른 컴파일



https://www.nitrous.io

사이트에 보면 웹에서 쉽게 개발 환경을 구축할 수 있도록 도와주는 사이트인데 이곳에서 Go 언어를 지원하니 테스트를 해 볼 수 있을 것이다.





웹에서 XML 스트링을 보기 좋게 

들여쓰기 해주는 사이트


참조 URL
  1. http://www.shell-tools.net/?op=xml_format



 아래 그림과 같이 일렬도 붙어 있는 XML 형식을 붙여 넣고 "쿼리전송" 버튼을 누르면 이쁜 포맷에 맞게 변환되어 알아 보기 쉽게 된다. 손으로 일일이 맞추다가 혹시나 하여 검색하여 알게된 사이트다.











[Exchange] Push Notification xml message from Exchange 2013 - Calendar case #2




 - 기본 캘린더에서 일정 만들기 이벤트 정보

 - 기본 캘린더 이외에 일정 만들기 이벤트 정보

 - 추가 캘린더 생성 이벤트 정보


// 기본 캘린더에서 일정 만들기
<?xml version="1.0" encoding="utf-8"?>
<soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">
  <soap11:Header>
    <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>
  </soap11:Header>

  <soap11:Body>
    <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:SendNotificationResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>

          <m:Notification>
            <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAAPUpvAp05DBHuSco6cBcV3VXMbPEc0fQCA==</t:SubscriptionId>

            <t:PreviousWatermark>AQAAABEyGxfwZ9dAopfl5usy5gc/DVAAAAAAAAE=</t:PreviousWatermark>

            <t:MoreEvents>false</t:MoreEvents>

            <t:CreatedEvent>
              <t:Watermark>AQAAABEyGxfwZ9dAopfl5usy5gffEVAAAAAAAAE=</t:Watermark>

              <t:TimeStamp>2013-07-05T09:18:40Z</t:TimeStamp>

              <t:ItemId Id="AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgBGAAAAAAD14fnht2jpSpaypawvJwO3BwA2K3ZCpui2TKCftY0IT00tAAAAAAAPAAA2K3ZCpui2TKCftY0IT00tAAAisAnnAAA=" ChangeKey="DwAAAA=="/>
              <t:ParentFolderId Id="AQMkAGM2NgBjNDAxYS0zMTAyLTRhMzQtODI0OS03ZjU3MjIAY2ViZjQyAC4AAAP14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAADDwAAAA==" ChangeKey="AQAAAA=="/>
            </t:CreatedEvent>

            <t:ModifiedEvent>
              <t:Watermark>AQAAABEyGxfwZ9dAopfl5usy5gfhEVAAAAAAAAE=</t:Watermark>

              <t:TimeStamp>2013-07-05T09:18:40Z</t:TimeStamp>

              <t:FolderId Id="AQMkAGM2NgBjNDAxYS0zMTAyLTRhMzQtODI0OS03ZjU3MjIAY2ViZjQyAC4AAAP14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAADDwAAAA==" ChangeKey="AgAAAA=="/>
              <t:ParentFolderId Id="AQMkAGM2NgBjNDAxYS0zMTAyLTRhMzQtODI0OS03ZjU3MjIAY2ViZjQyAC4AAAP14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAADCgAAAA==" ChangeKey="AQAAAA=="/>
            </t:ModifiedEvent>

          </m:Notification>

        </m:SendNotificationResponseMessage>

      </m:ResponseMessages>

    </m:SendNotification>

  </soap11:Body>

</soap11:Envelope>

 
 
 
// 기본 캘린더 외에서 일정 만들기
<?xml version="1.0" encoding="utf-8"?>
<soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">
  <soap11:Header>
    <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>
  </soap11:Header>

  <soap11:Body>
    <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:SendNotificationResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>

          <m:Notification>
            <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAAPUpvAp05DBHuSco6cBcV3VXMbPEc0fQCA==</t:SubscriptionId>

            <t:PreviousWatermark>AQAAABEyGxfwZ9dAopfl5usy5gfJ9k8AAAAAAAE=</t:PreviousWatermark>

            <t:MoreEvents>false</t:MoreEvents>

            <t:ModifiedEvent>
              <t:Watermark>AQAAABEyGxfwZ9dAopfl5usy5gcO+08AAAAAAAE=</t:Watermark>

              <t:TimeStamp>2013-07-05T09:17:12Z</t:TimeStamp>

              <t:FolderId Id="AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgAuAAAAAAD14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAAisA3KAAA=" ChangeKey="AgAAAA=="/>
              <t:ParentFolderId Id="AQMkAGM2NgBjNDAxYS0zMTAyLTRhMzQtODI0OS03ZjU3MjIAY2ViZjQyAC4AAAP14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAADDwAAAA==" ChangeKey="AQAAAA=="/>
            </t:ModifiedEvent>

          </m:Notification>

        </m:SendNotificationResponseMessage>

      </m:ResponseMessages>

    </m:SendNotification>

  </soap11:Body>

</soap11:Envelope>

 
 
 
// 새로운 캘린더를 만들 때
<?xml version="1.0" encoding="utf-8"?>
<soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">
  <soap11:Header>
    <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>
  </soap11:Header>

  <soap11:Body>
    <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:SendNotificationResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>

          <m:Notification>
            <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAAPUpvAp05DBHuSco6cBcV3VXMbPEc0fQCA==</t:SubscriptionId>

            <t:PreviousWatermark>AQAAABEyGxfwZ9dAopfl5usy5gfhEVAAAAAAAAE=</t:PreviousWatermark>

            <t:MoreEvents>false</t:MoreEvents>

            <t:CreatedEvent>
              <t:Watermark>AQAAABEyGxfwZ9dAopfl5usy5gfkI1AAAAAAAAE=</t:Watermark>

              <t:TimeStamp>2013-07-05T09:19:39Z</t:TimeStamp>

              <t:FolderId Id="AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgAuAAAAAAD14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAAisBGzAAA=" ChangeKey="AQAAAA=="/>
              <t:ParentFolderId Id="AQMkAGM2NgBjNDAxYS0zMTAyLTRhMzQtODI0OS03ZjU3MjIAY2ViZjQyAC4AAAP14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAADDwAAAA==" ChangeKey="AQAAAA=="/>
            </t:CreatedEvent>

            <t:ModifiedEvent>
              <t:Watermark>AQAAABEyGxfwZ9dAopfl5usy5gflI1AAAAAAAAE=</t:Watermark>

              <t:TimeStamp>2013-07-05T09:19:39Z</t:TimeStamp>

              <t:FolderId Id="AQMkAGM2NgBjNDAxYS0zMTAyLTRhMzQtODI0OS03ZjU3MjIAY2ViZjQyAC4AAAP14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAADDwAAAA==" ChangeKey="AgAAAA=="/>
              <t:ParentFolderId Id="AQMkAGM2NgBjNDAxYS0zMTAyLTRhMzQtODI0OS03ZjU3MjIAY2ViZjQyAC4AAAP14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAADCgAAAA==" ChangeKey="AQAAAA=="/>
            </t:ModifiedEvent>

            <t:ModifiedEvent>
              <t:Watermark>AQAAABEyGxfwZ9dAopfl5usy5gfnI1AAAAAAAAE=</t:Watermark>

              <t:TimeStamp>2013-07-05T09:19:39Z</t:TimeStamp>

              <t:FolderId Id="AAMkAGM2NmM0MDFhLTMxMDItNGEzNC04MjQ5LTdmNTcyMmNlYmY0MgAuAAAAAAD14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAAisBGzAAA=" ChangeKey="AgAAAA=="/>
              <t:ParentFolderId Id="AQMkAGM2NgBjNDAxYS0zMTAyLTRhMzQtODI0OS03ZjU3MjIAY2ViZjQyAC4AAAP14fnht2jpSpaypawvJwO3AQA2K3ZCpui2TKCftY0IT00tAAADDwAAAA==" ChangeKey="AQAAAA=="/>
            </t:ModifiedEvent>

          </m:Notification>

        </m:SendNotificationResponseMessage>

      </m:ResponseMessages>

    </m:SendNotification>

  </soap11:Body>

</soap11:Envelope>







Get-AdUser, Active Directory Query, LDAP


참조 URL
  1. http://technet.microsoft.com/en-us/library/ee617241.aspx



Active Directory를 파워쉘 명령으로 사용자를 가져오는 방안이다.


 

Get-AdUser -Filter {(DepartmentNumber -eq "C98S0205") -and (ObjectClass -eq "user")} | select-object SamAccountName



위 명령어를 실행하면 DepartmentNumber의 값이 "C98S0205' 값을 가져오도록 하며 ObjectClass가 "user"인 사용자를 검색해서 결과값을 보여준다. 마지막으로 select-object로 SamAccountName만 화면에 뿌려주도록 하였다.



Exchange 개발 관련 파워쉘 명령어 모음



/// <summary>
/// 메일박스에서 사용자 정보 가져오기
/// </summary>
/// <param name="dbhId">DB의 UniqueId</param>
/// <returns></returns>
private IList<string> GetUserIdFromMailBox(string dbhId)
{
    IList<string> list = new List<string>();
 
    using (var ems = new ExchangePowerShellWrapper(new AppConfigExchangePowerShellConfig()))
    {
        var results = ems.PipelineScriptInvoke("Get-MailboxDatabase \"" + dbhId + "\" | Get-Mailbox");
        foreach (PSObject item in results)
        {
            list.Add(item.Members["WindowsEmailAddress"].Value.ToString());
        }
    }
 
    return list;
}

[코드1] 특정 EDB안에 있는 사용자 추출 코드




//// MBX Worker process가 시작할 때 이벤트 처리
ManagementEventWatcher startWatcherProcess;
startWatcherProcess = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace WHERE ProcessName = '" + monitoringProcessName + "'"));   // WHERE ProcessName = 'microsoft.exchange.store.worker.exe'
startWatcherProcess.EventArrived += startWatcher_EventArrived;
startWatcherProcess.Start();
 
//// MBX Worker process가 종료될 때 이벤트 처리
ManagementEventWatcher stopWatcherProcess;
stopWatcherProcess = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace WHERE ProcessName = '" + monitoringProcessName + "'")); // WHERE ProcessName = 'microsoft.exchange.store.worker.exe'
stopWatcherProcess.EventArrived += stopWatcher_EventArrived;
stopWatcherProcess.Start();

[코드2] ManagementEventWatcher로 프로세스의 시작과 종료 이벤트를 처리



/// <summary>
/// 현재 서버의 데이터 베이스를 가져온다.
/// </summary>
/// <returns></returns>
private List<string> GetMailboxActiveDatabaseNames()
{
    var list = new List<string>();
 
    using (var ems = new ExchangePowerShellWrapper(new AppConfigExchangePowerShellConfig()))
    {
        var psScript = "Get-MailboxDatabaseCopyStatus -Active -Local | select-object DatabaseName";
        var results = ems.PipelineScriptInvoke(psScript);
        foreach (PSObject item in results)
        {
            list.Add(item.Members["DatabaseName"].Value.ToString());
        }
    }
 
    return list;
}

[코드3] 현재 서버의 Active EDB를 가져온다.




/// <summary>
/// 동적으로 사용자 추가
/// </summary>
/// <param name="emaillist"></param>
/// <returns></returns>
private Dictionary<stringstring> DynamicUserListAdd(Dictionary<stringstring> requestList)
{
    dynamicAddedDate = previousDynamicAddedDate;
    previousDynamicAddedDate = DateTime.Now.AddSeconds(-1); // 현재 시간을 포함하기 위해 1초를 뺀다.
            
    // 파워쉘 명렁으로 알아 내기
    using (var powershellInvoker = new ExchangePowerShellWrapper(new AppConfigExchangePowerShellConfig()))
    {
        foreach (var databaseName in GetMailboxActiveDatabaseNames())
        {
            // 파워쉘 실행
            //var psScript = "Get-Mailbox -Database \"" + databaseName + "\" -Filter {(WhenChanged -gt \"" + dynamicAddedDate.ToString("yyyy-MM-dd HH:mm:ss") + "\")} -ResultSize unlimited | select-object WindowsEmailAddress";
 
            // 파워쉘의 WhenChanged 필터를 통해 수정된 일자를 바탕으로 이메일 사용자 계정을 검색한다.
            log.Info(string.Format("{0} database에서 사용자를 추출하는 중입니다..."databaseName));
            Collection<Command> listCommand = new Collection<Command>();
 
            var command = new Command("Get-Mailbox");
            command.Parameters.Add("Database"databaseName);
            command.Parameters.Add("Filter""WhenChanged -gt \"" + dynamicAddedDate.ToString("yyyy-MM-dd HH:mm:ss"+ "\"");
            //command.Parameters.Add("Filter", "WhenChanged -gt \"2013-06-10 17:00:00\"");
            command.Parameters.Add("ResultSize""unlimited");
            listCommand.Add(command);
 
            var props = new string[] { "WindowsEmailAddress" };
            Command CommandSelect = new Command("Select-Object");
            CommandSelect.Parameters.Add("Property"props);
            listCommand.Add(CommandSelect);
 
            var results = powershellInvoker.PipelineInvoke(listCommand);
            log.Info(string.Format("{0} database에서 사용자 계정 {1}개 추출 하였습니다."databaseNameresults.Count));
            foreach (var user in results)
            {
                // 사용자의 이메일 주소
                var windowsEmailAddress = user.Members["WindowsEmailAddress"].Value.ToString();
 
                // 새로운 사용자만 추가
                if (!requestList.ContainsKey(windowsEmailAddress))
                {
                    requestList.Add(windowsEmailAddressdatabaseName);
                }
            }
        }
    }
 
    return requestList;
}

[코드4] 최근에 변경된 사용자만 알아내어 기존 리스트에 추가하는 코드



/// <summary>
/// 데이터베이스 명으로 사용자 리스트 가져오기
/// </summary>
/// <param name="databaseName"></param>
/// <returns></returns>
public Dictionary<stringstring> GetMailboxbyDatabaseNames(string databaseName)
{
    // 요청자 사용자 리스트
    var requestList = new Dictionary<stringstring>();
 
    // 파워쉘 명렁으로 알아 내기
    using (var powershellInvoker = new ExchangePowerShellWrapper(new AppConfigExchangePowerShellConfig()))
    {
        int mailUserCount = 0;
        var psScript = "Get-Mailbox -Database \"" + databaseName + "\" -ResultSize unlimited | select-object WindowsEmailAddress";
        foreach (var user in powershellInvoker.PipelineScriptInvoke(psScript))
        {
            // 사용자의 이메일 주소
            var windowsEmailAddress = user.Members["WindowsEmailAddress"].Value.ToString();
            var databaseNameTemp = databaseName;
 
            requestList.Add(windowsEmailAddressdatabaseName);
            mailUserCount++;
        }
 
        log.Info(string.Format("{0} database에서 {1}개의 사용자 계정이 추가 되었습니다."databaseNamemailUserCount));
    }
 
    return requestList;
}

[코드5] 데이터베이스 명으로 사용자 리스트 가져오기






Remote powershell 연결


참조 URL
  1. http://binarytree.com/Blog/Blog/April-2011/Provisioning-Exchange-2010-Users.aspx

  


1. Exchange 서버에서 리모트로 연결할 수 있도록 Enable-PSRemoting 명령으로 활성화 시켜 준다.

2. 별도의 PC에서 파워쉘로 "Enter-PSSession -ConnectionURI http://epdev04/powershell -ConfigurationName Microsoft.Exchange" 입력한다.

3. 바뀐 프롬포터를 확인하고 "Get-MailBox" cmdlet가 동작하는 지 확인한다.


 위와 같이 확인이 되면 정상적으로 세팅이 된 것이다. 하지만 이렇게 remote powershell로 접속하면 익스체인지에서 제공하는 명령어만 동작이 된다. 말하자면 기본으로 제공하는 파워쉘을 사용할 수 없고 오직 익스체인지 관련 명령만 사용할 수 있다.







Push Notification xml message from Exchange 2013

- Calendar case #1 -





 Exchagne 관련 개발을 하다가 보면 Notification 관련해서 개발해야 하는 상황이 생기게 된다. 그 중에서 Push Notification 개발을 할 때 익스체인지에 Subscription 등록을 하면 익스체인지의 내부에서 특정 이벤트가 발생하면 등록된 Uri로 관련 정보를 보내주게 되어 있다. 이때 익스체인지에서는 XML 형식으로 정보를 보내 주는데 케이스 바이 케이스로 분석해서 사용해야 한다. 이 XML에 대한 정보를 구글링을 해 보아도 쉽게 알수 없어서 직접 발로 뛰며 정리를 하여 포스팅을 하게 되었다.


 정리 내용은 아래와 같다. 각 케이스는 같이 포함되어 있으니 참고 하면 되겠다.


// 자신이 일정 생성 - 반복일정 없음, 참여자 없음 <?xml version="1.0" encoding="utf-8"?> <soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">   <soap11:Header>     <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>   </soap11:Header>   <soap11:Body>     <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">       <m:ResponseMessages>         <m:SendNotificationResponseMessage ResponseClass="Success">           <m:ResponseCode>NoError</m:ResponseCode>           <m:Notification>             <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAAHsBYodizMxHq8smOasMhWv0W1xkrDrQCA==</t:SubscriptionId>             <t:PreviousWatermark>AQAAALMr+Kv/fENCqdxOTY18DcDllSYAAAAAAAA=</t:PreviousWatermark>             <t:MoreEvents>false</t:MoreEvents>             <t:CreatedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcDllSYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T02:38:29Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAXXsDkAAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:CreatedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcDolSYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T02:38:29Z</t:TimeStamp>               <t:FolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AgAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAKAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>           </m:Notification>         </m:SendNotificationResponseMessage>       </m:ResponseMessages>     </m:SendNotification>   </soap11:Body> </soap11:Envelope> // 자신이 일정 수정 - 반복일정 없음, 참여자 없음 <?xml version="1.0" encoding="utf-8"?> <soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">   <soap11:Header>     <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>   </soap11:Header>   <soap11:Body>     <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">       <m:ResponseMessages>         <m:SendNotificationResponseMessage ResponseClass="Success">           <m:ResponseCode>NoError</m:ResponseCode>           <m:Notification>             <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAAGKYGZ8qyiJGnGb/ZxvT7sUFCYYpvjrQCA==</t:SubscriptionId>             <t:PreviousWatermark>AQAAALMr+Kv/fENCqdxOTY18DcBInyYAAAAAAAE=</t:PreviousWatermark>             <t:MoreEvents>false</t:MoreEvents>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcCInyYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T04:48:08Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAXXsDjAAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcCLnyYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T04:48:08Z</t:TimeStamp>               <t:FolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AgAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAKAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>           </m:Notification>         </m:SendNotificationResponseMessage>       </m:ResponseMessages>     </m:SendNotification>   </soap11:Body> </soap11:Envelope> // 자신이 일정 삭제 - 반복일정 없음, 참여자 없음 <?xml version="1.0" encoding="utf-8"?> <soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">   <soap11:Header>     <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>   </soap11:Header>   <soap11:Body>     <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">       <m:ResponseMessages>         <m:SendNotificationResponseMessage ResponseClass="Success">           <m:ResponseCode>NoError</m:ResponseCode>           <m:Notification>             <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAAElYgCvT16VJugE9QEtytFTOB0LlwTrQCA==</t:SubscriptionId>             <t:PreviousWatermark>AQAAALMr+Kv/fENCqdxOTY18DcDPoSYAAAAAAAA=</t:PreviousWatermark>             <t:MoreEvents>false</t:MoreEvents>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcDToSYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T05:06:52Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAXXsDkAAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcDdoSYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T05:06:52Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAXXsDkAAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcDgoSYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T05:06:52Z</t:TimeStamp>               <t:FolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AgAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAKAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>           </m:Notification>         </m:SendNotificationResponseMessage>       </m:ResponseMessages>     </m:SendNotification>   </soap11:Body> </soap11:Envelope> // 자신이 일정 생성 - 무한 반복일정, 참여자 없음 <?xml version="1.0" encoding="utf-8"?> <soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">   <soap11:Header>     <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>   </soap11:Header>   <soap11:Body>     <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">       <m:ResponseMessages>         <m:SendNotificationResponseMessage ResponseClass="Success">           <m:ResponseCode>NoError</m:ResponseCode>           <m:Notification>             <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAAPPxWcQ+oj1OhLpxCLY8oqfLxZh/zDrQCA==</t:SubscriptionId>             <t:PreviousWatermark>AQAAALMr+Kv/fENCqdxOTY18DcDCtiYAAAAAAAE=</t:PreviousWatermark>             <t:MoreEvents>false</t:MoreEvents>             <t:CreatedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcDDtiYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:33:34Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAbsKN7AAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:CreatedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcDHtiYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:33:34Z</t:TimeStamp>               <t:FolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AgAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAKAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>           </m:Notification>         </m:SendNotificationResponseMessage>       </m:ResponseMessages>     </m:SendNotification>   </soap11:Body> </soap11:Envelope> // 자신이 일정 생성 - 무한 반복일정, 참여자 없음, 무한 일정 중에서 한 항목만 수정 <?xml version="1.0" encoding="utf-8"?> <soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">   <soap11:Header>     <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>   </soap11:Header>   <soap11:Body>     <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">       <m:ResponseMessages>         <m:SendNotificationResponseMessage ResponseClass="Success">           <m:ResponseCode>NoError</m:ResponseCode>           <m:Notification>             <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAAPPxWcQ+oj1OhLpxCLY8oqfLxZh/zDrQCA==</t:SubscriptionId>             <t:PreviousWatermark>AQAAALMr+Kv/fENCqdxOTY18DcDHtiYAAAAAAAE=</t:PreviousWatermark>             <t:MoreEvents>false</t:MoreEvents>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcDPtiYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:34:28Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAbsKN7AAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcDTtiYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:34:28Z</t:TimeStamp>               <t:FolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AgAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAKAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>           </m:Notification>         </m:SendNotificationResponseMessage>       </m:ResponseMessages>     </m:SendNotification>   </soap11:Body> </soap11:Envelope> // 자신이 일정 생성 - 무한 반복일정, 참여자 없음, 무한 일정 중에서 한 항목만 수정 -> 전체 되풀이 수정 ( 한 항목만 수정된 케이스는 무시 됨 - 일괄 통일 ) <?xml version="1.0" encoding="utf-8"?> <soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">   <soap11:Header>     <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>   </soap11:Header>   <soap11:Body>     <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">       <m:ResponseMessages>         <m:SendNotificationResponseMessage ResponseClass="Success">           <m:ResponseCode>NoError</m:ResponseCode>           <m:Notification>             <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAALa9b4YzhX5PpKtRqXhcWi6eGNshzzrQCA==</t:SubscriptionId>             <t:PreviousWatermark>AQAAALMr+Kv/fENCqdxOTY18DcB3uCYAAAAAAAE=</t:PreviousWatermark>             <t:MoreEvents>false</t:MoreEvents>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcB8uCYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:43:53Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAbsKN7AAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcCAuCYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:43:53Z</t:TimeStamp>               <t:FolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AgAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAKAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>           </m:Notification>         </m:SendNotificationResponseMessage>       </m:ResponseMessages>     </m:SendNotification>   </soap11:Body> </soap11:Envelope> // 자신이 일정 생성 - 무한 반복일정, 참여자 없음, 무한 일정 중에서 한 항목만 삭제 <?xml version="1.0" encoding="utf-8"?> <soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">   <soap11:Header>     <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>   </soap11:Header>   <soap11:Body>     <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">       <m:ResponseMessages>         <m:SendNotificationResponseMessage ResponseClass="Success">           <m:ResponseCode>NoError</m:ResponseCode>           <m:Notification>             <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAALa9b4YzhX5PpKtRqXhcWi6eGNshzzrQCA==</t:SubscriptionId>             <t:PreviousWatermark>AQAAALMr+Kv/fENCqdxOTY18DcDzuCYAAAAAAAE=</t:PreviousWatermark>             <t:MoreEvents>false</t:MoreEvents>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcD4uCYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:47:23Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAbsKN7AAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcAEuSYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:47:23Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAbsKN7AAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcAIuSYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:47:23Z</t:TimeStamp>               <t:FolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AgAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAKAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>           </m:Notification>         </m:SendNotificationResponseMessage>       </m:ResponseMessages>     </m:SendNotification>   </soap11:Body> </soap11:Envelope> // 자신이 일정 생성 - 무한 반복일정, 참여자 없음, 무한 일정 -> 전체 되풀이 삭제 <?xml version="1.0" encoding="utf-8"?> <soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">   <soap11:Header>     <t:RequestServerVersion xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013"/>   </soap11:Header>   <soap11:Body>     <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">       <m:ResponseMessages>         <m:SendNotificationResponseMessage ResponseClass="Success">           <m:ResponseCode>NoError</m:ResponseCode>           <m:Notification>             <t:SubscriptionId>HwBlcGRldjA0Lm15c2luZ2xlZGV2LnNhbXN1bmcuY29tEAAAALa9b4YzhX5PpKtRqXhcWi6eGNshzzrQCA==</t:SubscriptionId>             <t:PreviousWatermark>AQAAALMr+Kv/fENCqdxOTY18DcA0uSYAAAAAAAE=</t:PreviousWatermark>             <t:MoreEvents>false</t:MoreEvents>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcBBuSYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:49:15Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAbsKN7AAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcBNuSYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:49:15Z</t:TimeStamp>               <t:ItemId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwBGAAAAAACgwvh6d71RT67CyZYo1BbgBwDRsMKrxK8zQK977VpakMDFAAAAAAAPAADRsMKrxK8zQK977VpakMDFAAAbsKN7AAA=" ChangeKey="DwAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>             <t:ModifiedEvent>               <t:Watermark>AQAAALMr+Kv/fENCqdxOTY18DcBcuSYAAAAAAAE=</t:Watermark>               <t:TimeStamp>2013-06-19T06:49:15Z</t:TimeStamp>               <t:FolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAPAAA=" ChangeKey="AgAAAA=="/>               <t:ParentFolderId Id="AAMkAGUzZmI3MDUzLTdjMzctNGQ0Yi1iYjBiLWM4NTljZmY4YmQ2NwAuAAAAAACgwvh6d71RT67CyZYo1BbgAQDRsMKrxK8zQK977VpakMDFAAAAAAAKAAA=" ChangeKey="AQAAAA=="/>             </t:ModifiedEvent>           </m:Notification>         </m:SendNotificationResponseMessage>       </m:ResponseMessages>     </m:SendNotification>   </soap11:Body>

</soap11:Envelope>

[코드1] Exchange에서 보내주는 XML 메시지






+ Recent posts