Работа с элементами почтовых ящиков Exchange с помощью веб-служб ExchangeWork with Exchange mailbox items by using EWS in Exchange

Узнайте, как создавать, получать, редактировать и удалять элементы с помощью управляемого API EWS или служб EWS в Exchange.Learn how to create, get, update, and delete items by using the EWS Managed API or EWS in Exchange.

Вы можете работать с элементами в почтовом ящике с помощью управляемого API EWS или веб-служб Exchange.You can use the EWS Managed API or EWS to work with items in a mailbox. Вы можете использовать универсальные элементы — объекты или типы элементов EWS для выполнения некоторых операций (получения или удаления элемента по его идентификатору). Однако для получения и обновления элементов чаще всего приходится использовать строго типизированные элементы, так как вам потребуется доступ к свойствам, относящимся к строго типизированному элементу.You can use generic items — EWS Managed API Item objects or EWS Item types — to perform some operations (getting an item or deleting an item by using the item's identifier); however, most of the time you'll have to use a strongly typed item to perform a get or update operation because you'll need access to the properties that are specific to the strongly typed item.

Например, с помощью универсального элемента невозможно получить элемент, содержащий даты начала и окончания — для этого потребуется объект управляемого API EWS Appointment или тип CalendarItem.For example, you can't use a generic item to retrieve an item that contains a start and end date - you need an EWS Managed API Appointment object or an EWS CalendarItem type to do that. А если вы используете управляемый API EWS, то создавать строго типизированные элементы необходимо в любом случае, так как у класса универсального **элемента ** нет конструктора.And if you're using the EWS Managed API, you always have to create strongly typed items, because the generic Item class does not have a constructor. Для работы с элементом, не являющимся строго типизированным, всегда можно использовать класс базового элемента.If you're working with an item that is not strongly typed, you can always use the base Item class to work with the item.

Таблица 1. Методы управляемого API EWS и операции EWS для работы с элементамиTable 1. EWS Managed API methods and EWS operations for working with items

ЗадачаIn order to… Метод управляемого API EWSEWS Managed API method Операция служб EWSEWS operation
Создание универсального элементаCreate a generic item
Нет. С помощью управляемого API EWS можно создавать только элементы определенных типов. Создавать универсальные элементы невозможно.None. You can only create specific item types by using the EWS Managed API; you cannot create generic items.
CreateItemCreateItem
Получение элементаGet an item
Item.BindItem.Bind
GetItemGetItem
Обновление элементаUpdate an item
Item.UpdateItem.Update
UpdateItemUpdateItem
Удаление элементаDelete an item
Item.DeleteItem.Delete
DeleteItemDeleteItem

Из этой статьи вы узнаете, когда для выполнения задачи можно использовать универсальный базовый класс, а в каких случаях необходимо применять строго типизированный элемент.In this article, you'll learn when you can use the generic base class and when you need to use a strongly typed item to complete your task. В примерах кода показано, как использовать базовый класс и что делать, если использовать базовый класс невозможно или он не соответствует вашим потребностям.The code examples will show you how to use the base class, and what to do when you can't use the base class or it doesn't fit your needs.

Создание элемента с помощью управляемого API EWSCreate an item by using the EWS Managed API

В управляемом API EWS нет общедоступного конструктора для класса элемента, поэтому потребуется использовать конструктор конкретного типа, который необходим для создания элемента.The EWS Managed API does not have a publicly available constructor for the Item class, so you must use the constructor for the specific item type you want to create in order to create an item. Например, с помощью конструктора класса EmailMessage можно создать новое сообщение электронной почты и с помощью конструктора класса контактов Contact можно создавать новые контакты.For example, use the EmailMessage class constructor to create a new email message, and the Contact class constructor to create a new contact. Аналогичным образом, сервер никогда не возвращает в ответах объекты универсального элемента. Все универсальные элементы возвращаются в виде объектов EmailMessage.Likewise, the server never returns generic Item objects in responses; all generic items are returned as EmailMessage objects.

Если вы знаете тип создаваемого элемента, выполнить задачу можно всего за несколько этапов. Действия одинаковы для всех типов элементов:When you know the type of item to create, you can complete the task in just a few steps. The steps are similar for all item types:

  1. Инициализируйте новый экземпляр одного из классов элемента с объектом ExchangeService в качестве параметра.Initialize a new instance of one of the Item classes with the ExchangeService object as a parameter.

  2. Задайте свойства элемента. Для всех типов элементов используются разные схемы, поэтому для разных элементов доступны разные свойства.Set properties on the item. The schemas are different for each item type, so different properties are available for different items.

  3. Сохраните элемент или сохраните и отправьте его.Save the item, or save and send the item.

Например, вы можете создать объект EmailMessage объекта, задавать свойства для Subject, Body и ToRecipients, а затем отправлять его с помощью метода EmailMessage.SendAndSaveCopy.For example, you can create an EmailMessage object, set the Subject, Body, and ToRecipients properties, and then send it by using the EmailMessage.SendAndSaveCopy method.

// Create an email message and provide it with connection 
// configuration information by using an ExchangeService object named service.
EmailMessage message = new EmailMessage(service);
// Set properties on the email message.
message.Subject = "Company Soccer Team";
message.Body = "Are you interested in joining?";
message.ToRecipients.Add("sadie@contoso.com");
// Send the email message and save a copy.
// This method call results in a CreateItem call to EWS.
message.SendAndSaveCopy();

Сведения о том, как создать элемент собрания или встречи с помощью управляемого API EWS, см. в статье Create appointments and meetings by using EWS in Exchange 2013.To learn how to create a meeting or appointment item by using the EWS Managed API, see Create appointments and meetings by using EWS in Exchange 2013.

Создание элемента с помощью веб-служб ExchangeCreate an item by using EWS

С помощью EWS можно создать универсальный или строго типизированный элемент. Действия одинаковы для всех типов элементов.You can create a generic item or a strongly typed item by using EWS. The steps are similar for all item types:

  1. Создайте элемент в хранилище Exchange с помощью операции CreateItem.Use the CreateItem operation to create an item in the Exchange store.

  2. Используйте элемент Items в качестве контейнера для одного или нескольких создаваемых элементов.Use the Items element to contain one or more items to create.

  3. Задайте свойства элемента.Set properties on the item.

Например, вы можете создать электронное сообщение и отправить его с помощью кода из представленного ниже примера.For example, you can create an email message and send it by using the code in the following example. Управляемое API EWS также отправляет запрос XML при вызове метода SendAndSaveCopy.This is also the XML request that the EWS Managed API sends when you call the SendAndSaveCopy method.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
               xmlns:t="https://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:CreateItem MessageDisposition="SendAndSaveCopy">
      <m:SavedItemFolderId>
        <t:DistinguishedFolderId Id="sentitems" />
      </m:SavedItemFolderId>
      <m:Items>
        <t:Message>
          <t:Subject>Company Soccer Team</t:Subject>
          <t:Body BodyType="HTML">Are you interested in joining?</t:Body>
          <t:ToRecipients>
            <t:Mailbox>
              <t:EmailAddress>sadie@contoso.com </t:EmailAddress>
              </t:Mailbox>
          </t:ToRecipients>
        </t:Message>
      </m:Items>
    </m:CreateItem>
  </soap:Body>
</soap:Envelope>

В ответ на запрос CreateItem сервер отправляет сообщение CreateItemResponse, включающее параметр ResponseCode со значением NoError, которое указывает, что сообщение было успешно создано, и свойство ItemId созданного сообщения.The server responds to the CreateItem request with a CreateItemResponse message that includes a ResponseCode value of NoError, which indicates that the email was created successfully, and the ItemId of the newly created message.

Сведения о том, как создать собрание или встречу с помощью EWS, см. в статьеCreate appointments and meetings by using EWS in Exchange 2013.To learn how to create a meeting or appointment item by using EWS, see Create appointments and meetings by using EWS in Exchange 2013.

Получение элемента с помощью управляемого API EWSGet an item by using the EWS Managed API

Чтобы использовать управляемое API EWS для получения элемента, если вы знаете свойство Item.Id получаемого элемента, необходимо просто вызвать один из методов Bind в элементе, после чего элемент будет получен.To use the EWS Managed API to get an item if you know the Item.Id of the item to retrieve, you simply call one of the Bind methods on the item, and the item is retrieved. Рекомендуем возвращать только обязательные свойства.As a best practice, we recommend that you limit the properties returned to only those that are required. В этом примере возвращаются свойства Id элемента и Subject.This example returns the item Id property and the Subject property.

В этом примере предполагается, что служба является действительным объектом ExchangeService, и что пользователь прошел проверку подлинности на сервере Exchange server.This example assumes that service is a valid ExchangeService object and that the user has been authenticated to an Exchange server. Локальная переменная itemId является идентификатором обновляемого элемента.The local variable itemId is the Id of the item to update.

// As a best practice, limit the properties returned to only those that are required.
PropertySet propSet = new PropertySet(BasePropertySet.IdOnly, ItemSchema.Subject);
// Bind to the existing item by using the ItemId.
// This method call results in a GetItem call to EWS.
Item item = Item.Bind(service, itemId, propSet);

Чтобы найти элемент, отвечающий определенным условиям, сделайте следующее:If you're searching for an item that meets specific criteria, do the following:

  1. Выполните привязку к папке, содержащей получаемые элементы.Bind to the folder that contains the items to get.

  2. Создайте экземпляр SearchFilter.SearchFilterCollection или PropertySet для фильтрации элементов на возврат.Instantiate a SearchFilter.SearchFilterCollection or a PropertySet to filter the items to return.

  3. Создайте экземпляр объекта ItemView или CalendarView, чтобы указать количество элементов на возврат.Instantiate an ItemView or CalendarView object to specify the number of items to return.

  4. Вызовите метод ExchangeService.FindItems или ExchangeService.FindAppointments.Call the ExchangeService.FindItems or ExchangeService.FindAppointments method.

Например, чтобы получить непрочитанные электронные сообщения из папки "Входящие", используйте код из приведенного ниже примера.For example, if you want to retrieve unread email messages in the Inbox, use the code in the following example. В этом примере используется SearchFilterCollection для ограничения результатов метода FindItems до непрочитанных сообщений, а с помощью объекта ItemView результаты можно сократить до одного элемента.This example uses a SearchFilterCollection to limit the results of the FindItems method to unread messages, and limits the ItemView to limit results to one item. Этот конкретный код работает только в объектах EmailMessage объекты, поскольку значение EmailMessageSchema.IsRead является частью SearchFilter.This particular code only works on EmailMessage objects because the EmailMessageSchema.IsRead value is part of the SearchFilter.

// Bind the Inbox folder to the service object.
Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox);
// The search filter to get unread email.
SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));
ItemView view = new ItemView(1);
// Fire the query for the unread items.
// This method call results in a FindItem call to EWS.
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, sf, view);

