Bekerja dengan notifikasi - Amazon WorkMail

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bekerja dengan notifikasi

Dengan API Pemberitahuan WorkMail Push Amazon, Anda dapat menerima pemberitahuan push tentang perubahan di kotak pesan Anda, termasuk pembaruan email dan kalender baru. Anda harus mendaftarkan URL (atau penjawab pemberitahuan push) untuk menerima pemberitahuan. Dengan fitur ini, pengembang dapat membuat aplikasi responsif untuk WorkMail pengguna Amazon, karena aplikasi dengan cepat diberitahu tentang perubahan dari kotak surat pengguna.

Untuk informasi selengkapnya, lihat Langganan notifikasi, peristiwa kotak pesan, dan EWS di Exchange.

Anda dapat berlangganan folder tertentu, seperti Kotak Masuk atau Kalender, atau ke semua folder untuk peristiwa perubahan kotak pesan (termasuk Mail Baru, Dibuat, dan Dimodifikasi).

Anda dapat menggunakan perpustakaan klien seperti EWS Java API atau EWS C# API terkelola untuk mengakses fitur ini. Contoh aplikasi lengkap dari push responder, yang dikembangkan menggunakan AWS Lambda dan API Gateway (menggunakan kerangka AWS Serverless), tersedia di halaman. AWS GitHub Menggunakan API EWS Java.

Berikut ini adalah contoh permintaan langganan 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>

Berikut ini adalah hasil permintaan berlangganan yang berhasil:

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

Setelah itu, notifikasi dikirim ke URL yang ditentukan dalam permintaan langganan. Berikut ini adalah contoh pemberitahuan:

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

Untuk mengetahui bahwa responden pemberitahuan push telah menerima pemberitahuan, ia harus membalas dengan yang berikut:

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

Untuk berhenti berlangganan menerima pemberitahuan push, klien harus mengirim respons berhenti berlangganan di SubscriptionStatus bidang, mirip dengan yang berikut ini:

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

Untuk memverifikasi kesehatan responden pemberitahuan push Anda, Amazon WorkMail mengirimkan “detak jantung” (juga disebut aStatusEvent). Frekuensi yang dikirim bersamanya ditentukan oleh parameter StatusFrequency yang disediakan dalam permintaan langganan semula. Misalnya, jika StatusFrequency sama1, a StatusEvent dikirim setiap 1 menit. Nilai ini dapat berkisar antara 1 dan 1440 menit. Ini StatusEvent terlihat seperti berikut:

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

Jika responden notifikasi push klien gagal merespons dengan OK status yang sama seperti sebelumnya, notifikasi akan dicoba ulang selama maksimal beberapa menit. StatusFrequency Misalnya, jika StatusFrequency sama dengan 5, dan notifikasi pertama gagal, itu dicoba maksimum selama 5 menit dengan backoff eksponensial antara setiap percobaan kembali. Jika notifikasi tidak dikirimkan setelah waktu coba lagi berakhir, langganan tidak valid dan tidak ada pemberitahuan baru yang dikirimkan. Anda harus membuat langganan baru untuk terus menerima notifikasi tentang peristiwa kotak pesan. Saat ini, Anda dapat berlangganan maksimal tiga langganan per kotak surat.