Microsoft 365: Ricevere e-mail con l’API Microsoft Graph

Tradotto automaticamente da Deepl

Per accedere ai dati di Microsoft 365, come le e-mail, Microsoft sta deprecando l’autenticazione di base per IMAP e POP3 e promuove sempre più l’API Graph.

4D v19 R3 ha introdotto il componente 4D Netkit per gestire la connessione OAuth 2.0 e l’invio di posta elettronica tramite Graph API.

Nella v19 R8 sono stati aggiunti nuovi comandi per ricevere le e-mail ed elencare le cartelle della casella di posta elettronica.

HDI Office365 Ricevi e-mail

Connessione all’account

Prima di creare l’e-mail, creeremo l’oggetto di connessione OAuth2 e l’oggetto Office 365.

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"))

Cartelle di posta

È possibile ottenere la raccolta di cartelle di posta direttamente sotto la cartella principale, utilizzando la funzione .getFolderList():

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

Si ottiene una raccolta che contiene, per ogni cartella, informazioni utili come il nome della cartella, l’id, il numero di e-mail e così via:

Se si hanno cartelle con figli, è necessario richiamare la funzione .getFolderList() utilizzando l’id della cartella come parametro per avere i dettagli delle cartelle:

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

Scaricare le e-mail

È possibile ottenere le e-mail della propria casella di posta elettronica utilizzando la funzione .getMails(). Ad esempio, se si desidera recuperare tutti i messaggi di posta elettronica presenti nella cartella Posta in arrivo:

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

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

Quando la cartella selezionata è una cartella creata di default per gli utenti, invece di usare il valore id della cartella corrispondente, per comodità si possono usare i nomi noti delle cartelle (archivio, bozze, posta in arrivo, posta indesiderata, messaggi inviati e così via… ). Si può quindi scrivere l’esempio seguente:

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

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

Se si desidera scaricare solo un’e-mail specifica, è possibile utilizzare la funzione .getMail() e passarle l’id dell’e-mail:

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

Per maggiori dettagli, verificare questa funzione con l’HDI di cui sopra e la documentazione!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.