E-Mail-Benachrichtigungen mit der Powershell senden
22. Mai 2018Bestimmte Gegebenheiten machen es nötig, E-Mails direkt aus der Windows Powershell heraus zu versenden. Dies ist etwa der Fall, wenn die Administratoren testweise Mails versenden möchten (etwa bei der Fehlerdiagnose). Alternativ lassen sich auch bestimmte Ausgaben von unterschiedlichen Cmdlets zu einem „Report“ zusammenfassen, und automatisiert versenden. Als Email-Provider wird in diesem Beispiel „Gmail“ eingesetzt. Das ist besonders dann praktisch, wenn in der jeweiligen Umgebung (etwa einer Zweigstelle) kein „eigenen“ Exchange-Server oder sonstiger E-Mail-Dienst vorhanden ist. Das Skript ist auf Technet zum kostenlosen Download bereit. Ein Aufruf könnte dabei wie folgt aussehen:
$email = „myemail3@gmail.com“ $pass = „MyPass@123“ $smtpServer = „smtp.gmail.com“ $msg = new-object Net.Mail.MailMessage $smtp = new-object Net.Mail.SmtpClient($smtpServer) $smtp.EnableSsl = $true $msg.From = „$email“ $msg.To.Add(„$email“) $msg.BodyEncoding = [system.Text.Encoding]::Unicode $msg.SubjectEncoding = [system.Text.Encoding]::Unicode $msg.IsBodyHTML = $true $msg.Subject = „Test mail from PS“ $msg.Body = „ <h2> Test mail from PS </h2> </br> Hi there “ $SMTP.Credentials = New-Object System.Net.NetworkCredential(„$email“, „$pass“); $smtp.Send($msg)