thomas1972
Goto Top

Per Powershell bestehende MSG Datei editieren und als HTML Format speichern

Hallo Zusammen,

mittlerweile kann ich eine bestehende msg Datei mit Variablen befüllen, nur wir die Datei am Schluss als Text Format gespeichert, obwohl die Quelle eine HTM Formatierung ausweist.
Wie kann ich dieses im vorhanden Format übernehmen?

    $file= "C:\Temp\Mail BT 1. Eskalation - sko-wei01-mvfs01.msg"  
    $file | ConvertTo-Html #if needed
    $outlook= New-Object -ComObject outlook.application
    $msg= $outlook.createitemfromtemplate($file)
    $msg.HTMLbody = $msg.HTMLbody.Replace("__NAME__", $Name1)  
    $msg.HTMLbody = $msg.HTMLbody.Replace("__ANREDE__", $Anrede1)  
    $msg.HTMLbody = $msg.HTMLbody.Replace("__MAILADRESSE__", $Mail1)  
    $msg.saveas($file)

Danke für Eure Hilfe,

Thomas

Content-ID: 585825

Url: https://administrator.de/contentid/585825

Ausgedruckt am: 15.11.2024 um 03:11 Uhr

144705
144705 08.07.2020 aktualisiert um 08:06:27 Uhr
Goto Top
Den zweiten Parameter in der SaveAs Methode benutzen!
https://docs.microsoft.com/de-de/office/vba/api/outlook.mailitem.saveas

Als HTML
$msg.saveas('d:\datei.html',5)

Oder als MSG
$msg.saveas('d:\datei.msg',3)

Usw.
thomas1972
thomas1972 08.07.2020 aktualisiert um 08:16:57 Uhr
Goto Top
Danke für den Hinweis,
habe es mit dem vorgeschlagen Wert/Information durchgeführt.
Nun kann ich die Datei nicht mehr öffnen. Es erscheint der Hinweis:
Die Datei..... kann nicht geöffnet werden. Möglicherweise ist die Datei bereits geöffnet, oder Sie sind nicht berechtigt, die Datei zu öffnen

mit Wert 3 kann ich Sie zwar wieder öffnen, bleibt aber nur eine "nur Text" Formatierung, obwohl vorher ein "HTML" Format der Mail gewesen ist. Mir geht es darum die vorhanden Mail Vorlage ( HMTL) Format wieder so zu speichern wie es vorher war.
Mein Script soll eigentlich nur Platzhalter ersetzen und die Datei speichern.

Warum die MSG Datei dabei dann das nur Text Format bekommt entzieht sich meiner Kenntnis.
144705
144705 08.07.2020 aktualisiert um 09:03:20 Uhr
Goto Top
Zitat von @thomas1972:

Danke für den Hinweis,
habe es mit dem vorgeschlagen Wert/Information durchgeführt.
Nun kann ich die Datei nicht mehr öffnen. Es erscheint der Hinweis:
Die Datei..... kann nicht geöffnet werden. Möglicherweise ist die Datei bereits geöffnet, oder Sie sind nicht berechtigt, die Datei zu öffnen
Du musst der Datei schon die passende Endung verpassen, dann klappt das auch!
Außerdem kannst du nicht die Vorlage benutzen und dann im gleichen Dateinamen speichern weil die Vorlage von Outlook eben noch in Benutzung ist.
Wenn du ne *.MSG speicherst und darin aber nur HTML im Plaintext drin ist is klar das die Meldung kommt, ist eben keine MSG mehr.
mit Wert 3 kann ich Sie zwar wieder öffnen, bleibt aber nur eine "nur Text" Formatierung, obwohl vorher ein "HTTML" Format der Mail gewesen ist
Wert 3 ist ja auch kein reines HTML sondern binäres MSG Format , einfach mal in die Konstanten einlesen:
https://docs.microsoft.com/de-de/dotnet/api/microsoft.office.interop.out ...
Du musst dich schon entscheiden was du am Ende bekommen willst.
144705
144705 08.07.2020 aktualisiert um 08:22:28 Uhr
Goto Top
By the way speichert man ein Template/Vorlage richtigerweise im *.oft Format
https://docs.microsoft.com/de-de/office/vba/api/outlook.application.crea ...
thomas1972
thomas1972 08.07.2020 um 08:25:29 Uhr
Goto Top
Ziel des Scriptes ist eigentlich nur bestimmte Felder in der Mail zu überschreiben und wieder zu speichern. (ohne das eine Formatierung der Mail selbst vorgenommen wird).
Die MSG Datei ist vorher eine HTML Formatierung gewesen. Durch das Speichern wird als Plain (nur Text) gespeichert.
Dieses möchte ich vermeiden.
thomas1972
thomas1972 08.07.2020 aktualisiert um 08:27:00 Uhr
Goto Top
Danke,
ich versuche es mal als OFT Datei, vielleicht habe ich nur falsch angesetzt.