Office: Mailbody einer .msg Datei durchsuchen

Helfe beim Thema Mailbody einer .msg Datei durchsuchen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, Wie im Titel schon zu lesen ist versuche ich den Mailbody von .msg Dateien zu duchsuchen. Es handelt sich also um Outlook Mails. Diese... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von sven78hh, 17. August 2013.

  1. sven78hh
    sven78hh Erfahrener User

    Mailbody einer .msg Datei durchsuchen


    Hallo zusammen,

    Wie im Titel schon zu lesen ist versuche ich den Mailbody von .msg Dateien zu duchsuchen. Es handelt sich also um Outlook Mails. Diese wurden auf ein Laufwerk ausgelagert.

    Weiß jemand wie ich den Mailbody per VBA auslesen kann um ihn anschließend zu durchsuchen?
    Im Netz hab habe ich bisher nichts passendes gefunden, dort ist nur beschrieben wie man die Mails in Outlook aufruft, aber nicht wie ich sie auslesen kann, wenn sie auf einem Laufwerk rumliegen.
    Über Ideen und Vorschläge würde ich mich sehr freuen

    Gruß
    Sven
     
    sven78hh, 17. August 2013
    #1
  2. maninweb
    maninweb MVP für Microsoft Excel
    Hallo sven78hh,

    nachdem was ich so im Netz gefunden habe, sind die MSG-Dateien in einer binären Struktur aufgebaut also nicht einfache Textdateien (wobei ich hier keine habe und es somit nicht geprüft habe) Siehe auch hier: http://msdn.microsoft.com/en-us/library/cc463912(v=exchg.80).aspx

    Es soll aber wohl möglich sein, die auch mit Outlook zu öffnen. Insofern wäre ein Ansatz zur Lösung Deiner Problemstellung, per Excel ein Outlook-Objekt zu öffnen/erstellen. Das kannst Du entweder über CreateObject oder Einbinden eines statischen Verweises durchführen. Das ist einfacher, da Dir dann das VBA-Objektmodell für Outook inkl. IntelliSense zur Verfügung steht. Das Einbinden geht über Extras-Verweise.

    Dann könntest Du Code programmieren, der die Dateien einzeln per VBA einliest und auf die Inhalte zugreift; via Outlook VBA in Excel.

    Gruß
     
    maninweb, 17. August 2013
    #2
  3. Exl121150 Erfahrener User
    Hallo Sven,

    im Internet kann man jede Menge solcher Viewer finden. Man braucht zB. bei Google nur einzugeben:
    Outlook msg
    und man erhält gleich 4 Unterbegriffe für die Suche angeboten:
    Outlook msg Viewer / Outlook msg Format / Outlook msg importieren / Outlook msg Datei

    Darunter ist auch ein Artikel von Microsoft selbst:
    http://blogs.msdn.com/b/openspecification/archive/2009/11/06/msg-file-format-part-1.aspx

    Hier ist zB ein Viewer als Freeware, der nicht bloß MSG-Dateien lesen kann, sondern eine ganze Menge weiterer Formate:
    http://www.freeopener.com/formats.html
     
    Exl121150, 17. August 2013
    #3
  4. sven78hh
    sven78hh Erfahrener User

    Mailbody einer .msg Datei durchsuchen

    Hallo Exl121150,

    Ich bin seit 2 Zwei Tagen dabei und versuchen die Mailbodys aus zu lesen
    Leider kann ich keien Freeware auf meinem Firmenrechner insatllieren mit einem privaten Laptop komme ich nicht an die ca. 190.000 Mails. Somit bleiben mir nur die Mittel die mir MS mit XP zur Verfügung stellt. Auf Grund dieser Rahmenbedingungen bin ich momentan etwas dünnhäutig, daher sage ich einfach mal nur ...vielen dank für deinen Hinweis auf Google, da bin ich nämlich noch nicht drauf gekommen ;-)
     
    sven78hh, 17. August 2013
    #4
  5. sven78hh
    sven78hh Erfahrener User
    Ich bin inzwischen soweit gekommen, das ich eine bereits geöffnete Mail auslesen kann, aber ich verzweifel dran das ich die Mail nicht per VBA geöffnet bekomme.

    Makro Mail auslesen:
    (im Netz gefunden)

    Sub FuckYouMsg()
    ' Zeigt den Inhalt
    Dim olApp As Object, AktMail As Object

    Set olApp = CreateObject("Outlook.Application")
    Set AktMail = olApp.ActiveInspector.CurrentItem
    MsgBox AktMail.Body
    Debug.Print AktMail.Body ' Ins Direktfenster
    End Sub

    Meine versuche die Mail zu öffnen:

    Sub FuckYouMsg2()
    Dim sh
    sh = Shell("""C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE""" & """N:\mail\test.msg""")
    sh = ""
    End Sub
    Ergebnis: Outlook öffnet sich, aber die Mail nicht

    Sub FuckYouMsg3()
    Dim WshShell As Object
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run """C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"" N:\mail\test.msg"
    Set WshShell = Nothing
    End Sub
    Ergebnbis: Fehlermeldung --> "Das Befehlszeilenargument ist ungültig. Überprüfen sie den verwendeten Befehl."
     
    sven78hh, 17. August 2013
    #5
  6. sven78hh
    sven78hh Erfahrener User
    Habs nun endlich geschafft, eigentlich wars ganz einfach...
    Hier der Code.
    Den kann man natürlich nocht in eine Sub zusammen fassen!


    Sub Start()
    Dim var As String
    var = "N:\mail\test.msg"
    Shell "C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE /f " & """" & var & """"
    call FuckYouMsg
    End Sub

    Sub FuckYouMsg()
    ' Zeigt den Inhalt
    Dim olApp As Object, AktMail As Object

    Set olApp = CreateObject("Outlook.Application")
    Set AktMail = olApp.ActiveInspector.CurrentItem
    MsgBox AktMail.Body
    Debug.Print AktMail.Body ' Ins Direktfenster
    End Sub
     
    sven78hh, 17. August 2013
    #6
  7. maninweb
    maninweb MVP für Microsoft Excel
    Hallo sven78hh,

    wenn Du den Verweis auf die Outlook Bibliothek setzt, hast Du, wie bereits oben erläutert, Zugriff auf das Objektmodell
    von Outlook. (Extras -> Verweise, Haken bei "... Outlook ... Object Library" setzen). Dann sollte folgender Beispielcode
    funktionieren (ab Outlook 2007, meine ich)
    Code:
    Option Explicit
    
    
    Public Sub MailReader()
    
    
      Dim objOutlook      As Outlook.Application
      Dim objOutlookItem  As Outlook.MailItem
      
      Dim strPath         As String
      Dim strFile         As String
      
    ' Erzeugen...
      
      Set objOutlook = New Outlook.Application
      
    ' Check...
      
      If Not objOutlook Is Nothing Then
        
    '   Ab hier könntest Du eine Schleife draus machen,
    '   um die Dateien alle einzulesen
    '
    '   Pfad und Datei...
        
        strPath = "E:\Temp"
        strFile = "TEST.msg"
        
    '   Mail öffnen...
        
        Set objOutlookItem = objOutlook.Session.OpenSharedItem(strPath & "\" & strFile)
        
    '   Check...
        
        If Not objOutlookItem Is Nothing Then
          
    '     Auslesen...
          
          MsgBox objOutlookItem.Body
          
    '     Schließen...
          
          objOutlookItem.Close olDiscard
          
        End If
        
    '   Zurücksetzen...
        
        Set objOutlookItem = Nothing
        
    '
    '   Hier wäre das Ende der Schleife
    '
        
    '   Abschließen schließen...
        
        objOutlook.Quit
        
      End If
      
    ' Aufräumen...
      
      Set objOutlook = Nothing
      
    End Sub
    Durch diese Methode würdest Du nur einmal Outlook öffnen und immer dieselbe Outlook Instanz verwenden.

    Gruß
     
    maninweb, 18. August 2013
    #7
  8. sven78hh
    sven78hh Erfahrener User

    Mailbody einer .msg Datei durchsuchen

    Hallo maninweb,

    dein Makro sieht intressant aus, aber leider scheitere ich an dieser Stelle:
    Set objOutlookItem = objOutlook.Session.OpenSharedItem(strPath & "\" & strFile)
    hier bekomme ich den Laufzeitfehler 13 / Typen unverträglich
    Die Outlook Bibliothek ist aktiviert, der Pfad stimmt

    Was ich besonders merkwürdig finde ist, wenn ich die Mail per doppelklick auf die MSG-Datei öffne und dann das Makro starte, bekomme ich die Meldung das mir die Zugriffsrechte fehlen oder ein anderes Programm die Datei verwendet. Also, es liegt scheibar nicht daran das das Makro auf die Datei zugreifen kann, sonnst würde ich diese Fehlermeldung nciht bekommen, oder?

    Hast du eine Idee?

    Gruß
    Sven
     
    Zuletzt bearbeitet: 18. August 2013
    sven78hh, 18. August 2013
    #8
  9. maninweb
    maninweb MVP für Microsoft Excel
    Hallo sven78hh,

    welche Outlook Version verwendest Du? Ich habe hier nur Outlook 2013 zur Verfügung, da funktionierte es mit meiner Test-MSG-Datei.
    Falls Du Outlook 2003 hast, dürfte das Makro nicht funktionieren, weil die Methode OpenSharedItem unbekannt ist (soweit ich weiss).
    Versuche es auch mal alternativ mit folgender Zeile (ob das aber so richtig sauber ist, kann ich nicht sagen):

    Set objOutlookItem = objOutlook.CreateItemFromTemplate(strPath & "\" & strFile)

    Wenn die Mail bereits geöffnet ist und Du das Makro öffnest, wundert's mich nicht so sehr, dass dann der Zugriff gesperrt ist. Könnte sein, dass sich Outlook beim Öffnen den Exklusiv-Zugriff verschafft. Es sieht auch danach aus, als gäbe es ein Problem nach dem Öffnen einer MSG-Datei. Siehe hier http://support.microsoft.com/kb/2633737.

    Gruß
     
    maninweb, 19. August 2013
    #9
  10. sven78hh
    sven78hh Erfahrener User
    Openshareditem, ist vorhanden createitemfromtemplate werde ich noch mal ausprobieren, ansonsten werde ich die shell-Version verwenden. Ich danke dir schon mal für die Hilfe.
     
    sven78hh, 19. August 2013
    #10
Thema:

Mailbody einer .msg Datei durchsuchen

Die Seite wird geladen...
  1. Mailbody einer .msg Datei durchsuchen - Similar Threads - Mailbody msg Datei

  2. CompanyButton mit Msg Box

    in Microsoft Excel Hilfe
    CompanyButton mit Msg Box: Moin aus dem Norden, Ich bin absoluter neuling und benötige einmal eure Hilfe. Ich habe in einem CommandButton den Code eines Makros kopiert. Dieser Button löst einen Druck aus. Das klappt...
  3. Wenn ein Text in eine Zelle geschrieben wird dann "Msg Box"

    in Microsoft Excel Hilfe
    Wenn ein Text in eine Zelle geschrieben wird dann "Msg Box": Guten Morgen zusammen, ich habe eine Frage zu Excel VBA. Folgendes Problem: Ich habe schon einen VBA Befehl für die Spalte P, der sieht folgendermaßen aus: " Private Sub Worksheet_Change(ByVal...
  4. Outlook öffnet keine .msg- und .oft-Vorlagendateien mehr

    in Microsoft Outlook Tutorials
    Outlook öffnet keine .msg- und .oft-Vorlagendateien mehr: Outlook öffnet keine .msg- und .oft-Vorlagendateien mehr Outlook für Microsoft 365 Mehr... Weniger Letzte...
  5. VBA Hilfe bei MSG Box

    in Microsoft Excel Hilfe
    VBA Hilfe bei MSG Box: Hallo zusammen, ich möchte per VBA eine Suche in Objekten starten was alles eigentlich auch wunderbar funktioniert. Allerdings möchte ich die Boxen die angezeigt werden etwas umstellen und...
  6. Wie exportiere ich eine Outlook PST-Datei in das MSG-Format?

    in Microsoft Outlook Hilfe
    Wie exportiere ich eine Outlook PST-Datei in das MSG-Format?: Ich möchte eine Outlook PST-Datei in das MSG-Format konvertieren, um darauf in eine einzelne Maildatei zuzugreifen. Bitte schlagen Sie mir eine zuverlässige Lösung vor, um dasselbe zu tun.
  7. viele PDF Dateien aus Outlook in msg umwandeln

    in Microsoft Outlook Hilfe
    viele PDF Dateien aus Outlook in msg umwandeln: Hallo zusammen, ich wende mich an euch, mit der Hoffnung das ihr mir meine tägliche Arbeit etwas erleichtern könnt. Ich muss jeden Tag mehrere PDF Dokumente, die in einen Outlook Ordner...
  8. PDF Anhänge öffnen, Nummer aus PDF kopieren und .msg unter dieser Nummer speichern

    in Microsoft Outlook Hilfe
    PDF Anhänge öffnen, Nummer aus PDF kopieren und .msg unter dieser Nummer speichern: Hallo zusammen, Ich habe folgendes Problem: Ich bekommen automatisch generierte Mails, welche immer einen PDF Anhang haben. Es gibt 2 verschiedene Versionen, entweder das PDF liegt direkt im...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden