Существует ли какой-либо инструмент с открытым исходным кодом, который автоматически "определяет" потоки электронной почты, например Gmail?

Например, если исходное сообщение (сообщение 1) является...

Привет, Джон,
Хотите пойти за пиццей?
-Билл

И ответ (сообщение 2)...

Билл,
Извините, я не могу приготовить обед сегодня.
Джонатон Паркс, технический директор Acme Systems

В среду, 24 февраля 2010 года, в 16:43, Билл Уотерс написал:

> Привет, Джон,
> Хотите пойти за пиццей?
> -Билл

В Gmail система (а) обнаруживает, что сообщение 2 является ответом на сообщение 1, и превращает его в своего рода "нить", и (б) определяет, где на самом деле находится ответная часть сообщения, и скрывает его от пользователя. (В этом случае скрытая часть будет начинаться с "В среду, февраль..." и продолжаться до конца сообщения.)

Очевидно, что в этом простом примере было бы легко обнаружить префиксы символов "On , wrote:" или ">". Но многие почтовые системы имеют разный стиль маркировки ответов (не говоря уже о HTML-письмах). У меня такое ощущение, что вам понадобятся какие-то чертовски умные алгоритмы разбора строк, чтобы хоть как-то приблизиться к тому, насколько хорош GMail.

Эта технология уже существует в проекте с открытым исходным кодом? Или в какой-то библиотеке, посвященной исключительно этому, или, может быть, в каком-нибудь почтовом клиенте с открытым исходным кодом, который выполняет похожие потоки сообщений?

Благодарю.

5 ответов

Решение

Вот хорошая статья, написанная Завински:

http://www.jwz.org/doc/threading.html

Вы хотите решить проблемы, когда корреспондент не устанавливает поля заголовка In-Reply-To: или References:?

В противном случае вы можете использовать Mutt и настроить его так, чтобы он не показывал кавычки по умолчанию.

(Должно быть сделано любым другим почтовым инструментом на Земле. (Ну, у меня никогда не было представления дерева-потока в Outlook.)

[отредактировано ниже в ответ на комментарий]

Если вы попытаетесь создать собственное программное обеспечение, тогда этот вопрос, очевидно, подходит. Но тогда я могу только дать вам свой 2с на этом. Если вы не можете полагаться на явные заголовки, то единственное, что нужно сделать - это взять несколько писем, изучить наиболее распространенные фразы, используемые для обозначения кавычек. (К счастью, есть некоторые соглашения, и форматы даты и имена / электронные письма не являются полностью произвольными.)

Если вы сделаете это для анализа коммуникационных потоков, вы, вероятно, захотите указать вероятность связи. Если вы делаете это только для удобства пользователя... ну... мое личное мнение? Не волнуйтесь о людях, которые не могут использовать приличный почтовый инструмент.

Какой агент доставки почты вы используете?

Вы разрабатываете свой собственный? В таком случае планируете ли вы реализовать протокол IMAP?

Если вы используете Cyrus (или любой другой продукт, поддерживающий IMAP) с расширениями SORT и THREAD, то он уже встроен.

В обоих случаях вы должны взглянуть на RFC 5256.

Я считаю, что Gmail работает по названию темы. Я не могу проверить это в данный момент, но быстрое изменение названия может нарушить работу.

Как вы упоминаете, трудно предсказать следующее:

On Wed, Feb 24, 2010 at 4:43 PM, Bill Waters wrote:

но захватывая заголовок письма Pizza tomorrow и предполагая префикс Re: Pizza tomorrow значительно более предсказуемо. Вы также можете принять случаи FW: а также RE: (в кепках).

Вы могли бы взглянуть на sup http://freshmeat.net/articles/sup-gmail-meets-the-console поскольку он делает почти то, что вы хотите

Другие вопросы по тегам