Кроме того, вы можете использовать PropertySet чтобы ограничить результаты поиска, как показано в приведенном ниже примере кода.Alternatively, you can use a PropertySet to limit the results of the search as shown in the following code example. В этом примере используется метод FindAppointments для получения до пяти встреч, которые произойдут в течение следующих 30 дней.This example uses the FindAppointments method to retrieve up to five appointments that occur in the next 30 days. Конечно, этот код работает только с элементами календаря.This code of course only works on calendar items.

// Initialize values for the start and end times, and the number of appointments to retrieve.
DateTime startDate = DateTime.Now;
DateTime endDate = startDate.AddDays(30);
const int NUM_APPTS = 5;
// Bind the Calendar folder to the service object.
// This method call results in a GetFolder call to EWS.
CalendarFolder calendar = CalendarFolder.Bind(service, WellKnownFolderName.Calendar, new PropertySet());
// Set the start and end time and number of appointments to retrieve.
CalendarView cView = new CalendarView(startDate, endDate, NUM_APPTS);
// Limit the properties returned to the appointment's subject, start time, and end time.
cView.PropertySet = new PropertySet(AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.End);
// Retrieve a collection of appointments by using the calendar view.
// This method call results in a FindAppointments call to EWS.
FindItemsResults<Appointment> appointments = calendar.FindAppointments(cView);

