26 lines
1 KiB
TypeScript
26 lines
1 KiB
TypeScript
import { NextResponse } from "next/server";
|
|
import { requireAdminSession } from "@/lib/admin/auth";
|
|
import { saveSmtpSettings, toPublicSmtpSettings } from "@/lib/mail/config";
|
|
import { sendTestMail } from "@/lib/mail/smtp";
|
|
|
|
export async function POST(request: Request) {
|
|
if (!await requireAdminSession()) return NextResponse.json({ message: "Nicht autorisiert." }, { status: 401 });
|
|
const form = await request.formData();
|
|
const action = String(form.get("action") ?? "save");
|
|
|
|
if (action === "test") {
|
|
const settings = await saveSmtpSettings(form);
|
|
const result = await sendTestMail();
|
|
return NextResponse.json({
|
|
message: result.ok ? "Test-E-Mail wurde gesendet." : result.error ?? "Test-E-Mail fehlgeschlagen.",
|
|
ok: result.ok,
|
|
settings: toPublicSmtpSettings(settings),
|
|
}, { status: result.ok ? 200 : 400 });
|
|
}
|
|
|
|
const settings = await saveSmtpSettings(form);
|
|
return NextResponse.json({
|
|
message: "SMTP-Konfiguration gespeichert.",
|
|
settings: toPublicSmtpSettings(settings),
|
|
});
|
|
}
|