Send-SmtpMail

EulandaXtools — Funktionsreferenz

Send-SmtpMail

ÜBERSICHT

Sendet eine E-Mail über einen SMTP-Server mit optionaler Authentifizierung und Anhängen.

SYNTAX

Send-SmtpMail [-From] <string> [-To] <string[]> [[-Cc] <string[]>] [[-Bcc] <string[]>] [[-ReplyTo]
    <string>] [-SmtpServer] <string> [[-Priority] <string>] [[-Encoding] <string>] [[-User]
    <string>] [[-PlainPassword] <string>] [[-Password] <secureString>] [[-Credential]
    <psCredential>] [-UseSsl] [-BodyAsHtml] [[-Port] <int>] [[-DeliveryNotificationOption]
    <string[]>] [-Subject] <string> [[-Body] <string>] [[-Attachment] <string[]>]
    [<CommonParameters>]

BESCHREIBUNG

Diese Funktion sendet eine E-Mail über einen konfigurierbaren SMTP-Server. Sie unterstützt Klartext- und SecureString-basierte Authentifizierung, sowie auch den Versand ganz ohne Authentifizierung (z. B. an interne Relay-Server). Die Nachricht kann HTML oder reinen Text enthalten und optional Anhänge mitliefern.

Die Authentifizierungslogik arbeitet nach folgendem Schema:

1. Wenn -Credential angegeben ist, wird dieses verwendet.

2. Falls kein Credential angegeben ist, aber -User und -Password (SecureString), wird ein Credential erzeugt.

3. Falls kein Password, aber -User und -PlainPassword vorhanden sind, wird ebenfalls ein Credential erzeugt.

4. Wird nur -User angegeben, aber kein Passwort, wird ein Fehler erzeugt (catch → false).

5. Wenn gar kein Benutzer angegeben ist, erfolgt der Versand ohne Authentifizierung.

Die Funktion setzt automatisch TLS (1.0 bis 1.2) als Protokoll und unterstützt verschiedene Zeichencodierungen.

PARAMETER

-From

Type: string

Absenderadresse der E-Mail.

-To

Type: string[]

Empfängeradresse(n) der E-Mail (ein oder mehrere).

-Cc

Type: string[]

Optionale CC-Empfänger.

-Bcc

Type: string[]

Optionale BCC-Empfänger.

-ReplyTo

Type: string
Default: $From

Reply-To-Adresse. Standard ist die Absenderadresse (`From`).

-SmtpServer

Type: string

Hostname oder IP-Adresse des SMTP-Servers.

-Priority

Type: string
Default: 'Normal'

E-Mail-Priorität: `Normal`, `High` oder `Low`. Standard: `Normal`.

-Encoding

Type: string
Default: 'utf8'

Zeichencodierung der Nachricht (z.B. `utf8`, `ascii`). Standard: `utf8`.

-User

Type: string

Benutzername für die SMTP-Authentifizierung. Ohne Angabe erfolgt anonymer Versand.

-PlainPassword

Type: string

Klartext-Passwort für die Authentifizierung (wird intern in SecureString gewandelt).

-Password

Type: secureString

Passwort als SecureString für die Authentifizierung.

-Credential

Type: psCredential

PSCredential-Objekt für die Authentifizierung (hat Vorrang vor User/Password).

-UseSsl

Type: switch

Aktiviert TLS/SSL für die Verbindung zum SMTP-Server.

-BodyAsHtml

Type: switch

Wenn gesetzt, wird der Body als HTML interpretiert.

-Port

Type: int
Default: 25

TCP-Port des SMTP-Servers. Standard: 25 (für TLS oft 587).

-DeliveryNotificationOption

Type: string[]
Default: 'None'

Zustellbenachrichtigung: `None`, `OnSuccess`, `OnFailure`, `Delay`, `Never`. Standard: `None`.

-Subject

Type: string

Betreffzeile der E-Mail.

-Body

Type: string

Inhalt der Nachricht (Text oder HTML).

-Attachment

Type: string[]

Optionale Dateipfade für Anhänge.

AUSGABEN

boolean

`$true` bei erfolgreichem Versand, `$false` bei Fehler.

BEISPIELE

# Sendet eine HTML-Mail ohne Authentifizierung an den Empfänger. Der SMTP-Server erlaubt anonyme Übertragung.
Send-SmtpMail -From 'info@firma.de' -To 'kunde@example.com' -SmtpServer 'mail.firma.de' `
  -Subject 'Willkommen' -Body '<h1>Hallo!</h1>' -BodyAsHtml -UseSsl -Verbose
# Versendet eine E-Mail über einen internen Server mit Klartext-Anmeldung.
Send-SmtpMail -From 'noreply@example.com' -To 'admin@intern.local' `
  -SmtpServer 'mail.intern.local' -User 'noreply' -PlainPassword 'Geheim123' `
  -Subject 'Interner Bericht' -Body 'Erledigt.' -Verbose
# Sendet eine E-Mail über Office365 mit TLS und SecureString-Authentifizierung.
$sec = ConvertTo-SecureString 'Sicher123' -AsPlainText -Force
Send-SmtpMail -From 'support@example.com' -To 'kunde@example.com' `
  -SmtpServer 'smtp.office365.com' -User 'support@example.com' -Password $sec `
  -Subject 'Ticket 4711' -Body 'Wir melden uns zeitnah.' -UseSsl -Port 587 -Verbose

HINWEISE

Kompatibel mit PowerShell 5.1+