Обратите внимание, что данные, возвращаемые сервером в ответ на вызов метода Bind, отличаются от аналогичных данных, возвращаемых сервером в ответ на методы FindItem или FindAppointment.Note that the information the server returns in the Bind method response is different than the information that the server returns for a FindItem or FindAppointment method response. Метод Bind может возвращать все схематизированные свойства, в то время как методы FindItem и FindAppointment возвращают не все из этих свойств.The Bind method can return all the schematized properties, whereas the FindItem and FindAppointment methods do not return all the schematized properties. Следовательно, если вам нужен полный доступ к элементу, то необходимо использовать метод Bind.So if you need full access to the item, you'll have to use the Bind method. Если вам неизвестно значение свойства Id получаемого элемента, используйте методы FindItem или FindAppointment, чтобы получить свойство Id, а затем получите необходимые свойства с помощью метода Bind.If you don't have the item Id of the item you'd like to retrieve, use the FindItem or FindAppointment methods to retrieve the Id, and then use the Bind method to retrieve the properties you need.

Сведения о том, как получить элемент собрания или встречи с помощью управляемого API EWS, см. в статье Get appointments and meetings by using EWS in Exchange.To learn how to get a meeting or appointment item by using the EWS Managed API, see Get appointments and meetings by using EWS in Exchange.

