mail/back/mails/EmailManager.ts
2023-04-09 23:46:33 +02:00

44 lines
1.2 KiB
TypeScript

import { ImapInstance } from "./imap/ImapInstance";
import { SmtpInstance } from "./smtp/SmtpInstance";
import logger from "../system/Logger";
import { getAllAccounts } from "../db/imap/imap-db";
export interface Account {
id: number;
user: string
password?: string
}
class EmailManager {
imapInstances: ImapInstance[]
smtpInstances: SmtpInstance[]
constructor() {
this.imapInstances = [];
this.smtpInstances = [];
}
init() {
getAllAccounts().then((accounts: Account[]) => {
for (let i = 0; i < accounts.length; i++) {
accounts[i].password = accounts[i]?.password?.toString().replace(/[\u{0080}-\u{FFFF}]/gu,"");
if (accounts[i].id == 2) continue; //debug_todo
this.addImapInstance(accounts[i]);
this.addSmtpInstance(accounts[i]);
}
}).catch((err) => {
logger.err(err);
});
}
addImapInstance(config) {
this.imapInstances.push(new ImapInstance(config));
}
addSmtpInstance(config) {
this.smtpInstances.push(new SmtpInstance(config));
}
}
const emailManager = new EmailManager();
export default emailManager;