Intereting Posts

node-imap模块获取gmail列表文件夹(标签)

我正在尝试抓取Gmail文件夹列表(labels actually) 。 我使用节点js和这个模块: https : //github.com/mscdex/node-imap

我想要获取所有文件夹和子文件夹。 作者留下的文档并不那么明亮。

有关这个的任何想法?

Solutions Collecting From Web of "node-imap模块获取gmail列表文件夹(标签)"

终于经过努力工作,我find了答案,这是我如何得到文件夹不仅为谷歌即使是每个使用imap标准的电子邮件系统

连接到imap服务器后,通过此function获取所有文件夹。

 function getFolders(username, callback) { var folders = []; if (Connection[username]) { Connection[username].once('ready', function() { Connection[username].getBoxes(function (err, boxes) { if (err) { // TODO : parse some error here } else { folders = imapNestedFolders(boxes); } return callback(err, folders); }); }); } else { return framework.httpError(500, self); } } 

通过这个函数parsing文件夹到一个漂亮的嵌套树json对象

 function imapNestedFolders(folders) { var FOLDERS = []; var folder = {}; for (var key in folders) { if (folders[key].attribs.indexOf('\\HasChildren') > -1) { var children = imapNestedFolders(folders[key].children); folder = { name : key, children : children }; } else { folder = { name : key, children : null }; } FOLDERS.push(folder); } return FOLDERS; } 

你也可以将连接variables改为你想要的。 这些函数与多个连接工作,因为这个连接variables是一个数组,你可以阅读更多关于这里,我写了如何使用多个连接在节点imap这里

我如何处理node.js中的多个imap连接?