Как сравнить сообщения электронной почты, не используя тело сообщения? - PullRequest
0 голосов
/ 11 сентября 2018

Как сравнить сообщения электронной почты, не используя тело сообщения?

Например:

  • Джон отправил сообщение Мэри и "сохранить "это сообщение в моем дополнении.
  • Оба имеют одно и то же дополнение.
  • Когда Мэри получает сообщение, это сообщение должно быть классифицировано, поскольку Джон уже" сохранил "сообщение.

Как определить, что сообщение, которое получила Мария, совпадает с сообщением, которое Джон отправил («сохранить»), не используя тело сообщения?

В настоящее времяэто работает следующим образом, создается HASH со следующей информацией:

  • Отправитель
  • Адресат
  • Тема
  • Текст сообщения

Этот хэш хранится в базе данных, когда Мэри 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.Поэтому невозможно иметь только хэш участников и субъекта.

1 Ответ

0 голосов
/ 18 сентября 2018

Используя свойство:

MailItem.SentOn

Возможно создать этот хеш.Отправитель Outlook будет иметь эту информацию только после отправки сообщения.Поэтому код должен запускаться при добавлении нового элемента в папку Item_Send.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...