1

共有 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 フォルダーをプログラムで同期する方法はありますか?

4

1 に答える 1

0

新着メール受信イベントを使えばできると思います。

private void ThisApplication_Startup(object sender, System.EventArgs e)
{
    this.NewMail += new Microsoft.Office.Interop.
        Outlook.ApplicationEvents_11_NewMailEventHandler(
        ThisApplication_NewMail);
}

void ThisApplication_NewMail()
{
}

参照: http://msdn.microsoft.com/en-us/library/ms268998(v=vs.80).aspx

于 2012-06-20T11:13:00.173 に答える