Laden...

MailItem to ByteArray

Erstellt von caldicot vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.818 Views
C
caldicot Themenstarter:in
51 Beiträge seit 2010
vor 12 Jahren
MailItem to ByteArray

Hi,

ich brauche mal wieder eure Hilfe.

Mittels Outlook Addin soll eine Email in ein ContentManagmentSystem geladen werden.
Die API des CMS erwartet das hochzuladende Objekt als byte[].

Ich habe bisher leider nichts gefunden, wie ich ein Mailitem in ein byte[] konvertieren kann.
MailItem ist nicht mit dem Attribut Serializable gekennzeichnet.

Im Moment nutze ich die SaveAs Methode des MailItems um ein Temp-File zu schreiben, dass ich anschließend mit einem FileStream wieder einlese. Danach lese ich den Stream in ein byte[] ein.

Ich habe bei Google nur das Stichwort IPersist Interface gefunden.
Allerdings weiss ich leider überhaupt nicht, wie ich ein COM Interface implementieren kann.

Gibt es vielleicht eine leichtere Möglichkeit oder könnt ihr mir ein Tipp geben, wie ich das IPersist Interface richtig implementiere?

Vielen Dank und guten Rutsch
caldicot

Gelöschter Account
vor 12 Jahren

Hallo,

IPersist nützt dir in dem Zusammenhang überhaupt nichts. Im Prinzip halte ich dein Vorgehen für richtig zumindest wenn ich davon ausgehe das dein CMS die E-Mails irgendwie verarbeitet demzufolge auch lesen können muss. Alternativ könntest du ja alle Informationen von Hand einsammeln und binär serialisieren, allerdings kann das CMS dann wohl auch nichts damit anfangen. Ich verstehe das du dir den Gang zum Dateisystem sparen willst aber eine Alternative sehe ich da nicht, die Outlook API gibt da einfach nicht mehr her.

Gruss
Sebastian

C
caldicot Themenstarter:in
51 Beiträge seit 2010
vor 12 Jahren

Hi,

danke für Deine Antwort.
Schade, ich hätte gehofft, ich könnte mir das sparen...

Dann hilfts wohl nix und ich muss es weiterhin so machen, wie bisher.

Viele Grüße
Caldicot

16.827 Beiträge seit 2008
vor 12 Jahren

Naja, das stimmt so nicht ganz.

Bei der Google suche nach C# serialize MailItem findet man verschiedene Lösungsansätze...

How to Binary serialize a MailMessage for use with MessageQueue Kann man sicher Zweckentfremden
How can I serialize an instance of the MailMessage class?

C
caldicot Themenstarter:in
51 Beiträge seit 2010
vor 12 Jahren

Hallo Abt,

danke für Deine Antwort.

diese Lösungen hatte ich auch schon gefunden.
Nur dachte ich, dass diese nicht zum Ziel führen:
Das CMS erkennt im Moment den Typ und kann ein Preview der EMail anzeigen.
In den Beispielen werden ja nur die Eigenschaften der Email serialisiert und nicht das ganze MailItem?

Ich war der Meinung, dass das ein Unterschied ist und das CMS den Typ daher nicht erkennt?
Oder liege ich damit falsch?

Oder verstehe ich die Beispiele falsch?

Viele Grüße
caldicot

Gelöschter Account
vor 12 Jahren

Hallo,

Die Beispiele sammeln die Information von Hand ein und kopieren Sie in eine eigene serialisierbare Klasse, diesen Weg habe ich angesprochen. Ich sehe nur Probleme darin das dass CMS dann damit nicht mehr umgehen kann.

Gruss
Sebastian