Moderne Nutzer erwarten, dass E-Mail-Benachrichtigungen sofort angezeigt werden, sobald eine neue E-Mail eintrifft. 4D 21 R3 bietet nun Unterstützung für IMAP-IDLE-Benachrichtigungen und bringt so E-Mail-Benachrichtigungen in Echtzeit direkt in Ihre Anwendungen. Anstatt sich ausschließlich auf regelmäßige Synchronisierungen zu verlassen, können Sie nun sofort reagieren, sobald sich der Inhalt eines Postfachs ändert.
Dank der IMAP-IDLE-Unterstützung in IMAPTransporter kann Ihre 4D-Anwendung auf Postfachbenachrichtigungen re subscribe ieren. Anstatt zu fragen: „Hat sich etwas geändert?“, teilt Ihnen der Server mit: „Es hat sich gerade etwas geändert.“ Und das gilt nicht nur für neue Nachrichten. Sie können auf Folgendes reagieren:
- Eine neue E-Mail wird erstellt
- Eine Nachricht, die gelöscht wird
- Eine Markierung, die geändert wird
- Eine Änderung des Postfachstatus
Um E-Mail-Benachrichtigungen zu unterstützen, erweitern wir die IMAP-Funktionen von 4D, indem wir den Befehl ` IMAP New transporter ` um einen neuen Parameter ` listener ` ergänzen. Dieses neue ` listener `-Objekt ermöglicht es Entwicklern, Callback-Funktionen zu registrieren.
Unterstützte Benachrichtigungsereignisse
Das Objekt `parameter.listener` unterstützt die folgenden Callbacks:
- listener.onMailCreated(): Wird ausgelöst, wenn eine neue Nachricht im aktuellen Postfach erkannt wird.
- listener.onMailDeleted(): Wird ausgelöst, wenn eine Nachricht endgültig gelöscht wird.
- listener.onFlagsModified(): Wird ausgelöst, wenn sich Nachrichtenflags ändern, beispielsweise wenn eine Nachricht als gelesen markiert wird.
Start-/Endbenachrichtigungen
Das Objekt ` 4D.IMAPTransporter ` stellt eine `notifier`-Eigenschaft mit Methoden zur Lebenszyklussteuerung bereit:
- notifier.start(): Abonniert Serverbenachrichtigungen und aktiviert Ihren IMAP-Notifier.
- notifier.stop(): Beendet das Abonnement für den Server und Ihren IMAP-Benachrichtigungsdienst.
Sie können beispielsweise eine Klasse implementieren, die für die zentrale Verwaltung Ihrer E-Mail-Listener zuständig ist:
// 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")
Und Sie können den Notifier starten, wenn er in Ihrem Code benötigt wird:
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()
Fazit
Dank der in den IMAP New Transporter integrierten IMAP-IDLE-Benachrichtigungen können 4D-Anwendungen einen ereignisgesteuerten Echtzeitansatz für die E-Mail-Synchronisierung nutzen. Benutzer erwarten bereits sofortige Aktualisierungen von ihren Messaging-Tools, und diese Erweiterung ermöglicht es Ihren 4D-Lösungen, dasselbe nahtlose Erlebnis zu bieten.
Für diesen Beitrag sind derzeit keine Kommentare verfügbar.