2012-02-03 19 views
3

私はOutlookの電子メールを持っており、添付ファイルを処理する必要があります。しかし、添付ファイルを反復するとき、添付ファイルが署名であれば、それをスキップしたいと思います。添付ファイルがOutlook電子メールの署名であるかどうかを確認する

添付ファイルは、私が使用している署名であるかどうかを知る:

outlookMailItem.Attachments[i].PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E"); 

しかし、私は、Outlookのセキュリティ警告を取得しています。

もっと安全なコードを使用する別の方法はありますか?それは償還を使用して行うことはできますか?

ありがとうございます。

答えて

7

PR_ATTACH_CONTENT_IDプロパティは、添付ファイルが埋め込みイメージであるが、PR_ATTACH_CONTENT_IDプロパティが設定されている添付ファイルがあり、埋め込みイメージではないことを示しています(Lotus Notesはすべての添付ファイルにPR_ATTACH_CONTENT_IDを設定したい)。 PR_ATTACH_CONTENT_IDが設定されていない場合でも、Outlookは埋め込みイメージを読み込むためにPR_ATTACH_CONTENT_LOCATIONまたはPR_ATTACH_LONG_FILENAMEを使用できます。 唯一の実際のテストは、HTML本文を解析し、どのタグが添付ファイルを参照しているかを調べることです。 RedemptionRDOAttachment .Fieldsを使用してそのプロパティにアクセスできるようにするには、RDOAttachment .Hiddenプロパティを使用して、添付ファイルが埋め込まれたイメージであり、実際の添付ファイルではないかどうかを確認します。

0

RDOAttachment.Hiddenプロパティは、電子メール形式がHTMLの場合にのみ有効です。リッチテキスト形式の電子メールの場合、署名イメージは他の添付ファイルとして扱われ、この値はfalseとなります。より良い方法は、HTMLとリッチテキストの両方で機能する "Attachment.Type"を使うことです。署名の場合は、常にolOLEとなり、他の添付ファイルの場合はolByValueとなります。したがって、このプロパティを使用して署名イメージをフィルタリングできます。ただし、電子メール形式がリッチテキストで、電子メールにスクリーンショットが埋め込まれている場合は、olOLE型として扱われます。

関連する問題