Насколько я знаю, не будет 100% надежного решения, поскольку не все почтовые клиенты или шлюзы сохраняют или уважают все заголовки.
Тем не менее, вы получите довольно высокий коэффициент попадания со следующим:
Каждое сообщение электронной почты должно иметь уникальное поле «Идентификатор сообщения». Найдите это и сохраните запись как часть дела. (См. RFC-822 )
Если вы получаете два сообщения с одинаковым идентификатором сообщения, отбросьте второе, поскольку оно является дубликатом.
Проверьте поле «In-Reply-To», если указанный идентификатор соответствует известному идентификатору сообщения, то вы знаете, что электронная почта связана.
Заголовки "References" и "Original-Message-ID" имеют схожие значения.
Если ваша система когда-либо генерирует электронные письма, включите CaseID # в строку темы таким образом, чтобы вы могли искать его, если получите электронное письмо обратно (например: [Case # 20081114-01]); большинство людей не редактируют темы при ответе.
Интернет-стандарты RFC-822 , RFC-2076 и RFC-4021 могут быть полезны для дальнейшего чтения.
Учитывая, что всегда будут пропущенные сообщения (по любой причине), вам, вероятно, также понадобятся связанные функции в вашей системе управления делами - скажем, «Закрыть как повторяющийся случай» или «Объединить с повторяющимся регистром» вместе с инструментами, чтобы упростить поиск дубликатов.