Powershell SendMail mit Extras (Image, Betreffsymbol etc.)
Hallo,
habe in meiner Frage zum Email-Versand bei Server-Neustart ja ein bisschen mit der Powershell experimentiert.
Herausgekommen ist ein Script, das tatsächlich funktioniert und bei dem das Ergebnis auch ansprechend geworden ist.
Falls es Jemanden interessiert, hier ist der Code:
Das kleine x bei $MailMessage.Subject ist eigentlich ein Raketensymbol gewesen, aber damit funktioniert die Formatierung als Code hier nicht.
Ansonsten viel Spaß damit.
Vielleicht hat Jemand Verbesserungsvorschläge.
Gruß Peter
habe in meiner Frage zum Email-Versand bei Server-Neustart ja ein bisschen mit der Powershell experimentiert.
Herausgekommen ist ein Script, das tatsächlich funktioniert und bei dem das Ergebnis auch ansprechend geworden ist.
Falls es Jemanden interessiert, hier ist der Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$AktDat = Get-Date -format G
$CN = $env:computername
$OS = (Get-WmiObject win32_operatingsystem).caption
$Rel1 = (Get-WmiObject win32_operatingsystem).version
$Rel2 = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" -Name ReleaseID).ReleaseId
$Rel3 = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" -Name UBR).UBR
$utf8 = New-Object System.Text.utf8encoding
$wmi=Get-WmiObject -computername $CN -Class Win32_OperatingSystem
$UpTime = Get-Date ($wmi.converttodatetime($wmi.lastbootuptime)) -format G
$UpTimeCount = (Get-date) - (Get-Date ($wmi.converttodatetime($wmi.lastbootuptime)))
#$Dateiname = "Pfad zum Dateianhang, falls Sie einen mit versenden möchten" # z.B. c:\zipdatei.zip
$Dateiname = “C:\SendMail\WindowsserverRestart.jpg”
$BodyImg = @”
<html>
<body>
<br><img src="cid:image1.jpg"><br>
</body>
</html>
“@
$SmtpServer = new-object system.net.mail.smtpClient
$SmtpServer.Host = "172.20.0.20" # FQDN des SMTP-Servers
$MailMessage = New-Object system.net.mail.mailmessage
$attachment = new-object Net.Mail.Attachment($Dateiname)
$attachment.ContentDisposition.Inline = $True
$attachment.ContentDisposition.DispositionType = “Inline”
$attachment.ContentType.MediaType = “image/jpeg”
$attachment.ContentId = ‘image1.jpg’
$MailMessage.SubjectEncoding = $utf8
$MailMessage.from = "sharkoon.event@xxxxx.net"
$MailMessage.To.add("xxxxxx@xxxxxx.de")
$MailMessage.Subject = "x Server-Neustart Benachrichtigung”
$MailMessage.IsBodyHtml = $true # je nachdem ob Sie html ($true) oder txt ($false) Mails schicken möchten
$MailMessage.Body = "Server $CN <br $BodyImg <br> Neustart am $AktDat <br> <br> $OS <br> Version: $Rel1" + "." + "$Rel3 ($Rel2) <br> <br> Letzter Neustart: $UpTime <br> Uptime: $UpTimeCount"
$MailMessage.Attachments.Add($attachment)
$SmtpServer.Send($MailMessage)
Das kleine x bei $MailMessage.Subject ist eigentlich ein Raketensymbol gewesen, aber damit funktioniert die Formatierung als Code hier nicht.
Ansonsten viel Spaß damit.
Vielleicht hat Jemand Verbesserungsvorschläge.
Gruß Peter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 356951
Url: https://administrator.de/knowledge/powershell-sendmail-mit-extras-image-betreffsymbol-etc-356951.html
Ausgedruckt am: 18.04.2025 um 00:04 Uhr
4 Kommentare
Neuester Kommentar

Schön das du dich mit Powershell beschäftigst aber so fehlt da noch eine Menge Errorhandling, Generalisierung als wiederverwendbaren Funktion, mit Pipelinesupport &Co., etc. pp.
Vielleicht lässt du deine Powershell-Kenntnisse erst noch etwas reifen, gerade wenn man gestern erst damit angefangen hat, sollte man von Tipps noch etwas Abstand nehmen
.
Vielleicht lässt du deine Powershell-Kenntnisse erst noch etwas reifen, gerade wenn man gestern erst damit angefangen hat, sollte man von Tipps noch etwas Abstand nehmen

PS: Warum kann ich dieses Unicode-Zeichen hier nicht darstellen? Genau an der Stelle wird immer der Text abgeschnitten.
Geht nicht, wird vom Forum ausgefiltert.Sollte man aber sowieso besser weglassen wenn man solche Mails an Fremde schickt und nicht möchte das sie im Spam-Filter hängen bleiben.
@PeterleB Danke