Получение элемента с помощью EWSGet an item by using EWS

Если вам известно значение свойства ItemId получаемого элемента, то вы можете получить его с помощью операции GetItem.If you know the ItemId of the item to retrieve, you can get the item by using the GetItem operation.

В приведенном ниже примере показан XML-запрос на получение свойства Subject элемента с определенным значением свойства ItemId.The following example shows the XML request to get the Subject of an item with a specific ItemId. Управляемое API EWS также отправляет запрос XML при вызове метода Bind на ItemId.This is also the XML request that the EWS Managed API sends when calling the Bind method on an ItemId. Для удобства значения некоторых атрибутов и элементов были сокращены.The values of some attributes and elements have been shortened for readability.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
               xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
               xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2013" />
  </soap:Header>
  <soap:Body>
    <m:GetItem>
      <m:ItemShape>
        <t:BaseShape>IdOnly</t:BaseShape>
        <t:AdditionalProperties>
          <t:FieldURI FieldURI="item:Subject" />
        </t:AdditionalProperties>
      </m:ItemShape>
      <m:ItemIds>
        <t:ItemId Id="GJc/NAAA=" />
      </m:ItemIds>
    </m:GetItem>
  </soap:Body>
</soap:Envelope>

В приведенном ниже примере показан XML-ответ, возвращаемый сервером после обработки операции GetItem. Ответ указывает, что элемент был успешно получен. Для удобства значения некоторых атрибутов и элементов были сокращены.The following example shows the XML response that the server returns after it processes the GetItem operation. The response indicates the item was retrieved successfully. The values of some attributes and elements have been shortened for readability.

<?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="https://schemas.microsoft.com/exchange/services/2006/types" 
                         xmlns="https://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:GetItemResponse xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
                       xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types">
      <m:ResponseMessages>
        <m:GetItemResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:Items>
            <t:Message>
              <t:ItemId Id="GJc/NAAA=" ChangeKey="CQAAABYAAAAPxolXAHv3TaHUnjW8wWqXAAAGJd9Z"/>
              <t:Subject>Company Soccer Team</t:Subject>
            </t:Message>
          </m:Items>
        </m:GetItemResponseMessage>
      </m:ResponseMessages>
    </m:GetItemResponse>
  </s:Body>
</s:Envelope>

Если вы не знаете значение свойства ItemId получаемого элемента, его можно найти с помощью операции FindItem.If you do not know the ItemId of the item you want to retrieve, you can use the FindItem operation to find the item. Для использования операции FindItem необходимо сначала определить папку для поиска.In order to use the FindItem operation, you must first identify the folder that you're searching. Это можно сделать с помощью свойства DistinguinguishedFolderName или FolderId.You can identify the folder by using its DistinguinguishedFolderName or by using the FolderId. Можно использовать операцию FindFolder или SyncFolderHierarchy, чтобы получить нужное свойство FolderId.You can use either the FindFolder or SyncFolderHierarchy operations to get the FolderId you need. Затем с помощью операции FindItem найдите в папке результаты, соответствующие фильтру поиска.Then use the FindItem operation to search that folder for results that match the search filter. В отличие от управляемого API EWS, в веб-службах Exchange нет отдельной операции поиска для встреч.Unlike the EWS Managed API, EWS does not provide a separate find operation for appointments. Операция FindItem получает элементы всех типов.The FindItem operation retrieves items of all types.

