IMAP-Flags verwalten

Damit sich Ihre Lösung reibungslos in andere E-Mail-Clients integrieren lässt, müssen Sie häufig Informationen wie „bereits gesehen“ oder „dringend“ hinzufügen. Das IMAP-Protokoll erlaubt es Ihnen, eine Liste von Flags mit einer Nachricht zu verknüpfen, um diese zusätzlichen Informationen zu verwalten. 4D v18 R6 enthält eine Reihe von Funktionen für das IMAP Transporter Objekt, um IMAP-Flags hinzuzufügen oder zu entfernen.

Mit dem IMAP-Protokoll können Sie fünf Flags verwalten:

  • \Seen: Nachricht wurde gelesen
  • \Answered: Nachricht wurde beantwortet
  • \Flagged: Nachricht ist als „markiert“ für dringende/spezielle Aufmerksamkeit gekennzeichnet
  • \Gelöscht: Die Nachricht ist als „zu löschen“ markiert. Beachten Sie, dass die tatsächliche Löschung erfolgt, wenn die expunge() Funktion aufgerufen wird, wenn Sie die Mailbox wechseln oder die Verbindung schließen. Dieses Flag wird bereits von der delete() Funktion
  • \Entwurf: Die Nachricht wurde noch nicht fertiggestellt (als Entwurf markiert).

Flaggen hinzufügen

Um E-Mail-Flags zu verwalten, müssen Sie mit Ihrem E-Mail-Server verbunden sein und ein Postfach ausgewählt haben. Für die folgenden Beispiele verwenden wir das Posteingangspostfach:

var $transporter : 4D.IMAPTransporter
$transporter :=IMAP New transporter($serverInfo)
$boxInfo :=$transporter.selectBox("Posteingang")

Um Flags in Mails hinzuzufügen, wie im E-Mail-Objekt, erstellen Sie ein Schlüsselwort-Objekt, das alle Flags enthält, die Sie setzen wollen, und übergeben Sie diese als Parameter an die addFlags() Funktion. Zum Beispiel, wenn Sie einige E-Mails als Entwurf markieren wollen:

$mails:=$transporter.searchMails("BETREFF \"4D\"")
$keywords :=New object
$ keywords .$draft:=True

$transporter .addFlags($mails; $keywords )

Flaggen entfernen

Um Flaggen aus E-Mails zu entfernen, erstellen Sie auf die gleiche Weise ein Schlüsselwort-Objekt und übergeben es an die removeFlags() Funktion. Zum Beispiel, wenn Sie alle „Gelöscht“-Flags in Ihrem Postfach entfernen möchten, um das Löschen der markierten E-Mails zu vermeiden:

$mails:=$transporter.searchMails("GELÖSCHT")
$ keywords :=New object
$ keywords .
$deleted:=True
$transporter .removeFlags($mails; $keywords )

Löschen von E-Mails

In einem früheren Blog-Beitrag haben wir Ihnen gezeigt, wie Sie das Kennzeichen /Löscht einer E-Mail mit der delete() Funktion.

Zusätzlich zur delete() Funktion, haben wir die neue expunge() Funktion hinzugefügt, mit der Sie das Kennzeichen /Löschen setzen können, ohne auf den Wechsel des Postfachs oder das Schließen der Verbindung zu warten. Zum Beispiel, wenn Sie alle E-Mails in Ihrem Junk-E-Mail-Postfach entfernen möchten:

$boxInfo:=$transporter.selectBox("Junk Email")

// marks all the email in the current mail box for deletion
$status :=$transporter.delete(IMAP all)

// deletes all the marked emails
$transporter .expunge()

Schauen Sie sich die Dokumentation an, um mehr über die neuen Funktionen zu erfahren!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.