mail page rest
This commit is contained in:
parent
eb4e128da1
commit
d3313abbde
@ -48,22 +48,42 @@ export async function GET() {
|
|||||||
await client.connect();
|
await client.connect();
|
||||||
const mailbox = await client.mailboxOpen('INBOX');
|
const mailbox = await client.mailboxOpen('INBOX');
|
||||||
|
|
||||||
// Fetch only essential message data
|
// Fetch messages with body content
|
||||||
const messages = await client.fetch('1:20', {
|
const messages = await client.fetch('1:20', {
|
||||||
envelope: true,
|
envelope: true,
|
||||||
flags: true
|
flags: true,
|
||||||
|
bodyStructure: true,
|
||||||
|
bodyParts: ['TEXT']
|
||||||
});
|
});
|
||||||
|
|
||||||
const result = [];
|
const result = [];
|
||||||
for await (const message of messages) {
|
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({
|
result.push({
|
||||||
id: message.uid.toString(),
|
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)',
|
subject: message.envelope.subject || '(No subject)',
|
||||||
|
body: body,
|
||||||
date: message.envelope.date.toISOString(),
|
date: message.envelope.date.toISOString(),
|
||||||
read: message.flags.has('\\Seen'),
|
read: message.flags.has('\\Seen'),
|
||||||
starred: message.flags.has('\\Flagged'),
|
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)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user