import nodemailer from "nodemailer"; const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST || "mail.folx.tv", port: parseInt(process.env.SMTP_PORT || "465"), secure: true, auth: { user: process.env.SMTP_USER || "web@folx.tv", pass: process.env.SMTP_PASSWORD || "", }, }); interface ContactMessage { name: string; email: string; subject: string; message: string; } export async function sendContactEmail(data: ContactMessage): Promise { const subjectLine = data.subject ? `[FOLX TV Kontakt] ${data.subject} – von ${data.name}` : `[FOLX TV Kontakt] Nachricht von ${data.name}`; const htmlBody = `

Neue Kontaktanfrage

Name: ${escapeHtml(data.name)}
E-Mail: ${escapeHtml(data.email)}
Betreff: ${escapeHtml(data.subject || "Keine Angabe")}

${escapeHtml(data.message)}

Gesendet über das Kontaktformular auf folx.tv

`; try { await transporter.sendMail({ from: `"FOLX TV Website" <${process.env.SMTP_FROM || "web@folx.tv"}>`, to: process.env.CONTACT_TO || "office@folx.tv", replyTo: data.email, subject: subjectLine, html: htmlBody, text: `Neue Kontaktanfrage\n\nName: ${data.name}\nE-Mail: ${data.email}\nBetreff: ${data.subject || "Keine Angabe"}\n\nNachricht:\n${data.message}`, }); console.log(`[mailer] Contact email sent successfully (from: ${data.email})`); return true; } catch (err: any) { console.error(`[mailer] Failed to send email:`, err.message); return false; } } function escapeHtml(str: string): string { return str .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """); }