// index.js import express from 'express'; import fetch from 'node-fetch'; import {simpleParser} from 'mailparser'; const app = express(); const PORT = 3334; app.get('/', async (req, res) => { try { const response = await fetch('http://localhost:4566/_aws/ses'); if (!response.ok) { throw new Error('Network response was not ok'); } const data = await response.json(); const messagesHtml = await parseMessages(data.messages); res.send(renderHtml(messagesHtml)); } catch (error) { console.error('Error fetching messages:', error); res.status(500).send('Error fetching messages'); } }); async function parseMessages(messages) { const parsedMessages = await Promise.all( messages.map(async (message, index) => { try { const parsed = await simpleParser(message.RawData); return `
Message ${index + 1}
From: ${message.Source}
Region: ${message.Region}
Timestamp: ${message.Timestamp}
${parsed.html || parsed.textAsHtml || 'No HTML content available'}
`; } catch (error) { console.error('Error parsing email:', error); return `
Message ${index + 1}
From: ${message.Source}
Region: ${message.Region}
Timestamp: ${message.Timestamp}
Error parsing email content
`; } }) ); return parsedMessages.join(''); } function renderHtml(messagesHtml) { return ` Email Messages Viewer

Email Messages Viewer

${messagesHtml}
`; } app.listen(PORT, () => { console.log(`Server is running on http://localhost:${PORT}`); });