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