【发布时间】: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 所以服务器是否支持任意标志很重要。如果是这样,您可以随意命名它吗?或者只是服务器提供的一些附加标志?
-
对。大多数服务器确实支持任意标志。但我敢肯定有一些周围没有。