import { NextResponse } from 'next/server'; import Imap from 'imap'; export async function POST(request: Request) { try { const { email, password, host, port } = await request.json(); if (!email || !password || !host || !port) { return NextResponse.json( { error: 'Missing required fields' }, { status: 400 } ); } const imapConfig = { user: email, password, host, port: parseInt(port), tls: true, authTimeout: 10000, connTimeout: 10000, debug: (info: string) => console.log('IMAP Debug:', info) }; console.log('Testing IMAP connection with config:', { ...imapConfig, password: '***', email }); const imap = new Imap(imapConfig); const connectPromise = new Promise((resolve, reject) => { imap.once('ready', () => { imap.end(); resolve(true); }); imap.once('error', (err: Error) => { imap.end(); reject(err); }); imap.connect(); }); await connectPromise; return NextResponse.json({ success: true }); } catch (error) { console.error('Error testing connection:', error); return NextResponse.json( { error: error instanceof Error ? error.message : 'Failed to connect to email server' }, { status: 500 } ); } }