bugger
Goto Top

Powershell E-Mail Versand mit farbigem HTML aus txt Datei

Hallo,

ich habe folgenden Code:

$pw = Get-Content .\MailPW.txt | ConvertTo-SecureString
$cred = New-Object System.Management.Automation.PSCredential "MailUser", $pw  

$Logfile = "C:\Logs\Log.txt"  

$body = gc $Logfile |%{"$_ <br/>"} | Out-String  

Send-MailMessage -Credential $cred -to "user1@server.de" -from "user2@server.de" -SmtpServer "server.de" -Subject "Logs" -body $body -BodyAsHtml -encoding ([System.Text.Encoding]::UTF8)  

die Log.txt sieht so aus:

Erfolgreich \\Server1\pfad\zur\log\log.txt
Erfolgreich \\Server2\pfad\zur\log\log.txt
Fehlgeschlagen \\Server3\pfad\zur\log\log.txt
Erfolgreich \\Server4\pfad\zur\log\log.txt


Jetzt wäre es schön, wenn in der E-Mail die Worte Erfolgreich grün und Fehlgeschlagen in rot dargestellt würden und im Betreff oder der Mail selber die Anzahl der erfolgreichen und fehlgeschlagen Vorgänge steht. Kann mir da jemand helfen? face-smile

Danke und Gruß
Bugger

Content-ID: 514596

Url: https://administrator.de/forum/powershell-e-mail-versand-mit-farbigem-html-aus-txt-datei-514596.html

Ausgedruckt am: 25.12.2024 um 19:12 Uhr

141815
Lösung 141815 13.11.2019 aktualisiert um 10:39:19 Uhr
Goto Top
# ...
$body = (((gc $Logfile) -replace 'Erfolgreich','<span style="color:green">$0</span>') -replace 'Fehlgeschlagen','<span style="color:red">$0</span>') -join '<br />'  
# ...
Bugger
Bugger 13.11.2019 um 10:56:20 Uhr
Goto Top
Super, vielen Dank. Hast du auch eine Idee bzgl. der numerischen Zusammenfassung?
141815
Lösung 141815 13.11.2019 aktualisiert um 11:35:05 Uhr
Goto Top
Zitat von @Bugger:

Super, vielen Dank. Hast du auch eine Idee bzgl. der numerischen Zusammenfassung?
Klar mach ein Regex Match auf den Inhalt des Logs und zähle die Anzahl von Erfolgreich und Fehlgeschlagen
$logdata = gc $logfile -raw
[regex]::matches($logdata,'(?i)Erfolgreich').Count  
[regex]::matches($logdata,'(?i)Fehlgeschlagen').Count  
Bugger
Bugger 13.11.2019 um 11:59:47 Uhr
Goto Top
Funktioniert wunderbar, vielen lieben Dank face-smile