Trabalhar com itens de caixa de correio do Exchange usando o EWS no ExchangeWork with Exchange mailbox items by using EWS in Exchange

Saiba como criar, obter, atualizar e excluir itens usando a API gerenciada do EWS ou o EWS no Exchange.Learn how to create, get, update, and delete items by using the EWS Managed API or EWS in Exchange.

Você pode usar a API gerenciada do EWS ou o EWS para trabalhar com itens em uma caixa de correio.You can use the EWS Managed API or EWS to work with items in a mailbox. Você pode usar itens genéricos – objetos de Item da API gerenciada por EWS ou tipos de Item do EWS para executar algumas operações (obter um item ou excluir um item usando o identificador do item); no entanto, a maior parte do tempo você terá que usar um Item fortemente tipado para executar uma operação get ou Update, pois você precisará ter acesso às propriedades que são específicas para o item fortemente tipado.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.

Por exemplo, você não pode usar um item genérico para recuperar um item que contenha uma data de início e de término-você precisa de um objeto de compromisso da API gerenciada do EWS ou um tipo de CalendarItem do EWS para fazer isso.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. E se você estiver usando a API gerenciada do EWS, você sempre precisará criar itens fortemente tipados, pois a classe de Item genérico não tem um construtor.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. Se você estiver trabalhando com um item que não tenha rigidez de tipos, você sempre poderá usar a classe de Item base para trabalhar com o item.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.

Tabela 1. Métodos da API gerenciada do EWS e operações do EWS para trabalhar com itensTable 1. EWS Managed API methods and EWS operations for working with items

Para...In order to… Método de API gerenciada do EWSEWS Managed API method Operação do EWSEWS operation
Criar um item genéricoCreate a generic item
NenhumNone. Você só pode criar tipos de item específicos usando a API gerenciada do EWS; Você não pode criar itens genéricos.You can only create specific item types by using the EWS Managed API; you cannot create generic items.
CreateItemCreateItem
Obter um itemGet an item
Item. bindItem.Bind
GetItemGetItem
Atualizar um itemUpdate an item
Item. UpdateItem.Update
UpdateItemUpdateItem
Excluir um itemDelete an item
Item. DeleteItem.Delete
DeleteItemDeleteItem

Neste artigo, você aprenderá quando você pode usar a classe base genérica e quando precisa usar um item com rigidez de tipos para concluir a tarefa.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. Os exemplos de código mostrarão como usar a classe base e o que fazer quando você não pode usar a classe base ou não atende às suas necessidades.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.

Criar um item usando a API gerenciada do EWSCreate an item by using the EWS Managed API

A API gerenciada do EWS não tem um construtor disponível publicamente para a classe Item , portanto, você deve usar o construtor para o tipo de item específico que você deseja criar para criar um item.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. Por exemplo, use o Construtor de classe EmailMessage para criar uma nova mensagem de email e o Construtor de classe de contato para criar um novo contato.For example, use the EmailMessage class constructor to create a new email message, and the Contact class constructor to create a new contact. Da mesma forma, o servidor nunca retorna objetos de Item genérico em respostas; todos os itens genéricos são retornados como objetos EmailMessage .Likewise, the server never returns generic Item objects in responses; all generic items are returned as EmailMessage objects.

Quando você sabe o tipo de item a ser criado, você pode concluir a tarefa em apenas algumas etapas.When you know the type of item to create, you can complete the task in just a few steps. As etapas são semelhantes para todos os tipos de item:The steps are similar for all item types:

  1. Inicializar uma nova instância de uma das classes de Item com o objeto ExchangeService como um parâmetro.Initialize a new instance of one of the Item classes with the ExchangeService object as a parameter.

  2. Definir propriedades no item.Set properties on the item. Os esquemas são diferentes para cada tipo de item e, portanto, propriedades diferentes estão disponíveis para diferentes itens.The schemas are different for each item type, so different properties are available for different items.

  3. Salve o item ou salve e envie o item.Save the item, or save and send the item.

Por exemplo, você pode criar um objeto EmailMessage , definir as Propriedades Subject, Bodye ToRecipients e enviá-lo usando o método 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();

Para saber como criar um item de reunião ou compromisso usando a API gerenciada do EWS, confira criar compromissos e reuniões usando o EWS no 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.

Criar um item usando o EWSCreate an item by using EWS

Você pode criar um item genérico ou um item fortemente tipado usando o EWS.You can create a generic item or a strongly typed item by using EWS. As etapas são semelhantes para todos os tipos de item:The steps are similar for all item types:

  1. Use a operação CreateItem para criar um item no repositório do Exchange.Use the CreateItem operation to create an item in the Exchange store.

  2. Use o elemento Items para conter um ou mais itens a serem criados.Use the Items element to contain one or more items to create.

  3. Definir propriedades no item.Set properties on the item.

