feat(core): Introduce ImapClient and ImapServer classes for enhanced IMAP support

This commit is contained in:
2024-11-26 22:58:26 +01:00
parent d3cc3ef9a5
commit 9c42210acd
9 changed files with 3706 additions and 506 deletions

39
test/test.imapclient.ts Normal file
View File

@@ -0,0 +1,39 @@
import { expect, expectAsync, tap } from '@push.rocks/tapbundle';
import { tapNodeTools } from '@push.rocks/tapbundle/node';
import * as smartimap from '../ts/index.js';
let testSmartImap: smartimap.ImapClient;
tap.test('smartimap', async () => {
testSmartImap = new smartimap.ImapClient({
host: await tapNodeTools.getEnvVarOnDemand('IMAP_URL'),
port: 993,
secure: true,
auth: {
user: await tapNodeTools.getEnvVarOnDemand('IMAP_USER'),
pass: await tapNodeTools.getEnvVarOnDemand('IMAP_PASSWORD'),
},
mailbox: 'INBOX',
filter: { seen: true, to: await tapNodeTools.getEnvVarOnDemand('IMAP_USER'), },
});
await testSmartImap.connect();
testSmartImap.on('message', (message: smartimap.SmartImapMessage) => {
console.log(message.subject);
});
testSmartImap.on('error', (error) => {
console.error(error);
});
testSmartImap.on('connected', () => {
console.log('Connected');
});
testSmartImap.on('disconnected', () => {
console.log('Disconnected');
});
});
tap.start();