Microsoft 365: Empfangen von E-Mails mit der Microsoft Graph API

Für den Zugriff auf die Daten in Microsoft 365, wie z. B. E-Mails, verzichtet Microsoft auf die Basic-Authentifizierung für IMAP und POP3 und setzt verstärkt auf die Graph-API.

4D v19 R3 brachte die 4D Netkit Komponente, um die OAuth 2.0 Verbindung und den E-Mail-Versand über die Graph API zu verwalten.

In v19 R8 fügen wir neue Befehle hinzu, um E-Mails zu empfangen und Ihre Mailbox-Ordner aufzulisten.

HDI Office365 Mails abrufen

Kontoverbindung

Bevor wir die E-Mail erstellen, erstellen wir das OAuth2-Verbindungsobjekt und das Office 365-Objekt.

var $oAuth2: cs.NetKit.OAuth2Provider
var $office365 : cs.NetKit.Office365

$oAuth2:=cs.NetKit.OAuth2Provider.new($param)
$office365:=cs.NetKit.Office365.new($oAuth2;\
 New object("mailType"; "Microsoft"))

Mail-Ordner

Sie können die Mailordner-Sammlung direkt unter dem Stammordner abrufen, indem Sie die Funktion .getFolderList() verwenden:

$folderList:=$office365.mail.getFolderList()
// Collection with all the mail folder directly under the root folder
$folders:=$folderList.folders

Sie erhalten eine Sammlung, die für jeden Ordner hilfreiche Informationen wie den Ordnernamen, die ID, die Anzahl der E-Mails und so weiter enthält:

Wenn Sie einige Ordner mit Unterordnern haben, müssen Sie die Funktion .getFolderList() mit der Ordner-ID als Parameter aufrufen, um die Details der Ordner zu erhalten:

$childrenList:=$office365.mail.getFolderList($folders[8].id)

Emails herunterladen

Sie können die E-Mails Ihrer Mailbox mit der Funktion .getMails() abrufen. Zum Beispiel, wenn Sie alle E-Mails im Ordner Posteingang abrufen möchten:

$param:=New object
$param.folderId:=$folder[1].id  // inbox folder

$mails:=$office365.mail.getMails($param)

Wenn es sich bei dem ausgewählten Ordner um einen Ordner handelt, der standardmäßig für Benutzer erstellt wurde, können Sie der Einfachheit halber statt des entsprechenden Ordnernamens die bekannten Ordnernamen verwenden (Archiv, Entwürfe, Posteingang, Junkmail, Gesendete Nachrichten, usw.). So können Sie das folgende Beispiel schreiben:

$param:=New object 
$param.folderId:="inbox"

$mails:=$office365.mail.getMails($param)

Wenn Sie nur eine bestimmte E-Mail herunterladen möchten, können Sie die Funktion .getMail() verwenden und ihr die ID der E-Mail übergeben:

$mail:=$office.mail.getMail($mailId)

Schauen Sie sich diese Funktion mit dem obigen HDI an und lesen Sie die Dokumentation für weitere Details!

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.