Suscripciones de notificación, eventos de buzón y EWS en ExchangeNotification subscriptions, mailbox events, and EWS in Exchange

Obtenga información sobre las suscripciones de notificación y el evento de buzón en EWS en Exchange.Find out about notification subscriptions and mailbox event in EWS in Exchange.

Puede usar la API administrada de EWS y los servicios Web de Exchange (EWS) para suscribirse y recibir notificaciones cuando se produzcan eventos en un buzón o en una o varias de las carpetas de un buzón.You can use both the EWS Managed API and Exchange Web Services (EWS) to subscribe to receive notifications when events occur in a mailbox, or in one or more of the folders in a mailbox. Hay tres tipos de suscripción disponibles: notificaciones de streaming, notificaciones de extracción y notificaciones de inserción.Three subscription types are available: streaming notifications, pull notifications, and push notifications. Cada uno de estos tipos de suscripción usa distintas técnicas para recibir o recuperar las notificaciones.Each of these subscription types uses different techniques to receive or retrieve the notifications.

Obtener notificaciones: ¿Cuáles son mis opciones?Getting notifications - what are my options?

EWS incluye tres tipos de suscripción que funcionan independientemente para notificar al cliente los cambios en el servidor.EWS includes three subscription types that work independently to notify the client of changes on the server. Independientemente del tipo de suscripción que elija, tendrá acceso a todos los eventos de notificación en el final, solo cuestión de cómo obtenerlas.No matter which subscription type you choose, you'll have access to all the same notification events in the end - it's just a matter of how you get them.

Tabla 1. Tipos de suscripciónTable 1. Subscription types

OpciónOption DescripciónDescription ¿Es adecuado para mí?Is it right for me?
Notificaciones de streamingStreaming notifications
Notificaciones que el servidor envía a través de una conexión que permanece abierta durante un período de tiempo especificado.Notifications that are sent by the server through a connection that remains open for a specified period of time.
Generalmente, se recomiendan las notificaciones de streaming para la mayoría de las aplicaciones.Streaming notifications are generally recommended for most applications. Son similares a las notificaciones de inserción y extracción, y ofrecen lo mejor de ambos mundos.They're similar to pull and push notifications, and offer the best of both worlds. Después de establecer la suscripción de notificación, la conexión permanece abierta hasta 30 minutos para permitir que el servidor vuelva a enviar notificaciones al cliente.After you establish your notification subscription, the connection remains open for up to 30 minutes to allow the server to push notifications back to the client. No es necesario solicitar actualizaciones, como lo haría con una suscripción de extracción y no tiene que crear una aplicación de escucha de servicio web como lo haría con una suscripción de inserción.No need to request updates, like you would with a pull subscription, and you don't have to create a web service listener application like you would with a push subscription.
Notificaciones de extracciónPull notifications
Notificaciones que el cliente ha solicitado (o extraído).Notifications that are requested (or pulled) by the client.
Las notificaciones de extracción son, en general, más apropiadas para los clientes acoplados de manera imprecisa, donde el cliente no está conectado de forma segura a la red.Pull notifications are generally most appropriate for loosely coupled clients, where the client is not reliably connected to the network. Las notificaciones de extracción pueden crear un exceso de tráfico entre el cliente y el servidor porque el cliente envía solicitudes frecuentes al servidor para recuperar notificaciones y no todas las solicitudes producen notificaciones recuperadas.Pull notifications can create excess traffic between the client and the server because the client is sending frequent requests to the server to retrieve notifications, and not all requests result in notifications retrieved.
Notificaciones de inserciónPush notifications
Notificaciones enviadas (o impulsadas) por el servidor a un servicio Web del lado cliente a través de una dirección de devolución de llamada.Notifications that are sent (or pushed) by the server to a client-side web service via a callback address.
Por lo general, las notificaciones de inserción proporcionan latencia de notificación más reducida que las notificaciones de extracción y son adecuadas para clientes estrechamente acoplados a los que el servidor tiene acceso confiable y el cliente es direccionable por IP.Generally, push notifications provide for smaller notification latency than pull notifications and are suited for tightly coupled clients to which the server has reliable access and the client is IP addressable. Sin embargo, las notificaciones de inserción se han caído de favor desde la llegada de las notificaciones de streaming en Exchange 2010.However, push notifications have fallen out of favor since the advent of streaming notifications in Exchange 2010. Si es posible, se recomienda usar las notificaciones de streaming en lugar de las notificaciones de inserción en el futuro.If possible, we recommend that you use streaming notifications instead of push notifications going forward. Las notificaciones de inserción requieren que se escriba una aplicación de escucha, que es donde se insertan las notificaciones.Push notifications require that you write a listener application, which is where the notifications are pushed to. Esto tiene una ligera ventaja con respecto a las notificaciones de extracción en cuanto a que reduce el tráfico en el cable, pero agrega sobrecarga al requerir una aplicación independiente.This has a slight benefit over pull notifications in that it reduces wire traffic, but it adds overhead by requiring a separate application.

