Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2 zerstört

Diskutiere Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2 zerstört im Office Forum im Bereich Microsoft Community Fragen; Hallo zusammen, ich werkele an ein einem VBA-Makro um eingende Plain/Text-Emails als HTML-Emails abzuspeichern. (Intern wandelt Outlook ja...

MSCom

Neuer Benutzer
Threadstarter
Dabei seit
20.09.2016
Beiträge
1
Hallo zusammen,

ich werkele an ein einem VBA-Makro um eingende Plain/Text-Emails als HTML-Emails abzuspeichern. (Intern wandelt Outlook ja bereits automatisch um, wie ich auf halbem Weg festgestellt habe.)

Dabei sind mir zwei merkwürdige Sachen aufgefallen:

  1. Bei jeder eingegangenen Mail ist MailItem.BodyFormat = 1, also Plain/Text, auch wenn die Mail als HTML gesendet wurde.
  2. Öffne ich manuell eine Plain/Text-Mail, wähle Nachricht bearbeiten, ändere das Format auf HTML und speichere die Nachricht, so liegt sie korrekt als HTML vor. Setze ich die Eigenschaft (MailItem.BodyFormat) aber per Makro auf HTML (olFormatHTML = 2), so geht der Nachrichtentext komplett verloren. Stattdessen sind in der E-Mail nur noch ? und andere Sonderzeichen zu sehen.
Ich hoffe, jemand findet den Fehler und kann mir weiterhelfen.

Viele Grüße
Jens

PS: Bitte keine "Antworten" wonach das nicht ginge, kommerzielle Anbieter wie "Bells & Whistles" zeigen, dass es geht. ;-)


Hier mein Code:

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim arr() As String
Dim i As Integer
Dim ns As Outlook.NameSpace
Dim itm As MailItem
Dim MailItem As Outlook.MailItem
On Error Resume Next
Set ns = Application.Session
arr = Split(EntryIDCollection, ",")
For i = 0 To UBound(arr)
Set itm = ns.GetItemFromID(arr(i))
If itm.Class = olMail Then
Set MailItem = itm
'MailItem.Parent.Display
'MailItem.Parent.Activate

' Zeige Informationen über die eingegangene Mail um sicherzugehen,
' dass die richtige Mail bearbeitet wird und um ihre Eigenschaften zu sehen:
MessageInfo = "" & _
"Sender : " & MailItem.SenderEmailAddress & vbCrLf & _
"Sent : " & MailItem.SentOn & vbCrLf & _
"Received : " & MailItem.ReceivedTime & vbCrLf & _
"Subject : " & MailItem.Subject & vbCrLf & _
"Size : " & MailItem.Size & vbCrLf & _
"BodyFormat :" & MailItem.BodyFormat & vbCrLf & _
"Message HTML-Body : " & vbCrLf & MailItem.HTMLBody & _
"Message Text-Body : " & vbCrLf & MailItem.Body
MsgBox ("Neue Mail empfangen - Sub Application_NewMailEx" & vbCrLf & MessageInfo)
' Die MsgBox zeigt:
' 1) MailItem.BodyFormat ist immer = 1!
' 2) MailItem.HTMLBody ist auch bei Text/Plain gefüllt - Outlook erzeugt automatisch einen HTML-Body

' Jetzt das Format der Mail in HTML ändern -> Sicherheitshalber nur wenn der Betreff die Mail als Testmail ausweist!
If MailItem.BodyFormat = olFormatPlain And MailItem.Subject = "AW: test - lösch mich" Then ' Merkwürdigerweise ist BodyFormat immer = 1 (olFormatPlain)
MailItem.BodyFormat = olFormatHTML ' Das Ändern von MailItem.BodyFormat führt zu einer E-Mail voller ? -> der Mailinhalt geht komplett verloren!
MailItem.Save
MailItem.Display ' Nur zum Erleichtern der Tests -> später entfernen!
' -> Neue Erkenntnis! -> Der Mailinhalt geht erst NACH Schließen des mit MailItem.Display geöffneten Fensters verloren! (bzw. sofort, falls MailItem.Display nicht ausgeführt wird)
End If
End If
Next
Set ns = Nothing
Set itm = Nothing
Set MailItem = Nothing
End Sub
 
Thema:

Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2 zerstört

Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2 zerstört - Ähnliche Themen

Outlook VBA - Kategorien in spezifisches Postfach importieren: Hallo zusammen: Ich habe folgende Quelltexte zu diesem Thema gefunden: 1. Liste aller vorhandenen Kategorien im Standardpostfach erzeugen...
Automatische out-of- office-Antwort funktioniert nicht mehr: Hallo zusammen, ich habe in Outlook ein VBA-Makro erstellt, welches beim Beenden von Outlook automatisch die out-of-office-Antwort aktiviert und...
Wie kann ich - per Makro - alle in einem Word-Dokument enthaltenen Internetz-Adressen ("www.";"https://";"http://") in einen Hyperlink umwandeln?: Hallo liebe Forums-User! Ich versuche einen Makro zu erstellen, der in einem längeren Dokument mehrere beliebige unterschiedliche Webadressen...
Excel VBA: Liebe Community! Ich habe Office 365. Ich habe eine Excel Vorlage mit VBA Codes. Diese Vorlage hat jetzt 3 Jahre perfekt funktioniert. Vor 1...
Verhalten beim Einfügen von Bildern per Makro: Hallo zusammen, ich habe folgendes Makro: Sub InsertPics() Dim Rw&, PFAD$, Datei$, Bild As Shape PFAD = "C:\Users\….\" With...

Sucheingaben

mailitem.bodyformat

,

olformatplain

,

VB email Outlook bodyformat =

,
vba mail bodyformat
, MailItem
Oben