Gli utenti di oggi si aspettano che le notifiche via e-mail compaiano immediatamente all’arrivo di un nuovo messaggio. 4D 21 R3 introduce il supporto per le notifiche IMAP IDLE, integrando la gestione in tempo reale delle e-mail direttamente nelle vostre applicazioni. Invece di affidarvi esclusivamente alla sincronizzazione periodica, ora potete reagire immediatamente quando si verificano cambiamenti nella casella di posta.
Grazie al supporto IMAP IDLE in IMAPTransporter, la vostra applicazione 4D può reagire alle notifiche della casella di posta. Invece di chiedere: “È cambiato qualcosa?”, il server vi comunica: “Qualcosa è appena cambiato.” E non solo i nuovi messaggi. Potete re subscribe e a:
- La creazione di una nuova email
- Un messaggio che viene eliminato
- Modifica di un flag
- Una modifica dello stato della casella di posta
Per supportare le notifiche di posta, estendiamo le funzionalità IMAP di 4D potenziando il comando IMAP New transporter con un nuovo parametro listener. Questo nuovo oggetto listener consente agli sviluppatori di registrare funzioni di callback.
Eventi di notifica supportati
L’oggetto parameter.listener supporta le seguenti callback:
- listener.onMailCreated(): Attivato quando viene rilevato un nuovo messaggio nella casella di posta corrente.
- listener.onMailDeleted(): Attivato quando un messaggio viene eliminato definitivamente.
- listener.onFlagsModified(): Attivato quando cambiano i flag dei messaggi, ad esempio quando un messaggio viene contrassegnato come letto.
Notifiche di inizio/fine
L’oggetto 4D.IMAPTransporter espone una proprietà notifier con metodi di controllo del ciclo di vita:
- notifier.start(): Si abbona alle notifiche del server e attiva il notificatore IMAP.
- notifier.stop(): Interrompe l’iscrizione al server e il notificatore IMAP.
Ad esempio, è possibile implementare una classe responsabile della gestione centralizzata dei listener di posta elettronica:
// 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")
E puoi avviare il notificatore quando necessario nel tuo codice:
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()
Conclusione
Grazie alle notifiche IMAP IDLE integrate nel trasportatore IMAP New, le applicazioni 4D possono adottare un approccio in tempo reale e basato sugli eventi per la sincronizzazione delle e-mail. Gli utenti si aspettano già aggiornamenti istantanei dai loro strumenti di messaggistica e questo miglioramento consente alle vostre soluzioni 4D di offrire la stessa esperienza senza soluzione di continuità.
Al momento non è possibile lasciare commenti su questo post.