Show Mail Dialog
Zuletzt geändert: 21.03.2026 08:03

Übersicht

Show-MailDialog #

ÜBERSICHT #

Zeigt einen E-Mail-Dialog mit Body-Editor, Anhängen und optionaler Kontaktliste.

SYNTAX #

Show-MailDialog [[-From] <string>] [[-To] <string[]>] [[-Cc] <string[]>] [[-Bcc] <string[]>]
    [[-Subject] <string>] [[-HtmlBody] <string>] [[-Attachments] <string[]>] [-DisplayName]
    [[-Conn] <__ComObject>] [[-AddressId] <int>] [<CommonParameters>]

BESCHREIBUNG #

Öffnet einen WPF-Dialog zur interaktiven E-Mail-Erstellung. Der Dialog bietet:

  • Felder für Absender, Empfänger (An/CC/BCC) und Betreff
  • HTML-Body-Editor mit Formatierung (Fett, Kursiv, Aufzählung)
  • Anhangverwaltung (Hinzufügen, Entfernen, Vorschau mit Standard-App)
  • Optionale Kontaktliste aus der EULANDA-Datenbank

Mit -Conn und -AddressId wird eine Kontaktliste angezeigt, aus der Empfänger per Klick übernommen werden können. Ohne diese Parameter werden Empfänger manuell eingegeben.

Der Dialog gibt ein PSCustomObject zurück, das direkt an Send-GraphMail übergeben werden kann.

PARAMETER #

-From #

Type: string

Absender-Adresse (vorbelegt, im Dialog editierbar).

-To #

Type: string[]

Empfängeradressen (vorbelegt). Mehrere Adressen kommagetrennt.

-Cc #

Type: string[]

CC-Empfänger (vorbelegt, optional).

-Bcc #

Type: string[]

BCC-Empfänger (vorbelegt, optional).

-Subject #

Type: string

Betreff der E-Mail (vorbelegt).

-HtmlBody #

Type: string

HTML-formatierter Inhalt (vorbelegt im Editor).

-Attachments #

Type: string[]

Dateipfade für vorgegebene Anhänge.

-DisplayName #

Type: switch

Wenn gesetzt, werden Kontakte im Format “Vorname Nachname ” eingefügt (RFC 5322). Ohne diesen Switch wird nur die E-Mail-Adresse eingetragen.

-Conn #

Type: __ComObject

Optionale ADODB-Verbindung zur EULANDA-Datenbank. Ermöglicht die Kontaktliste für die angegebene Adresse.

-AddressId #

Type: int

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

AUSGABEN #

PSCustomObject

Objekt mit: From, To, Cc, Bcc, Subject, HtmlBody, Attachments, Status. Status ist ‘Send’ oder ‘Cancel’.

BEISPIELE #

# Komplettes Beispiel: DB-Verbindung, Kontaktliste, Dialog und Versand
$tenantId     = '54197dd8-9c79-46ca-9d1f-a6c260a7cfab'
$clientId     = 'c081dca9-2f08-475a-8691-5339e99ab42c'
$clientSecret = 'Ihr~ClientSecret-hier'

$token = Get-GraphToken -TenantId $tenantId -ClientId $clientId -ClientSecret $clientSecret
$conn = Get-ConnByUdl -Udl 'C:\Eulanda\EULANDA_1 Mustermann.udl'
$addressId = Get-AddressId -Conn $conn -Match 'MUSTERMANN'

$mail = Show-MailDialog -From 'herbert@firma.de' -To 'mark@mustermann.de' `
  -Subject 'Testmail' -Attachments 'C:\Temp\rechnung.pdf' `
  -Conn $conn -AddressId $addressId -DisplayName

if ($mail.Status -eq 'Send') {
  Send-GraphMail -Token $token -FromEmail $mail.From -To $mail.To `
    -Cc $mail.Cc -Bcc $mail.Bcc -Subject $mail.Subject `
    -HtmlBody $mail.HtmlBody -Attachments $mail.Attachments
}
# Einfacher Dialog ohne DB-Anbindung
$mail = Show-MailDialog -From 'info@firma.de' -To 'kunde@beispiel.de' `
  -Subject 'Ihre Rechnung' -Attachments 'C:\Temp\rechnung.pdf'

if ($mail.Status -eq 'Send') {
  $token = Get-GraphToken -ClientId 'c081dca9-2f08-475a-8691-5339e99ab42c' -UserScope 'Mail.Send offline_access'
  Send-GraphMail -Token $token -To $mail.To `
    -Subject $mail.Subject -HtmlBody $mail.HtmlBody `
    -Attachments $mail.Attachments
}