Mit PowerShell Mails über internes Relay versenden

Mailversand zum Beispiel bei erfolgreicher Windows Server Sicherung.

Der nachstehende Beispielcode setzt einen internen Relayserver zum Mailversand voraus, um die Authentifizierung gegenüber dem Mailserver zu sparen.

Wie man/frau einen internen Relayserver unter Exchange 2013 einrichtet zeige ich in einem anderen Blogbeitrag.

#Mailversand via PowerShell
$Server ="S861NIE01HV"
$Absender="S861NIE01HV-WSS@abc.de"
$Betreff="Erfolgreich Windows Server Sicherung"
$PSEmailserver = "S861NIE023EX"
$Empfaenger="backup@xyz.de"

# ab hier nichts mehr ändern ***************************************************
$date1 = Get-Date -Format dd.MM.yyyy
$date1 = $date1 + " " + (Get-Date).ToShortTimeString() + " Uhr - "
$body = &quot;Datum &quot; + $date1 + &quot; Server &quot; + $Server + &quot;  -   <code>r</code>n&quot;
$body = $body + &quot;Windows Server Sicherung erfolgreich!&quot;

Send-MailMessage -to $Empfaenger -from $Absender -subject $Betreff -body $body -smtpserver $PSEmailServer -encoding ([System.Text.Encoding]::UTF8)
Write-Host $body
Write-Host $Betreff

Die Zeilen 1-6 dienen zur Definition der projektspezifischen Variablen und können an das  jeweilige Projekt angepasst werden.

Die Zeilen bis 9 bis 12 setzen den Inhalt der Mail (Body) zusammen.

In der Zeile 14 steht der PowerShell-Aufruf Send-MailMessage, der den Mailversand bewerkstelligt. Das Cmdlets Send-MailMessage der PowerShell ist ein spracheigenes Mittel zum Versenden von E-Mails. Weitere Details zum Syntax finden man hier.

Die Zeilen 15 und 16 dienen zur Kontrolle während der Inbetriebnahme und können später entfallen.

Ein weitere Beitrag zum Mailversand über einen externen Mailserver mit Authentifizierung aus einem PowerShell Script folgt in diesem Blog.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.