Een contactformulier op je website: velden laten mailen en spam voorkomen
Wil je dat bezoekers je via een formulier op je website kunnen mailen? In dit artikel lees je hoe je zo'n formulier maakt, hoe je het tegen spam beschermt en hoe de mail goed aankomt.
Een formulier maken
- WordPress: gebruik een formulierplugin, zoals Contact Form 7. Je hoeft zelf niets te programmeren. Een betaalde plugin is niet nodig.
- Eigen HTML- of PHP-site: zoek op "HTML-formulier maken" voor gratis voorbeelden. Laat het formulier versturen via SMTP, niet via de PHP-functie mail() (zie hieronder).
Spam via je formulier voorkomen
Een formulier zonder beveiliging wordt bijna zeker gevonden door spambots. Dan krijg jij veel spam binnen, en in het ergste geval wordt je formulier misbruikt om spam naar anderen te sturen. Bescherm je formulier daarom altijd:
- Captcha: een controle die mensen van bots onderscheidt, zoals Google reCAPTCHA of Cloudflare Turnstile. Contact Form 7 werkt met reCAPTCHA. Voor Turnstile installeer je een aparte plugin, bijvoorbeeld Simple Cloudflare Turnstile.
- Honeypot: een verborgen veld dat mensen niet zien, maar bots wel invullen. Is het veld ingevuld, dan wordt het bericht niet verstuurd. Hiervoor zijn ook kleine plugins.
- Fora en blogs: voor veel forum- en blogsoftware is er een koppeling met Stop Forum Spam. Die houdt een lijst bij van IP-adressen die spam versturen en weert berichten van die adressen.
- Houd je website bij: werk WordPress, je thema en je plugins steeds bij. Een verouderde plugin is een veelgebruikte ingang voor misbruik.
Zo komt de mail van je formulier goed aan
- Verstuur via SMTP. Met mail() in PHP wordt de afzender een adres met de accountnaam van je pakket, en dat kun je niet aanpassen. Zulke mail komt vaak in de spam terecht. Via SMTP log je in met een echte mailbox en bepaal je zelf de afzender. In WordPress gebruik je daarvoor een SMTP-plugin, zoals WP Mail SMTP. Voor een eigen PHP-script lees je Hoe kan ik in PHP met mail() de juiste afzender krijgen?.
- Afzender op je eigen domein. Laat het formulier mailen vanaf een adres van je eigen domein, bijvoorbeeld info@jouwdomein.nl. Gebruik nooit het e-mailadres van de bezoeker als afzender: dan weigeren veel ontvangers de mail. Zet het adres van de bezoeker in het veld Antwoord aan (Reply-To), dan kun je gewoon op het bericht antwoorden.
- De gegevens voor SMTP: de servernaam van je pakket, poort 587 met STARTTLS of poort 465 met SSL/TLS, en het e-mailadres en wachtwoord van de mailbox. Zie Alle instellingen op een rij.
Wordt je formulier al misbruikt?
Krijg je veel mail terug die je niet hebt verstuurd, of meldt de server dat je verzendlimiet is bereikt? Dan wordt je formulier mogelijk misbruikt. Lees Wat te doen als je e-mailadres is misbruikt en Verzendlimieten en de melding 'message limit reached'.
