我想知道是否有办法比较两个Outlook.MailItem
以查看它们是否相同。
例如,如果我们公司的两个人收到相同的电子邮件,是否有办法比较它们是否相同?
我正在考虑比较以下属性:
Subject
,To
,From
,CC
,Body
这可能会在99%的时间内起作用,但随着数据库变得越来越大,这个例程会越来越慢。
有没有更好的方法来实现这个目标?
答案 0 :(得分:3)
如果要存储值,则可以使用您声明的属性,使用属性的哈希码。然后,您可以将其设为索引列,以提高搜索和检索性能。
所以我想在C#:
var mailHash = String.Format("{0}{1}{2}{3}{4}", mail.To, mail.From, mail.CC, mail.Subject, mail.Body).GetHashCode();
这会对你有用吗?
干杯,
克里斯。
答案 1 :(得分:1)
您应该使用系统真正使用的哈希函数,而不是创建自己的哈希函数。对于Exchange项目,您可以检查项目的EntryID以获取项目的Exchange ID。我认为它对于本地PST来说也是独一无二的,但你应该确保这一点。