2016-11-04 7 views
1

私はカスタムのUserPropertyを作成中にMailItemに追加しようとしています。メールを送信した後にOutlook.MailItem.UserPropertyが消えます

MailItemオブジェクトに添付ファイルのHashをUserPropertyとして追加します。 次に、Outlookで新しいMailItemを開きます。

mi = olApp.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem; 
      Outlook.UserProperties mailUserProperties = null; 
      Outlook.UserProperty mailUserProperty = null; 

      mi.Attachments.Add(file.FilePath); 
      mailUserProperties = mi.UserProperties; 
      mailUserProperty = mailUserProperties.Add("AttachementsHash", Outlook.OlUserPropertyType.olText); 
      mailUserProperty.Value = file.Hash; 
      mi.Save(); 
      mi.Display(); 

私は私のメールが1 UserPropertyを持っていることがわかり送信する前にOutlookSpy使用MailItem.UserPropertiesを確認してください。

次に、Outlookで[メールを送信]をクリックし、メールをSentItemsフォルダで確認します。誰もが私のUserPropertyが消える理由を知っている場合 私はUserProperties.Countの== 0

を見ることができ、私を助け、私は私の問題を解決する努力をたくさんして:)

+0

どのようなメッセージストアをお使いですか?名前付きプロパティのBLOBは、プロパティの値を格納するプロパティと共に(OutlookSpyのIMessageをクリックして)消えていますか? –

答えて

2

を教えてください。

メールを送信した後にユーザー属性が削除されます。しかし、UserPropertiesの代わりに私がMailItem.PropertyAccessor.SetProperty

MSDN Documentation of Property Accessor

 string prop = "http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/PropertyName"; 
     mi.PropertyAccessor.SetProperty(prop, propertyValue.ToString()); 

を使用し、イベントに項目がsentItemsに追加された場合、私は、チェックし 'ItemAdd'。 それは私がこのような構造を使用してプロパティを読み取るsentItemsに追加された場合:

Outlook.MailItem AddedMail = item as Outlook.MailItem; 
        string attachmentProperty = AddedMail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001E"); 

をそしてfinnally、私は私のデータを取得するために文字列を解析。

私は誰でも助けてくれることを願っています:)

関連する問題