如何在不使用邮件正文的情况下比较电子邮件?
例如:
- 约翰向玛丽发送了一条消息,并将这条消息“保存”在我的插件中。
- 两者都有相同的插件。
- 当 Mary 收到消息时,必须对该消息进行分类,因为 John 已经“保存”了该消息。
如何在不使用消息正文的情况下识别 Mary 收到的消息与 John 发送的消息(“save”)相同?
目前,它的工作方式如下,使用以下信息制作 HASH:
- 发件人
- 收件人
- 主题
- 消息正文
这个Hash存储在数据库中,当Mary's Outlook触发新邮件事件时,会生成一个信息相同的HASH,在数据库中进行比较,看是否应该分类。
问题是,根据消息的正文大小,它不是执行的,通过 MailItem.Body 属性获取消息的正文需要很长时间。
不使用消息正文的目的仅仅是为了提高性能。
public string GetAssinatura(Outlook.MailItem email)
{
try
{
string corpoEmail = email.Body;//this is not performatic with big messages
var hash = GenerateHash(corpoEmail);
}
}
对话参与者可以回复或转发消息,因此 Outlook 和大多数最常用的电子邮件客户端将主题更改为默认值,例如 Re:Subject。因此,不可能只有参与者和主题的哈希。