Laden...

Positionen der Anhänge in MSG Files ermitteln

Erstellt von thetruedon vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.858 Views
thetruedon Themenstarter:in
111 Beiträge seit 2011
vor 10 Jahren
Positionen der Anhänge in MSG Files ermitteln

Hallo
Ich habe folgendes Problem.
Ich habe viele *.msg Files (Outlook) mit Anhängen, welche, weil Nachrichten an mehrere Empfänger gingen, oft doppelt sind.
Nun möchte ich für Einsparungszwecke die Dinger Aufsplitten.
Ich komme aber auch nach längerer Suche nicht auf die Idee wie ich die Positionen an der ein Dateianhang anfängt und aufhört ermitteln kann um später die Datei an diesen Positionen zu teilen.
Habt ihr ein wenig mehr Einblick in dieses Format und könnt mir da Weiter helfen?
Rein optisch (Editor) scheinen die Dateianhänge ja zumindest am Stück in der MSG Datei zu sein wobei auch das unwichtig wäre wenn man die Positionen der Stücke kennt. Aber vielleicht Täusche ich mich auch dabei.

Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!

16.842 Beiträge seit 2008
vor 10 Jahren

[MS-OXMSG]: Outlook Item (.msg) File Format
Ansonsten ist das Format IIRC bis heute nicht vollständig von Microsoft für die Öffentlichkeit dokumentiert.
Das meiste dürfte wohl auf Basis von Reverse Engineering erkundet worden sein.

Die zuverlässichste Variante müsste über IStorage bzw. OutlookStorage.Message() zu verwirklichen sein.

thetruedon Themenstarter:in
111 Beiträge seit 2011
vor 10 Jahren

Danke ich habe versucht mich da durch zu arbeiten bin jedoch nicht wirklich weiter gekommen da ich das Prinzip nicht verstehe wo in der MSG datei die Byteposition (Offset) ist an der ein Abschnitt anfängt bzw. aufhört. Ich versuche die MSG files in chunks zu teilen. Ziel ist dass die Dateianhänge einzeln da stehen also die blanken Binärdaten aus denen man z.B. einen Hash bilden könnte. Und die Restlichen teile der MSG Datei müssen auch noch existieren damit man im Nachhinein die gleiche Datei wieder aus den Teilen zusammensetzen kann.
Dabei ist noch wichtig dass ich kein Outlook auf dem Rechner laufen habe.

Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!

thetruedon Themenstarter:in
111 Beiträge seit 2011
vor 10 Jahren

Ich habs jetzt die Doku von Microsoft MS-CFB hat weitergeholfen nach längerem ausprobieren und 1,3 Mio files die korrekt ausgelesen wurden denke ich mein Compound File Reader funktioniert was MSG Dateien angeht. Theoretisch auch für DOC, XLS usw. aber das habe ich noch nicht versucht.
Das alles ging völlig ohne Outlook oder fremde Bibliotheken, InterOp wenn man einmal verstanden hat das Format zu lesen.

Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!

S
80 Beiträge seit 2012
vor 10 Jahren

Eventuell kann dieser Link dir helfen: Reading an Outlook MSG File in C#

----ehm............

thetruedon Themenstarter:in
111 Beiträge seit 2011
vor 10 Jahren

Ich hab mein Problem ja schon gelöst und ich empfehle auch eher das Compound File Format selbst auszulesen und das nach der Dokumentation von MS dadurch wird einmal der Code einfacher zu lesen man braucht keine COM Objekte und man versteht das Format an sich besser.
Ich habe weniger Quellcode der das selbe macht ohne einmal einen DLLImport oder COMImport zu machen wobei es bei mir auch primär darum ging das schön zu machen anstatt schnell und keinen fremden code zu verwenden.
Trotzdem danke nochmal.

Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!