Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
MailItem to ByteArray
caldicot
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

MailItem to ByteArray

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
user8744
myCSharp.de - Member



Dabei seit:
Beiträge: 1.150

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
caldicot
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.493

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
caldicot
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
user8744
myCSharp.de - Member



Dabei seit:
Beiträge: 1.150

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers