/** * 一次�?IMAP 真拉取:优先读设置页绑定的邮箱,否则 .env * pnpm imap:poll */ import { getEnv, resetEnvCache } from "../src/lib/env"; import { hasConfiguredMailbox } from "../src/services/imap/mailbox-config"; import { ImapPoller } from "../src/services/imap/poller"; import { readImapRuntimeStatus } from "../src/services/imap/runtime-status"; import { prisma } from "../src/services/db"; async function main() { resetEnvCache(); const env = getEnv(); const configured = await hasConfiguredMailbox(); const dbCount = await prisma.mailboxAccount.count({ where: { enabled: true } }); console.log( JSON.stringify( { dbEnabledMailboxes: dbCount, envUser: env.IMAP_USER || "(empty)", configured, }, null, 2, ), ); if (!configured) { console.error( "无可用邮箱:请在「设�?�?邮箱绑定」配置,或填�?.env �?IMAP_USER / IMAP_PASS�?, ); process.exit(1); } await ImapPoller.clearStaleLock(); try { const result = await ImapPoller.create().tick(30); const runtime = await readImapRuntimeStatus(); console.log(JSON.stringify({ result, runtime }, null, 2)); } catch (err) { const runtime = await readImapRuntimeStatus(); console.error(err); console.error(JSON.stringify({ runtime }, null, 2)); process.exit(2); } finally { await prisma.$disconnect(); } } main();