Compare commits

...

5 Commits

2 changed files with 58 additions and 0 deletions

2
.gitignore vendored
View File

@ -130,3 +130,5 @@ dist
.yarn/install-state.gz
.pnp.*
# Project
config.json

56
server.js Normal file
View File

@ -0,0 +1,56 @@
const Pop3Command = require("node-pop3");
const fs = require("fs");
const { EventEmitter } = require("events");
const initalConfig = `{
"pop3-config": {
"user": "example",
"password": "example",
"host": "pop3.example.com"
}
}`;
try {
fs.readFileSync("./config.json");
} catch (e) {
fs.writeFileSync("./config.json", initalConfig, {
encoding: "utf-8"
});
console.warn("WARNING config.json is empty. This file was been created. Please, configure it.");
return process.exit();
}
global.config = require("./config.json");
class POP3 extends EventEmitter {
constructor () {
super();
this.pop3cmd = new Pop3Command(global.config["pop3-config"]);
}
async init () {
const msg = (
await pop3.pop3cmd.UIDL()
).map(async x => {
x[1] = {
uid: x[1],
msg: await await pop3.pop3cmd.RETR(+x[0])
}
return x;
});
this.msg = Object.fromEntries(
await Promise.all(msg)
);
}
}
const pop3 = new POP3();
pop3.init().then(() => {
let interval = setTimeout(async () => {
console.log(pop3.msg);
//const list = await pop3.pop3cmd.UIDL();
//console.log(list);
//const str = await pop3.pop3cmd.RETR(1);
//console.log(str);
}, 1);
});