delphi - Outlook 不返回任何内容的限制方法
问题描述
试图找出如何为限制方法创建正确的过滤器。我试图只显示特定用户的日历约会。到目前为止,我已经让它显示日期过滤器的所有约会,但理想情况下只需要过滤组织者。我尝试过类似的东西RestrictString := ('[requiredAttendees] = 'Joe Bloggs');
,但它不起作用。
下面是我列出所有约会并显示约会组织者(必需的与会者)以及主题和开始时间等的代码。但我只想对给定的人执行此操作。
Namespace := Outlook.GetNamespace('MAPI'); // represents a NameSpace object.
Recipient := Namespace.CreateRecipient('shared@mailbox.com');
Recipient.Resolve;
Folder := Namespace.GetSharedDefaultFolder(Recipient, olFolderCalendar);
Items := Folder.Items;
Items.Sort('[Start]', true);
Items.IncludeRecurrences := true;
RestrictString :=
'@SQL="http://schemas.microsoft.com/mapi/proptag/0x0E04001F" like ''%joe bloggs%''';
RestrItems := Items.Restrict(RestrictString);
Memo1.clear;
if (RestrItems.count = 0) then Memo1.lines.add('No appointments');
for i := 1 to RestrItems.count do
begin
Appointment := Items.Item(i);
Memo1.lines.add(' ');
Memo1.lines.add(Appointment.requiredAttendees);
Memo1.lines.add(Appointment.subject);
Memo1.lines.add(Appointment.Start);
Memo1.lines.add(Appointment.End);
Memo1.lines.add(' ');
end;
Outlook := UnAssigned;
任何指针最受赞赏。我查看了各种其他问题和文档,但还没有完全掌握。
解决方案
Restrict
/ Find
Outlook 对象模型中的方法不会对收件人(或附件)创建子限制。您可以在扩展 MAPI(C++ 或 Delphi)中执行此操作,但不能在 Outlook 对象模型中执行此操作。
在 OOM 中您可以做的最好的事情是搜索PR_DISPLAY_TO
扩展 MAPI 属性(如果单击 IMessage 按钮,您可以在OutlookSpy中看到它)。它对应To
于OOM中的属性,并用“;”填充 保存项目时收件人的分隔显示名称。它可能包括也可能不包括电子邮件地址。以下查询应该适用Items.Restrict
于您的情况
@SQL="http://schemas.microsoft.com/mapi/proptag/0x0E04001F" like '%Joe Bloggs%'
如果使用Redemption是一个选项,它是RDOItems的版本。Restrict
/Find
对收件人姓名/地址/SMTP 地址创建子限制(您可以在 SQL 查询中指定To
、CC
、BCC
或)。Recipients
推荐阅读
- android - 选择电子邮件时,EditText 背景会自动更改颜色
- html - 使用 ngFor 使用内联样式动态创建 div,但在 angular 中使用 ngIf 的条件
- hyperlink - 使用 Selenium 在 testNG 中测试断开的链接不起作用
- html - 关于移动滚动问题的 Bootstrap 4 模式
- model-checking - 模型检查:为什么 LTL 逻辑“<>”在 Spin 中没有产生正确的反例
- javascript - React.js:更新存储在状态中的对象数组
- cloud - 如何删除 OneDrive Microsoft 365 中的文件?
- javascript - 使对象的数据选择干燥
- haskell - 每次调用函数时生成一个顺序值或随机值
- ssl - 证书签名请求:它是否包含公钥或私钥?