2016-08-10 29 views
0

私は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ヘッダーを実際に解析しないため、手動で行う必要がありますか?このヘッダーの内容を取得する他の方法はありますか?

答えて

0

メッセージのコンテンツタイプは、まあ、メッセージでしょうか?

OutlookSpy(IMessageをクリック)またはMFCMAPIで利用可能なプロパティを見て、利用可能なプロパティを確認してください。

+0

いいえ、Content-Typeの(MIMEヘッダ、のように) 'マルチパート/署名し、さらに興味深いことに'テキスト/ plain'(または、のようなものになります。\ n個の\ tboundary = "アップルメール= _E0EEB558-0782-4701-B076-26B88FDF6612"; \ n \ tprotocol = "アプリケーション/ pgp-署名"; micalg = pgp-sha512')。 – CBHacking

+0

Outlookはこれを必要としません。メッセージ本文は常にPR_BODY、HTML(PR_HTML)、RTF(PER_RTF_COMPRESSED)の各部分に解析されます。 HTMLとRTFがプレーンテキストで作成されている場合、HTMLとRTFの本文には本文がプレーンテキストとしてマークされます。 –

+0

残念ながら、プレーンテキストやHTML(およびRTF)の本文よりも電子メールの方が多く、特に署名されたメッセージや暗号化されたメッセージを扱う場合は特にそうです。もっと残念なことに、Outlookは対処すべき完全なクマになるだけの十分なPGP/MIMEメッセージを理解しています(このサイトのすべての質問にsmime.p7mという文字列がありますが、そのほとんどは実際にPGP/MIMEに関係しています)。この場合、私が探しているのは、PGP/MIMEで署名されたメールや暗号化されたメールを素早く特定する方法です。幸いにも、それはMIMEヘッダー "Content-Type"に示されています...もし私がそれを得ることができれば! – CBHacking

0

ヘッダー全体を最初に取得してから、その文字列を検索して必要なものを取得する方法はありますか?

Const PR_TRANSPORT_MESSAGE_HEADERS = "http://schemas.microsoft.com/mapi/proptag/0x007D001E" 
Outlook.PropertyAccessor olPA = olkMsg.PropertyAccessor; 
String Header = olPA.GetProperty(PR_TRANSPORT_MESSAGE_HEADERS); 

出典:Code Project

+0

完全に可能ですが、「Outlookは実際にContent-Typeヘッダーを解析しないので、手動で行う必要がありますか」という質問の一部です。 Outlookが自動的に解析するものがどれくらいあるかを考えれば、名前付きのプロパティが必要なものであり、私がこのアドインを書いている理由の1つは、置き換える予定のものが悪いという事実パフォーマンス、私は本当に良い解決策を望んでいた。 – CBHacking

関連する問題