Los usuarios actuales esperan que las notificaciones por correo electrónico aparezcan al instante cuando llega un nuevo mensaje. 4D 21 R3 introduce la compatibilidad con las notificaciones IMAP IDLE, lo que permite integrar la notificación de correo electrónico en tiempo real directamente en sus aplicaciones. En lugar de depender únicamente de la sincronización periódica, ahora puede reaccionar al instante cuando se produce un cambio en el buzón.
Con la compatibilidad con IMAP IDLE en IMAPTransporter, su aplicación 4D puede responder a las notificaciones del buzón. En lugar de preguntar: «¿Ha cambiado algo?», el servidor le dice: «Algo acaba de cambiar». Y no solo se trata de mensajes nuevos. Puede reaccionar a:
- La creación de un nuevo correo electrónico
- La eliminación de un mensaje
- La modificación de un indicador
- Un cambio en el estado del buzón
Para admitir las notificaciones de correo, ampliamos las capacidades IMAP de 4D mejorando el comando ` IMAP New transporter ` con un nuevo parámetro ` listener `. Este nuevo objeto ` listener ` permite a los desarrolladores registrar funciones de retrollamadas.
Eventos de notificación SOPORTADos
El objeto parameter.listener soporta las siguientes funciones de retrollamadas:
- listener.onMailCreated(): se activa cuando se detecta un nuevo mensaje en el buzón actual.
- listener.onMailDeleted(): se activa cuando se elimina un mensaje de forma permanente.
- listener.onFlagsModified(): se activa cuando cambian los indicadores de un mensaje, por ejemplo, cuando un mensaje se marca como leído.
Notificaciones de inicio/fin
El objeto 4D.IMAPTransporter expone una propiedad notifier con los métodos de control del ciclo de vida:
- notifier.start(): se suscribe a las notificaciones del servidor y activa su notificador IMAP.
- notifier.stop(): detiene la suscripción al servidor y su notificador IMAP.
Por ejemplo, puede implementar una clase que se encargue de gestionar sus escuchas de correo electrónico de forma centralizada:
// 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")
Y puede iniciar el notificador cuando sea necesario en su código:
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()
Conclusión
Con la integración de notificaciones IMAP IDLE en el transportador IMAP New, las aplicaciones 4D pueden adoptar un enfoque en tiempo real y basado en eventos para la sincronización del correo electrónico. Los usuarios ya esperan actualizaciones instantáneas de sus herramientas de mensajería, y esta mejora permite que sus soluciones 4D ofrezcan la misma experiencia fluida.
Por el momento, no se pueden publicar comentarios en esta entrada.