← back to Claude Mail
imap-check.js
27 lines
'use strict';
// READ-ONLY IMAP connectivity check. Connects, counts UNSEEN, prints recent
// senders/subjects. Never runs claude, never sends, never modifies flags.
const { ImapFlow } = require('imapflow');
const { cfg } = require('./lib');
(async () => {
const client = new ImapFlow({
host: cfg.imapHost, port: cfg.imapPort, secure: true,
auth: { user: cfg.user, pass: cfg.pass }, logger: false,
});
await client.connect();
const lock = await client.getMailboxLock('INBOX');
try {
const status = await client.status('INBOX', { messages: true, unseen: true });
console.log(`IMAP OK as ${cfg.user} — total=${status.messages} unseen=${status.unseen}`);
const recent = [];
for await (const msg of client.fetch({ seen: false }, { envelope: true })) {
recent.push(` unseen: from=${msg.envelope?.from?.[0]?.address} subj="${msg.envelope?.subject || ''}"`);
}
if (recent.length) console.log(recent.join('\n')); else console.log(' (no unseen messages)');
} finally {
lock.release();
await client.logout().catch(() => {});
}
})().catch((e) => { console.error('IMAP CHECK FAILED:', e.message); process.exit(1); });