Freigeben über


Arbeiten mit Ordnern unter Verwendung von EWS in Exchange

Erfahren Sie, wie Ordner mithilfe der verwalteten EWS-API oder EWS in Exchange erstellt, abgerufen, aktualisiert und gelöscht werden können.

EWS in Exchange verwendet Ordner, um Postfächer zu strukturieren und zu organisieren. Mithilfe der EWS Managed API oder EWS können Sie neue Ordner erstellen und Ordner abrufen, aktualisieren und löschen. Jeder der in der folgenden Tabelle aufgeführten Methoden oder Vorgehensweisen wird in einem Folderobjekt, einem Ordner-Typ oder einer der abgeleiteten Ordnerklassen oder -typen ausgeführt.

Tabelle 1. Methoden und Vorgänge für das Erstellen, Abrufen, Aktualisieren und Löschen von Ordnern

Gewünschte Aktion EWS Managed API-Methode EWS-Vorgang
Erstellen eines Ordners Folder.Save CreateFolder
Erstellen einer Ordnerhierarchie Nicht verfügbar CreateFolderPath
Einen Ordner abrufen Folder.Bind GetFolder
Abrufen einer Ordnerhierarchie Folder.FindFolders FindFolder
Aktualisieren eines Ordners Folder.Update UpdateFolder
Löschen eines Ordners Folder.Delete DeleteFolder

Erstellen eines Ordners mithilfe der verwalteten EWS-API

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe der Folder-Klasse ein neuer allgemeiner Ordner mit dem DisplayName "Benutzerdefinierter Ordner" und dem FolderClass-Eigenschaftswert "IPF.Note" erstellt wird. Die Folder.Save-Methode speichert den Ordner als untergeordneten Ordner des Posteingangsordners.

In diesen Beispielen wird davon ausgegangen, dass service ein gültiges ExchangeService-Objekt ist und der Benutzer bei einem Exchange-Server authentifiziert wurde.

// Create a custom folder.
Folder folder = new Folder(service);
folder.DisplayName = "Custom Folder";
folder.FolderClass = "IPF.Note";
// Save the folder as a child folder of the Inbox.
folder.Save(WellKnownFolderName.Inbox);

Um einen anderen Ordnertyp wie CalendarFolder, ContactsFolder, SearchFolder oder TasksFolder zu erstellen, erstellen Sie eine neue Instanz der spezifischen Klasse (anstelle der generischen Folder-Klasse ), und legen Sie die FolderClass-Eigenschaft nicht fest. Im folgenden Codebeispiel wird beispielsweise gezeigt, wie ein neuer TasksFolder erstellt wird.

// Create a custom Tasks folder.
TasksFolder folder = new TasksFolder(service);
folder.DisplayName = "Custom Tasks";
// Save the folder as a child folder in the Inbox folder.
// This method call results in a CreateFolder call to EWS.
folder.Save(WellKnownFolderName.Inbox);

Wenn Sie versuchen, eine Instaz einer angegebenen Klasse zu erstellen und dabei auch die FolderClass -Eigenschaft festlegen, wird der Fehler ErrorNoFolderClassOverride ausgelöst.

Beachten Sie, dass Sie die Erstellung mehrerer Ordner in einem einzigen Methodenaufruf mithilfe der EWS Managed API nicht stapelweise verarbeiten können.

Erstellen eines Ordners mithilfe von EWS

Sie können einen einzelnen Ordner oder mehrere Ordner mithilfe von EWS erstellen.

Um einen einzelnen Ordner zu erstellen, senden Sie eine CreateFolder-Vorgangsanforderungsnachricht. Die CreateFolder-Vorgangsanforderung gibt an, dass der übergeordnete Ordner der Posteingang, der DisplayName "Benutzerdefinierter Ordner" und der FolderClass-Elementwert "IPF.Note" ist.

