mail page connected with folders 4
This commit is contained in:
parent
b9c1425002
commit
42a8c1dab8
@ -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);
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user