mail page rest

This commit is contained in:
alma 2025-04-21 12:40:12 +02:00
parent eb4e128da1
commit d3313abbde

View File

@ -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)
});
}