¿A qué eventos EWS puedo suscribirme?What EWS events can I subscribe to?

Los tipos de eventos EWS a los que se suscriben los clientes los define la enumeración EventType para la API administrada EWS o el elemento EventType para EWS.The types of EWS events that clients subscribe to are defined by the EventType enumeration for the EWS Managed API or the EventType element for EWS. Los siguientes eventos de EWS están disponibles para la suscripción:The following EWS events are available for subscription:

Otro tipo de evento de EWS, el evento de estado, se define mediante el elemento EventType , pero no se suscribe a este evento.Another EWS event type, the Status event, is defined by the EventType element, but you don't subscribe to this event. En su lugar, lo envía el servidor para comprobar el estado del cliente solo para las notificaciones de inserción y de transmisión.Instead, it's sent by the server to check the status of the client for streaming and push notifications only. El cliente debe responder a las necesidades de este evento o el cliente agotará el tiempo de espera.The client needs to respond to this event needs or the client will time out.

Una sola acción del usuario suele tener como resultado la creación de varias notificaciones.A single user action often results in the creation of multiple notifications. Para ilustrarlo, en la siguiente figura se muestran algunos escenarios comunes y las notificaciones creadas para cada uno de ellos.To illustrate this, the following figure shows some common scenarios and the notifications created for each one. La configuración del cliente tiene un impacto en las notificaciones recibidas, por lo que no se trata de una lista exhaustiva de todas las opciones de configuración y las notificaciones resultantes.Client settings have an impact on the notifications received, so this is not an exhaustive list of all the configuration options and resulting notifications.

Figura 1. Tipos de eventos devueltos por suscripciones de notificaciónFigure 1. Event types returned by notification subscriptions

Tabla que muestra las notificaciones enviadas en escenarios de usuario comunes, como recibir nuevo correo, crear una nueva carpeta, mover una carpeta, etc.

La figura 1 simplifica el proceso de notificación.Figure 1 simplifies the notification process. En realidad, se pueden crear varias notificaciones (incluso varias notificaciones del mismo tipo) para una sola acción del usuario.In reality, multiple notifications (even multiple notifications of the same type) can be created for a single user action. Por ejemplo, en el caso de una operación de movimiento de carpetas, se crean tres eventos de carpeta: uno para la carpeta que se está modificando, otro para la carpeta primaria antigua y otro para la nueva carpeta principal.For example, in the case of a folder move operation, three folder events are created: one for the folder being modified, one for the old parent folder, and one for the new parent folder. Como se pueden desencadenar varios eventos para una sola operación, se recomienda crear un tiempo de espera de unos segundos en las operaciones de sincronizaciónpara que solo se sincronice cuando se complete la acción, en lugar de parcialmente a través de la operación.Because numerous events can be fired for a single operation, we recommend that you build a wait time of a few seconds into your synchronization operations, so that you only synchronize when the action is complete, instead of partway through the operation.

