Les utilisateurs d’aujourd’hui s’attendent à ce que les notifications par e-mail s’affichent instantanément dès l’arrivée d’un nouveau message. 4D 21 R3 prend désormais en charge les notifications IMAP IDLE, intégrant ainsi la surveillance des e-mails en temps réel directement dans vos applications. Au lieu de vous fier uniquement à une synchronisation périodique, vous pouvez désormais réagir instantanément dès qu’un changement survient dans une boîte aux lettres.
subscribe Grâce à la prise en charge d’IMAP IDLE dans IMAPTransporter, votre application 4D peut réagir aux notifications de la boîte aux lettres. Au lieu de demander : « Y a-t-il eu un changement ? », le serveur vous indique : « Un changement vient de se produire. » Et pas seulement pour les nouveaux messages. Vous pouvez réagir à :
- La création d’un nouvel e-mail
- La suppression d’un message
- La modification d’un indicateur
- Un changement d’état de la boîte aux lettres
Pour prendre en charge les notifications de messagerie, nous étendons les capacités IMAP de 4D en enrichissant la commande IMAP New transporter d’un nouveau paramètre listener. Ce nouvel objet listener permet aux développeurs d’enregistrer des fonctions de rappel.
Événements de notification pris en charge
L’objet parameter.listener prend en charge les fonctions de rappel suivantes :
- listener.onMailCreated(): Déclenché lorsqu’un nouveau message est détecté dans la boîte aux lettres actuelle.
- listener.onMailDeleted(): Déclenché lorsqu’un message est supprimé définitivement.
- listener.onFlagsModified(): Déclenché lorsque les indicateurs d’un message changent, par exemple lorsqu’un message est marqué comme lu.
Notifications de début / fin
L’objet 4D.IMAPTransporter expose une propriété notifier avec des méthodes de contrôle du cycle de vie :
- notifier.start(): S’abonne aux notifications du serveur et active votre notificateur IMAP.
- notifier.stop(): Arrête l’abonnement au serveur et votre notificateur IMAP.
Par exemple, vous pouvez implémenter une classe chargée de gérer de manière centralisée vos écouteurs de messagerie :
// 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")
Et vous pouvez démarrer le notificateur lorsque cela est nécessaire dans votre code :
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()
Conclusion
Grâce à l’intégration des notifications IMAP IDLE dans le transporteur IMAP New, les applications 4D peuvent adopter une approche en temps réel et pilotée par les événements pour la synchronisation des e-mails. Les utilisateurs s’attendent déjà à des mises à jour instantanées de la part de leurs outils de messagerie, et cette amélioration permet à vos solutions 4D d’offrir la même expérience fluide.
Les commentaires ne sont pas disponibles pour cet article pour le moment.