Dies ist auch die XML-Anforderung, die EWS Managed API sendet, wenn Sie einen neuen Ordner erstellen und die Folder.Save-Methode aufrufen.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
               xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2007_SP1" />
  </soap:Header>
  <soap:Body>
    <m:CreateFolder>
      <m:ParentFolderId>
        <t:DistinguishedFolderId Id="inbox" />
      </m:ParentFolderId>
      <m:Folders>
        <t:Folder>
          <t:FolderClass>IPF.Note</t:FolderClass>
          <t:DisplayName>Custom Folder</t:DisplayName>
        </t:Folder>
      </m:Folders>
    </m:CreateFolder>
  </soap:Body>
</soap:Envelope>

Der Server antwortet auf die CreateFolder-Anforderung mit einer CreateFolderResponse-Nachricht, die den ResponseCode-Wert NoError umfasst, der angibt, dass der Ordner erfolgreich erstellt wurde, sowie die FolderId der neu erstellten Nachricht.

Um mehrere Ordner zu erstellen, schließen Sie mehrere Folder-Elemente in die CreateFolder-Vorgangsanforderungsnachricht ein. Alle neuen Ordner müssen sich in demselben übergeordneten Ordner befinden.

Erstellen einer Ordnerhierarchie mithilfe von EWS

Mithilfe des CreateFolderPath-Vorgangs in EWS können Sie mit einem einzigen Aufruf eine Ordnerhierarchie erstellen. Die gleiche Funktionalität ist in derEWS Managed API nicht verfügbar. Wenn Sie die EWS Managed API verwenden, können Sie stattdessen Ordner nacheinander erstellen, wie in Erstellen eines Ordners mithilfe von EWS dargestellt.

Hinweis

Die verwaltete EWS-API implementiert diese Funktion nicht.

Abrufen eines Ordners mithilfe der EWS Managed API

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe der Folder.Bind-Methode der Posteingangsordner abgerufen werden kann. Es hat sich bewährt, die zurückgegebenen Eigenschaften auf die für die Anwendung erforderlichen einzuschränken. In diesem Beispiel werden die zurückgegebenen Eigenschaften so eingeschränkt, dass nur die Id-Eigenschaft durch Erstellen eines PropertySet-Objekts und das Anwenden des IdOnly-Werts auf die BasePropertySet-Eigenschaft eingeschlossen wird.

In diesem Beispiel wird davon ausgegangen, dass service ein gültiges ExchangeService-Objekt ist und der Benutzer bei einem Exchange-Server authentifiziert wurde.

// As a best practice, limit the properties returned to only those that are required.
// In this scenario, you only need the FolderId.
PropertySet propSet = new PropertySet(BasePropertySet.IdOnly);
// Bind to an existing folder and get only the properties specified in the PropertySet.
// This method call results in a GetFolder call to EWS.
Folder rootfolder = Folder.Bind(service, WellKnownFolderName.Inbox, propSet);

Wenn zusätzliche Eigenschaften zurückgegeben werden sollen, fügen Sie Eigenschaften aus der FolderSchema-Klasse zu PropertySet hinzu, oder verwenden Sie eine der überladenen Bind-Methoden, die alle Eigenschaften der ersten Klasse zurückgeben.

Beachten Sie, dass Sie mit der EWS Managed API nicht mehrere Ordner gleichzeitig abrufen können. Sie müssen die Bind -Methode in jedem Ordner separat aufrufen.

Abrufen eines Ordners mithilfe von EWS

Sie können einen einzelnen Ordner oder mehrere Ordner mithilfe von EWS abrufen.

Um einen einzelnen Ordner abzurufen, senden Sie eine GetFolder-Vorgangsanforderungsnachricht an den Server. Im folgenden Beispiel wird BaseShape auf IdOnly festgelegt, es wird also nur die FolderId des angegebenen Ordners zurückgegeben. Das FolderIds-Element gibt an, dass der abzurufende Ordner der Posteingangsordner ist.

Dies ist auch die XML-Anforderung, die EWS Managed API sendet, wenn Sie mithilfe der Folder.Bind-Methode eine Bindung an einen Ordner erstellen.

Um mehrere Ordner zu abzurufen, schließen Sie mehrere FolderIds-Elemente in die GetFolder-Vorgangsanforderungsnachricht ein.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2007_SP1" />
  </soap:Header>
  <soap:Body>
    <m:GetFolder>
      <m:FolderShape>
        <t:BaseShape>IdOnly</t:BaseShape>
      </m:FolderShape>
      <m:FolderIds>
        <t:DistinguishedFolderId Id="inbox" />
      </m:FolderIds>
    </m:GetFolder>
  </soap:Body>
