2016-03-26 33 views
0

現在、私はEx2016をサポートするために、MAPI CDOからEWS(Managed API 2.2)への1つの大きなプロジェクトの移行に取り組んでいます。すべてのものは1つを除いてうまく移行されました:添付ファイルの拡張プロパティを読み書きする方法を見つけることができません。誰かがそれを行う方法を知っていますか、またはいくつかの回避策かもしれませんか?これは私にとって非常に重要なことであり、私は非常に助けていただければ幸いです。EWS Managed API 2.2添付ファイルの拡張プロパティの書き込み

---アップデート: は、あまりにも添付ファイルの成功せずプロパティを取得するためにネイティブEWSを使用しようとしました:

 var ret = esb.GetAttachment(new GetAttachmentType() 
     { 
      AttachmentIds = new []{new AttachmentIdType() 
       { 
        Id = "AAMkADVhNjUzMzMyLTRiMDYtNDc4OS1hYjJjLWI1ZDA4ZWFhYTJkZQBGAAAAAADqFaOFYZSeQI5UObwGbjIJBwAOgaos6ORVS5+o5bQovn/kAAAAeN2cAAAOgaos6ORVS5+o5bQovn/kAAAeCoIuAAABEgAQAJPAuRg2gipPmEKfgW26mFU=", 
       }}, 
      AttachmentShape = new AttachmentResponseShapeType() 
      { 
       BodyType = BodyTypeResponseType.Best, 
       BodyTypeSpecified = true, 
       IncludeMimeContent = false, 
       IncludeMimeContentSpecified = true, 
       AdditionalProperties = new [] 
       { 
        new PathToExtendedFieldType() { PropertyType = MapiPropertyTypeType.Integer, PropertyTag = "0x3705"}, 
        new PathToExtendedFieldType() { PropertyType = MapiPropertyTypeType.Integer, PropertyTag = "0x0E21"}, 
       } 
      } 
     }); 

応答が要求されたプロパティのいずれかが含まれていません。

---アップデート2:プロジェクトで

我々は添付ファイルの次のプロパティを使用します。 PR_RECORD_KEYを、PR_DISPLAY_NAME、PR_RENDERING_POSITION PR_ATTACH_ENCODING、PR_ATTACH_NUM、PR_ATTACH_METHOD、PR_ATTACH_LONG_FILENAME、PR_ATTACHMENT_HIDDEN、PR_ATTACH_CONTENT_ID、PR_ATTACH_FLAGS、PR_ATTACH_MIME_TAG、PR_ATTACH_CONTENT_LOCATION、PR_ATTACH_SIZE

カスタムプロパティセットを使用していくつかのカスタム拡張プロパティを作成し、その添付ファイルにその小道具をタグ付けします。 プロパティの一部は、PR_ATTACH_SIZEのようなEWS/ManagedApiのオブジェクトモデルで見つけることができますが、他のものやカスタムプロップの問題があります。

標準添付プロパティとカスタムを読み書きする必要があります。 プロジェクトでは、埋め込みアイテムではなく、添付ファイル自体にマークを付けます。

答えて

0

EWS内の添付ファイルまたは受信者コレクションの拡張プロパティにアクセスすることはできません。これらのプロパティは、APIによって強く型付けされたプロパティとしてアクセス可能になります。拡張プロパティを使用できる唯一の場所はメッセージレベルです。

これは、拡張プロパティをどのように使用するかなど、埋め込みアイテムの拡張プロパティがどのようになっているかを詳しく説明できます。その場合、Item Attachmentを介して拡張プロパティにアクセスすることができます。

0x3705は添付ファイルのPR_ATTACH_METHODプロパティで、EWSではこれと同等のものはなく、EWSは添付ファイルタイプに基づいて別の添付ファイルクラスを返します。 ItemAttachment、FileAttachmentまたはReferanceAttachment(例:OneDrive添付ファイルの場合) 0x0E21はアタッチメント番号EWSがGetItemリクエスト内のその番号の順にアタッチメントを返すため、自分で計算できるようにします。しかし、アタッチメントを取得するには、MAPIとは異なりEWSIdが必要なため、このプロパティはEWSでは役に立たない。

乾杯 グレン

+0

こんにちはグレン、お返事ありがとうございました。アップデート2を確認してください。あなたは「拡張プロパティを使用できる唯一の場所はメッセージレベルです」と述べました。 EWSのメッセージが低レベル(管理APIではなく)か、EmailMessage/Contacts/Appointmentsなどを意味しますか? –

+0

拡張プロパティは、EWSのアイテムレベルでのみ使用できます(使用する方法に関係なく)。添付ファイルまたは受信者(MAPIの場合のように)で取得することはできません。あなたはあなたのアプリケーションのいくつかのデザインを見直す必要があります。たとえば、添付ファイルに拡張プロパティを使用することはできませんが、添付ファイルに必要なプロパティをマップするだけのItemにカスタムプロパティを作成できます。その後、あなたのロジックを再マップしてそのプロパティを見ても、あなたはあなたの後ろにある1対1のマッピングを見つけることはできません。 –

関連する問題