2016-03-21 16 views
0

Outlookカスタムフォームを作成して受信トレイに送信しました。C#の電子メールフォームデータの読み取り

私のコードでは、

 ExchangeService exchange = new ExchangeService(ExchangeVersion.Exchange2010_SP1); 
     exchange.UseDefaultCredentials = true; 
     exchange.AutodiscoverUrl("[email protected]", RedirectionUrlValidationCallback); 

     TimeSpan ts = new TimeSpan(0, -1, 0, 0); 
     DateTime date = DateTime.Now.Add(ts); 
     SearchFilter.IsGreaterThanOrEqualTo filter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeReceived, date); 

     if (exchange != null) 
     { 
      Folder inbox = Folder.Bind(exchange, WellKnownFolderName.Inbox); 
      SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false)); 
      ItemView view = new ItemView(1); 
      FindItemsResults<Item> findResults = exchange.FindItems(WellKnownFolderName.Inbox, sf, view); 

      foreach (Item item in findResults) 
      { 
       EmailMessage message = EmailMessage.Bind(exchange, item.Id); 
       string messageBody = message.Body; 

件名、本文などを取得できますが、カスタムフォームに表示されているフィールドをどのように読み取ることができますか?

私はtextbox1という名前のフィールドを持っています。

ありがとうございます。

答えて

3

カスタムフォームがOutlookで作成したMAPIプロパティの詳細を知る必要があります。 MFCMapiやOutlook SpyなどのMapiエディタを使って簡単に見つけることができます。あなたがGUIDを知ったら、あなたはちょうどそれを定義して、あなたにプロパティを返すためにEWSを伝えるために必要な情報をタグ

ExtendedPropertyDefinition CustomProperty = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "CustomPropertyName", MapiPropertyType.String); 
PropertySet ItemPropSet = new PropertySet(BasePropertySet.FirstClassProperties); 
ItemPropSet.Add(CustomProperty); 
EmailMessage message = EmailMessage.Bind(exchange, item.Id,ItemPropSet); 

などの最も可能性の高いものがまたhttps://msdn.microsoft.com/en-us/library/office/dd633697(v=exchg.80).aspx

乾杯 グレン

+0

ブリリアントを参照してください例。ありがとう。 – griegs

関連する問題