import { NextResponse } from "next/server"; import nodemailer from "nodemailer"; import { requireAdmin } from "@/lib/admin-auth"; export const dynamic = "force-dynamic"; export async function GET(request: Request) { const check = await requireAdmin(); if (check instanceof NextResponse) return check; const config = { host: process.env.SMTP_HOST ?? "(nicht gesetzt)", port: Number(process.env.SMTP_PORT ?? 587), user: process.env.SMTP_USER ?? "(nicht gesetzt)", from: process.env.SMTP_FROM ?? "(nicht gesetzt)", to: process.env.SMTP_TO ?? "(nicht gesetzt)", }; const transport = nodemailer.createTransport({ host: config.host, port: config.port, secure: false, auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS }, connectionTimeout: 10000, greetingTimeout: 8000, socketTimeout: 12000, tls: { rejectUnauthorized: false }, }); try { await transport.verify(); await transport.sendMail({ from: `"MBO Tech IT TEST" <${process.env.SMTP_FROM}>`, to: process.env.SMTP_TO, subject: `✓ SMTP-Test erfolgreich – ${new Date().toLocaleString("de-DE")}`, text: "Diese Test-Mail wurde automatisch von /api/admin/smtp-test gesendet.\n\nSMTP-Verbindung und Mail-Versand funktionieren korrekt.", html: `

Test von /api/admin/smtp-test

✓ SMTP-Verbindung und Mail-Versand funktionieren korrekt.

`, }); return NextResponse.json({ ok: true, message: "SMTP-Verbindung erfolgreich – Test-Mail gesendet", config: { ...config, pass: "***" }, }); } catch (err) { const e = err as Error & { code?: string; command?: string }; return NextResponse.json( { ok: false, error: e.message, code: e.code, command: e.command, config: { ...config, pass: "***" }, }, { status: 500 } ); } }