</soap:Envelope>

Das folgende XML-Beispiel zeigt die GetFolderResponse-Nachricht, die vom Server an den Client als Antwort auf die GetFolder-Vorgangsanforderung gesendet wird. Sie enthält nur den FolderId-Wert für den Ordner "Posteingang". Die Werte für einige Attribute und Elemente wurden zur besseren Lesbarkeit gekürzt.

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:ServerVersionInfo MajorVersion="15"
                         MinorVersion="0"
                         MajorBuildNumber="800"
                         MinorBuildNumber="16"
                         Version="V2_6"
                         xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types"
                         xmlns="http://schemas.microsoft.com/exchange/services/2006/types"
                         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <m:GetFolderResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
                         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
      <m:ResponseMessages>
        <m:GetFolderResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:Folders>
            <t:Folder>
              <t:FolderId Id="AAAENAAA=" ChangeKey="AQAAABYAAAAPxolXAHv3TaHUnjW8wWqXAAAEkbCr"/>
            </t:Folder>
          </m:Folders>
        </m:GetFolderResponseMessage>
      </m:ResponseMessages>
    </m:GetFolderResponse>
  </s:Body>
</s:Envelope>

Abrufen einer Ordnerhierarchie mithilfe der EWS Managed API

Im folgenden Codebeispiel wird gezeigt, wie die Unterordner für einen bestimmten Stammordner abgerufen werden. In diesem Beispiel werden die Unterordner des MsgFolderRoot-Ordners abgerufen, der der Stamm der IMP-Unterstruktur ist (in der Postfachordner und -elemente gespeichert sind).

In diesem Beispiel wird ein FolderView-Klassenobjekt erstellt, um die Ergebnisse der Folder.FindFolders-Methodenantwort einzuschränken. Durch dieses Szenario werden die Eigenschaften so eingeschränkt, dass Folgendes zurückgegeben wird: Id, DisplayName und die erweiterte Eigenschaft, die angibt, ob der Ordner ein ausgeblendeter Ordner ist. Legen Sie den FolderView.Traversal-Wert auf "Deep" fest, um eine rekursive Suche auszuführen, sodass der Server die Unterordner abruft, und legen Sie den Stammordner auf MsgFolderRoot fest, damit der Server alle Ordner des Benutzers zurückgibt (und der Server keine Systemordner in der Nicht-IPM-Unterstruktur zurückgibt).

In diesem Beispiel wird davon ausgegangen, dass service ein gültiges ExchangeService-Objekt ist und der Benutzer bei einem Exchange-Server authentifiziert wurde.

// Create a new folder view, and pass in the maximum number of folders to return.
FolderView view = new FolderView(folderViewSize);
// Create an extended property definition for the PR_ATTR_HIDDEN property,
// so that your results will indicate whether the folder is a hidden folder.
ExtendedPropertyDefinition isHiddenProp = new ExtendedPropertyDefinition(0x10f4, MapiPropertyType.Boolean);
// As a best practice, limit the properties returned to only those required.
// In this case, return the folder ID, DisplayName, and the value of the isHiddenProp
// extended property.
view.PropertySet = new PropertySet(BasePropertySet.IdOnly, FolderSchema.DisplayName, isHiddenProp);
// Indicate a Traversal value of Deep, so that all subfolders are retrieved.
view.Traversal = FolderTraversal.Deep;
// Call FindFolders to retrieve the folder hierarchy, starting with the MsgFolderRoot folder.
// This method call results in a FindFolder call to EWS.
FindFoldersResults findFolderResults = service.FindFolders(WellKnownFolderName.MsgFolderRoot, view);

Abrufen einer Ordnerhierarchie mithilfe von EWS

