Outlook Interop:在已发送的文件夹中查找邮件



我从WPF应用程序创建一个MailItem并将其显示给用户:

Application _application = new Application();
MailItem mailItem = _outlook.CreateItem(OlItemType.olMailItem);
mailItem.Display(false);

用户点击发送后,MailItem保存在数据库中(然后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的已发送文件夹时,我需要找到它,并在数据库中标记为"已发送":

private static void TrackSentFolder(Data.Entity.Person person)
{
MAPIFolder sentFolder = _nameSpace.GetDefaultFolder(OlDefaultFolders.olFolderSentMail);
// Find previously created MailItem ...

在我的研究中,我尝试了几种方法在已发送的文件夹中找到MailItem:

  1. 发送前使用UserProperty标记MailItem
  2. 发送前使用PropertyAccessor标记MailItem
  3. MailItemPR_SEARCH_KEY一起保存在数据库中

我觉得这很令人困惑。

是否有推荐的方法在已发送的文件夹中查找以前创建的MailItem

发送后没有推荐的识别项目的方法。选择哪种方法取决于您。你帖子中描述的每一种方法都可以使用。

请注意,如果设置了MailItem.DeleteAfterSubmit属性,则可以跳过Sent Items文件夹。此外,MailItem.SaveSentMessageFolder属性允许设置Folder对象,该对象表示发送电子邮件后将保存电子邮件副本的文件夹。

相关内容

  • 没有找到相关文章

最新更新