VBA Tipp: eml-Datei auslesen

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte verschiedene Mail-Parameter aus einer eml-Datei (Electronic Mail File) auslesen. Ursprünglich wurden in eml-Dateien Mails von Outlook Express gespeichert.

Lösung

  • Das geht mit folgender Prozedur, die in einem globalen Modul gespeichert wird.
  • Die einzelnen Parameter werden im Direktenster aufgelistet.
  • Die Liste der möglichen Parameter ist nicht komplett.
Public Sub EMLDatenAnzeigen(ByVal ordnerpfad As String)
 
 'Late Binding: Kein Verweis auf "Microsoft CDO for Windows 2000 Library" notwendig
 'Pfad zur Bibliothek: 32bit: C:\Windows\System32\cdosys.dll, 64bit: C:\Windows\SysWOW64\cdosys.dll
 'Quelle: www.dbwiki.net oder www.dbwiki.de
 
 Dim objDropDir As Object  'CDO.DropDirectory
 Dim objMsgs As Object     'CDO.IMessages
 Dim i As Integer
 Dim j As Integer
 
 Set objDropDir = CreateObject("CDO.DropDirectory")
 Set objMsgs = objDropDir.GetMessages(ordnerpfad)
 
 'alle eml-Dateien im Ordner durchlaufen
 For i = 1 To objMsgs.Count
 
   'Dateipfad
   Debug.Print objMsgs.FileName(i)
 
   'weitere Parameter auslesen (die Liste ist nicht komplett)
   With objMsgs(i)
 
     'Datum und Uhrzeit
     Debug.Print .ReceivedTime
 
     'Empfänger
     Debug.Print .To
 
     'Absender
     Debug.Print .From
 
     'Betreff
     Debug.Print .Subject
 
     'HTML-Nachricht
     Debug.Print .HTMLBody
 
     'Text-Nachricht
     Debug.Print .TextBody
 
     'Anhänge
     For j = 1 To .Attachments.Count
       Debug.Print .Attachments(j)
     Next
 
   End With
 
 Next i
 
End Sub

Aufruf

 Dim strPfad As String
 
 strPfad = CurrentProject.Path & "\MeinEMLOrdner"
 
 Call EMLDatenAnzeigen(strPfad)