UNPKG

@hyperbytes/wappler-imap-manager

Version:

IMAP eMail Management for Wappler

47 lines (38 loc) 1.47 kB
const Imap = require('imap'); exports.imapcreatefolder = async function (options) { // Load IMAP credentials from environment variables const IMAP_USER = process.env.IMAP_USER; const IMAP_PASSWORD = process.env.IMAP_PASSWORD; const IMAP_HOST = process.env.IMAP_HOST; const IMAP_PORT = process.env.IMAP_PORT; const IMAP_TLS = true const imapfolder = this.parseRequired(options.imapfolder, '*', "No folder specified'") const separator = process.env.IMAP_SUB_SEPARATOR || '/'; return new Promise((resolve, reject) => { const imap = new Imap({ user: IMAP_USER, password: IMAP_PASSWORD, host: IMAP_HOST, port: IMAP_PORT, tls: IMAP_TLS, }); imap.connect(); imap.once('ready', () => { const folderPath = 'INBOX' + separator + imapfolder; imap.addBox(folderPath, (err) => { if (err) { reject({ status: 400, message: `Error: ${err.message}` }); } else { resolve({ status: 200, message: `Folder "${folderPath}" created successfully.` }); } imap.end(); }); }); imap.once('error', (err) => { reject({ status: 401, message: `Connection error: ${err.message}` }); }); imap.once('end', () => { console.log('IMAP connection closed.'); }); }); };