Как определить адрес электронной почты принадлежит существующей теме или разговору - PullRequest
14 голосов
/ 14 ноября 2008

У нас есть внутреннее приложение для управления делами .NET, которое автоматически создает новое дело из электронного письма. Я хочу, чтобы можно было идентифицировать другие электронные письма, связанные с исходным электронным письмом, чтобы мы могли предотвратить создание повторяющихся дел

Я заметил, что многие, но не все электронные письма имеют заголовок индекса потока, который выглядит полезным.

Кто-нибудь знает простой алгоритм или пакет, который мы могли бы использовать?

Ответы [ 2 ]

22 голосов
/ 14 ноября 2008

Насколько я знаю, не будет 100% надежного решения, поскольку не все почтовые клиенты или шлюзы сохраняют или уважают все заголовки.

Тем не менее, вы получите довольно высокий коэффициент попадания со следующим:

  • Каждое сообщение электронной почты должно иметь уникальное поле «Идентификатор сообщения». Найдите это и сохраните запись как часть дела. (См. RFC-822 )

  • Если вы получаете два сообщения с одинаковым идентификатором сообщения, отбросьте второе, поскольку оно является дубликатом.

  • Проверьте поле «In-Reply-To», если указанный идентификатор соответствует известному идентификатору сообщения, то вы знаете, что электронная почта связана.

  • Заголовки "References" и "Original-Message-ID" имеют схожие значения.

Если ваша система когда-либо генерирует электронные письма, включите CaseID # в строку темы таким образом, чтобы вы могли искать его, если получите электронное письмо обратно (например: [Case # 20081114-01]); большинство людей не редактируют темы при ответе.

Интернет-стандарты RFC-822 , RFC-2076 и RFC-4021 могут быть полезны для дальнейшего чтения.

Учитывая, что всегда будут пропущенные сообщения (по любой причине), вам, вероятно, также понадобятся связанные функции в вашей системе управления делами - скажем, «Закрыть как повторяющийся случай» или «Объединить с повторяющимся регистром» вместе с инструментами, чтобы упростить поиск дубликатов.

14 голосов
/ 14 ноября 2008

Использовать алгоритм потоков JWZ .

...