From d3313abbdeac7cd5f4b780f486ef2eeed0c0b0bc Mon Sep 17 00:00:00 2001 From: alma Date: Mon, 21 Apr 2025 12:40:12 +0200 Subject: [PATCH] mail page rest --- app/api/mail/route.ts | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) 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) }); }