【发布时间】:2020-06-01 04:37:42
【问题描述】:
我正在使用Outlook Redemption library。
我正在尝试检索 Outlook 存储的文件夹列表。我只需要满足某些条件的文件夹,并且只需要它们的 name 和 DefaultMessageClass。
当使用没有缓存的 Exchange 帐户时,RDOFolder 对象的迭代非常慢。
所以我使用了 GetAllChildFolders() 并将其与 RODFolderItems findmethod 结合起来。
http://www.dimastr.com/redemption/RDOFolders.htm
var allFolder = ((RDOFolder2)rootFolder).GetAllChildFolders();
string folderSelect = "SELECT Name, EntryId, DefaultMessageClass FROM FOLDER WHERE \"http://schemas.microsoft.com/mapi/proptag/0x3613001F\" like '%Note%'";
try
{
RDOFolder vFolder = vFolders.Find(folderSelect);
while (vFolder != null)
{
System.Diagnostics.Debug.WriteLine(vFolder.Name);
System.Diagnostics.Debug.WriteLine(vFolder.EntryID);
System.Diagnostics.Debug.WriteLine(vFolder.DefaultMessageClass);
vFolder = vFolders.FindNext();
}
}
catch (Exception ex)
{
//log error here!
}
现在我有两个问题!
1. SQL 语法
来自find方法的文档
SQL 查询中指定的属性必须使用 Outlook 对象模型(或 RDO) 属性名称(例如主题、Email1Address)
我无法使 Outlook 或 Redemption 属性在 SQL 语句中工作。有人有一个可行的例子吗?
2。性能访问属性
在线文档说明如下。
包含 SELECT 子句允许 Redemption 预取 文件夹层次结构表中的属性而不打开项目 导致显着的性能提升(参见示例“我希望有一个 :-)”)。如果你 稍后访问未在 SELECT 子句中指定的属性 Redemption 将打开该项目。
如何从文件夹层次结构中访问属性预取? 如果我使用 RDOFolder.Name,则打开整个文件夹对象,并且性能提升不大。
【问题讨论】:
标签: outlook-addin outlook-redemption