В приведенном ниже примере показан XML-запрос с операцией FindItem, отправляемый на сервер для поиска в папке Calendar встреч, назначенных на следующие 30 дней. Для удобства значения некоторых атрибутов и элементов были сокращены.The following example shows the XML FindItem operation request that is sent to the server to find appointments in the Calendar folder that occur in the next 30 days. The values of some attributes and elements have been shortened for readability.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:t="https://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:FindItem Traversal="Shallow">
      <m:ItemShape>
        <t:BaseShape>IdOnly</t:BaseShape>
        <t:AdditionalProperties>
          <t:FieldURI FieldURI="item:Subject" />
          <t:FieldURI FieldURI="calendar:Start" />
          <t:FieldURI FieldURI="calendar:End" />
        </t:AdditionalProperties>
      </m:ItemShape>
      <m:CalendarView MaxEntriesReturned="5" StartDate="2013-10-16T17:04:28.722Z" EndDate="2013-11-15T18:04:28.722Z" />
      <m:ParentFolderIds>
        <t:FolderId Id="AAAEOAAA=" ChangeKey="AgAAABYAAAAqRr3mNdNMSasqx/o9J13UAAAAAAA3" />
      </m:ParentFolderIds>
    </m:FindItem>
  </soap:Body>
</soap:Envelope>

В ответ на запрос FindItem сервер возвращает сообщение FindItemResponse, включающее параметр ResponseCode со значением NoError, которое указывает, что операция успешно выполнена. Если какие-либо элементы календаря отвечают условиям фильтра, они включаются в ответ.The server responds to the FindItem request with a FindItemResponse message that includes the ResponseCode value of NoError, which indicates that the operation completed successfully. If any calendar items meet the filtering criteria, they are included in the response.

Обратите внимание, что данные, возвращаемые сервером в ответ на вызов операции GetItem, отличаются от аналогичных данных для операций FindItem или FindAppointment.Note that the information the server returns in the GetItem operation response is different than the information the server returns in a FindItem or FindAppointment operation response. Операция GetItem может возвращать все схематизированные свойства, в то время как операции FindItem и FindAppointment возвращают не все из этих свойств.The GetItem operation can return all the schematized properties, whereas the FindItem and FindAppointment operations do not return all the schematized properties. Следовательно, если вам нужен полный доступ к элементу, то необходимо использовать операцию GetItem.So if you need full access to the item, you'll have to use the GetItem operation. Если вам неизвестно значение свойства ItemId получаемого элемента, используйте операции FindItem или FindAppointment, чтобы получить свойство ItemId, а затем получите необходимые элементы с помощью операции GetItem.If you don't have the ItemId of the item you'd like to retrieve, use the FindItem or FindAppointment operations to retrieve the ItemId, and then use the GetItem operation to retrieve the elements you need.

Сведения о том, как получить элемент собрания или встречи с помощью EWS, см. в статье Get appointments and meetings by using EWS in Exchange.To learn how to get a meeting or appointment item by using EWS, see Get appointments and meetings by using EWS in Exchange.

Изменение элемента с помощью управляемого API EWSUpdate an item by using the EWS Managed API

Действия для изменения элемента с помощью управляемого API EWS одинаковы для всех типов элементов. Однако элементы разных типов содержат разные свойства, а для метода Update доступно множество перегруженных методов.The steps to update an item by using the EWS Managed API are similar for all item types; however, the item properties are different for each item type, and the Update method has many overloaded methods to choose from. Чтобы обновить элемент, сделайте следующее:To update an item:

  1. Получите последнюю версию элемента (если ее у вас еще нет) с помощью метода Bind.Use the Bind method to get the latest version of the item, unless you already have it. Чтобы редактировать свойства, относящиеся к строго типизированному элементу, необходимо выполнить привязку к типу этого элемента.To update properties specific to a strongly typed item, you'll have to bind to that item type. Чтобы изменить свойства, доступные для типа универсальный элемента, вы можете выполнить привязку к объекту элемента.To update properties available on the generic item type, you can bind to the Item object.

  2. Обновите свойства элемента.Update the properties on the item.

  3. Вызовите метод Update.Call the Update method.