In den folgenden XML-Beispielen wird veranschaulicht, wie der FindFolder-Vorgang zum Abrufen einer Ordnerhierarchie mithilfe von EWS verwendet wird. In diesem Beispiel werden der msgfolderroot-Ordner, der der Stamm der IPM-Unterstruktur ist, sowie alle Unterordner abgerufen. Das Traversal-Attribut wird auf Deep festgelegt, sodass der Server eine rekursive Suche der Ordnerhierarchie ausführt und nur Ordner und Unterordner unter dem angegebenen Stamm in der Antwort zurückgibt. In diesem Beispiel ist das BaseShape-Element auf IdOnly festgelegt, sodass der Server nur das FolderId-Element zurückgibt. Um die Ausgabe leichter verständlich zu machen, schließen Sie das DisplayName-Element in Ihre Ergebnisse mit ein, indem Sie dieses in das AdditionalProperties-Element in der Anforderung zusammen mit dem ExtendedFieldURI-Wert für die PR_ATTR_HIDDEN -Eigenschaft einschließen, sodass Sie wissen, ob die Ordner ausgeblendete Ordner sind.

Dies ist auch die XML-Anforderung, die EWS Managed API sendet, wenn Sie die FindFolders-Methode aufrufen.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
               xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2007_SP1" />
  </soap:Header>
  <soap:Body>
    <m:FindFolder Traversal="Deep">
      <m:FolderShape>
        <t:BaseShape>IdOnly</t:BaseShape>
        <t:AdditionalProperties>
          <t:FieldURI FieldURI="folder:DisplayName" />
          <t:ExtendedFieldURI PropertyTag="4340"
                              PropertyType="Boolean" />
        </t:AdditionalProperties>
      </m:FolderShape>
      <m:IndexedPageFolderView MaxEntriesReturned="100"
                               Offset="0"
                               BasePoint="Beginning" />
      <m:ParentFolderIds>
        <t:DistinguishedFolderId Id="msgfolderroot" />
      </m:ParentFolderIds>
    </m:FindFolder>
  </soap:Body>
</soap:Envelope>

Das folgende XML-Beispiel zeigt die FindFolderResponse-Nachricht, die vom Server an den Client als Antwort auf die FindFolder-Vorgangsanforderung gesendet wird. Sie enthält nur dieFolderId, den DisplayName und den Wert der erweiterten PR_ATTR_HIDDEN -Eigenschaft für alle Unterordner unter dem msgrootfolder-Ordner. Wenn das Value-Element auf "true" festgelegt ist, wird der Ordner in der Clientansicht ausgeblendet.

Dies ist auch die XML-Antwort, die die EWS Managed API sendet, wenn Sie mehrere Ordner mithilfe der FindFolder-Methode abrufen. Die Werte für einige Attribute und Elemente wurden zur besseren Lesbarkeit gekürzt, und einige Ordner wurden aus Platzgründen nicht eingeschlossen.

<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:ServerVersionInfo MajorVersion="15"
                         MinorVersion="0"
                         MajorBuildNumber="815"
                         MinorBuildNumber="6"
                         Version="V2_7"
                         xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types"
                         xmlns="http://schemas.microsoft.com/exchange/services/2006/types"
                         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <m:FindFolderResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
                          xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
      <m:ResponseMessages>
        <m:FindFolderResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:RootFolder IndexedPagingOffset="16"
                        TotalItemsInView="16"
                        IncludesLastItemInRange="true">
            <t:Folders>
              <t:CalendarFolder>
                <t:FolderId Id="AAAEOAAA="
                            ChangeKey="AgAAABYAAAAPxolXAHv3TaHUnjW8wWqXAAAAAAA3"/>
                <t:DisplayName>Calendar</t:DisplayName>
                <t:ExtendedProperty>
                  <t:ExtendedFieldURI PropertyTag="0x10f4"
                                      PropertyType="Boolean"/>
                  <t:Value>false</t:Value>
                </t:ExtendedProperty>
              </t:CalendarFolder>
              <t:ContactsFolder>
                <t:FolderId Id="AAAEPAAA="
                            ChangeKey="AwAAABYAAAAPxolXAHv3TaHUnjW8wWqXAAAAAAA4"/>
                <t:DisplayName>Contacts</t:DisplayName>
                <t:ExtendedProperty>
                  <t:ExtendedFieldURI PropertyTag="0x10f4"
                                      PropertyType="Boolean"/>
                  <t:Value>false</t:Value>
                </t:ExtendedProperty>
              </t:ContactsFolder>
              <t:ContactsFolder>
                <t:FolderId Id="AAAUKAAA="
                            ChangeKey="AwAAABYAAAAPxolXAHv3TaHUnjW8wWqXAAAAAAS5"/>
                <t:DisplayName>Recipient Cache</t:DisplayName>
                <t:ExtendedProperty>
                  <t:ExtendedFieldURI PropertyTag="0x10f4"
                                      PropertyType="Boolean"/>
                  <t:Value>true</t:Value>
                </t:ExtendedProperty>
              </t:ContactsFolder>
              <t:Folder>
                <t:FolderId Id="AAAUJAAA="
                            ChangeKey="AQAAABYAAAAPxolXAHv3TaHUnjW8wWqXAAAAAASx"/>
                <t:DisplayName>Conversation Action Settings</t:DisplayName>
                <t:ExtendedProperty>
                  <t:ExtendedFieldURI PropertyTag="0x10f4"
                                      PropertyType="Boolean"/>
                  <t:Value>true</t:Value>
                </t:ExtendedProperty>
              </t:Folder>
