Microsoft 365: Přijímání e-mailů pomocí rozhraní Microsoft Graph API

Automaticky přeloženo z Deepl

Pro přístup k datům ve službě Microsoft 365, jako jsou e-maily, společnost Microsoft ruší základní ověřování pro protokoly IMAP a POP3 a stále více podporuje rozhraní Graph API.

4D v19 R3 přinesl komponentu 4D Netkit, která spravuje připojení OAuth 2.0 a odesílání pošty prostřednictvím Graph API.

Ve verzi v19 R8 přidáváme nové příkazy pro příjem e-mailů a výpis složek poštovní schránky.

HDI Office365 Získat e-maily

Připojení k účtu

Před vytvořením e-mailu vytvoříme objekt připojení OAuth2 a objekt 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"))

Poštovní složky

Kolekci poštovních složek můžete získat přímo pod kořenovou složkou pomocí funkce .getFolderList():

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

Získáte kolekci, která pro každou složku obsahuje užitečné informace, jako je název složky, id, počet e-mailů a tak :

Pokud máte některé složky s podřízenými složkami, musíte zavolat funkci .getFolderList() s použitím id složky jako parametru, abyste získali podrobnosti o složkách:

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

Stáhnout e-maily

E-maily z vaší poštovní schránky můžete získat pomocí funkce .getMails(). Pokud například chcete načíst všechny e-maily přítomné ve složce Doručená pošta:

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

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

Pokud je vybraná složka složkou vytvořenou ve výchozím nastavení pro uživatele, můžete místo odpovídající hodnoty id složky pro usnadnění použít známé názvy složek (archiv, návrhy, doručená pošta, nevyžádaná pošta, odeslané položky a tak dále… ). Můžete tedy napsat níže uvedený příklad:

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

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

Pokud potřebujete stáhnout pouze konkrétní e-mail, můžete použít funkci .getMail() a předat jí id e-mailu:

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

Podívejte se na tuto funkci s výše uvedeným HDI a na dokumentaci, kde najdete další podrobnosti!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.