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
Please also mark the comments that contributed to the solution of the article
Content-Key: 616492
Url: https://administrator.de/contentid/616492
Printed on: April 20, 2024 at 07:04 o'clock
2 Comments
Latest comment
$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