Uso de notificaciones - Amazon WorkMail

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de notificaciones

Con la API de notificaciones push de Amazon WorkMail, puede recibir notificaciones push sobre cambios en su buzón de correo, incluyendo nuevas actualizaciones de correo electrónico y calendario. Debe registrar los URL (o agentes de respuesta de notificaciones push) para recibir las notificaciones. Con esta característica, los desarrolladores pueden crear aplicaciones con capacidad de respuesta para los usuarios de Amazon WorkMail, dado que las aplicaciones reciben rápidamente notificaciones sobre los cambios del buzón de correo de un usuario.

Para obtener más información, consulte Suscripciones de notificación, eventos del buzón y EWS en Exchange.

Puede suscribirse a carpetas específicas, como Bandeja de entrada o Calendario, o a todas las carpetas para los eventos de cambio de buzón de correo (incluyendo Nuevo correo, Creado y Modificado).

Puede utilizar bibliotecas de cliente como la API Java de EWS o la API C# de EWS administrada para acceder a esta característica. Puede encontrar una aplicación de muestra completa de un agente de respuesta push, desarrollada con AWS Lambda y API Gateway (utilizando el marco AWS sin servidor), en la página de GitHub de AWS. La aplicación utiliza la API Java de EWS.

A continuación, se incluye una solicitud de suscripción push de ejemplo:

<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> <soap:Body> <m:Subscribe xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"> <m:PushSubscriptionRequest> <t:FolderIds> <t:DistinguishedFolderId Id="inbox" /> </t:FolderIds> <t:EventTypes> <t:EventType>NewMailEvent</t:EventType> <t:EventType>CopiedEvent</t:EventType> <t:EventType>CreatedEvent</t:EventType> <t:EventType>DeletedEvent</t:EventType> <t:EventType>ModifiedEvent</t:EventType> <t:EventType>MovedEvent</t:EventType> </t:EventTypes> <t:StatusFrequency>1</t:StatusFrequency> <t:URL>https://YOUR_PUSH_RESPONDER_URL</t:URL> </m:PushSubscriptionRequest> </m:Subscribe> </soap:Body> </soap:Envelope>

A continuación, se incluye el resultado de una solicitud de suscripción enviada correctamente:

<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Header xmlns="http://schemas.xmlsoap.org/soap/envelope/"> <ServerVersionInfo xmlns="http://schemas.microsoft.com/exchange/services/2006/types" MajorVersion="14" MinorVersion="2" MajorBuildNumber="390" Version="Exchange2010_SP2" MinorBuildNumber="3" /> </Header> <soap:Body> <m:SubscribeResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> <m:ResponseMessages> <m:SubscribeResponseMessage ResponseClass="Success"> <m:ResponseCode>NoError</m:ResponseCode> <m:SubscriptionId>hKJETtoAdi9PPW0tZDQ4MThmMDoVYB</m:SubscriptionId> <m:Watermark>AAAAAAA=</m:Watermark> </m:SubscribeResponseMessage> </m:ResponseMessages> </m:SubscribeResponse> </soap:Body> </soap:Envelope>

A continuación, las notificaciones se envían a la URL especificada en la solicitud de suscripción. A continuación, se muestra una notificación de ejemplo:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <t:RequestServerVersion xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" Version="Exchange2010_SP2"> </t:RequestServerVersion> </soap:Header> <soap:Body> <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"> <m:ResponseMessages> <m:SendNotificationResponseMessage ResponseClass="Success"> <m:ResponseCode>NoError</m:ResponseCode> <m:Notification> <t:SubscriptionId>hKJETtoAdi9PPW0tZDQ4MThmMDoVYB</t:SubscriptionId> <t:PreviousWatermark>ygwAAAAAAAA=</t:PreviousWatermark> <t:MoreEvents>false</t:MoreEvents> <t:ModifiedEvent> <t:Watermark>ywwAAAAAAAA=</t:Watermark> <t:TimeStamp>2018-02-02T15:15:14Z</t:TimeStamp> <t:FolderId Id="AAB2L089bS1kNDgxOGYwOGE5OTQ0="></t:FolderId> <t:ParentFolderId Id="AAB2L089bS1kNDgxOGYwOGE="></t:ParentFolderId> </t:ModifiedEvent> </m:Notification> </m:SendNotificationResponseMessage> </m:ResponseMessages> </m:SendNotification> </soap:Body> </soap:Envelope>

Para confirmar que el agente de respuesta de la notificación de inserción ha recibido la notificación, debe responder con lo siguiente:

<?xml version="1.0"?> <s:Envelope xmlns:s= "http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <SendNotificationResult xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"> <SubscriptionStatus>OK</SubscriptionStatus> </SendNotificationResult> </s:Body> </s:Envelope>

Para cancelar la suscripción de recepción de notificaciones de inserción, los clientes deben enviar una respuesta de cancelación de la suscripción en el campo SubscriptionStatus, similar a la siguiente:

<?xml version="1.0"?> <s:Envelope xmlns:s= "http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <SendNotificationResult xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"> <SubscriptionStatus>Unsubscribe</SubscriptionStatus> </SendNotificationResult> </s:Body> </s:Envelope>

Para verificar el estado de su agente de respuesta de notificaciones push, Amazon WorkMail envía un “latido” (también llamado StatusEvent). La frecuencia con la que se envían las notificaciones la determina el parámetro StatusFrequency proporcionado en la solicitud de suscripción inicial. Por ejemplo, si StatusFrequency es igual a 1, se envía un StatusEvent cada 1 minuto. Este valor puede oscilar entre 1 y 1440 minutos. Este StatusEvent tiene el siguiente aspecto:

<?xml version="1.0 (http://www.w3.org/TR/REC-xml/)" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <t:RequestServerVersion xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" Version="Exchange2010_SP2"/> </soap:Header> <soap:Body> <m:SendNotification xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"> <m:ResponseMessages> <m:SendNotificationResponseMessage ResponseClass="Success"> <m:ResponseCode>NoError</m:ResponseCode> <m:Notification> <t:SubscriptionId>hKJETtoAdi9PPW0tZDQ4MThmMDoVYB</t:SubscriptionId> <t:PreviousWatermark>AAAAAAAAAAA=</t:PreviousWatermark> <t:MoreEvents>false</t:MoreEvents> <t:StatusEvent> <t:Watermark>AAAAAAAAAAA=</t:Watermark> </t:StatusEvent> </m:Notification> </m:SendNotificationResponseMessage> </m:ResponseMessages> </m:SendNotification> </soap:Body> </soap:Envelope>

Si un agente de respuesta de notificación push de un cliente no responde con el mismo estado OK que antes, la notificación se vuelve a intentar durante un máximo de StatusFrequency minutos. Por ejemplo, si StatusFrequency equivale a 5 y la primera notificación no se envía, se reintenta durante un máximo de 5 minutos con un retroceso exponencial entre cada reintento. Si la notificación no se entrega una vez transcurrido el tiempo de reintento, la suscripción se invalida y no se envían nuevas notificaciones. Debe crear una nueva suscripción para continuar recibiendo notificaciones de eventos del buzón de correo. Actualmente, puede suscribirse a un máximo de tres suscripciones por buzón de correo.