Por exemplo, você pode criar uma mensagem de email e enviá-la usando o código no exemplo a seguir.For example, you can create an email message and send it by using the code in the following example. Essa é também a solicitação XML que a API gerenciada do EWS envia quando você chama o método 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>

O servidor responde à solicitação CreateItem com uma mensagem CreateItemResponse que inclui um valor ResponseCode de NOERROR, que indica que o email foi criado com êxito e o ItemId da mensagem recém-criada.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.

Para saber como criar um item de reunião ou compromisso usando o EWS, confira criar compromissos e reuniões usando o EWS no 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.

Obter um item usando a API gerenciada do EWSGet an item by using the EWS Managed API

Para usar a API gerenciada do EWS para obter um item se você souber o Item.ID do item a ser recuperado, basta chamar um dos métodos BIND no item e o item será recuperado.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. Como prática recomendada, recomendamos que você limite as propriedades retornadas somente para as que forem necessárias.As a best practice, we recommend that you limit the properties returned to only those that are required. Este exemplo retorna a propriedade item ID e a propriedade Subject .This example returns the item Id property and the Subject property.

Este exemplo pressupõe que o serviço é um objeto ExchangeService válido e que o usuário foi autenticado em um servidor Exchange.This example assumes that service is a valid ExchangeService object and that the user has been authenticated to an Exchange server. A variável local ItemId é a ID do item a ser atualizado.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);

Se você estiver procurando um item que atenda a critérios específicos, faça o seguinte:If you're searching for an item that meets specific criteria, do the following:

  1. Vincule à pasta que contém os itens a serem obtidos.Bind to the folder that contains the items to get.

  2. Crie uma instância de SearchFilter. SearchFilterCollection ou um PropertySet para filtrar os itens a serem retornados.Instantiate a SearchFilter.SearchFilterCollection or a PropertySet to filter the items to return.

  3. Crie uma instância de um objeto item View ou CalendarView para especificar o número de itens a serem retornados.Instantiate an ItemView or CalendarView object to specify the number of items to return.

  4. Chame o método ExchangeService. FindItems ou ExchangeService. FindAppointments .Call the ExchangeService.FindItems or ExchangeService.FindAppointments method.

Por exemplo, se você quiser recuperar mensagens de email não lidas na caixa de entrada, use o código no exemplo a seguir.For example, if you want to retrieve unread email messages in the Inbox, use the code in the following example. Este exemplo usa um SearchFilterCollection para limitar os resultados do método FindItems a mensagens não lidas e limita o modo de exibição para limitar os resultados a um item.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. Este código específico só funciona nos objetos EmailMessage porque o valor de EmailMessageSchema. IsRead é parte do 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);

Como alternativa, você pode usar um PropertySet para limitar os resultados da pesquisa, conforme mostrado no exemplo de código a seguir.Alternatively, you can use a PropertySet to limit the results of the search as shown in the following code example. Este exemplo usa o método FindAppointments para recuperar até cinco compromissos que ocorrem nos próximos 30 dias.This example uses the FindAppointments method to retrieve up to five appointments that occur in the next 30 days. Este código de curso só funciona em itens de calendário.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);

Observe que as informações que o servidor retorna na resposta do método BIND são diferentes das informações que o servidor retorna para uma resposta de método FindItem ou 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. O método BIND pode retornar todas as propriedades esquematizado, enquanto os métodos FindItem e FindAppointment não retornam todas as propriedades esquematizado.The Bind method can return all the schematized properties, whereas the FindItem and FindAppointment methods do not return all the schematized properties. Portanto, se você precisar de acesso completo ao item, será necessário usar o método BIND .So if you need full access to the item, you'll have to use the Bind method. Se você não tiver a ID do item que deseja recuperar, use os métodos FindItem ou FindAppointment para recuperar a ID e, em seguida, use o método BIND para recuperar as propriedades que você precisa.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.

Para saber como obter um item de reunião ou compromisso usando a API gerenciada do EWS, confira obter compromissos e reuniões usando o EWS no 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.

Obter um item usando o EWSGet an item by using EWS

Se você souber o ItemId do item a ser recuperado, poderá obter o item usando a operação GetItem .If you know the ItemId of the item to retrieve, you can get the item by using the GetItem operation.

