我正在尝试编写一个应用程序,该应用程序向用户显示来自共享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文件夹?
答案 0 :(得分: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