In einem kleinen Access Programm greife ich per VBA auf Outlook zu und
importieren alle Mails mit einem bestimmten Betreff. Hat bisher einwandfrei
funktioniert. Bis der Benutzer einen neuen PC bekam.
Problem: Die Eigenschaft 'Body' liefert zwar einen Text, aber nicht mehr den
Inhalt der EMail (es handelt sich um HTML Mails). Der gelieferte Text ist
ein typischer Mail Text, aber eben nicht der Inhalt der zu importierenden
EMail (auch nicht der einer anderen). Ich habe keine Ahnung wo der Text
herkommt!?!?!
Weiss da jemand weiter?
Danke, Gruß Peter
> Inhalt der EMail (es handelt sich um HTML Mails). Der gelieferte Text
ist
> ein typischer Mail Text, aber eben nicht der Inhalt der zu
importierenden
> EMail
den Inhalt einer HTML-Mail findest Du in der HTMLBody-Eigenschaft.
--
Viele Grüße
Michael Bauer
> den Inhalt einer HTML-Mail findest Du in der HTMLBody-Eigenschaft.
erst mal vielen Dank für den Hinweis.
Da stellt sich mir gleich die nächste Frage:
Da ich den Inhalt des Mails zerpflücken muß, wäre es wesentlich angenehmer,
den Inhalt als Text, statt als HTML zu haben.
Gibt es eine Möglichkeit das zu konvertieren?
Gruß, Peter
> den Inhalt als Text, statt als HTML zu haben.
> Gibt es eine Möglichkeit das zu konvertieren?
musst Du gar nicht - der reine Text steht in der Body-Eigenschaft.
> musst Du gar nicht - der reine Text steht in der Body-Eigenschaft.
eben nicht!
In der Body Eigenschaft steht schon ein Text, aber nicht der Text dieser
EMail.
Sieht so aus als ob dies der Text einer anderen Email wäre?!?!
Gruß Peter
> Sieht so aus als ob dies der Text einer anderen Email wäre?!?!
ohne Kristallkugel muss ich raten: Es ist wohl tatsächlich eine andere
Mail :-)
Wenn Du hier den relvanten Code postest, sehen wir vielleicht klarer.
> Wenn Du hier den relvanten Code postest, sehen wir vielleicht klarer.
danke für deine Geduld und Mithilfe.
Anbei ein Codebeispiel:
Function MailImportTest()
Dim ol As Object ' Verweis auf Outlook Instanz
Dim olns As Object ' Namespace
Dim MyFolder ' Posteingang
Dim MyItems ' Auflistung der Elemente im Posteingan
Dim SpecificItem ' Ein Mail Item
On Error GoTo errHandler
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
Set MyFolder = olns.GetDefaultFolder(olFolderInbox)
Set MyItems = MyFolder.Items
For Each SpecificItem In MyItems
If SpecificItem.Subject Like "*online*" Then
Debug.Print SpecificItem.Body ' der hier
gelieferte Text entspricht nicht dem tats. Inhalt
Debug.Print SpecificItem.HTMLBody ' dies ist der
Inhalt der Mail
End If
Next
Set ol = Nothing
Set olns = Nothing
Exit Function
errHandler:
MsgBox Err.Description
resume next
End Function
Gruß Peter
das kann ich leider nicht nachvollziehen. Mal abgesehen davon, dass bei
reinen Textmails die HTMLBody-Eigenschaft leer ist, enthält sie
ansonsten den gleichen Mailinhalt wie die Text-Eigenschaft - natürlich
angereichert mit allen HTML-Tags etc.
Das trägt in diesem Fall zwar nicht zu Deiner Problemlösung bei, aber
generell solltest Du Dir angewöhnen, die Variablen als solche Typen zu
deklarieren, die Du verwenden willst. Die letzten drei Variablen hast Du
implizit als Variant deklariert, was schnell unbeabsichtigte Folgen
haben kann, wenn Du z.B. mal eine Set-Anweisung vergißt und auf Objekte
mit Standardeigenschaft triffst.
jedenfalls trotzdem vielen Dank für die Mühe.
Gruß Peter