…
            </t:Folders>
          </m:RootFolder>
        </m:FindFolderResponseMessage>
      </m:ResponseMessages>
    </m:FindFolderResponse>
  </s:Body>
</s:Envelope>

Aktualisieren eines Ordners mithilfe der EWS Managed API

Im folgenden Codebeispiel wird veranschaulicht, wie der Anzeigename eines Ordners mithilfe der EWS Managed API aktualisiert wird.

Erstellen Sie zuerst einen PropertySet, um die Anzahl von Eigenschaften einzuschränken, die der Server in der Folder.Bind-Antwort zurückgibt. Es wird empfohlen, das IdOnlyBasePropertySet zu verwenden, um Aufrufe an die Exchange-Datenbank zu reduzieren. Verwenden Sie anschließend die Bind -Methode, um eine Bindung an den zu aktualisierenden Ordner herzustellen. Aktualisieren Sie dann die DisplayName-Eigenschaft, und verwenden Sie die Folder.Update-Methode, um die Änderungen zu speichern.

In diesem Beispiel wird davon ausgegangen, dass service ein gültiges ExchangeService-Objekt ist und dass der Benutzer für einen Exchange-Server authentifiziert wurde. Die lokale Variable folderId ist die ID des zu aktualisierenden Ordners.

// As a best practice, only include the ID value in the PropertySet.
PropertySet propertySet = new PropertySet(BasePropertySet.IdOnly);
// Bind to an existing folder and get the FolderId.
// This method call results in a GetFolder call to EWS.
Folder folder = Folder.Bind(service, folderId, propertySet);
// Update the display name of the folder.
folder.DisplayName = "Updated folder name";
// Save the updates.
// This method call results in an UpdateFolder call to EWS.
folder.Update();

Aktualisieren eines Ordners mithilfe von EWS

In den folgenden XML-Beispielen wird veranschaulicht, wie der Anzeigename eines Ordners mithilfe von EWS aktualisiert wird.

Senden Sie zunächst eine GetFolder-Vorgangsanforderungsnachricht an den zu aktualisierenden Ordner, wie in Abrufen einer Ordnerhierarchie mithilfe von EWS dargestellt.

Senden Sie dann eine UpdateFolder-Vorgangsanforderungsnachricht an den Server, um einen Ordner zu aktualisieren. Die UpdateFolder-Vorgangsanforderung aktualisiert den DisplayName in "Aktualisierten benutzerdefinierten Ordner".

Dies ist auch die XML-Anforderung, die die EWS Managed API sendet, wenn Sie einen Ordner mithilfe der Folder.Update-Methode aktualisieren. Die Werte einiger Attribute und Elemente wurden zur besseren Lesbarkeit gekürzt.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2007_SP1" />
  </soap:Header>
  <soap:Body>
    <m:UpdateFolder>
      <m:FolderChanges>
        <t:FolderChange>
          <t:FolderId Id="OrV9ZAAA=" ChangeKey="AQAAABYAAABVzRdyy/cHS4XTC9itCRdUAAAOrXWb" />
          <t:Updates>
            <t:SetFolderField>
              <t:FieldURI FieldURI="folder:DisplayName" />
              <t:Folder>
                <t:DisplayName>Updated Custom Folder</t:DisplayName>
              </t:Folder>
            </t:SetFolderField>
          </t:Updates>
        </t:FolderChange>
      </m:FolderChanges>
    </m:UpdateFolder>
  </soap:Body>
