问题标签 [email-threading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
769 浏览

ruby - 将电子邮件组织成线程的算法?

是否有任何命名/著名/特别好的算法可以将电子邮件消息组织成线程?

我希望在我的网站上添加类似于 Google 群组(和其他邮件列表)的功能,我只是想知道是否有任何已发布的算法用于此类组织。我知道推出自己的算法可能相当容易,但在用户体验上,可以通过的算法和好的算法之间可能存在很大差异。

已经在 ruby​​ 中实现的算法的奖励积分!

0 投票
3 回答
1678 浏览

parsing - 电子邮件线程

我在一个帮助台应用程序中工作,我有一个独立的脚本来查询邮件服务器并解析它在那里找到的邮件。
我面临以下问题:我如何以可靠的方式弄清楚什么邮件是回复什么邮件?
我可以在主题中添加一些内容,例如“[ticket:21312]”并查找它,但如果用户更改主题怎么办?还有其他方法吗?我可以通过设置自定义邮件标头并查找它来做到这一点,否则邮件服务器之间不会在用户回复时保留标头?当我从我的应用程序向不存在的用户或配额已满的用户发送消息并且他的服务器回复通常的标准消息“......主题也将被修改,我无法正确放置消息作为对现有邮件的回复。

gmail是如何做到的?在几乎所有情况下,消息都得到了完美的排序。

0 投票
5 回答
2615 浏览

email - 有没有像 Gmail 这样自动“检测”电子邮件线程的开源工具?

例如,如果原始消息(消息 1)是......

嘿乔恩,
想去买披萨吗?
-账单

回复(消息2)是......

比尔,
对不起,我今天不能做午饭。
Jonathon Parks,Acme Systems 首席技术官

2010 年 2 月 24 日,星期三,下午 4:43,Bill Waters 写道:

> 嘿,约翰,
> 想去买披萨吗?
> -比尔

在 Gmail 中,系统 (a) 检测到消息 2 是对消息 1 的回复,并将其转换为某种“线程”,并且 (b) 检测消息的回复部分实际在哪里,并将其对用户隐藏。(在这种情况下,隐藏部分将从“On Wed, Feb...”开始,一直持续到消息的末尾。)

显然,在这个简单的示例中,很容易检测到“On <Date>, <Name> write:”或“>”字符前缀。但是许多电子邮件系统有许多不同风格的标记回复(更不用说 HTML 电子邮件)。我觉得你必须有一些该死的智能字符串解析算法才能接近 GMail 的优秀程度。

这项技术是否已经存在于某个开源项目中?在一些专门用于此的库中,或者在一些执行类似消息线程的开源电子邮件客户端中?

谢谢。

0 投票
0 回答
68 浏览

email - 电子邮件差异算法

我想复制 gmails 功能以“神奇地”不在电子邮件中显示不相关的引用内容,但仍显示主要相关的内容。是否有任何库可以帮助我找到实际上是新的并且应该显示的文本?或者您对如何进行有什么建议?

我确实知道哪两条消息属于一起,哪一条是另一条的答案,但我只想显示相关的文本。

0 投票
2 回答
661 浏览

algorithm - 什么是线程推文的一套好的启发式方法?

每个人都知道,如果您想串接电子邮件,您可以使用Jamie Zawinski 的算法。但这是一个新世纪,并且有一种新的消息服务。

Twitter 上发布的线程状态更新的最佳算法是什么?

我绝对希望它处理的事情:

  • 最简单的部分:使用in_reply_to_status_id, in_reply_to_user_idin_reply_to_screen_name. (顺便说一句,找到这些值的适当文档本身就很有用!例如,此类文档显然与 from here没有关联。)

  • 从提到具有@约定的用户但未明确回复特定消息的消息中推断“回复”关系的良好启发式方法。 如果您要求,这些“提及”现在会在状态的“实体”元素中提供。这些启发式可能会考虑 (a) 两次状态更新之间的时间,(b) 两个用户之间是否有后续回复等。(回复由旧式转发和附加评论组成,如user85509 所述以下 只是这种回复方式的一个例子。)

  • 发生在两个以上用户之间的对话。

  • 使用一组给算法的推文,或 Twitter 上的所有推文。

...但也许您可以想到更多。

0 投票
2 回答
1213 浏览

python - 如何在 imaplib 中使用线程搜索方法?

我想创建一个能够将电子邮件视为对话(线程)的 gmail 客户端。在 imaplib 中,有一个方法: IMAP4.thread(threading_algorithm, charset, search_criterion[, ...]) 我认为这可能是解决方案。有人有使用它的经验吗?请举个例子。谢谢。

0 投票
1 回答
371 浏览

django - 使用邮件标题信息在 django 中对电子邮件线程进行排序

我有一个存储电子邮件线程的 django 应用程序。当我从 mbox 解析原始电子邮件并将它们插入数据库时​​,我会包含电子邮件标头参数“message-id”和“in-reply-to”。message-id 是标识消息的唯一字符串,in-reply-to 标识给定消息响应的消息。

这是我的模型的消息部分:

目标是能够以类似于 gmail 的线程格式显示电子邮件对话。我打算只使用邮件标头中的 message-id(模型中的mesg_id)和回复中的(模型中的 in_reply_to)来跟踪邮件并进行线程处理。

在查看了 SO 和 google 之后,看起来我应该使用 django-treebeard 或 django-mptt 之类的库来执行此操作。当我查看这两个解决方案中的任何一个的文档时,看起来大多数模型都使用外键关系,这让我感到困惑。

鉴于上面的示例模型,我如何在我的应用程序中实现 django-treebeard 或 django-mptt?这可以使用 mesg_id 和 in_reply_to 字段吗?

0 投票
1 回答
632 浏览

android - 使用 javamail 阅读最新的线程邮件

正如我们所知,会话线程是许多电子邮件客户端使用的功能,其中软件通过视觉分组消息来帮助用户。

我使用在 Android.Guide 上运行的javamail 构建了一个电子邮件客户端应用程序,我已经成功地收到未读消息。此输出是嵌套邮件,如转换

我的问题是,我只想获取此线程上的最新消息 [A 重播到 B(最新消息)]。我该怎么做??

0 投票
1 回答
827 浏览

java - java多线程应用程序:thread.sleep(100)几乎永远

我正在尝试修复一个向客户发送大量电子邮件的应用程序。发送由多线程 Java 应用程序(在生产者-消费者模型上)完成,生产者从数据库中调用消息列表,消费者调用 Python 脚本来发送邮件。

从一天到另一天,我的老板告诉我,程序停止工作 - 我不知道发生了什么,也许发生了一些变化,但系统管理员一直说什么都没发生,程序昨天还在工作,然后突然变慢了。 .. 现在它每小时只发送 2-3 条消息,而不是之前的 1000 条。

开发人员不再可用,所以我必须自己修复它。

我清理了数据库,它只包含关于“过去”的数据,它不需要,而且很大...... 6GB的数据,7M行,非常慢。但问题依然存在。

现在我正在使用 java 应用程序登录屏幕,我看到这些行:

“停留”在睡眠中,我看到:

11:24:15:: consumer_thread_1 正在休眠 100 毫秒 ::

没有其他事情发生。没有“睡眠时间结束”,没有堆栈数据,看起来线程睡眠需要永远......但是,如果我保持进程运行几次,随机时间后,线程继续,然后再次睡眠......几个小时。

有任何想法吗?

这里有一些文件,也许需要它们来理解整个结构......

运行java

新线程.java

任何帮助表示赞赏!

编辑:

这是一个线程转储:

0 投票
1 回答
3161 浏览

php - PHP Imap:线程电子邮件对话

我是 PHP 中 IMAP 函数的新手,我的任务是建立一些票务网站。
我得到了基本的电子邮件获取部分,但我偶然发现了“线程对话视图”障碍。

我需要能够在线程对话视图中呈现电子邮件(发送和接收),就像智能​​手机的 SMS 工具一样。

我发现的大多数算法都只处理线程收件箱,不包括已发送的项目。如果你能帮助我,那就太好了。

我的最终目标结果是,最初,每个主题分组的“未读”邮件数组,每个邮件都包含属于该主题的已交换电子邮件的踪迹。

像这样的东西: