mail page connected with folders 4

This commit is contained in:
alma 2025-04-16 16:52:14 +02:00
parent b9c1425002
commit 42a8c1dab8

View File

@ -204,6 +204,14 @@ export async function GET() {
fetch.on('message', (msg) => { fetch.on('message', (msg) => {
let header = ''; let header = '';
let text = ''; let text = '';
let messageId: number | null = null;
let messageFlags: string[] = [];
// Handle attributes first
msg.once('attributes', (attrs) => {
messageId = attrs.uid;
messageFlags = attrs.flags || [];
});
msg.on('body', (stream, info) => { msg.on('body', (stream, info) => {
let buffer = ''; let buffer = '';
@ -220,16 +228,21 @@ export async function GET() {
}); });
msg.on('end', () => { msg.on('end', () => {
if (!messageId) {
console.error('No message ID found for email');
return;
}
const parsedHeader = Imap.parseHeader(header); const parsedHeader = Imap.parseHeader(header);
const email = { const email = {
id: msg.attributes.uid, id: messageId,
from: parsedHeader.from[0], from: parsedHeader.from?.[0] || '',
to: parsedHeader.to[0], to: parsedHeader.to?.[0] || '',
subject: parsedHeader.subject[0], subject: parsedHeader.subject?.[0] || '(No subject)',
date: parsedHeader.date[0], date: parsedHeader.date?.[0] || new Date().toISOString(),
body: text, body: text,
folder: folderName, folder: folderName,
flags: msg.attributes.flags flags: messageFlags
}; };
emailsByFolder[folderName].push(email); emailsByFolder[folderName].push(email);
}); });