Ich arbeite an einem Outlook-VSTO in C# mit Ausrichtung auf Outlook 2010. Ich muss den MIME-Inhaltstyp einer Nachricht abrufen (denken Sie an text/plain
oder die exotischeren Alternativen). Die einzige Stelle, die ich finden kann, ist in den Nachrichtenheadern, was eine lange Zeichenfolge ist, die ich lieber nicht manuell lesen und parsen möchte.Abrufen des Inhaltstyps eines Outlook-Mail-Elements
MSDN dokumentiert die PidNameContentType Eigenschaft (alternate link), aber ich kann es nicht zum Funktionieren bringen. So etwas scheitert immer (nicht gefunden).
String ct = mail.PropertyAccessor.GetProperty(
"urn:schemas:mailheader:content-type"); // Not found
String ct2 = mail.PropertyAccessor.GetProperty(
"http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/content-type"); // Not found
Weirdly, dies nicht auch für ein documented example, die ähnlich ist:
String ct2 = mail.PropertyAccessor.GetProperty(
"http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/content-class"); // Not found
Auf der anderen Seite, einige der "häufiger" Header, wie urn:schemas:mailheader:subject
, gut funktionieren.
Bin ich gerade mit der PropertyAccessor
falsch? Kopiert Outlook den Content-Type-Header nicht wirklich, und ich muss das einfach manuell tun? Gibt es eine andere Möglichkeit, den Inhalt dieses Headers zu erhalten?
Nein, Content-Type (wie in dem MIME-Header) wird so etwas wie 'text/plain' (oder, interessanterweise' multipart/signed; \ n \ tboundary = "Apple-Mail = _E0EEB558-0782-4701-B076-26B88FDF6612"; \ n \ tprotocol = "application/pgp-Signatur"; micalg = pgp-sha512'). – CBHacking
Outlook benötigt dies nicht - es analysiert immer den Nachrichtentext in einfache (PR_BODY), HTML (PR_HTML) und RTF (PER_RTF_COMPRESSED) Teile. Wenn HTML und RTF aus reinem Text erstellt wurden, gibt es einen Kommentar in HTML- und RTF-Textstellen, die den Text als einfachen Text markieren. –
Leider gibt es mehr E-Mails als die reinen Text- und HTML- (und RTF-) Körpern ... besonders im Umgang mit signierten und verschlüsselten Nachrichten. Mehr leider, Outlook versteht PGP/MIME-Nachrichten * nur * gut genug, um sie zu einem völligen Bär zu machen (siehe jede Frage auf dieser Website mit der Zeichenfolge "smime.p7m", von denen die meisten betreffen eigentlich PGP/MIME). In diesem Fall ist das, was ich suche, eine Möglichkeit, PGP/MIME-signierte und/oder verschlüsselte E-Mails schnell zu identifizieren, ohne Zeit mit Raten und Prüfen zu verschwenden. Zum Glück ist es im MIME-Header "Content-Type" angegeben ... wenn ich es nur bekommen könnte! – CBHacking