,
]);
if (!feedMetadata) {
return new Response("Feed not found", { status: 404 });
}
if (
feedConfig?.expires_at !== undefined &&
feedConfig.expires_at <= Date.now()
) {
return new Response("Feed has expired", { status: 410 });
}
const metaEntry = feedMetadata.emails.find(
(e) => e.receivedAt === receivedAt,
);
if (!metaEntry) {
return new Response("Entry not found", { status: 404 });
}
const emailData = (await emailStorage.get(
metaEntry.key,
"json",
)) as EmailData | null;
if (!emailData) {
return new Response("Entry not found", { status: 404 });
}
c.header(
"Content-Security-Policy",
"default-src 'none'; style-src 'unsafe-inline'; img-src *; frame-src 'none'",
);
const attachments = emailData.attachments ?? [];
const attachmentsSection = attachments.length
? html`
Attachments
${attachments.map(
(a) =>
html`-
${a.filename}
${formatBytes(a.size)}
`,
)}
`
: "";
return c.html(
html`
${emailData.subject}
${emailData.subject}
- From:
- ${emailData.from}
- Date:
- ${new Date(emailData.receivedAt).toUTCString()}
${raw(
processEmailContent(emailData.content, emailData.attachments),
)}
${attachmentsSection}
`,
);
}