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;