</soap:Envelope>

Der Server antwortet auf die UpdateFolder-Anforderung mit einer UpdateFolderResponse-Nachricht, die den ResponseCode-Wert NoError und die FolderId des Ordners enthält, der mit einem aktualisierten ChangeKey-Attributwert aktualisiert wurde.

Löschen eines Ordners mithilfe der EWS Managed API

Dieser Artikel enthält ein einfaches Beispiel, in dem gezeigt wird, wie ein Ordner mithilfe der EWS Managed API gelöscht wird. Weitere Informationen zum Löschen von Ordnern finden Sie unter Löschen von Elementen mithilfe von EWS in Exchange.

Um einen Ordner mithilfe der EWS Managed API zu löschen, verwenden Sie zuerst die Folder.Bind-Methode, um das Dienstobjekt an den zu löschenden Ordner zu binden. Verwenden Sie dann die Folder.Delete-Methode, um den Ordner mithilfe des HardDelete-Löschmodus zu löschen.

In diesem Beispiel wird davon ausgegangen, dass service ein gültiges ExchangeService-Objekt ist und der Benutzer bei einem Exchange-Server authentifiziert wurde. Die lokale Variable folderId ist die ID des zu löschenden Ordners.

// Bind to an existing folder and get all its properties.
// This method call results in a GetFolder call to EWS.
Folder folder = Folder.Bind(service, folderId);
// HardDelete the folder.
// This method call results in a DeleteFolder call to EWS.
folder.Delete(DeleteMode.HardDelete);

Löschen eines Ordners mithilfe von EWS

Dieser Artikel enthält ein einfaches Beispiel, in dem gezeigt wird, wie ein Ordner mithilfe von EWS gelöscht wird. Weitere Informationen zum Löschen von Ordnern finden Sie unter Löschen von Elementen mithilfe von EWS in Exchange.

Um einen Ordner mit EWS zu löschen, senden Sie zuerst eine GetFolder-Vorgangsanforderungsnachricht, damit der Ordner wie in Abrufen eines Ordners mithilfe von EWS gezeigt aktualisiert wird.

Senden Sie als Nächstes eine DeleteFolder-Vorgangsanforderungsnachricht an den Server, um den Ordner zu löschen. Die DeleteFolder-Vorgangsanforderung gibt an, dass der DeleteTypeHardDelete ist und die FolderId des zu löschenden Ordners umfasst.

Dies ist auch die XML-Antwort, die die EWS Managed API sendet, wenn Sie einen Ordner mithilfe der Folder.Delete-Methode löschen. Die Werte für einige Attribute und Elemente wurden zur besseren Lesbarkeit gekürzt, und einige Ordner wurden aus Platzgründen nicht eingeschlossen.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
               xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2007_SP1" />
  </soap:Header>
  <soap:Body>
    <m:DeleteFolder DeleteType="HardDelete">
      <m:FolderIds>
        <t:FolderId Id="OrV9ZAAA=" ChangeKey="AQAAABYAAABVzRdyy/cHS4XTC9itCRdUAAAOrXWf" />
      </m:FolderIds>
    </m:DeleteFolder>
  </soap:Body>
</soap:Envelope>

Der Server antwortet auf die DeleteFolder-Anforderung mit einer DeleteFolderResponse-Nachricht, die den ResponseCode-Wert NoError umfasst, der angibt, dass der Ordner erfolgreich gelöscht wurde.

Nächste Schritte

Nachdem Sie die Ordner auf dem Server abgerufen haben oder Änderungen an Ordner vorgenommen haben, möchten Sie vielleicht Ihre Ordnerhierarchie synchronisieren oder Benachrichtigungen zu Änderungen von Ordnern auf dem Server abonnieren.

Siehe auch