También es importante tener en cuenta que las opciones de configuración que elija cada usuario afectarán a las notificaciones que se creen.It's also important to realize that the configuration settings that each user chooses will affect which notifications are created. Por ejemplo, algunos datos de disponibilidad de los usuarios se actualizan automáticamente y el evento FreeBusyChanged se crea cuando se recibe una nueva convocatoria de reunión, incluso antes de que haya leído el elemento.For example, some users' free busy data is updated automatically and the FreeBusyChanged event is created when a new meeting request is received, even before they've read the item. Para otros usuarios, los datos de disponibilidad no se actualizan y el evento FreeBusyChanged no se crea hasta que se ha aceptado la reunión.For other users, free busy data isn't updated and the FreeBusyChanged event isn't created until after the meeting has been accepted. Esta configuración puede tener un impacto considerable en las notificaciones creadas por el servidor.These settings can have a considerable impact on the notifications created by the server.

¿Cómo funcionan las notificaciones de EWS?How do EWS notifications work?

Las notificaciones EWS se controlan en base a una suscripción.EWS notifications are handled on a subscription basis. Por lo general, hay una suscripción por buzón y, en la suscripción a buzones, puede suscribirse a algunas o a todas las carpetas.Typically there's one subscription per mailbox, and within the mailbox subscription you can subscribe to some or all folders. Usted decide a qué tipo de notificación debe suscribirse (transmitir, extraer o insertar) y qué tipo de eventos desea recibir (NewMail, creado, eliminado, modificado, etc.) y, a continuación, crea una suscripción.You decide what kind of notification to subscribe to (streaming, pull, or push) and what kind of events you'd like to receive (NewMail, Created, Deleted, Modified, etc.), and then you create a subscription. A continuación, los eventos EWS se envían asincrónicamente desde el servidor de buzones de correo al cliente.The EWS events are then sent asynchronously from the mailbox server to the client. (History lección: los eventos son sincrónicos en Exchange 2007-y los eventos se almacenan en el servidor de acceso de cliente en Exchange 2010, pero no más).(History lesson: events are synchronous in Exchange 2007 - and events are stored on the Client Access server in Exchange 2010, but no more!).

Según el tipo de suscripción que tenga, las formas en que se envían las notificaciones al cliente varían.Depending on the type of subscription you have, the ways in which the notifications are sent to the client vary. En esta sección se describe cómo funciona con más detalle cada tipo de suscripción.This section describes how each type of subscription works in more detail.

Notificaciones de transmisión de EWSEWS streaming notifications

Las notificaciones de transmisión por secuencias dependen de una solicitud GET colgada en el servidor para mantener abierta una conexión de suscripción de transmisión, de modo que los eventos que se produzcan mientras la conexión esté activa se transmitan al cliente de inmediato.Streaming notifications rely on a hanging get request on the server to keep a streaming subscription connection open, so that any events that occur while the connection is active are streamed to the client immediately. Se pueden enviar varias notificaciones a través del curso de una única conexión y la conexión permanece abierta hasta que expire el intervalo o durante un máximo de 30 minutos.Multiple notifications can be sent over the course of a single connection, and the connection stays open until the interval expires, or for a maximum of 30 minutes. Una vez expirada la conexión, el cliente envía de nuevo la solicitud GET de bloqueo.After the connection expires, the client sends the hanging get request again. En la figura 2 se muestra cómo funcionan las suscripciones y las notificaciones de transmisión por secuencias.Figure 2 shows how streaming subscriptions and streaming notifications work.

Figura 2. Información general sobre la notificación por secuenciasFigure 2. Streaming notification overview

Ilustración que muestra cómo funcionan las notificaciones de streaming. Para configurar las notificaciones de streaming: 1. Suscribirse, 2. Abrir conexión, 3. Esperar eventos, 4. Recibir eventos, repetir 3 y 4, 5. Cerrar o mantener conexión, 6. Cancelar suscripción o agotar tiempo de espera.

Para obtener información sobre la creación de notificaciones de streaming, consulte notificaciones de transmisiones sobre eventos de buzón de correo mediante EWS en Exchange.For information about creating streaming notifications, see Stream notifications about mailbox events by using EWS in Exchange.

