Outlookメールアイテムのカテゴリをプログラムで設定する

Outlook 2007 MailItemのカテゴリをプログラムで設定するための情報や良いコードサンプルはありません。

MSDN has a limited page, and mentions using VB's Split function, saying more or less "you're on your own from here onwards, so sort it out yourself".

これまでメールアイテムのコンマで区切られた文字列プロパティとしてカテゴリを操作することが分かりました。それは少し原始的なようです、それにすべてがありますか?

誰もが文字列関数のライブラリを掘り起こし、単一のメールアイテムに複数のカテゴリが設定されていて、カテゴリが変更されたときに混乱しないように信頼するカテゴリプロパティを解析しますか?

10

1 答え

コンマで区切られたカテゴリのカテゴリを任意の方法で操作することができます。カテゴリを挿入するには、通常、現在の文字列がnullであるかどうかを確認してから割り当てます。カテゴリがnullでない場合は、まだ存在しない場合は追加します。アイテムを削除するには、カテゴリ名を空の文字列に置き換えます。

カテゴリを追加する

 var customCat = "Custom Category";
 if (mailItem.Categories == null)//no current categories assigned
   mailItem.Categories = customCat;
 else if (!mailItem.Categories.Contains(customCat))//insert as first assigned category
   mailItem.Categories = string.Format("{0}, {1}", customCat, mailItem.Categories);

カテゴリの削除

var customCat = "Custom Category";
if (mailItem.Categories.Contains(customCat))
  mailItem.Categories = mailItem.Categories.Replace(string.Format("{0}, ", customCat), "").Replace(string.Format("{0}", customCat), "");

文字列を操作する方法は数多くあります。それらは、シリアライズされたデータ構造を単純に下に保つことを選んだだけです。

アドインの起動時に自分のカテゴリを作成して、それらが存在することを確認する傾向があります。確かにカテゴリの名前の変更が問題になりますが、アドインが読み込まれるたびにカテゴリが存在することを確認している場合は、少なくともある程度の妥当性を確認することができます。

Outlookカテゴリを管理するには、 ThisAddIn .Application.Session.Categories

var customCat = "Custom Category";
if (Application.Session.Categories[customCat] == null)  
  Application.Session.Categories.Add(customCat, Outlook.OlCategoryColor.olCategoryColorDarkRed);
17
追加された
非常に役立ちます!ありがとう!
追加された 著者 Soph,
こんにちは、私はちょうどこれをやってみましたが、カテゴリは更新されません。 mailItem.Categories = customCat; 命令は問題なく実行されますが、Outlookでは表示されません。私は何かを保存すべきか?
追加された 著者 Soph,
ありがとう!シンプルな私は完全にそれを逃した!
追加された 著者 Soph,
MailItem.Save()を発行する必要があります。 > を使用してメタデータの変更を維持する MailItems
追加された 著者 SliverNinja - MSFT,
現在のカルチャ "List dilimiter"をmailItem.Categories = $ "{customCat} {System.Globalization.CultureInfo.CurrentCultur‌ e.TextInfo.ListSepar‌ ator} {mailItem.Categories}"で使用していることを確認できます。
追加された 著者 Jows,