Outlook Interop:在已发送文件夹中查找邮件
Outlook Interop: find mail in sent folder
我从 WPF 应用创建 MailItem
并将其显示给用户:
Application _application = new Application();
MailItem mailItem = _outlook.CreateItem(OlItemType.olMailItem);
mailItem.Display(false);
用户点击发送后,MailItem
保存在数据库中(MailItem
然后与主键相关联):
_application.ItemSend += Application_ItemSend;
// ...
private void Application_ItemSend(object Item, ref bool Cancel)
{
MailItem mailItem = Item as MailItem;
// Save mailItem in db ...
}
之后我需要找到 MailItem
当它被复制到 Outlook 的发送文件夹并在数据库中标记为 'sent':
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
?
没有推荐的在发送后识别项目的方法。选择哪种方式取决于您。您 post 中描述的每个方法都可以使用。
请注意,如果 MailItem.DeleteAfterSubmit property is set. Also the MailItem.SaveSentMessageFolder 属性 允许设置代表电子邮件副本所在文件夹的 Folder
对象,则可以跳过 Sent Items
文件夹消息发送后将被保存。
我从 WPF 应用创建 MailItem
并将其显示给用户:
Application _application = new Application();
MailItem mailItem = _outlook.CreateItem(OlItemType.olMailItem);
mailItem.Display(false);
用户点击发送后,MailItem
保存在数据库中(MailItem
然后与主键相关联):
_application.ItemSend += Application_ItemSend;
// ...
private void Application_ItemSend(object Item, ref bool Cancel)
{
MailItem mailItem = Item as MailItem;
// Save mailItem in db ...
}
之后我需要找到 MailItem
当它被复制到 Outlook 的发送文件夹并在数据库中标记为 'sent':
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
?
没有推荐的在发送后识别项目的方法。选择哪种方式取决于您。您 post 中描述的每个方法都可以使用。
请注意,如果 MailItem.DeleteAfterSubmit property is set. Also the MailItem.SaveSentMessageFolder 属性 允许设置代表电子邮件副本所在文件夹的 Folder
对象,则可以跳过 Sent Items
文件夹消息发送后将被保存。