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
-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
}