1.1 KiB
1.1 KiB
Kontaktformular API (minimal)
Endpoint
- Methode: POST
- Pfad: /api/contact
- Payload: JSON
Empfohlene Felder:
- name (string, required)
- email (string, required)
- company (string, optional)
- message (string, required)
- website (string, optional, Honeypot Feld, muss leer bleiben)
Validierung
- name: min 2 Zeichen, max 100
- email: simple RFC-validierung (pragmatisch)
- message: min 20 Zeichen, max z.B. 4000
- honeypot: muss leer sein
Anti-Spam / Abuse
Minimal und wirksam:
- Rate Limit pro IP (z.B. 5 Requests pro 10 Minuten)
- Logging nur technisch, keine Volltexte im Log (Datenschutz)
- Generic Error Responses
Optional (V2): CAPTCHA nur, wenn Spam real auftritt.
SMTP Versand
Nodemailer mit SMTP Settings.
Empfohlene Env Vars:
- SMTP_HOST
- SMTP_PORT
- SMTP_USER
- SMTP_PASS
- SMTP_FROM
- CONTACT_RECIPIENT
E-Mail Inhalt:
- Subject: Kontaktanfrage von name
- Reply-To: email
- Body: Name, Firma, E-Mail, Nachricht, Zeitpunkt, IP anonymisiert (optional)
Responses
- 200: Ok (immer gleiche Success Message)
- 400: Validation Fehler (für UI nutzbar)
- 429: Rate Limit
- 500: SMTP/Server Fehler (generic)