HTML Inhalt als Email versenden
Hallo Zusammen,
da bei uns ein Programm immer wieder fehlerhaft ist würde ich das gerne mit einem powershell-Skript lösen.
Die Ursprungsdatei ist eine *.dml und diese enthält eigentlich HTML-Code:
wenn ich nun alle Apostrophe " ' " und alle Pluszeichen "+" lösche bekomme ich es fast genau so wie ich es benötige.
Das daraus entstandene *.html würde ich nun gerne als EMail versenden. Dazu möchte ich die Zeile: From = 'test@email.de' auslesen und die Zeile: Subject = 'Bestellung' und dann den Inhalt als Tabelle versenden.
Jedoch habe ich nichts gefunden wie ich am besten HTML umwandeln bzw auslesen kann.
Ich hoffe man versteht mein vorgehen
Gruß
cosmo87
da bei uns ein Programm immer wieder fehlerhaft ist würde ich das gerne mit einem powershell-Skript lösen.
Die Ursprungsdatei ist eine *.dml und diese enthält eigentlich HTML-Code:
object TdiMail
Body.Strings = (
'<!DOCTYPE html>'
'<html lang="de">'
'<head>'
'<meta http-equiv="Content-Type" content="text/html; charset=utf-' +
'8" />'
'<title>test</title>'
'<style>'
'table {margin: 15px 0 0 0; padding: 0;}'
'th, td {text-align: left; margin: 0; padding-left: 0; padding-ri' +
'ght: 10px;}'
'</style>'
'</head>'
'<body>'
'<h1>testbestellung</h1><br/>'
'<table border="0"><tr><th colspan="2">Lieferanschrift</th></tr><' +
'tr><td colspan="2">FILIALE 26</td></tr><tr><td col' +
'span="2">testname</td></tr><tr><td colspan="2">' +
' </td></tr><tr><td colspan="2">TESTSTR. ' +
'2</td></tr><tr><td>PLZ</td><td>Ort</td></tr></table>'
'<br/>'
'<table>'
'<tr><td>Lieferdatum:</td><td>30.10.2000</td></tr>'
'<tr><td>Bestelldatum:</td><td>27.10.2000</td></tr>'
'<tr><td>Bestellnummer:</td><td>1234</td></tr>'
'<tr><td></td><td></td></tr>'
'<tr><td></td><td></td></tr>'
'<tr><td>Kundennummer:</td><td>12345</td></tr>'
'</table>'
'<br/>'
'<table class="artikel">'
'<tr><th>Artikel</th><th>Bezeichnung</th><th>Bestellnummer</th><t' +
'h>Menge</th><th>Einheit</th></tr>'
'<tr><td>12341</td><td>Item1 </td><td>001' +
'</td><td>108</td><td>KA</td></tr>'
'<tr><td>12342</td><td>Item2 </td><td>002' +
'</td><td>108</td><td>KA</td></tr>'
'<tr><td>12343</td><td>Item3 </td><td>003' +
'</td><td>36</td><td>KA</td></tr>'
'<tr><td>12344</td><td>Item1 </td><td>004' +
'</td><td>40</td><td>KA</td></tr>'
'<tr><td>12345</td><td>Item1 </td><td>005' +
'</td><td>30</td><td>KA</td></tr>'
'<tr><td>12346</td><td>Item1 </td><td>006' +
'</td><td>8</td><td>KA</td></tr>'
'<tr><td>12347</td><td>Item1 </td><td>007' +
'</td><td>8</td><td>KA</td></tr>'
'<tr><td>12348</td><td>Item1 </td><td>008' +
'</td><td>5</td><td>KA</td></tr>'
'<tr><td>12349</td><td>Item1 </td><td>009' +
'</td><td>5</td><td>KA</td></tr>'
'</table>'
'<p>Dies ist eine automatisch generierte Mail – bitte nicht ' +
'antworten.<p>'
'</body>'
'</html>')
From = 'test@email.de'
Recipients.Strings = (
'test@email.de ')
Subject = 'Bestellung'
Priority = mpNormal
ServerType = stSMTP
SMTPAuthType = satNone
IMAPAuthType = iatUserPass
AsHTML = 'J'
UseSSL = 0
Port = 0
end
wenn ich nun alle Apostrophe " ' " und alle Pluszeichen "+" lösche bekomme ich es fast genau so wie ich es benötige.
Das daraus entstandene *.html würde ich nun gerne als EMail versenden. Dazu möchte ich die Zeile: From = 'test@email.de' auslesen und die Zeile: Subject = 'Bestellung' und dann den Inhalt als Tabelle versenden.
Jedoch habe ich nichts gefunden wie ich am besten HTML umwandeln bzw auslesen kann.
Ich hoffe man versteht mein vorgehen
Gruß
cosmo87
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 616492
Url: https://administrator.de/contentid/616492
Ausgedruckt am: 25.11.2024 um 05:11 Uhr
2 Kommentare
Neuester Kommentar
$file = 'D:\test.dml'
$content = gc $file -raw
$from = [regex]::match($content,"(?is)From = '([^']+)").Groups[1].Value
$subject = [regex]::match($content,"(?is)Subject = '([^']+)").Groups[1].Value
$recipients = [regex]::matches([regex]::matches($content,"(?is)Recipients.Strings = \(([^\)]+)").Groups[1].Value,"(?is)'([^']+)'").Captures | %{$_.Groups[1].Value}
$html = (([regex]::matches([regex]::match($content,"(?ism)Body.Strings = \((.*?)\)[\r\n]").Groups[1].Value,"(?is)'([^']+)'").Captures | %{$_.Groups[1].Value}) -join '') -replace '[\r\n]+'
Send-MailMessage -From $from -Subject $subject -To $recipients -Body $html -BodyAsHtml -Encoding ([System.Text.Encoding]::UTF8) -SmtpServer server.domain.tld