Současní uživatelé očekávají, že se oznámení o nových e-mailech zobrazí okamžitě po jejich doručení. Verze 4D 21 R3 zavádí podporu oznámení IMAP IDLE, díky čemuž získáte přehled o e-mailech v reálném čase přímo ve svých aplikacích. Namísto spoléhání se výhradně na periodickou synchronizaci můžete nyní reagovat okamžitě, jakmile dojde ke změně v poštovní schránce.
Díky podpoře IMAP IDLE v IMAPTransporteru může vaše aplikace 4D reagovat na oznámení o změnách v poštovní schránce ( subscribe ). Místo dotazu: „Změnilo se něco?“, vám server sdělí: „Právě se něco změnilo.“ A to nejen v případě nových zpráv. Můžete reagovat na:
- Vytvoření nové e-mailové zprávy
- Smazání zprávy
- Změně příznaku
- Změně stavu poštovní schránky
Pro podporu e-mailových oznámení rozšiřujeme možnosti IMAP v 4D vylepšením příkazu IMAP New transporter o nový parametr listener. Tento nový objekt listener umožňuje vývojářům registrovat zpětné volací funkce.
Podporované události oznámení
Objekt parameter.listener podporuje následující zpětná volání:
- listener.onMailCreated(): Spuštěno, když je v aktuální poštovní schránce detekována nová zpráva.
- listener.onMailDeleted(): Spustí se, když je zpráva trvale smazána.
- listener.onFlagsModified(): Spustí se při změně příznaků zprávy, například když je zpráva označena jako přečtená.
Oznámení o zahájení / ukončení
Objekt 4D.IMAPTransporter poskytuje vlastnost notifier s metodami pro řízení životního cyklu:
- notifier.start(): Přihlašuje se k odběru oznámení ze serveru a aktivuje váš IMAP notifier.
- notifier.stop(): Zastaví odběr oznámení ze serveru a váš IMAP notifier.
Můžete například implementovat třídu, která je zodpovědná za centrální správu vašich e-mailových posluchačů:
// Class IMAPListener
// Triggered when a new email is created on the server
Function onMailCreated($transporter : 4D.IMAPTransporter; $event : Object)
ALERT("You have a new mail!")
// Triggered when an email is deleted
Function onMailDeleted($transporter : 4D.IMAPTransporter; $event : Object)
ALERT("Message deleted")
// Triggered when message flags change (e.g., read/unread)
Function onFlagsModified($transporter : 4D.IMAPTransporter; $event : Object)
ALERT("Flag modified")
A oznamovač můžete spustit, když je to ve vašem kódu potřeba:
var $parameter:={}
$parameter.authenticationMode:=IMAP authentication OAUTH2 // Using OAuth2 for authentication
$parameter.host:="Outlook.office365.com" // IMAP server host
$parameter.port:=993 // IMAP SSL port
$parameter.accessTokenOAuth2 := $myToken // Token received from the OAuth server
$parameter.user:="myadress@email.com" // User email address
// Listener Intialization
$parameter.listener :=cs.IMAPListener.new()
var $myTransporter:=IMAP New transporter($parameter)
// Start the notifier
$myTransporter.notifier.start()
Závěr
Díky integraci oznámení IMAP IDLE do transportéru IMAP New mohou aplikace 4D využívat přístup k synchronizaci e-mailů v reálném čase a řízený událostmi. Uživatelé již očekávají okamžité aktualizace od svých nástrojů pro zasílání zpráv a toto vylepšení umožňuje vašim řešením 4D poskytovat stejný plynulý zážitek.
K tomuto příspěvku zatím nelze přidávat komentáře.