【发布时间】:2020-05-08 00:24:29
【问题描述】:
我从 WPF 应用程序创建一个 MailItem 并将其显示给用户:
Application _application = new Application();
MailItem mailItem = _outlook.CreateItem(OlItemType.olMailItem);
mailItem.Display(false);
用户点击发送后,MailItem 被保存在 db 中(MailItem 然后与 PK 相关联):
_application.ItemSend += Application_ItemSend;
// ...
private void Application_ItemSend(object Item, ref bool Cancel)
{
MailItem mailItem = Item as MailItem;
// Save mailItem in db ...
}
之后,我需要在将MailItem 复制到 Outlook 的已发送文件夹并在 db 中标记为“已发送”时找到它:
private static void TrackSentFolder(Data.Entity.Person person)
{
MAPIFolder sentFolder = _nameSpace.GetDefaultFolder(OlDefaultFolders.olFolderSentMail);
// Find previously created MailItem ...
在我的研究中,我尝试了几种在已发送文件夹中查找 MailItem 的方法:
- 在发送前使用
UserProperty标记MailItem - 在发送前使用
PropertyAccessor标记MailItem - 将
MailItem与PR_SEARCH_KEY一起保存在数据库中
我觉得这很混乱。
是否有推荐的方法在已发送文件夹中查找以前创建的MailItem?
【问题讨论】:
标签: c# outlook office-interop