![]() |
Emails über Microsoft Graph API senden (mit Sourcecode)
Liste der Anhänge anzeigen (Anzahl: 2)
In einigen Beiträgen wurde hier das Thema Graph API im Zusammenhang mit Versand von Emails angesprochen.
Die API wird hier beschrieben: ![]() Das für den Aufruf der API notwendige Access-Token erhält man über den "OAuth 2.0 authorization Endpunkt (v2)" in Microsoft Entra (ehemals Azure). Dieser ist eine Web-URL, zum Beispiel 'https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize'. Auf GitHub habe ich eine neue Beispielanwendung für ein Indy-basiertes Webserver-Framework veröffentlicht, die den Ablauf mit wenig Code implementiert. Sie startet den System-Webbrowser und leitet zur Anmeldung bei Microsoft weiter. Nach erfolgreicher Autorisierung des Zugriffs sendet die Anwendung dann eine Email an mich ;). Dazu wird per HTTP POST ein JSON Dokument an die Graph API gesendet:
Delphi-Quellcode:
Screenshot der Web Browser - Seite nach dem Emailversand:
function TRootResource.SendMail(const AccessToken: string): string;
const JSON = '{'+ #10 +' "message": {'+ #10 +' "subject": "Meet for lunch?",'+ #10 +' "body": {'+ #10 +' "contentType": "Text",'+ #10 +' "content": "The new cafeteria is open."'+ #10 +' },'+ #10 +' "toRecipients": ['+ #10 +' {'+ #10 +' "emailAddress": {'+ #10 +' "address": "info@habarisoft.com"'+ #10 +' }'+ #10 +' }'+ #10 +' ]'+ #10 +' },'+ #10 +' "saveToSentItems": "false"'+ #10 +'}'; var HTTP: TIdHTTP; IOHandler: TIdSSLIOHandlerSocketOpenSSL; RequestBody: TStream; ResponseBody: string; begin WriteLn(JSON); HTTP := TIdHTTP.Create; try try IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP); IOHandler.SSLOptions.SSLVersions := [sslvTLSv1_2]; HTTP.IOHandler := IOHandler; HTTP.Request.CustomHeaders.Values['Authorization'] := 'Bearer ' + AccessToken; HTTP.Request.ContentType := 'application/json'; RequestBody := TStringStream.Create(JSON, TEncoding.UTF8); ResponseBody := HTTP.Post('https://graph.microsoft.com/v1.0/me/sendMail', RequestBody); WriteLn('Response: "' + ResponseBody + '"'); except on E: EIdHTTPProtocolException do begin WriteLn(E.Message); WriteLn(E.ErrorMessage); raise; end; on E: Exception do begin WriteLn(E.Message); raise; end; end; finally HTTP.Free; end; end; Anhang 56532 Email im Posteingang: Anhang 56531 Download der Anwendung: ![]() Voraussetzungen: Indy, Delphi 2009 oder neuer (oder Lazarus / FPC 3.2) Bonus: wer als Erster / Erste mir auf diesem Weg eine Email sendet, erhält eine kostenlose kommerzielle Lizenz des Frameworks :) |
AW: Emails über Microsoft Graph API senden (mit Sourcecode)
Zitat:
Eine Lizenz des Daraja HTTP Frameworks geht alsbald per PM an den Absender. Vielen Dank für die heute um 16:23 Uhr angekommene Mail, und alles Gute für 2024 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz