49 lines
1.9 KiB
JavaScript
49 lines
1.9 KiB
JavaScript
// 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);
|