// TODO: Получать, парсить и хранить тела писем (и, вероятно, вложения) + индексировать тексты // TODO: Группировка писем // TODO: Сделать подписки на новые сообщения по вебсокетам // TODO: Чего я ещё хотел - интеграцию с maillog'ом и серверным спамфильтром /** * Нужные методы API: * - список аккаунтов и папок * - список сообщений в папке * - содержимое сообщения * - поиск по тексту * - список тредов в папке, с сообщениями * - проверить почту * - пометить прочтённым * - переместить * - удалить * - подсказка адресов To * - отправить сообщение * * В определённом плане получается тупость - получается, что дублируешь * функционал самого почтового сервера. Но шо ж с ним поделаешь, если он "ни ф силах"... * Ведь по сути-то, MTA от такой штуки нужен только 1 метод: "добавить сообщение в папку". */ require('heapdump'); require('babel-register'); const gen = require('gen-thread'); const bricks = require('pg-bricks'); const Syncer = require('./Syncer.js'); const SyncerWeb = require('./SyncerWeb.js'); process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; var cfg = require('./cfg.json'); var pg = bricks.configure(cfg.pg); pg._pg.types.setTypeParser(1082, 'text', val => val); // НЕ ПАРСИТЬ ДАТЫ ! ! ! var syncer = new Syncer(pg); var syncerweb = new SyncerWeb(syncer, pg, cfg); gen.run(function*() { yield* syncer.init(cfg); yield* syncer.syncAll(); }); syncerweb.listen(8057);