O exemplo a seguir mostra a solicitação XML para obter o assunto de um item com um ItemIdespecífico.The following example shows the XML request to get the Subject of an item with a specific ItemId. Essa é também a solicitação XML que a API gerenciada do EWS envia ao chamar o método BIND em um ItemId.This is also the XML request that the EWS Managed API sends when calling the Bind method on an ItemId. Os valores de alguns atributos e elementos foram reduzidos para facilitar a leitura.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>

O exemplo a seguir mostra a resposta XML que o servidor retorna depois de processar a operação GetItem . A resposta indica que o item foi recuperado com êxito. Os valores de alguns atributos e elementos foram reduzidos para facilitar a leitura.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>

Se você não souber o ItemId do item que deseja recuperar, poderá usar a operação FindItem para localizar o item.If you do not know the ItemId of the item you want to retrieve, you can use the FindItem operation to find the item. Para usar a operação FindItem , você deve primeiro identificar a pasta que está pesquisando.In order to use the FindItem operation, you must first identify the folder that you're searching. Você pode identificar a pasta usando seu DistinguinguishedFolderName ou usando o FolderId.You can identify the folder by using its DistinguinguishedFolderName or by using the FolderId. Você pode usar as operações FindFolder ou SyncFolderHierarchy para obter o FolderId necessário.You can use either the FindFolder or SyncFolderHierarchy operations to get the FolderId you need. Em seguida, use a operação FindItem para pesquisar na pasta resultados que correspondam ao filtro de pesquisa.Then use the FindItem operation to search that folder for results that match the search filter. Diferentemente da API gerenciada por EWS, o EWS não fornece uma operação de localização separada para compromissos.Unlike the EWS Managed API, EWS does not provide a separate find operation for appointments. A operação FindItem recupera itens de todos os tipos.The FindItem operation retrieves items of all types.

O exemplo a seguir mostra a solicitação de operação FINDITEM XML que é enviada ao servidor para localizar compromissos na pasta calendário que ocorrem nos próximos 30 dias.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. Os valores de alguns atributos e elementos foram reduzidos para facilitar a leitura.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>

O servidor responde à solicitação FindItem com uma mensagem FindItemResponse que inclui o valor de ResponseCode de NOERROR, que indica que a operação foi concluída com êxito.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. Se algum item de calendário atender aos critérios de filtragem, ele será incluído na resposta.If any calendar items meet the filtering criteria, they are included in the response.

Observe que as informações que o servidor retorna na resposta da operação GetItem são diferentes das informações que o servidor retorna em uma resposta de operação FindItem ou 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. A operação GetItem pode retornar todas as propriedades esquematizado, enquanto as operações FindItem e FindAppointment não retornam todas as propriedades de esquematizado.The GetItem operation can return all the schematized properties, whereas the FindItem and FindAppointment operations do not return all the schematized properties. Portanto, se você precisar de acesso completo ao item, será necessário usar a operação GetItem .So if you need full access to the item, you'll have to use the GetItem operation. Se você não tiver o ItemId do item que deseja recuperar, use as operações FindItem ou FindAppointment para recuperar o ItemIde, em seguida, use a operação GetItem para recuperar os elementos necessários.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.

Para saber como obter um item de reunião ou compromisso usando o EWS, confira obter compromissos e reuniões usando o EWS no Exchange.To learn how to get a meeting or appointment item by using EWS, see Get appointments and meetings by using EWS in Exchange.

Atualizar um item usando a API gerenciada do EWSUpdate an item by using the EWS Managed API

As etapas para atualizar um item usando a API gerenciada do EWS são semelhantes para todos os tipos de item; no entanto, as propriedades do item são diferentes para cada tipo de item, e o método Update tem vários métodos sobrecarregados para escolher.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. Para atualizar um item:To update an item:

  1. Use o método BIND para obter a versão mais recente do item, a menos que você já tenha isso.Use the Bind method to get the latest version of the item, unless you already have it. Para atualizar as propriedades específicas de um item com rigidez de tipos, você terá que associar a esse tipo de item.To update properties specific to a strongly typed item, you'll have to bind to that item type. Para atualizar as propriedades disponíveis no tipo de item genérico, você pode associar ao objeto Item .To update properties available on the generic item type, you can bind to the Item object.

  2. Atualize as propriedades do item.Update the properties on the item.

  3. Chame o método Update .Call the Update method.

Por exemplo, você pode atualizar o assunto de um email usando o tipo de item genérico, conforme mostrado no código no exemplo a seguir.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.

Este exemplo pressupõe que o serviço é um objeto ExchangeService válido e que o usuário foi autenticado em um servidor Exchange.This example assumes that service is a valid ExchangeService object and that the user has been authenticated to an Exchange server. A variável local ItemId é a ID do item a ser atualizado.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);