Notificaciones de extracción de EWSEWS pull notifications

Las notificaciones de extracción dependen del cliente que solicita las notificaciones en un intervalo que administra el cliente.Pull notifications rely on the client asking for the notifications on an interval that the client manages. Esto puede dar como resultado respuestas GetEvents sin notificaciones.This can result in GetEvents responses with no notifications. En la figura 3 se muestra cómo funcionan las suscripciones de extracción y las notificaciones de extracción.Figure 3 shows how pull subscriptions and pull notifications work.

Figura 3. Introducción a la notificación de extracciónFigure 3. Pull notification overview

Ilustración que muestra cómo funcionan las notificaciones de extracción. Para configurar las notificaciones de extracción: 1. Suscribirse, 2. Enviar GetEvents, 3. Recibir respuesta, repetir 2 y 3, 4. Cerrar o mantener conexión, 5. Cancelar suscripción o agotar tiempo de espera.

Para obtener información acerca de la creación de notificaciones de extracción, consulte notificaciones de extracción sobre eventos de buzón de correo mediante EWS en Exchange.For information about creating pull notifications, see Pull notifications about mailbox events by using EWS in Exchange.

Notificaciones push de EWSEWS push notifications

Las notificaciones de inserción dependen de que el servidor Presione las notificaciones de vuelta al cliente.Push notifications rely on the server pushing notifications back to the client. Solo hay tráfico si hay una notificación.There's only traffic if there's a notification. La figura 4 muestra cómo funcionan las suscripciones de inserción y las notificaciones de inserción.Figure 4 shows how push subscriptions and push notifications work.

Figura 4. Introducción a la notificación de inserciónFigure 4. Push notification overview

Ilustración que muestra cómo funcionan las notificaciones de inserción. Para configurar las notificaciones de inserción: 1. Crear agente de escucha, 2. Suscribirse, 3. Esperar eventos, 4. Recibir eventos, 5. Enviar respuesta "OK", repetir 3, 4 y 5, 6. Cancelar suscripción o agotar tiempo de espera.

Si usa notificaciones de inserción con Exchange 2010, considere la posibilidad de actualizar la aplicación para que use notificaciones de transmisión por secuencias, de modo que no necesite una aplicación independiente para recibir los eventos.If you are using push notifications with Exchange 2010, consider upgrading your application to use streaming notifications, so that you don't need a separate application to receive the events.

¿Cómo me suscribio a las notificaciones?How do I subscribe to notifications?

En función del tipo de suscripción que quiera crear, tiene varias opciones que puede elegir para suscribirse a las notificaciones.Depending on the type of subscription you'd like to create, you have a number of options to choose from for subscribing to notifications.

Tabla 2. Operaciones y métodos para suscribirse a notificacionesTable 2. Operations and methods for subscribing to notifications

Tipo de suscripciónSubscription type Operación de EWSEWS operation Métodos de la API administrada de EWSEWS Managed API methods Qué haceWhat it does
OrigenStreaming
Operación subscribeSubscribe operation
Método ExchangeService. BeginSubscribeToStreamingNotificationsExchangeService.BeginSubscribeToStreamingNotifications method
Método ExchangeService. BeginSubscribeToStreamingNotificationsOnAllFoldersExchangeService.BeginSubscribeToStreamingNotificationsOnAllFolders method
Método ExchangeService. SubscribeToStreamingNotificationsOnAllFoldersExchangeService.SubscribeToStreamingNotificationsOnAllFolders method
Crea una solicitud para suscribirse a las notificaciones de transmisión por secuencias.Creates a request to subscribe to streaming notifications.
PresionarPull
Operación subscribeSubscribe operation
Método ExchangeService. BeginSubscribeToPullNotificationsExchangeService.BeginSubscribeToPullNotifications method
Método ExchangeService. BeginSubscribeToPullNotificationsOnAllFoldersExchangeService.BeginSubscribeToPullNotificationsOnAllFolders method
Método ExchangeService. SubscribeToPullNotificationsExchangeService.SubscribeToPullNotifications method
Método ExchangeService. SubscribeToPullNotificationsOnAllFoldersExchangeService.SubscribeToPullNotificationsOnAllFolders method
Crea una solicitud para suscribirse a las notificaciones de extracción.Creates a request to subscribe to pull notifications.
IngresePush
Operación subscribeSubscribe operation
Método sobrecargado ExchangeService. BeginSubscribeToPushNotificationsExchangeService.BeginSubscribeToPushNotifications overloaded method
Método Overload ExchangeService. BeginSubscribeToPushNotificationsOnAllFoldersExchangeService.BeginSubscribeToPushNotificationsOnAllFolders overload method
Método sobrecargado ExchangeService. SubscribeToPushNotificationsExchangeService.SubscribeToPushNotifications overloaded method
Método sobrecargado ExchangeService. SubscribeToPushNotificationsOnAllFoldersExchangeService.SubscribeToPushNotificationsOnAllFolders overloaded method
Crea una solicitud para suscribirse a las notificaciones de inserción.Creates a request to subscribe to push notifications.

