我创造了一个 MailItem
从WPF应用中获取并显示给用户。
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的send文件夹并在db中标记为 "send"。
private static void TrackSentFolder(Data.Entity.Person person)
{
MAPIFolder sentFolder = _nameSpace.GetDefaultFolder(OlDefaultFolders.olFolderSentMail);
// Find previously created MailItem ...
在我的研究中,我尝试了几种方法来寻找发送文件夹中的MailItem:
MailItem
使用 UserProperty
未发 MailItem
使用 PropertyAccessor
未发MailItem
连同 PR_SEARCH_KEY
在数据库中我觉得这个问题比较混乱。
是否有推荐的方法可以找到以前创建的 MailItem
在发送文件夹中?
在发送项目后,没有推荐的识别方式。选择哪种方式由你自己决定。你帖子中描述的每一种方法都可以使用。
请注意,在 Sent Items
文件夹可以跳过,如果 MailItem.DeleteAfterSubmit 属性进行设置。同时, MailItem.SaveSentMessageFolder(保存已发信息文件夹)。 属性允许设置一个 Folder
对象,表示邮件发送后保存副本的文件夹。