import type { ContactMailInput, RepairMailInput } from "./types"; function escapeHtml(value?: string) { return (value ?? "") .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); } function rows(entries: Array<[string, string | undefined]>) { return entries .filter(([, value]) => value) .map(([label, value]) => `${escapeHtml(label)}${escapeHtml(value)}`) .join(""); } function textRows(entries: Array<[string, string | undefined]>) { return entries .filter(([, value]) => value) .map(([label, value]) => `${label}: ${value}`) .join("\n"); } export function contactTemplate(input: ContactMailInput) { const subject = `Kontaktanfrage: ${input.subject ?? "Funktechnik Schubert"}`; const entries: Array<[string, string | undefined]> = [ ["Datum", new Date(input.createdAt).toLocaleString("de-DE")], ["Name", input.name], ["E-Mail", input.email], ["Telefon", input.phone], ["Betreff", input.subject], ["Nachricht", input.message], ]; return { subject, text: `Neue Kontaktanfrage\n\n${textRows(entries)}`, html: `

Neue Kontaktanfrage

${rows(entries)}
`, }; } export function repairTemplate(input: RepairMailInput) { const subject = `Reparaturanfrage: ${input.manufacturer} ${input.model}`; const entries: Array<[string, string | undefined]> = [ ["Datum", new Date(input.createdAt).toLocaleString("de-DE")], ["Name", input.name], ["E-Mail", input.email], ["Telefon", input.phone], ["Hersteller", input.manufacturer], ["Modell", input.model], ["Geräteart", input.deviceType], ["Seriennummer", input.serialNumber], ["Fehlerbeschreibung", input.description], ["Zubehör", input.accessories], ["Gerät geöffnet?", input.opened], ["Vorarbeiten", input.previousWork], ]; return { subject, text: `Neue Reparaturanfrage\n\n${textRows(entries)}`, html: `

Neue Reparaturanfrage

${rows(entries)}
`, }; } export function testTemplate() { return { subject: "SMTP Testmail - Funktechnik Schubert", text: "Diese Testmail wurde aus der Funktechnik Schubert Website-Administration gesendet.", html: "

SMTP Testmail

Diese Testmail wurde aus der Funktechnik Schubert Website-Administration gesendet.

", }; }