E-Mail-Benachrichtigungen mit der Powershell senden

22. Mai 2018

Bestimmte 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:

1$email = „myemail3@gmail.com“
2 
3  
4 
5$pass = „MyPass@123“
6 
7  
8 
9$smtpServer = „smtp.gmail.com“
10 
11  
12 
13  
14 
15$msg = new-object Net.Mail.MailMessage
16 
17$smtp = new-object Net.Mail.SmtpClient($smtpServer)
18 
19$smtp.EnableSsl = $true
20 
21$msg.From = „$email“
22 
23$msg.To.Add(„$email“)
24 
25$msg.BodyEncoding = [system.Text.Encoding]::Unicode
26 
27$msg.SubjectEncoding = [system.Text.Encoding]::Unicode
28 
29$msg.IsBodyHTML = $true
30 
31$msg.Subject = „Test mail from PS“
32 
33$msg.Body = „
34<h2> Test mail from PS </h2>
35 
36 
37</br>
38 
39Hi there
40 
41
42 
43$SMTP.Credentials = New-Object System.Net.NetworkCredential(„$email“, „$pass“);
44 
45$smtp.Send($msg)

Florian Huttenloher

Lesen Sie auch