私はOutlook 2010を対象としたC#でOutlook VSTOで作業しています。メッセージのMIMEコンテンツタイプを取得する必要があります(text/plain
またはよりエキゾチックな代替案と考える)。私がこれを見つけることができる唯一の場所はメッセージヘッダーです。これは長い文字列であり、手動で読み込んで解析する必要はありません。Outlookメールアイテムのコンテンツタイプを取得する
MSDNはPidNameContentTypeプロパティ(alternate link)のドキュメントですが、動作させることはできません。そのようなものは常に失敗します(見つからない)。変なふう
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
、これも同様ですdocumented exampleで失敗した:一方
String ct2 = mail.PropertyAccessor.GetProperty(
"http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/content-class"); // Not found
を、「より一般的な」ヘッダーの一部は、urn:schemas:mailheader:subject
のように、正常に動作。
私はただPropertyAccessor
を間違って使用していますか? OutlookはContent-Typeヘッダーを実際に解析しないため、手動で行う必要がありますか?このヘッダーの内容を取得する他の方法はありますか?
いいえ、Content-Typeの(MIMEヘッダ、のように) 'マルチパート/署名し、さらに興味深いことに'テキスト/ plain'(または、のようなものになります。\ n個の\ tboundary = "アップルメール= _E0EEB558-0782-4701-B076-26B88FDF6612"; \ n \ tprotocol = "アプリケーション/ pgp-署名"; micalg = pgp-sha512')。 – CBHacking
Outlookはこれを必要としません。メッセージ本文は常にPR_BODY、HTML(PR_HTML)、RTF(PER_RTF_COMPRESSED)の各部分に解析されます。 HTMLとRTFがプレーンテキストで作成されている場合、HTMLとRTFの本文には本文がプレーンテキストとしてマークされます。 –
残念ながら、プレーンテキストやHTML(およびRTF)の本文よりも電子メールの方が多く、特に署名されたメッセージや暗号化されたメッセージを扱う場合は特にそうです。もっと残念なことに、Outlookは対処すべき完全なクマになるだけの十分なPGP/MIMEメッセージを理解しています(このサイトのすべての質問にsmime.p7mという文字列がありますが、そのほとんどは実際にPGP/MIMEに関係しています)。この場合、私が探しているのは、PGP/MIMEで署名されたメールや暗号化されたメールを素早く特定する方法です。幸いにも、それはMIMEヘッダー "Content-Type"に示されています...もし私がそれを得ることができれば! – CBHacking