Send Graph Mail With Dialog
Zuletzt geändert: 13.04.2026 21:00

Übersicht

Send-GraphMailWithDialog #

ÜBERSICHT #

Zeigt E-Mail-Dialog und versendet über Graph API (User- oder Service-Flow).

SYNTAX #

Send-GraphMailWithDialog [[-AuthFlow] <string>] [[-ClientId] <string>] [[-From] <string>]
    [-ForceFrom] [[-To] <string[]>] [[-Cc] <string[]>] [[-Bcc] <string[]>] [[-Subject] <string>]
    [[-Body] <string>] [[-Attachments] <string[]>] [[-Udl] <string>] [[-Conn] <__ComObject>]
    [[-AddressId] <int>] [<CommonParameters>]

BESCHREIBUNG #

Zeigt einen interaktiven E-Mail-Dialog (WPF) und versendet über die Graph API. Nutzt intern Show-MailDialog, Get-GraphToken und Send-GraphMail.

Unterstützt zwei Authentifizierungs-Varianten über -AuthFlow:

User-Flow (Default, OAuth2 PKCE): Interaktive Anmeldung per Browser, Token ist an den angemeldeten Benutzer gebunden. Eigene Mail-Adresse wird automatisch als erste Option in die From-Liste übernommen, zusätzliche Shared Mailboxes per -From.

Service-Flow (Client Credentials, App-Only): Token wird aus \SYSTEM\Devices\EMail\GraphAPI\ServiceFlow gelesen (TenantId/ClientId/ClientSecret). Der Dialog zeigt die Absender-Adresse aus ServiceFlow\From (oder den -From-Override) — keine Browser-Anmeldung, kein /me-Lookup. Erfordert zwingend -Conn oder -Udl.

Beim Senden über eine Shared Mailbox werden “Senden als” und “Vollzugriff” Berechtigungen in Exchange benötigt. Siehe Send-GraphMail für Details.

Der WPF-Dialog wird immer als Topmost geöffnet, damit er nicht hinter der aufrufenden Anwendung verschwindet (PowerShell läuft als eigener Prozess ohne Owner-HWND-Beziehung zu EULANDA).

PARAMETER #

-AuthFlow #

Type: string
Default: 'User'

‘User’ (Default) oder ‘Service’. Steuert Token-Beschaffung und den Registry- Subkey aus dem die Absenderadresse vorbelegt wird (UserFlow\From bzw. ServiceFlow\From). Service-Flow erfordert -Conn bzw. -Udl.

-ClientId #

Type: string
Default: 'c081dca9-2f08-475a-8691-5339e99ab42c'

Azure AD Client-ID (optional). Default: EULANDA-Standard-App. Nur bei eigener Azure-App-Registrierung ändern. Wird im Service-Flow ignoriert – dort wird die ClientId aus dem ServiceFlow-Subkey gelesen.

-From #

Type: string

Absender-Adresse(n) (semikolongetrennt). Verhalten je nach Flow:

  • User-Flow: Zusätzliche Adressen (z.B. Shared Mailboxes). Die eigene Mail-Adresse wird automatisch als erste Option vorangestellt. Bei leerem -From und vorhandenem -Conn wird UserFlow\From aus der Registry gezogen.
  • Service-Flow: Override für die Absenderadresse. Ohne -From wird ServiceFlow\From aus der Registry verwendet. Ein /me-Lookup findet nicht statt (die App-Identity hat keine eigene Mailbox).

-ForceFrom #

Type: switch

Erzwingt die Anzeige des From-Felds als editierbares Textfeld, auch wenn -From leer ist oder nur eine Adresse enthält.

-To #

Type: string[]

Empfängeradressen.

-Cc #

Type: string[]

CC-Empfänger (optional).

-Bcc #

Type: string[]

BCC-Empfänger (optional).

-Subject #

Type: string
Default: ''

Betreffzeile.

-Body #

Type: string
Default: ''

HTML-Inhalt der E-Mail.

-Attachments #

Type: string[]

Dateipfade für Anhänge.

-Udl #

Type: string

Pfad zu einer UDL-Datei für die DB-Verbindung. Hat Vorrang vor -Conn. Im Service-Flow zwingend (oder -Conn). Ermöglicht die Kontaktliste im Dialog.

-Conn #

Type: __ComObject

ADODB-Verbindungsobjekt zur EULANDA-Datenbank. Im Service-Flow zwingend (oder -Udl) — wird für Token-Beschaffung und Registry-Lookup benötigt. Ermöglicht die Kontaktliste im Dialog.

-AddressId #

Type: int

Adress-ID für die Kontaktabfrage. Nur zusammen mit -Conn oder -Udl.

AUSGABEN #

void

BEISPIELE #

# Einfacher Aufruf (ClientId wird automatisch gesetzt)
Send-GraphMailWithDialog `
  -To 'cn@outlook.de' `
  -Subject 'Test-E-Mail' `
  -Body '<b>Hallo!</b>'
# Mit Absender-Auswahl und Kontaktliste
Send-GraphMailWithDialog `
  -From 'cn@eulanda.de;support@eulanda.de;info@eulanda.de' `
  -To 'kunde@beispiel.de' `
  -Subject 'Angebot' `
  -Body '<b>Siehe Anhang</b>' `
  -Udl 'C:\Eulanda\EULANDA_1 Mustermann.udl' `
  -AddressId 42
# Absender automatisch aus der EULANDA-Registry (Shared Mailbox für
# diesen Arbeitsplatz). -From entfällt, weil es in
# \SYSTEM\Devices\EMail\GraphAPI\UserFlow\From gepflegt ist.
Send-GraphMailWithDialog `
  -To 'kunde@beispiel.de' `
  -Subject 'Rechnung 2026-00042' `
  -Body '<b>Siehe Anhang</b>' `
  -Attachments 'C:\Temp\rechnung.pdf' `
  -Udl 'C:\Eulanda\EULANDA_1 Mustermann.udl'
# Service-Flow (App-Only): Dialog erscheint, Versand über Client-Credentials.
# Absender kommt aus \SYSTEM\Devices\EMail\GraphAPI\ServiceFlow\From
# (kein Browser-Login, keine /me-Mailbox nötig).
Send-GraphMailWithDialog `
  -AuthFlow Service `
  -To 'kunde@beispiel.de' `
  -Subject 'Rechnung 2026-00042' `
  -Body '<b>Siehe Anhang</b>' `
  -Attachments 'C:\Temp\rechnung.pdf' `
  -Udl 'C:\Eulanda\EULANDA_1 Mustermann.udl'

HINWEISE #

Voraussetzungen für Shared Mailboxes:

  • Exchange Admin Center -> Shared Mailbox -> Delegierung -> “Senden als” + “Lesen und Verwalten” für den Benutzer
  • Azure App -> API-Berechtigungen -> Mail.Send (delegiert)
  • Exchange Online ist in allen Microsoft 365 Business/Enterprise-Plänen enthalten