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

问题描述 投票:0回答:1

我创造了一个 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:

  1. 标记 MailItem 使用 UserProperty 未发
  2. 马克 MailItem 使用 PropertyAccessor 未发
  3. 保存 MailItem 连同 PR_SEARCH_KEY 在数据库中

我觉得这个问题比较混乱。

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

c# outlook office-interop
1个回答
1
投票

在发送项目后,没有推荐的识别方式。选择哪种方式由你自己决定。你帖子中描述的每一种方法都可以使用。

请注意,在 Sent Items 文件夹可以跳过,如果 MailItem.DeleteAfterSubmit 属性进行设置。同时, MailItem.SaveSentMessageFolder(保存已发信息文件夹)。 属性允许设置一个 Folder 对象,表示邮件发送后保存副本的文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.