¿Cómo obtengo los eventos EWS?How do I get EWS events?

Una vez creada la suscripción, la forma en que los eventos reales se envían al cliente depende del tipo de suscripción.After the subscription is created, the way in which the actual events are sent to the client depends on the subscription type.

Para las notificaciones de transmisión por secuencias, se debe crear una conexión de suscripción de transmisión por secuencias y, a continuación, se agrega la suscripción a la conexión.For streaming notifications, a streaming subscription connection must be created, and then the subscription is added to the connection. Puede obtener más información sobre este proceso en las notificaciones de flujo sobre los eventos de buzón de correo mediante EWS en Exchange.You can read more about this process in Stream notifications about mailbox events by using EWS in Exchange.

Para las notificaciones de extracción, el objeto de suscripción se inicializó cuando se creó la suscripción, por lo que solo tiene que llamar al método GetEvent o a la operación para recuperar los eventos del servidor.For pull notifications, the subscription object was initialized when the subscription was created, so you just have to call the GetEvent method or operation to retrieve the events from the server. Puede obtener más información sobre esto en las notificaciones de extracción sobre los eventos de buzón de correo mediante EWS en Exchange.You can read more about this in Pull notifications about mailbox events by using EWS in Exchange.

En la siguiente tabla se enumeran las operaciones y las clases necesarias para recuperar eventos.The following table lists the operations and classes required to retrieve events.

Tabla 3. Elementos y clases para crear una conexión y obtener eventosTable 3. Elements and classes for creating a connection and getting events

Tipo de suscripciónSubscription type Operación de EWSEWS operation Método de la API administrada de EWSEWS Managed API method Qué haceWhat it does
OrigenStreaming
Operación GetStreamingEventsGetStreamingEvents operation
Método StreamingSubscriptionConnection. AddSubscriptionStreamingSubscriptionConnection.AddSubscription method
Crea una solicitud GET de bloqueo en el servidor, que se responde cuando se producen eventos.Creates a hanging get request on the server, which is responded to when events occur.
PresionarPull
Operación GetEventsGetEvents operation
Método PullSubscription. GetEventsPullSubscription.GetEvents method
Obtiene los eventos de notificación de extracción del servidor.Gets pull notification events from the server.
IngresePush
No procede.Not applicable.
No procede.Not applicable.
Las notificaciones de inserción se envían automáticamente al agente de escucha del servicio Web (la dirección URL de devolución de llamada especificada en la solicitud de suscripción).Push notifications are automatically sent to the web service listener (the callback URL specified in the subscription request). No es necesario llamar a métodos ni operaciones adicionales.No additional methods or operations need to be called.

¿Cómo puedo cancelar la suscripción a las notificaciones?How do I unsubscribe to notifications?

En la siguiente tabla se enumeran las formas en que puede cancelar la suscripción a cada tipo de suscripción.The following table lists the ways in which you can unsubscribe to each type of subscription.

