我正在尝试编写一个应用程序,该应用程序向用户提供来自共享 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 文件夹?