13

パブリック フォルダーからの電子メールを自動的に処理する小さなアプリケーションを作成します。メールごとに、いくつかのメタデータをデータベースに保存します。

ItemID を使用して、このメタデータと特定の電子メールとの間のリンクを作成したかったのですが、この ItemId が定数ではないことがわかりました。たとえば、電子メールがパブリック フォルダーから別のパブリック フォルダーに移動された場合、別の ItemId を受け取ります。つまり、電子メールと関連するメタデータの間のリンクが失われます。

問題は、メタデータと特定の電子メールの間のリンクを作成するにはどうすればよいかということです。

4

3 に答える 3

7

私の理解では、EWS の一意の ID には何らかの形式で EntryId が含まれています。そのため、要素が別のフォルダーに移動されると変更されます。

ここでは当てはまりませんが、カレンダー エントリの場合は状況がより複雑になります。Exchange は特定の状況下で予定を破棄して再作成し、それによって一意の ID を変更するからです。

このページ ( http://msdn.microsoft.com/en-us/library/cc815908.aspx ) には、オブジェクトの識別に使用できる MAPI プロパティの概要が含まれています。これに代わる方法は、独自の id プロパティを Exchange 要素に (拡張プロパティを介して) 追加することです。

于 2010-11-14T09:27:20.583 に答える
1

アイテム ID の変更。全体を通してユニークなままではありません。アイテムにアクセスするには、GUID を使用できます。

(以下の SOAP リクエストは、カレンダー アイテムを取得するためのものです。) FindItem 呼び出しで GUID を使用して、アイテムに関する情報を取得できます。

 <FindItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
      xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
     Traversal="浅い">
  <アイテム形状>
  <t:BaseShape>すべてのプロパティ</t:BaseShape>
  </ItemShape>
  <制限事項>
  <t:IsEqualTo>
  <t:ExtendedFieldURI PropertySetId="6ED8DA90-450B-101B-98DA-00AA003F1305" PropertyId="3" PropertyType="バイナリ" />
  <t:FieldURIOrConstant>
  <t:Constant Value="BAAAAJXIl1MJ8="/> /* GUID */
  </t:FieldURIOrConstant>
  </t:IsEqualTo>
  </制限>
  <ParentFolderIds>
  <t:DistinguishedFolderId Id="calendar"/>
  </ParentFolderIds>
  </FindItem>
于 2010-12-10T10:03:04.180 に答える
0

EntryItemIdをEWSの一意のアイテムIDに変換する必要があります。その後、主キーとして使用してDBにエントリを作成できます。

見て:

リンク

于 2010-11-12T13:39:08.133 に答える