c#outlook addin - 在本地存储数据

时间:2014-11-28 12:53:44

标签: c# outlook outlook-addin

每当发送电子邮件时,我都希望执行某些操作(我们通过单击撰写电子邮件窗口功能区中显示的某个按钮来激活此操作)。 我认为这个动作需要从发送的项目中执行。

所以,我想创建一个表或一个简单的列表,在发送电子邮件时存储id(或独特的东西)。然后,每当发送文件夹中出现电子邮件时,我将检查它是否在我们之前创建的列表或表中。

所以,

  1. 如何创建,向这些表添加数据?

  2. 这是对发送的项目执行操作的好方法吗?

  3. 撰写电子邮件'mailitem'和发送电子邮件'mailitem'之间是否有任何独特且常见的元素(如某些ID)?
  4. 感谢。

2 个答案:

答案 0 :(得分:2)

您可以在撰写邮件时添加用户属性(MailItem.UserPropertiers.Add),然后在“已发送邮件”文件夹中查找具有该属性的邮件。通常,您不能使用EntryID属性,因为当邮件从一个文件夹移动到另一个文件夹时它会更改(PST提供程序是唯一的例外)。

您可以将列表/表格作为用户属性存储在您选择的任何文件夹中的隐藏邮件中,例如:收件箱。请参阅MSDN上的MAPIFolder.GetStorage。您可以在OutlookSpy中查看现有Outlook的隐藏消息 - 转到收件箱文件夹,单击OutlookSpy工具栏上的IMAPIFolder按钮,转到“关联内容”选项卡,双击任何隐藏消息以查看其属性。

答案 1 :(得分:1)

  1. 你在谈论什么表?

  2. 由您决定何时执行操作。我在帖子中看不到足够的信息来推荐别的东西。如果您想获得有价值的反馈,我建议您深入描述您的最终目标。但是,您也可以考虑处理Application类的 ItemSend 事件。

  3. Outlook使用EntryID属性值(字符串)来标识项目。以下是MSDN对条目ID的说明:

  4.   

    MAPI商店提供程序在其商店中创建项目时分配唯一的ID字符串。因此,在保存或发送Outlook项目之前,不会为其设置EntryID属性。当项目移动到另一个商店时,例如,从您的收件箱移动到Microsoft Exchange Server公用文件夹,或从一个个人文件夹(.pst)文件移动到另一个.pst文件时,条目ID会更改。解决方案不应该依赖于EntryID属性是唯一的,除非不移动项目。

    但您可以自由添加自己的ID。您可以使用用户属性来存储它们。有关详细信息,请参阅Outlook项目的相应属性( UserProperties )。