import nodemailer from 'nodemailer'; import { Resend } from 'resend'; const FROM = process.env.MAIL_FROM || 'Dockly-Pfandsystem Demo '; let transporter = null; if (process.env.SMTP_HOST && process.env.SMTP_USER && process.env.SMTP_PASS) { transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST, port: parseInt(process.env.SMTP_PORT || '587'), secure: (process.env.SMTP_SECURE || 'false') === 'true', // 587 = STARTTLS (secure=false) auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS, }, }); console.log('[mail] SMTP transport aktiv:', process.env.SMTP_HOST); } const resend = process.env.RESEND_API_KEY ? new Resend(process.env.RESEND_API_KEY) : null; async function sendMail({ to, subject, html }) { if (transporter) { const info = await transporter.sendMail({ from: FROM, to, subject, html }); console.log('[mail] SMTP sent:', to, 'msgId:', info.messageId); return { provider: 'smtp', messageId: info.messageId, accepted: info.accepted, rejected: info.rejected }; } if (resend) { const r = await resend.emails.send({ from: FROM, to, subject, html }); console.log('[mail] Resend sent:', to, 'id:', r.data?.id); return { provider: 'resend', id: r.data?.id, error: r.error }; } console.log('[mail-dev] (kein Provider konfiguriert) ->', to, subject); return { dev: true }; } export async function sendDemoInviteMail({ to, name, slug, password, loginUrl, days }) { const html = `

Willkommen im Dockly-Pfandsystem-Demo

Hallo ${name},

dein ${days}-Tage Demo-Zugang ist bereit. Du kannst alle Funktionen in Ruhe testen und eigene Beispieldaten anlegen.

Login-URL: ${loginUrl}

E-Mail: ${to}

Passwort: ${password}

Tenant-Kennung: ${slug}

Bitte ändere dein Passwort nach dem ersten Login.

Diese Mail wurde automatisch versandt vom Dockly-Pfandsystem-Demo-Portal.

`; return sendMail({ to, subject: `Dein Dockly-Pfandsystem-Demo-Zugang (${days} Tage)`, html }); } // Test-Endpoint Helper export async function sendTestMail(to) { const html = `

Dockly-Pfandsystem Demo - SMTP-Test

Diese Test-Mail bestätigt, dass der Mail-Versand über ${process.env.SMTP_HOST || 'kein SMTP'} funktioniert.

Absender: ${FROM}

Zeitstempel: ${new Date().toISOString()}

`; return sendMail({ to, subject: 'Dockly-Pfandsystem Demo - SMTP-Test', html }); }