1

我正在尝试编写一个应用程序,该应用程序向用户提供来自共享 IMAP 文件夹树中选定文件夹的邮件头列表。该应用程序的用户使用 Outlook 2007 或 2010,并将共享 IMAP 文件夹树映射到他们的帐户。

我可以使用 Outlook 互操作访问文件夹并遍历邮件项目,如下所示:

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 互操作以编程方式同步单个 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 回答