3

カスタム フィールドを持つアイテム (カスタム ExtendedProperty 値を持つ連絡先やイベントなど) を含む Exchange Server があります。Exchange Web Services (EWS) を使用してこれらのフィールドを表示する方法を探しています。

Microsoft のドキュメントによると、メソッドExtendedPropertyを使用して個々の値を取得する簡単な方法がありますFindItem。例:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
     xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010" />
  </soap:Header>
  <soap:Body>
    <m:FindItem Traversal="Shallow">
      <m:ItemShape>
        <t:BaseShape>AllProperties</t:BaseShape>
        <t:AdditionalProperties>
          <t:ExtendedFieldURI PropertySetId="c11ff724-aa03-4555-9952-8fa248a11c3e" 
             PropertyName="Expiration Date" PropertyType="String" />
        </t:AdditionalProperties>
      </m:ItemShape>
      <m:IndexedPageItemView MaxEntriesReturned="10" Offset="0" BasePoint="Beginning" />
      <m:ParentFolderIds>
        <t:DistinguishedFolderId Id="inbox" />
      </m:ParentFolderIds>
    </m:FindItem>
  </soap:Body>
</soap:Envelope> 

ただし、これには と が必要PropertySetIDです。私の場合、利用可能なものはまったくわかりません。利用可能なすべての拡張プロパティのリストを取得する方法はありますか?PropertyTypePropertyNamePropertySetIDsPropertyTypePropertyName

4

3 に答える 3

2

拡張(カスタム)プロパティのリストを取得することはできません。私はIndependentsoftのAPIを使用していましたが、EWSで取得するプロパティを知っている(リクエストする)必要があると言われました。

于 2012-07-31T08:55:42.503 に答える
0

拡張プロパティのリストを取得する方法があります: 次のコードを使用できます。

ItemView view = new ItemView(100); var s = service.FindItems(WellKnownFolderName.Inbox, view); ExtendedPropertyDefinition ExtendedProp = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "Expiration Date", MapiPropertyType.String); var requestedPropertySet = new PropertySet(BasePropertySet.FirstClassProperties, ExtendedProp; var s = service.FindItems(WellKnownFolderName.Inbox, view);

次に、s の各項目を繰り返し処理してから、次のようにします。

foreach(var s1 in s) { s1.load(requestedPropertySet); //Here you need to specify the name of each extended property and get it one by one. }

于 2016-08-26T00:09:22.433 に答える
-1
 if (emails[i].ExtendedProperties.Count > 0)
 {
      Console.WriteLine("Aantal extended properties *" + i + "*" + sAccount + "*" + emails[i].ExtendedProperties.Count + "*");
      foreach (ExtendedProperty extendedProperty in emails[i].ExtendedProperties)
      {
          Console.WriteLine(" Extended Property Name: " + extendedProperty.PropertyDefinition.Name);
          Console.WriteLine(" Extended Property Value: " + extendedProperty.Value);
      }
}
于 2013-04-20T13:49:28.120 に答える