Laden...

ReportItem in Outlook auslesen

Letzter Beitrag vor einem Jahr 5 Posts 839 Views
ReportItem in Outlook auslesen

Hallo,

ich muss den Text (Body) von ReportItems in Outlook auslesen. Diese erhält man z.B., wenn eine Email nicht zugestellt werden konnte.
Dies tue ich mittels C# und der Outlook-Bibliothek.
Aber es passiert etwas ganz komisches:
Ich kann den Body lesen und z.B. in eine Stringvariable speichern.
Aber darin stehen nur völlig unleserliche (optisch chinesische) Zeichen. Und obwohl ich nichts zurückschreibe, besteht ab diesem Moment auch der in Outlook lesbare Inhalt des Reports nur noch aus diesem komischen chinesischen Kauderwelch.
Eine Möglichkeit, die ich gefunden habe besteht darin, den Report erst in eine Datei zu schreiben und diese dann wieder zu lesen.
Das funktioniert. Aber das kann doch nicht der richtige Weg sein!

Hat das schon mal jemand gemacht und kennt eine Lösung?

Vielen Dank!

Aber das kann doch nicht der richtige Weg sein!

Bin mir sehr sicher, dass es nicht der einzige Weg ist. Vermutlich liegts am Encoding.

Was aber sicher ist:

Dies tue ich mittels C# und der Outlook-Bibliothek.

Es gibt seit Office 2003 keine "Outlook Bibliothek" (respektive COM for Outlook) mehr. Seit 2003 gibt es VSTO, das aber auch schon seit fast 10 Jahren obsolete ist.
Das aktuelle VSTO 4.5 stammt noch aus den Zeiten von Office 2012 und wird auch offiziell nur bis Office 2016 unterstützt.

Seit fast 10 Jahren wird ausschließlich das Office Addin Model empfohlen, das jedoch leider mit .NET inkompatible ist.
Office Add-ins documentation - Office Add-ins

Mit .NET bleibt der Zugriff auf die Service APIs, zB Exchange oder M365 API (über den Graph).
Zugriff auf Outlook ist schon lange - wie gesagt ~10 Jahre - nicht mehr Teil der API Strategie. Bekommst auch auf fast jeder Microsoft Docs Seite eine entsprechenden Hinweis/Warnung dazu - man muss ihn halt beachten und lesen.
zB dick und fett direkt in der Einleitung von VSTO: How to: Install the Visual Studio Tools for Office Runtime Redistributable

Danke fü die Hinweise!

Das Verrückte ist ja, dass ich gar nichts in den Report reinschreibe. Nur öffnen - und der Body ist nicht mehr lesbar (auch direkt in de Outlook-Oberfläche nicht mehr).
Bei den Emails funktioniert es völlig problemlos.

Ich nutze in den verschiedensten Applikationen die Objekt-Bibliotheken (hier z.B. die Microsoft Outlook 16.0 object library).
Das funktioniert auch im allg. völlig problemlos und auch auf (aktuellen) Microsoft-Seiten gibt es viele Tipps und Anleitungen, wie damit umzugehen ist.
Da ich ja kein Add-In schreiben will, ist mir ein anderer Weg auch nicht geläufig. Auf die Outlook-Objekte muss ich aber trotzdem zugreifen.
Naja - ich suche mal weiter.

Ich nutze in den verschiedensten Applikationen die Objekt-Bibliotheken (hier z.B. die Microsoft Outlook 16.0 object library).

Das nennt sich Interop.
How to access Office interop objects - C# Programming Guide

Ein bekanntes (leider jedoch umstrittenes) Projekt ist GitHub - NetOfficeFw/NetOffice: 🌌 Create add-ins and automation code for Microsoft Office applications.
Das übernimmt auch alle Encoding-Szenarien, die Du evtl. vergessen hast.

Nochmal danke für den Tipp.
Ich schaue es mir mal an...