Например, вы можете изменить тему сообщения с помощью универсального типа элемента, как показано в коде приведенного ниже примера.For example, you can update the subject of an email by using the generic item type, as shown in the code in the following example.

В этом примере предполагается, что служба является действительным объектом ExchangeService, и что пользователь прошел проверку подлинности на сервере Exchange server.This example assumes that service is a valid ExchangeService object and that the user has been authenticated to an Exchange server. Локальная переменная itemId является идентификатором обновляемого элемента.The local variable itemId is the Id of the item to update.

// Bind to the existing item, using the ItemId.
// This method call results in a GetItem call to EWS.
Item item = Item.Bind(service, itemId);
// Update the Subject of the email.
item.Subject = "New subject";
// Save the updated email.
// This method call results in an UpdateItem call to EWS.
item.Update(ConflictResolutionMode.AlwaysOverwrite);

Сведения о том, как обновить элемент собрания или встречи с помощью управляемого API EWS, см. в статье Update appointments and meetings by using EWS in Exchange.To learn how to update a meeting or appointment item by using the EWS Managed API, see Update appointments and meetings by using EWS in Exchange.

Обновление элемента с помощью EWSUpdate an item by using EWS

Чтобы обновить элемент с помощью EWS, сделайте следующее:To update an item by using EWS, do the following:

  1. Получите последнюю версию элемента (если ее у вас еще нет) с помощью операции GetItem.Use the GetItem operation to get the latest version of the item, unless you already have it.

  2. Укажите редактируемые поля и присвойте им новые значения с помощью операции UpdateItem.Use the UpdateItem operation to specify fields to update and assign new values to those fields.

В приведенном ниже примере показан XML-запрос с операцией UpdateItem, который отправляется на сервер для изменения свойства Subject электронного сообщения. Для удобства значения некоторых атрибутов и элементов были сокращены.The following example shows the XML UpdateItem operation request that is sent to the server to update the Subject value of the email message. The values of some attributes and elements have been shortened for readability.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010_SP1" />
  </soap:Header>
  <soap:Body>
    <m:UpdateItem MessageDisposition="SaveOnly" ConflictResolution="AlwaysOverwrite">
      <m:ItemChanges>
        <t:ItemChange>
          <t:ItemId Id="APdZjAAA=" ChangeKey="CQAAABYAAAAqRr3mNdNMSasqx/o9J13UAAAAPdgr" />
          <t:Updates>
            <t:SetItemField>
              <t:FieldURI FieldURI="item:Subject" />
              <t:Message>
                <t:Subject>New subject</t:Subject>
              </t:Message>
            </t:SetItemField>
          </t:Updates>
        </t:ItemChange>
      </m:ItemChanges>
    </m:UpdateItem>
  </soap:Body>
</soap:Envelope>

В ответ на запрос UpdateItem сервер отправляет сообщение UpdateItemResponse, включающее параметр ResponseCode со значением NoError, которое указывает, что элемент успешно обновлен.The server responds to the UpdateItem request with a UpdateItemResponse message that includes the a ResponseCode value of NoError, which indicates that the item update was successful.

Сведения о том, как изменить элемент собрания или встречи с помощью веб-служб Exchange, см. в статье Update appointments and meetings by using EWS in Exchange.To learn how to update a meeting or appointment item by using EWS, see Update appointments and meetings by using EWS in Exchange.

Удаление элемента с помощью управляемого API EWSDelete an item by using the EWS Managed API

Вы можете удалять элементы, перемещая их в папку "Удаленные" или в корзину.You can delete items by moving them to the Deleted Items folder or to the dumpster. Если вы знаете ItemId удаляемого элемента, то просто вызовите метод Delete в элементе.If you know the ItemId of the item to delete, just call the Delete method on the item.

