// Admin Settings page – view & edit SMTP configuration and send test email import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; interface Settings { host: string; port: number; secure: boolean; user: string; pass: string; } export default function SettingsPage() { const [settings, setSettings] = useState(null); const [loading, setLoading] = useState(true); const [message, setMessage] = useState(''); const router = useRouter(); // Load current settings useEffect(() => { fetch('/api/admin/smtp-settings') .then((res) => res.json()) .then((data) => { if (data.settings) setSettings(data.settings as Settings); else setMessage('Failed to load settings'); }) .catch(() => setMessage('Failed to load settings')) .finally(() => setLoading(false)); }, []); const handleChange = (e: React.ChangeEvent) => { const { name, value, type, checked } = e.target; setSettings((prev) => prev && { ...prev, [name]: type === 'checkbox' ? checked : name === 'port' ? Number(value) : value, } ); }; const handleSave = async (e: React.FormEvent) => { e.preventDefault(); setMessage(''); const res = await fetch('/api/admin/smtp-settings', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(settings), }); const data = await res.json(); if (res.ok) setMessage('Settings saved'); else setMessage(data.error || 'Error saving settings'); }; const handleTestEmail = async () => { setMessage(''); const testPayload = { to: settings?.user || '', // send to the configured user address subject: 'Test Email from Webshop Admin', text: 'This is a test email to verify SMTP configuration.', }; const res = await fetch('/api/admin/send-test-email', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(testPayload), }); const data = await res.json(); if (res.ok) setMessage('Test email sent successfully'); else setMessage(data.error || 'Failed to send test email'); }; if (loading) return
Loading…
; return (

SMTP‑Einstellungen

{message &&

{message}

}
); }