Table of Contents

Beispielcode für MsExchangeViaGraph

Pit Meta-Klassen erzeugen

ondisplayfunction
{
	if (IsMainMenuContext() && InMetaDataMode())
	{
		SetForMetadataMode(1);
		SetFunctionLabel( "create MsGraph Classes" );
		EnableFunction( 1 );
		ShowFunction( 1 );
	}
}

oncallfunction
{
	MsExchangeViaGraphEntity_SetupMetadata();
	
	if (MsExchangeViaGraph_HasLastError())
	{	
		MessageBox("Create MsGraph Metadata failed.\r\n" + MsExchangeViaGraph_GetLastError(), 16);
	}
	else
	{
		MessageBox("Create MsGraph Metadata finished successful.", 64);
	}
}

Authentifizierung

function void SetMsExchangeAuthenticationViaClientSecret()
{
	var int $requestTimeoutSeconds = 120;
	
	var string $tenantId;
	var string $clientId;
	var string $mailbox;
	var string $clientSecret;
	
	$tenantId = "db65e753-xxxx-xxxx-xxxx-02bf858dc7b9";
	$clientId = "db65e753-xxxx-xxxx-xxxx-02bf858dc7b9";
	$mailbox = "max.mustermann@pit.de";
	$clientSecret = "secret_from_azure_portal";

  MsExchangeViaGraph_InitializeByClientSecret($tenantId, $clientId, $clientSecret, $mailbox, $requestTimeoutSeconds);

	MsExchangeViaGraph_SetLogLevel(1); // -> DEBUG-Informationen ausgeben
}
function void SetMsExchangeAuthenticationViaInteractiveLogin()
{
	var int $requestTimeoutSeconds = 120;
	
	var string $tenantId;
	var string $clientId;
	var string $mailbox;
	
	$tenantId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
	$clientId = "cccccccc-cccc-cccc-cccc-cccccccccccc";
	$mailbox = "max.mustermann@pit.de";

  MsExchangeViaGraph_InitializeByInteractiveUserLogin($tenantId, $clientId,  $mailbox, $requestTimeoutSeconds);

	MsExchangeViaGraph_SetLogLevel(1); // -> DEBUG-Informationen ausgeben
}

E-Mail abrufen


function void LoadIncomingMails()
{
	var int $messagescount;

	var int $index;
	var string $mailid, $from, $to, $cc, $bcc, $attachments, $subject, $bodytype, $bodycontent, $inlineimages;
	var time $receivedtime;

	SetMsExchangeAuthenticationViaClientSecret();

	$messagescount = MsExchangeViaGraph_ReadMessages("inbox", NULL, NULL, 10);
	if ($messagescount < 1)
	{
		if (MsExchangeViaGraph_HasLastError())
		{
			MessageBox("es sind fehler aufgetreten:\r\n" + MsExchangeViaGraph_GetLastError());
			return;
		}

		MessageBox("keine e-mails vorhanden. count=" + IntToStr($messagescount));
		return;
	}
	$index = 3;
	
//	MsExchangeViaGraph_GetMessage($index, 1, $mailid, $from, $to, $cc, $bcc, $attachments, $subject, $bodytype, $bodycontent, $inlineimages, $receivedtime);
	MsExchangeViaGraph_GetMessageWithoutAttachments($index, $mailid, $from, $to, $cc, $bcc, $subject, $bodytype, $bodycontent, $receivedtime);


	// hier werden alle fehler seit initialisierung der msgraphclient abgefragt.
	if (MsExchangeViaGraph_HasLastError())
	{
		MessageBox("mail mit index '"+ IntToStr($index)+"' existiert nicht. count="+IntToStr($messagescount));
		MessageBox("es sind fehler aufgetreten:\r\n" + MsExchangeViaGraph_GetErrorHistory());
	}
	else
	{
		MessageBox("subject: " + $subject);
	}
}

letzte Änderung: 06.03.2026