Jak zidentyfikować e-mail Należy do istniejącego wątku lub rozmowy

Mamy wewnętrzną aplikację do zarządzania sprawami. NET, która automatycznie tworzy nową sprawę z wiadomości e-mail. Chcę być w stanie zidentyfikować inne e-maile, które są związane z oryginalnym e-mailem, abyśmy mogli zapobiec tworzeniu duplikatów przypadków.

Zauważyłem, że wiele, ale nie wszystkie, wiadomości e-mail mają nagłówek z indeksem wątków, który wygląda na przydatny.

Czy ktoś zna prosty algorytm lub pakiet, którego moglibyśmy użyć?

Author: skaffman, 2008-11-14

2 answers

Użyj algorytmu JWZ threading algorithm.

 13
Author: geocar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-13 23:50:41

Z tego co wiem, nie będzie w 100% niezawodnego rozwiązania, ponieważ nie wszystkie klienty e-mail lub bramy zachowują lub szanują wszystkie nagłówki.

Jednak, dostaniesz dość wysoki wskaźnik trafień z następujących:

  • Każda wiadomość e-mail powinna mieć unikalne pole "Message-ID". Znajdź to i zapisz to jako część sprawy. (Patrz RFC-822)

  • Jeśli otrzymasz dwie wiadomości o tym samym ID wiadomości, Odrzuć drugą, ponieważ jest to duplikat.

  • Sprawdź pole "in-Reply-To", jeśli pokazany identyfikator pasuje do znanego identyfikatora wiadomości, to wiesz, że e-mail jest powiązany.

  • Nagłówki" References "i" Original-Message-ID " mają podobne znaczenia.

Jeśli Twój system kiedykolwiek generuje e-maile, dodaj CaseID# w temacie w taki sposób, że możesz go wyszukać, jeśli otrzymasz e-mail z powrotem (np: [przypadek#20081114-01]); większość ludzi nie edytuje wierszy tematu podczas odpowiadania.

The standardy internetowe RFC-822, RFC-2076 i RFC-4021 mogą być przydatne w dalszej lekturze.

Biorąc pod uwagę, że zawsze będą wiadomości, które zostaną pominięte (z jakiegokolwiek powodu), prawdopodobnie będziesz również potrzebował powiązanych funkcji w systemie zarządzania sprawami - powiedzmy, "Zamknij jako DUPLIKAT sprawy" lub "połącz z duplikatem sprawy", wraz z narzędziami ułatwiającymi znalezienie duplikatów.

 15
Author: Bevan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-13 23:46:48