2017-06-07 25 views
0

自身であるならば、私はプログラム的な方法を以下にC#で添付データを取得しようとしています: -どのような見通しでプログラム添付ファイルのデータにアクセスするには添付ファイルがメール

Microsoft.Office.Interop.Outlook.Attachment attachment = objMail.Attachments[attachmentIndex]; 

if (attachment.DisplayName.Equals("Test")) 

{ 

    const string PR_ATTACH_DATA = "http://schemas.microsoft.com/mapi/proptag/0x37010102"; 

    byte[] attachmentData = attachment.PropertyAccessor.GetProperty(PR_ATTACH_DATA); 

} 

アタッチメントがある場合は今、私のコードは正常に動作していますテキストファイルまたはイメージファイル。しかし、添付ファイル自体がメールの場合、プロパティが不明であるか、見つからないという例外がスローされます。

このプロパティ「http://schemas.microsoft.com/mapi/proptag/0x37010102」は動作しませんし、その場合、バイト配列で添付データを取得するための代替プロパティ/メソッドは何ですか?

おかげ

答えて

0

PR_ATTACH_DATA_BINは、通常の値による添付ファイル(PR_ATTACH_METHOD == ATTACH_BY_VALUE)のための唯一の存在です。埋め込みメッセージまたはOLE添付ファイルは、そのプロパティを公開していません - IAttach::OpenProperty(IID_IStorage, ...)を使用して開く必要があるPR_ATTACH_DATA_OBJを使用 - OutlookSpyを使用して既存のメッセージを見てください(メッセージを選択し、IMessageボタンをクリックしてGetAttachmentTableタブに移動し、添付ファイルをダブルクリックします) 。

PropertyAccessor.GetPropertyは、小さな添付ファイルの場合にのみそのプロパティを取得できることにも注意してください。大きい添付ファイルの場合は、IAttach::OpenProperty(IID_IStorage, ...) - PropertyAccessor.GetPropertyを使用してPR_ATTACH_DATA_BINをIStreamとして開く必要があります。あなたはRDOAttachmentを公開した(拡張MAPI(C++やDelphi)またはRedemptionを使用する必要がありますAsArray/AsText/AsStream性質

+0

こんにちはドミトリー、返事をありがとう、あなたは私がIAttach呼び出すことができるか、私にいくつかの例を提供していただけます。。。: :C#コードからのOpenProperty?私にとって大きな助けになるでしょう – user1677408

+0

上記のとおり、拡張MAPIはC++またはDelphiのみです。 –

関連する問題