Doku:Spamschutz und Captcha

Formulare

Spamschutz und Captcha

Spamschutz in Mailiy: Honeypot, Spamfilter, gesperrte IPs und optional ALTCHA, hCaptcha, Turnstile oder reCAPTCHA.

Dashboard-Ausschnitt: Formulare › dein Formular › Einstellungen
Im Dashboard unter Formulare › dein Formular › Einstellungen

Jedes Formular hat ein Honeypot-Feld (botcheck), ein Rate-Limit und auf Wunsch erlaubte Domains. Das reicht meistens. Wenn trotzdem Spam ankommt, wählst du unter Einstellungen ein Captcha, für ein Formular oder als Vorgabe der Website.

ALTCHA lässt den Browser eine kleine Rechenaufgabe lösen, ohne Bilderrätsel und ohne Drittanbieter. Die Aufgabe kommt von Mailiy. Das Snippet unter Einrichtung enthält das Widget, sobald ALTCHA aktiv ist:

<altcha-widget challengeurl="https://mailiy.com/api/altcha"></altcha-widget>
<script type="module" src="https://mailiy.com/api/altcha.js"></script>

Das Skript liefert Mailiy selbst aus, deine Seite lädt also nichts von einem CDN. Du kannst die Datei aus dem npm-Paket altcha auch auf deinem eigenen Server ablegen.

hCaptcha, Cloudflare Turnstile und reCAPTCHA gehen auch. Du legst dort ein Konto an, baust deren Widget mit deinem Site-Key ein und trägst den geheimen Schlüssel im Dashboard ein. Mailiy speichert ihn verschlüsselt und zeigt ihn nie wieder an. Die IP-Adresse deiner Besucher geben wir bei der Prüfung nicht weiter.

Fehlt das Token oder ist es falsch, antwortet Mailiy mit captcha_failed (403) und zählt die Einsendung als Spam.

Spamfilter und Spam-Tab

Unter Einstellungen schaltest du pro Formular einen Spamfilter ein. Normal sortiert Linksammlungen und typische Werbetexte aus, Streng jede Einsendung mit Link oder HTML. Der Absender bekommt trotzdem eine normale Erfolgsmeldung, damit Bots nichts lernen. Du bekommst keine E-Mail, die Einsendung liegt 7 Tage im Tab Spam und wird dann gelöscht. Mit „Kein Spam“ stellen wir sie nachträglich zu und verschieben sie in die normale Liste. Steht die Speicherdauer auf „Nicht speichern“, verwerfen wir Spam sofort.

Unter Gesperrte IP-Adressen trägst du einzelne Adressen oder Bereiche wie 198.51.100.0/24 ein (IPv4 und IPv6). Einsendungen von dort verwerfen wir ohne Rückmeldung und speichern nichts.

Einsendungen von Servern

Browser schicken immer mit, von welcher Seite sie kommen. Fehlt diese Angabe, kommt die Anfrage von einem Server oder Skript. Schaltest du „Server-Einsendungen nur mit API-Schlüssel annehmen“ ein, lehnen wir solche Anfragen mit api_key_required (403) ab, außer sie schicken deinen API-Schlüssel als Authorization: Bearer mk_… mit. Das muss ein Schlüssel mit Schreibrecht sein, der für diese Website gilt. Mit Schlüssel entfallen auch die Prüfung der erlaubten Domains und das Captcha, und das Rate-Limit steigt auf 60 pro Minute. Den Schlüssel nie in Browser-Code einbauen.