Utilisation des notifications - Amazon WorkMail

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des notifications

Grâce à l'API Amazon WorkMail Push Notifications, vous pouvez recevoir des notifications push concernant les modifications apportées à votre boîte aux lettres, notamment les nouveaux e-mails et les mises à jour du calendrier. Vous devez enregistrer le URLs (ou les répondeurs aux notifications push) pour recevoir des notifications. Grâce à cette fonctionnalité, les développeurs peuvent créer des applications réactives pour WorkMail les utilisateurs d'Amazon, car les applications sont rapidement informées des modifications depuis la boîte aux lettres d'un utilisateur.

Pour de plus amples informations, veuillez consulter Abonnements à des notifications, événements de boîte aux lettres et EWS dans Exchange.

Vous pouvez vous abonner à des dossiers spécifiques, tels que la boîte de réception ou le calendrier, ou à tous les dossiers pour les événements de modification de boîte aux lettres (y compris Nouveau courrier, créé et modifié).

Vous pouvez utiliser des bibliothèques clientes telles que l'API Java EWS ou l'API Managed EWS C# pour accéder à cette fonctionnalité. Un exemple complet d'application de répondeur push, développé à l'aide d'AWS Lambda et d'API Gateway (à l'aide du framework AWS Serverless), est disponible sur cette page. AWS GitHub Cet exemple utilise l'API Java EWS.

Vous trouverez ci-dessous un exemple de demande d'abonnement push :

<?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>

Vous trouverez ci-dessous un résultat de demande d'abonnement réussie :

<?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>

Ensuite, les notifications sont envoyées à l'URL indiquée dans la demande d'abonnement. Voici un exemple de notification :

<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>

Pour confirmer que le répondeur de notification push a reçu la notification, celui-ci doit répondre avec ce qui suit :

<?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>

Pour se désabonner de la réception des notifications push, les clients doivent envoyer une réponse de désabonnement dans le champ SubscriptionStatus, similaire à ce qui suit :

<?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>

Pour vérifier l'état de votre répondeur de notifications push, Amazon WorkMail envoie un « battement de cœur » (également appelé aStatusEvent). La fréquence à laquelle les pulsations sont envoyées est déterminée par le paramètre StatusFrequency fourni dans la demande d'abonnement initiale. Par exemple, s'il StatusFrequency est égal1, a StatusEvent est envoyé toutes les 1 minute. Cette valeur peut être comprise entre 1 et 1440 minutes. Ce StatusEvent se présente comme suit :

<?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 le répondeur de notifications push d'un client ne répond pas avec le même OK statut qu'auparavant, la notification est réessayée pendant un maximum de StatusFrequency minutes. Par exemple, si la valeur de StatusFrequency est égale à 5 et que la première notification échoue, celle-ci est retentée pendant 5 minutes maximum avec un backoff exponentiel entre chaque nouvelle tentative. Si la notification n'est pas envoyée après l'expiration du délai de nouvelle tentative, l'abonnement est invalidé et aucune nouvelle notification n'est envoyée. Vous devez créer un nouvel abonnement pour continuer à recevoir des notifications sur les événements de boîte aux lettres. Actuellement, vous pouvez souscrire à trois abonnements maximum par boîte aux lettres.