Email y EWS en Exchange

Obtenga información sobre cómo trabajar con mensajes de correo electrónico, incluido cómo crear un correo electrónico y cómo realizar otras tareas relacionadas con el correo electrónico mediante la API administrada de EWS o EWS en Exchange.

En esencia, Exchange trata sobre el correo electrónico. Pero, ¿qué hace que un correo electrónico sea un correo electrónico? Bueno, los mensajes de correo electrónico son uno de los elementos fuertemente tipados en Exchange, lo que significa que contienen un conjunto determinado de propiedades, incluso antes de que se envíen. Email mensajes se representan mediante la clase EmailMessage en la API administrada de EWS y por el elemento Message y sus elementos secundarios en EWS.

En la API administrada de EWS, el objeto EmailMessage deriva del objeto Item . La clase EmailMessage amplía la clase Item proporcionando propiedades adicionales como EmailMessage.Sender y EmailMessage.IsRead, que ahora son comunes a casi todos los escenarios de mensajería. Al obtener, actualizar o eliminar un mensaje de correo electrónico, en la mayoría de los casos puede hacerlo mediante el objeto EmailMessage o el objeto Item base, en función de si las propiedades con las que está trabajando se encuentran en la clase EmailMessageSchema o ItemSchema . La creación de elementos es diferente porque la clase Item no tiene un constructor, por lo que al crear un correo electrónico, usará el constructor EmailMessage para crearlo y los métodos EmailMessage.Save o EmailMessage.SendAndSaveCopy para guardarlo o enviarlo y guardarlo.

De forma similar, en EWS, use la operación CreateItem con el elemento Message para crear un mensaje de correo electrónico. Para obtener, actualizar o eliminar correos electrónicos mediante EWS, el hecho de que el elemento que se va a modificar sea un mensaje de correo electrónico no es importante, aparte del hecho de que hay propiedades adicionales disponibles en los mensajes de correo electrónico. Las mismas operaciones que se usan para otros elementos fuertemente tipados también se usan para los mensajes de correo electrónico.

Task Método de la API administrada de EWS Operación de EWS
Crear
EmailMessage.Save
CreateItem
Obtener
EmailMessage.Bind
GetItem
Actualizar
Item.Update
UpdateItem
Delete
Item.Delete
DeleteItem

Dado que los mensajes de correo electrónico son simplemente elementos fuertemente tipados, en algunos casos se trabaja con ellos de la misma manera que se trabaja con elementos genéricos.

Creación de un mensaje de correo electrónico mediante la API administrada de EWS

Puede crear un mensaje de correo electrónico mediante el método Save de la API administrada de EWS, como se muestra en el código del ejemplo siguiente. Tenga en cuenta que el ejemplo solo guarda el mensaje en la carpeta Borradores, no envía el mensaje. Para obtener información sobre cómo enviar el mensaje o crear y enviar el mensaje en un solo paso, vea Envío de mensajes de correo electrónico mediante EWS en Exchange.

En este ejemplo se supone que service es un objeto ExchangeService válido y que el usuario se ha autenticado en un servidor Exchange.

// Create a new email message.
EmailMessage message = new EmailMessage(service);
// Set properties on the email message.
message.ToRecipients.Add("mack@contoso.com");
message.Subject = "Project priorities";
message.Body = "(1) Buy pizza, (2) Eat pizza";
// Save the email message to the Drafts folder (where it can be retrieved, updated, and sent at a later time).
// This method call results in a CreateItem call to EWS.
message.Save(WellKnownFolderName.Drafts);
Console.WriteLine("A draft email message with the subject '" + message.Subject + "' has been saved to the Drafts folder.");

Creación de un mensaje de correo electrónico mediante EWS

Puede crear un mensaje de correo electrónico mediante la operación CreateItem de EWS, como se muestra en el ejemplo siguiente. Esta es también la solicitud XML que la API administrada de EWS envía al crear un mensaje de correo electrónico. Tenga en cuenta que en el ejemplo siguiente solo se guarda el mensaje en la carpeta Borradores, no se envía el mensaje. Para obtener información sobre cómo enviar el mensaje o crear y enviar el mensaje en una sola ste, vea Envío de mensajes de correo electrónico mediante EWS en Exchange.

<?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_SP2" />
  </soap:Header>
  <soap:Body>
    <m:CreateItem MessageDisposition="SaveOnly">
      <m:SavedItemFolderId>
        <t:DistinguishedFolderId Id="drafts" />
      </m:SavedItemFolderId>
      <m:Items>
        <t:Message>
          <t:Subject>Project priorities</t:Subject>
          <t:Body BodyType="HTML">(1) Buy pizza, (2) Eat pizza</t:Body>
          <t:ToRecipients>
            <t:Mailbox>
              <t:EmailAddress>mack@contoso.com</t:EmailAddress>
            </t:Mailbox>
          </t:ToRecipients>
        </t:Message>
      </m:Items>
    </m:CreateItem>
  </soap:Body>
</soap:Envelope>

El servidor responde a la solicitud CreateItem con un mensaje CreateItemResponse que incluye un valor ResponseCode de NoError, que indica que el correo electrónico se creó correctamente y el ItemId del mensaje recién creado.

Obtener, actualizar y eliminar un mensaje de correo electrónico mediante la API administrada de EWS

Puede usar la API administrada de EWS para obtener, actualizar o eliminar un mensaje de correo electrónico de la misma manera que realiza estas acciones en cualquier elemento genérico del almacén de Exchange. Para obtener más información, vea Trabajar con elementos de buzón de Exchange mediante EWS en Exchange.

Si va a actualizar un mensaje de correo electrónico, consulte Email propiedades y elementos de EWS en Exchange para obtener una lista de las propiedades del mensaje de correo electrónico grabable. Para enviar un borrador de mensaje después de actualizarlo, consulte Envío de un borrador de mensaje de correo electrónico mediante la API administrada de EWS.

Obtener, actualizar y eliminar un mensaje de correo electrónico mediante EWS

Puede usar EWS para obtener, actualizar y eliminar un mensaje de correo electrónico de la misma manera que realiza estas acciones en cualquier elemento genérico del almacén de Exchange. Para obtener más información, vea Trabajar con elementos de buzón de Exchange mediante EWS en Exchange.

Si va a actualizar un mensaje de correo electrónico, consulte Email propiedades y elementos de EWS en Exchange para obtener una lista de las propiedades del mensaje de correo electrónico grabable. Para enviar un borrador de mensaje después de actualizarlo, consulte Envío de un borrador de mensaje de correo electrónico mediante EWS.

En esta sección

Vea también