diff --git a/app/api/mail/route.ts b/app/api/mail/route.ts index ed816f44..dc898b82 100644 --- a/app/api/mail/route.ts +++ b/app/api/mail/route.ts @@ -48,22 +48,42 @@ export async function GET() { await client.connect(); const mailbox = await client.mailboxOpen('INBOX'); - // Fetch only essential message data + // Fetch messages with body content const messages = await client.fetch('1:20', { envelope: true, - flags: true + flags: true, + bodyStructure: true, + bodyParts: ['TEXT'] }); const result = []; for await (const message of messages) { + // Get the body content + let body = ''; + if (message.bodyParts && Array.isArray(message.bodyParts)) { + for (const [partType, content] of message.bodyParts) { + if (partType === 'text') { + body = content.toString('utf-8'); + break; + } + } + } + result.push({ id: message.uid.toString(), - from: message.envelope.from[0].address, + accountId: 1, // Default account ID + from: message.envelope.from?.[0]?.address || '', + fromName: message.envelope.from?.[0]?.name || message.envelope.from?.[0]?.address?.split('@')[0] || '', + to: message.envelope.to?.[0]?.address || '', subject: message.envelope.subject || '(No subject)', + body: body, date: message.envelope.date.toISOString(), read: message.flags.has('\\Seen'), starred: message.flags.has('\\Flagged'), - folder: mailbox.path + folder: mailbox.path, + cc: message.envelope.cc?.map(addr => addr.address).join(', '), + bcc: message.envelope.bcc?.map(addr => addr.address).join(', '), + flags: Array.from(message.flags) }); }