应用 Outlook 规则后获取 MailItem 的目标 MAPI 文件夹和 EntryID

发布于 2024-11-17 22:13:27 字数 335 浏览 3 评论 0原文

我正在为 Outlook 2007 创建一个加载项,它处理 NewMailEx 事件并提供 MAPI 文件夹的 StoreIDEntryID应用所有 Outlook 规则后,该文件夹中传入电子邮件的 。加载项稍后将使用 System.NameSpace 类GetItemFromId() 方法跟踪电子邮件。我尝试使用邮件项目的唯一 PR_SEARCH_KEY 进行搜索,但扫描所有文件夹和子文件夹花费了太多时间。我需要一种方法来记住电子邮件,而不是再次搜索它。

I'm creating an Add-In for Outlook 2007, which handles NewMailEx event and gives the StoreID of the MAPI Folder and EntryID of the incoming email in that folder, after all the Outlook rules are applied to it. The Add-In will track the email later, using the GetItemFromId() method of System.NameSpace class. I tried searching with the unique PR_SEARCH_KEY of the mailitem, but it was taking too much time unnecessarily scanning all the folders and sub-folders. I need a way to remember an email, and not searching it again.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

睫毛上残留的泪 2024-11-24 22:13:27

处理 NewMailEx 时,您会得到包含逗号分隔字符串的 EntryIDCollection。这些看起来像 GUID。 来获取项目

Outlook.MailItem mi = thisAddIn.Application.Session.GetItemFromID(id, Type.Missing) as Outlook.MailItem

您需要将该字符串保存在某处(或者仅保存您希望保存的 ID),然后您可以使用其中 ID 是您想要的项目的单个 ID 。您必须为集合中的每个项目调用一次。应用规则后,结果到哪里并不重要。 ID 始终相同。

@rotard 要获取联系人文件夹,只需使用

public string GetFolderFullName(Outlook.ContactItem ci) 
{
     Outlook.MAPIFolder mf = ci.Parent;
     string path = mf.FolderPath;
     return path;
 } 

When handling NewMailEx you get EntryIDCollection containing a comma separated string. These look like GUIDS. You need to save that string somewhere (or just the ID you wish to save) and then you can get the item(s) using

Outlook.MailItem mi = thisAddIn.Application.Session.GetItemFromID(id, Type.Missing) as Outlook.MailItem

Where ID is the single ID for the item you want. You'll have to call this once for each item in your collection. It doesn't matter where it ends up after the rules are applied. the ID will always be the same.

@rotard To get the contact folder just use

public string GetFolderFullName(Outlook.ContactItem ci) 
{
     Outlook.MAPIFolder mf = ci.Parent;
     string path = mf.FolderPath;
     return path;
 } 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文