javascript - 谁能解释一下如何使用对话Threading-js?

标签 javascript email

我正在尝试使用这个conversationThreading-js将电子邮件分组到线程中的代码,但文档很少和/或我无法理解它。有没有人以前使用过这段代码或使用过 JWZ email conversation threading algorithm它是基于什么?

这就是我目前所处的位置:

  1. 使用 Electron 我使用 node-mbox 加载并解析本地 mboxnode-mailparser
  2. 我构建了一个 JavaScript 对象数组,其中包含 messageIdinReplyToreferences 键值对。
  3. 使用 test file for this lib 中的示例代码我尝试构建线程,但显然我做得不对。我没有收到任何错误,但也没有收到任何线程(并且我的测试 mbox 确实包含线程对话)。

也许我误解了结果应该是什么?或者我只是“做错了”?我的最终目标是能够使用 D3 在某种有向图中显示生成的线程 - 但如果我无法正确设置数据,则不会发生这种情况。

<小时/>
      function makeThread(emails) {
        var thread = jwz.messageThread().thread(emails.map(
            function (message) {
                return jwz.message(message.subject, message.messageId, message.references);
            }
        ));

        console.log('thread',thread);
       }
<小时/>

enter image description here

最佳答案

目前还不清楚它是如何工作的,但我设法编写了一些打印“线程树”的代码:

function recurse(node, level) {
  level      = level || 0;
  let prefix = '\t'.repeat(level);

  (node.children || []).forEach(function(child) {
    child.children = child.children || [];
    console.log(prefix, level ? '' : '-', child.message ? child.message.subject : '??', `[${ child.children.length }]`);
    return recurse(child, level + 1);
  });
}

recurse(jwz.messageThread().thread(messages));

(messagesjwz.message() 对象的数组,与创建它的方式类似)

关于javascript - 谁能解释一下如何使用对话Threading-js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376112/

相关文章:

javascript - 将 HTML 值与 jquery 输入值进行比较

javascript - 如何使用 Canvas 在 JS 中更改棋盘的每个框的填充颜色?

javascript - 尝试为网站实现 Google 登录,但未显示该按钮

java - 使用 server 发送电子邮件

php - 使用 PHP 创建电子邮件列表

javascript - 如何对数组中高于阈值的元素进行平均?

javascript - jsPlumb 和动态添加的容器

python - 在python中使用smtp发送电子邮件不起作用

html - Outlook 2010电子邮件模拟器/预览工具

php - 从本地服务器测试 SilverStripe 电子邮件联系表单