【问题标题】:Custom flags node-imap自定义标志节点 imap
【发布时间】:2018-04-25 06:54:47
【问题描述】:

有没有办法在node-imap 中添加自定义标志??我想添加诸如“已加星标”或“重要”之类的标志,但尚未成功。我在文档中阅读了一些关于 permFlags 和添加服务器提供的自定义标志的内容,但不确定他们是否认为服务器是电子邮件提供商或我们的后端是服务器。我成功地添加了系统标志,但没有添加自定义标志。我猜他们需要以前添加到 permFlags 中,如果是这样怎么办?这是我用于添加/删除系统标志的代码:

     imap.once('ready', () => {
        imap.openBox('inbox', false, (err, box) => {
        if (err) throw err;
          let ids = JSON.parse("[" + id + "]");
          if (data.flag) { //if true add flag
            imap.seq.addFlags(ids, data.name, (err) => {
              if (err) throw err;
            })
          } else { //if false delete flag
            imap.seq.delFlags(ids, data.name, (err) => {
              if (err) throw err;
            })
          }
          imap.closeBox(function (err) {
            if (err) throw err;
            imap.end();
          });
        })
      })

【问题讨论】:

  • 只需在消息上设置一个适当命名的标志。您正在查看的标志列表是服务器根据客户端过去使用的标志计算出来的。
  • @arnt 所以你建议使用 setFlags() 而不是 addFlags()?
  • setFlag,addFlag,都一样。如果服务器支持任意标志,则将设置该标志。 (如果它支持任意标志,* 将不会在 PERMANENTFLAGS 响应中列出。)
  • @arnt Aaa 所以服务器是否支持任意标志很重要。如果是这样,您可以随意命名它吗?或者只是服务器提供的一些附加标志?
  • 对。大多数服务器确实支持任意标志。但我敢肯定有一些周围没有。

标签: imap node-imap


【解决方案1】:

与此同时,我已经在 moduls github 页面上发布了问题,并且所有者很快就回答了。解决方案是添加关键字而不是标志。首先我们必须检查框是否允许关键字(如果(box.newKeywords === true)),如果允许,我们可以添加关键字,就像我们添加标志一样。如果没有,那么什么也做不了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-05
    • 2015-12-27
    • 1970-01-01
    • 2019-11-30
    • 2016-06-30
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    相关资源
    最近更新 更多