import { NextResponse } from 'next/server'; import Imap from 'imap'; export async function POST(request: Request) { try { const { email, password, host, port } = await request.json(); // IMAP configuration const imapConfig: Imap.Config = { user: email, password: password, host: host, port: parseInt(port, 10), tls: true, tlsOptions: { rejectUnauthorized: false, servername: host }, authTimeout: 10000, connTimeout: 10000 }; // Create a promise-based IMAP connection const imap = new Imap(imapConfig); return new Promise((resolve, reject) => { imap.once('ready', () => { imap.end(); resolve(NextResponse.json({ success: true })); }); imap.once('error', (err: Error) => { console.error('IMAP connection error:', err); reject(NextResponse.json({ error: 'Failed to connect to email server', details: err.message }, { status: 401 })); }); imap.connect(); }); } catch (error) { console.error('Error in test connection:', error); return NextResponse.json({ error: 'Failed to test connection', details: error instanceof Error ? error.message : 'Unknown error' }, { status: 500 }); } }