共有 IMAP フォルダー ツリーから選択したフォルダーのメール ヘッダーのリストをユーザーに提示するアプリケーションを作成しようとしています。アプリケーションのユーザーは Outlook 2007 または 2010 を使用しており、共有 IMAP フォルダー ツリーがアカウントにマップされています。
次のように、Outlook Interop を使用してフォルダーにアクセスし、メール アイテムを反復処理できます。
Outlook.Application outlook = new Outlook.Application();
Outlook._NameSpace ns = outlook.GetNamespace("MAPI");
Outlook.Folder folder = MyFolderFinder(...);
foreach (var item in folder.Items)
{
if (item is Outlook.MailItem)
{
Outlook.MailItem mailItem = item as Outlook.MailItem;
// do something with mailItem
}
}
残念ながら、この方法ではフォルダが同期されないように見えるため、ユーザーが Outlook を使用して手動で「フォルダの更新」を行わない限り、古いリストが表示される場合があります。
Outlook Interop を使用して単一の IMAP フォルダーをプログラムで同期する方法はありますか?