1

如何在不使用邮件正文的情况下比较电子邮件?

例如:

  • 约翰向玛丽发送了一条消息,并将这条消息“保存”在我的插件中。
  • 两者都有相同的插件。
  • 当 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。因此,不可能只有参与者和主题的哈希。

4

1 回答 1

2

使用属性:

MailItem.SentOn

有可能生成该哈希。发件人 Outlook 只有在发送邮件后才会拥有该信息。因此,在 Item_Send 文件夹中添加新项目时,代码必须运行。

于 2018-09-18T13:41:10.927 回答