Tabla 4. Operaciones y métodos para anular la suscripción a notificacionesTable 4. Operations and methods for unsubscribing to notifications

Tipo de suscripciónSubscription type EWSEWS API administrada EWSEWS Managed API
OrigenStreaming
Operación unsubscribeUnsubscribe operation
Método StreamingSubscription. BeginUnsubscribeStreamingSubscription.BeginUnsubscribe method
Método StreamingSubscription. EndUnsubscribeStreamingSubscription.EndUnsubscribe method
Método StreamingSubscription. unsubscribeStreamingSubscription.Unsubscribe method
PresionarPull
Operación unsubscribeUnsubscribe operation
Método PullSubscription. BeginUnsubscribePullSubscription.BeginUnsubscribe method
Método PullSubscription. EndUnsubscribePullSubscription.EndUnsubscribe method
Método PullSubscription. unsubscribePullSubscription.Unsubscribe method
IngresePush
Devuelve unsubscribe en el elemento StatusFrequency de la SendNotificationResponseMessageReturn Unsubscribe in the StatusFrequency element of the SendNotificationResponseMessage
No procede.Not applicable. En su lugar, deje el tiempo de espera de la suscripción.Let the subscription time out instead.

Como alternativa, puede permitir que cada una de las suscripciones agote el tiempo de espera.Alternatively, you can let each of the subscriptions time out.

Tabla 5. Tiempos de espera de suscripciónTable 5. Subscription time-outs

Tipo de suscripciónSubscription type Valor de tiempo de espera en EWSTimeout value in EWS Valor de tiempo de espera en la API administrada de EWSTimeout value in the EWS Managed API Control de tiempo de esperaTimeout handling
OrigenStreaming
Elemento ConnectionTimeoutConnectionTimeout element
parámetro Lifetime del constructor StreamingSubscriptionConnectionlifetime parameter of the StreamingSubscriptionConnection constructor
Para la API administrada de EWS, una vez transcurrido el valor de tiempo de espera, se produce el evento OnDisconnect .For the EWS Managed API, after the timeout value elapses, the OnDisconnect event is raised. Si no se llama al método StreamingSubscriptionConnection. Open , se cierra la conexión.If the StreamingSubscriptionConnection.Open method is not called, the connection is closed.
Para EWS, una vez transcurrido el valor de tiempo de espera, el mensaje GetUserConfigurationResponse devuelve un valor ConnectionStatus de closed.For EWS, after the timeout value elapses, the GetUserConfigurationResponse message returns a ConnectionStatus value of Closed.
PresionarPull
Elemento timeoutTimeout element
parámetro timeout del método SubscribeToPullNotificationtimeout parameter of the SubscribeToPullNotification method
Una vez transcurrido el valor de tiempo de espera, el servidor elimina la suscripción.After the timeout value elapses, the server deletes the subscription.
IngresePush
Elemento StatusFrequencyStatusFrequency element
parámetro Frequency del método SubscribeToPushNotificationfrequency parameter of the SubscribeToPushNotification method
Si el servidor no recibe una respuesta a una notificación de inserción o ping de estado, vuelve a intentar enviar la notificación varias veces antes de dejar de enviar las notificaciones.If the server does not receive a response to a push notification or status ping, it retries sending the notification several times before it stops sending the notifications. Para obtener más información, vea StatusFrequency.For more information, see StatusFrequency.

¿Puedo limitar las suscripciones?Can I limit subscriptions?

En una implementación local, puede limitar el número de suscripciones por usuario con el parámetro de limitación EwsMaxSubscriptions de la Directiva de limitación.In an on-premises deployment, you can limit the number of subscriptions per user with the EwsMaxSubscriptions throttling parameter of the throttling policy. Esa Directiva se puede aplicar a todos los usuarios o solo a usuarios específicos.That policy can be applied to all users or just specific users. La Directiva de limitación de EwsMaxSubscriptions no se puede configurar para Exchange Online.The EwsMaxSubscriptions throttling policy is not configurable for Exchange Online.

En esta secciónIn this section

Vea tambiénSee also