Если перед удалением элемента необходимо его найти, сделайте следующее:If you need to find the item before deleting it, do the following:

  1. Вызовите метод FindItems или FindAppointments, чтобы найти удаляемый элемент.Call the FindItems or FindAppointments method to find the item to delete.

  2. Создайте экземпляр PropertySet и ограничьте его до свойств для возврата или используйте SearchFilterCollection для поиска определенных элементов.Instantiate a PropertySet and limit it to the properties to return, or use a SearchFilterCollection to find specific items.

  3. Создайте экземпляр ItemView или CalendarView, чтобы указать количество элементов на возврат.Instantiate an ItemView or CalendarView to specify the number of items to return.

  4. Вызовите метод Delete.Call the Delete method.

Например, в представленном ниже коде показано, как переместить электронное сообщение в папку "Удаленные".For example, the following code shows how to move an email message to the Deleted Items folder.

В этом примере предполагается, что служба является действительным объектом ExchangeService, и что пользователь прошел проверку подлинности на сервере Exchange server.This example assumes that service is a valid ExchangeService object and that the user has been authenticated to an Exchange server. Локальная переменная itemId является идентификатором обновляемого элемента.The local variable itemId is the Id of the item to update.

// Bind to the existing item, using the ItemId.
// This method call results in a GetItem call to EWS.
Item item = Item.Bind(service, itemId);
// Delete the item by moving it to the Deleted Items folder.
// This method call results in a DeleteItem call to EWS.
item.Delete(DeleteMode.MoveToDeletedItems);

Дополнительные сведения об удалении элементов см. в статье Deleting items by using EWS in Exchange.For more details about deleting items, see Deleting items by using EWS in Exchange. Сведения о том, как удалить элемент собрания или встречи с помощью управляемого API EWS, см. в статье Delete appointments and cancel meetings by using EWS in Exchange.To learn how to delete a meeting or appointment item by using the EWS Managed API, see Delete appointments and cancel meetings by using EWS in Exchange.

Удаление элемента с помощью EWSDelete an item by using EWS

Вы можете удалить элемент с помощью операции DeleteItem.You can delete an item by using the DeleteItem operation.

В приведенном ниже примере кода показан XML-запрос, отправляемый на сервер для перемещения электронного сообщения в папку "Удаленные". Для удобства значения некоторых атрибутов и элементов были сокращены.The following example shows the XML request that is sent to the server to move the email message to the Deleted Items folder. The values of some attributes and elements have been shortened for readability.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010_SP1" />
  </soap:Header>
  <soap:Body>
    <m:DeleteItem DeleteType="MoveToDeletedItems">
      <m:ItemIds>
        <t:ItemId Id="APdZjAAA=" ChangeKey="CQAAABYAAAAqRr3mNdNMSasqx/o9J13UAAANIFzC" />
      </m:ItemIds>
    </m:DeleteItem>
  </soap:Body>
</soap:Envelope>

В ответ на запрос DeleteItem сервер отправляет сообщение DeleteItemResponse, включающее параметр ResponseCode со значением NoError, которое указывает, что элемент успешно удален.The server responds to the DeleteItem request with a DeleteItemResponse message that includes the a ResponseCode value of NoError, which indicates that the item deletion was successful.

Дополнительные сведения об удалении элементов см. в статье Deleting items by using EWS in Exchange.For more details about deleting items, see Deleting items by using EWS in Exchange. Сведения о том, как удалить элемент собрания или встречи с помощью EWS, см. в статье Delete appointments and cancel meetings by using EWS in Exchange.To learn how to delete a meeting or appointment item by using EWS, see Delete appointments and cancel meetings by using EWS in Exchange.

Перемещение или копирование элементов в другой почтовый ящикMove or copy items to another mailbox

Вы можете перемещать и копировать элементы между почтовыми ящиками с помощью операций ExportItems и UploadItems.You can move or copy items between mailboxes by using the ExportItems and UploadItems operations. Дополнительные сведения см. в статье Exporting and importing items by using EWS in Exchange.To learn more, see Exporting and importing items by using EWS in Exchange.

См. такжеSee also