Para saber como atualizar um item de reunião ou compromisso usando a API gerenciada do EWS, confira Atualizar compromissos e reuniões usando o EWS no 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.

Atualizar um item usando o EWSUpdate an item by using EWS

Para atualizar um item usando o EWS, faça o seguinte:To update an item by using EWS, do the following:

  1. Use a operação GetItem para obter a versão mais recente do item, a menos que você já tenha isso.Use the GetItem operation to get the latest version of the item, unless you already have it.

  2. Use a operação UpdateItem para especificar os campos a serem atualizados e atribuir novos valores a esses campos.Use the UpdateItem operation to specify fields to update and assign new values to those fields.

O exemplo a seguir mostra a solicitação de operação de UPDATEITEM XML que é enviada ao servidor para atualizar o valor de assunto da mensagem de email.The following example shows the XML UpdateItem operation request that is sent to the server to update the Subject value of the email message. Os valores de alguns atributos e elementos foram reduzidos para facilitar a leitura.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>

O servidor responde à solicitação UpdateItem com uma mensagem UpdateItemResponse que inclui o valor de ResponseCode de NOERROR, que indica que a atualização do item foi bem-sucedida.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.

Para saber como atualizar um item de reunião ou compromisso usando o EWS, confira Atualizar compromissos e reuniões usando o EWS no Exchange.To learn how to update a meeting or appointment item by using EWS, see Update appointments and meetings by using EWS in Exchange.

Excluir um item usando a API gerenciada do EWSDelete an item by using the EWS Managed API

Você pode excluir itens movendo-os para a pasta itens excluídos ou para o dumpster.You can delete items by moving them to the Deleted Items folder or to the dumpster. Se você souber o ItemId do item a ser excluído, basta chamar o método delete no item.If you know the ItemId of the item to delete, just call the Delete method on the item.

Se você precisar localizar o item antes de excluí-lo, faça o seguinte:If you need to find the item before deleting it, do the following:

  1. Chame o método FindItems ou FindAppointments para localizar o item a ser excluído.Call the FindItems or FindAppointments method to find the item to delete.

  2. Instanciar um PropertySet e limitá-lo às propriedades a serem retornadas ou usar um SearchFilterCollection para localizar itens específicos.Instantiate a PropertySet and limit it to the properties to return, or use a SearchFilterCollection to find specific items.

  3. Instancie um item View ou CalendarView para especificar o número de itens a serem retornados.Instantiate an ItemView or CalendarView to specify the number of items to return.

  4. Chame o método delete .Call the Delete method.

Por exemplo, o código a seguir mostra como mover uma mensagem de email para a pasta itens excluídos.For example, the following code shows how to move an email message to the Deleted Items folder.

Este exemplo pressupõe que o serviço é um objeto ExchangeService válido e que o usuário foi autenticado em um servidor Exchange.This example assumes that service is a valid ExchangeService object and that the user has been authenticated to an Exchange server. A variável local ItemId é a ID do item a ser atualizado.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);

Para obter mais detalhes sobre como excluir itens, consulte excluindo itens usando o EWS no Exchange.For more details about deleting items, see Deleting items by using EWS in Exchange. Para saber como excluir um item de reunião ou compromisso usando a API gerenciada do EWS, consulte excluir compromissos e cancelar reuniões usando o EWS no 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.

Excluir um item usando o EWSDelete an item by using EWS

Você pode excluir um item usando a operação DeleteItem .You can delete an item by using the DeleteItem operation.

O exemplo a seguir mostra a solicitação XML que é enviada ao servidor para mover a mensagem de email para a pasta itens excluídos.The following example shows the XML request that is sent to the server to move the email message to the Deleted Items folder. Os valores de alguns atributos e elementos foram reduzidos para facilitar a leitura.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>

O servidor responde à solicitação DeleteItem com uma mensagem DeleteItemResponse que inclui o valor de ResponseCode de NOERROR, que indica que a exclusão do item foi bem-sucedida.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.

Para obter mais detalhes sobre como excluir itens, consulte excluindo itens usando o EWS no Exchange.For more details about deleting items, see Deleting items by using EWS in Exchange. Para saber como excluir um item de reunião ou compromisso usando o EWS, confira excluir compromissos e cancelar reuniões usando o EWS no 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.

Mover ou copiar itens para outra caixa de correioMove or copy items to another mailbox

Você pode mover ou copiar itens entre caixas de correio usando as operações ExportItems e UploadItems .You can move or copy items between mailboxes by using the ExportItems and UploadItems operations. Para saber mais, confira exportando e importando itens usando o EWS no Exchange.To learn more, see Exporting and importing items by using EWS in Exchange.

Confira tambémSee also