文件夹与 GetDefaultFolder 问题
Folder vs. GetDefaultFolder issue
我正在编写的 Outlook 插件有问题。在我进行一项更改之前,一切都运行良好,但我无法弄清楚这是为什么。
这是我的原始代码:
inbox = outlookNameSpace.GetDefaultFolder(
Microsoft.Office.Interop.Outlook.
OlDefaultFolders.olFolderInbox);
这是我所做的更改:
inbox = outlookNameSpace.Folders["sharedinbox"].Folders["inbox"];
我这样做是为了访问在多个用户之间共享的特定收件箱文件夹,因为所有用户都有他们的默认文件夹,然后他们也有这个 sharedinbox。当收到一封电子邮件时,我有一个事件可以记录完美运行的电子邮件。我在后台有一个工作人员遍历该文件夹中的所有项目并检查是否已阅读该特定电子邮件然后做一些事情。出于某种原因,当我将电子邮件标记为已读时,它无法识别它。当我用我的原始代码完成它时,它工作得很好。 GetDefaultFolder 和 Folder 之间是否存在会导致此类问题的差异?
I have a worker in the background that iterates through all the items in that folder and checks if that specific email is read then does some stuff.
Office 应用程序 (Outlook) 使用单线程单元模型,不允许在辅助线程上使用 Outlook 对象模型。相反,您可以考虑使用低级代码 - Extended MAPI。或者只是 API 的任何包装(例如,最著名的 - 救赎)。
For some reason when I mark the email as read now it doesn't recognize it.
你运行主线程上的代码吗?
Is there a difference between GetDefaultFolder and Folder that would cause this kind of issue?
在这两种情况下,您都应该得到一个有效的 Folder 对象。但是要获得共享文件夹,我建议改用命名空间 class 的 GetSharedDefaultFolder 方法。
我正在编写的 Outlook 插件有问题。在我进行一项更改之前,一切都运行良好,但我无法弄清楚这是为什么。
这是我的原始代码:
inbox = outlookNameSpace.GetDefaultFolder(
Microsoft.Office.Interop.Outlook.
OlDefaultFolders.olFolderInbox);
这是我所做的更改:
inbox = outlookNameSpace.Folders["sharedinbox"].Folders["inbox"];
我这样做是为了访问在多个用户之间共享的特定收件箱文件夹,因为所有用户都有他们的默认文件夹,然后他们也有这个 sharedinbox。当收到一封电子邮件时,我有一个事件可以记录完美运行的电子邮件。我在后台有一个工作人员遍历该文件夹中的所有项目并检查是否已阅读该特定电子邮件然后做一些事情。出于某种原因,当我将电子邮件标记为已读时,它无法识别它。当我用我的原始代码完成它时,它工作得很好。 GetDefaultFolder 和 Folder 之间是否存在会导致此类问题的差异?
I have a worker in the background that iterates through all the items in that folder and checks if that specific email is read then does some stuff.
Office 应用程序 (Outlook) 使用单线程单元模型,不允许在辅助线程上使用 Outlook 对象模型。相反,您可以考虑使用低级代码 - Extended MAPI。或者只是 API 的任何包装(例如,最著名的 - 救赎)。
For some reason when I mark the email as read now it doesn't recognize it.
你运行主线程上的代码吗?
Is there a difference between GetDefaultFolder and Folder that would cause this kind of issue?
在这两种情况下,您都应该得到一个有效的 Folder 对象。但是要获得共享文件夹,我建议改用命名空间 class 的 GetSharedDefaultFolder 方法。