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ć?
2 answers
Użyj algorytmu JWZ threading algorithm.
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.
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