Send Graph Mail Service
Zuletzt geändert: 14.03.2026 05:56

Send-GraphMailService #

ÜBERSICHT #

Versendet E-Mails über die Microsoft Graph API mit Client Credentials Flow (Service-Authentifizierung).

SYNTAX #

Send-GraphMailService [[-TenantId] <string>] [[-ClientId] <string>] [[-ClientSecret] <string>]
    [-FromEmail] <string> [-To] <string[]> [[-Cc] <string[]>] [[-Bcc] <string[]>] [-Subject]
    <string> [-HtmlBody] <string> [[-Attachments] <string[]>] [[-InlineImages] <object[]>]
    [<CommonParameters>]

BESCHREIBUNG #

Send-GraphMailService versendet HTML-formatierte E-Mails über die Microsoft Graph API im Kontext eines Service-Accounts (Application Permissions). Die Zugangsdaten (TenantId, ClientId, ClientSecret) können direkt als Parameter übergeben werden oder - falls einer der Werte fehlt - automatisch aus einer lokalen Konfigurationsdatei ($env:USERPROFILE.graph\creds.json) geladen werden. Fehlen die Konfigurationsdatei oder der Ordner, erfolgt eine verständliche Fehlermeldung. Die Funktion prüft alle Eingaben und sendet die Mail ausschließlich mit korrekten, gültigen Werten.

PARAMETER #

-TenantId #

Type: string

Die Azure Tenant-ID (kann als Parameter übergeben oder aus Datei geladen werden).

-ClientId #

Type: string

Die Client-ID der registrierten Azure-App (kann als Parameter übergeben oder aus Datei geladen werden).

-ClientSecret #

Type: string

Das Client Secret der Azure-App (kann als Parameter übergeben oder aus Datei geladen werden).

-FromEmail #

Type: string

Absender-Adresse (muss ein Exchange-Postfach oder eine Shared Mailbox sein, für die die App sendeberechtigt ist).

-To #

Type: string[]

Array mit Empfängeradressen (mindestens eine Angabe ist Pflicht). Erlaubt auch Kommagetrennten String.

-CC #

Type: string[]

Array mit CC-Empfängern (optional).

-BCC #

Type: string[]

Array mit BCC-Empfängern (optional).

-Subject #

Type: string

Betreff der E-Mail.

-HtmlBody #

Type: string

HTML-formatierter Inhalt der E-Mail.

-Attachments #

Type: string[]

Array mit Dateipfaden für optionale Anhänge.

AUSGABEN #

void

Die Funktion gibt keinen Wert zurück. Erfolg oder Fehler werden als Konsolenausgabe dargestellt.

BEISPIELE #

# Sendet eine einfache HTML-E-Mail an einen Empfänger. Zugangsdaten werden automatisch geladen.
Send-GraphMailService `
  -FromEmail "no-reply@beispiel.de" `
  -To "user@firma.de" `
  -Subject "Test" `
  -HtmlBody "<b>Hallo!</b>"
# Sendet eine E-Mail mit CC und Anhang. Zugangsdaten werden per Parameter übergeben.
Send-GraphMailService `
  -TenantId "abc-..." `
  -ClientId "def-..." `
  -ClientSecret "XYZ..." `
  -FromEmail "user@firma.de" `
  -To "kunde@beispiel.de" `
  -CC "chef@firma.de" `
  -Subject "Mit CC und Anhang" `
  -HtmlBody "<h1>Beispiel</h1>" `
  -Attachments "C:\Dokumente\beleg.pdf"

HINWEISE #

  • Für den Versand wird Application Permission “Mail.Send” in der Azure-App benötigt.
  • Die Konfigurationsdatei sollte als JSON unter $env:USERPROFILE.graph\creds.json liegen.
  • ClientSecret wird verschlüsselt gespeichert und erst im Arbeitsspeicher entschlüsselt.
  • Die Funktion prüft alle Felder auf Gültigkeit und gibt bei Fehlern klare Hinweise aus.