retrAIt Plan jouw dag ↗
Blog / Een website voor je bedrijf

Een contactformulier dat echt aankomt

5 minuten lezenDelen

Een rode brievenbus aan een witgekalkte muur, met een scherpe schaduw in het zonlicht
Foto Jan van der Wolf via Pexels
Het korte antwoord

Een formulier kan zelf niets versturen: er is een programma nodig dat het bericht aanneemt en een maildienst die het bezorgt. Mail die een nieuwe server zelf verstuurt, komt vaak niet aan, en bij Hetzner zijn de gewone mailpoorten standaard zelfs dicht. Verstuur vanaf een adres op je eigen domein, met SPF en DKIM in orde, en zet het adres van de bezoeker alleen als antwoordadres.

Een contactformulier dat niet werkt, merk je meestal niet. Er komt geen foutmelding bij jou binnen, alleen geen bericht. De klant die het formulier invulde, wacht een paar dagen en belt dan een ander. De oorzaak zit bijna altijd achter de verzendknop, in hoe het bericht van je site naar je inbox gaat. Dat is op te lossen, en het helpt om te weten waar het misgaat.

Waarom formuliermail niet aankomt

Een website bestaat uit bestanden, en een bestand kan zelf niets versturen. Achter de knop moet dus een klein programma staan dat het formulier aanneemt en doorstuurt. Ontbreekt dat, dan gaat er niets weg, ook al ziet de bezoeker een nette bedankpagina.

Staat dat programma er wel, dan gaat het vaak mis bij het versturen. Hetzner blokkeert op zijn cloudservers standaard de poorten 25 en 465, de poorten waarlangs mail normaal wordt verstuurd, omdat spammers graag cloudservers gebruiken. En ook waar het wel kan, vertrouwen grote mailaanbieders mail van een nieuwe, onbekende server niet zomaar. Google eist van iedereen die naar Gmail mailt onder meer dat het verzendende domein SPF of DKIM heeft ingesteld, en dat het IP-adres van de verzendende server in de DNS heen en terug klopt.

De derde valkuil is de afzender. Veel formulieren zetten het mailadres van de bezoeker als afzender, zodat je met één klik kunt antwoorden. Maar zo werken spammers ook: ze versturen mail uit naam van een ander. Ontvangende mailservers controleren daarop, en zulke mail belandt in de spam of wordt geweigerd.

Wat wel werkt: een maildienst en je eigen domein

De betrouwbare route is een maildienst: een bedrijf dat niets anders doet dan mail bezorgen, zoals Resend. Je programma geeft het bericht via internet aan die dienst, en de dienst bezorgt het. Hetzner schrijft zelf dat versturen via zo’n dienst over poort 587 niet geblokkeerd is, en veel maildiensten werken ook via een gewone webverbinding.

Het bericht komt van een adres op je eigen domein, bijvoorbeeld formulier@mijndomein.nl. Het adres van de bezoeker zet je erin als antwoordadres: klik je in je mailprogramma op beantwoorden, dan gaat je antwoord naar de klant. Om te laten zien dat de maildienst namens jouw domein mag mailen, zet je een paar regels in de DNS van je domein, op dezelfde plek als je A-records:

  • SPF is een lijst van servers die mail namens jouw domein mogen versturen.
  • DKIM is een digitale stempel op elke mail, waarmee de ontvanger kan nagaan dat het bericht echt via jouw maildienst kwam en onderweg niet is veranderd.
  • DMARC vertelt ontvangende servers wat ze moeten doen met mail die niet door die controles komt. Volgens de uitleg van Google kan dat weigeren zijn, apart zetten of toch afleveren.

Je hoeft die regels niet zelf te bedenken. De maildienst laat zien wat je bij je registrar invult, en controleert het daarna. Resend raadt aan om vanaf een subdomein te versturen, zoals post.mijndomein.nl, zodat de reputatie van je gewone mail er los van staat. Laat de MX-records van je domein met rust: die bepalen waar je eigen mail binnenkomt, en hebben met het versturen van je formulier niets te maken. Hoe je regels in je DNS zet, lees je in Een domeinnaam koppelen aan je eigen server.

Spam tegenhouden zonder je klanten lastig te vallen

Robots vinden elk formulier, ook dat van een kleine site. Het meeste houd je tegen zonder dat een bezoeker er iets van merkt. Zet een onzichtbaar extra veld in het formulier: mensen zien het niet en laten het leeg, robots vullen alles in. Laat berichten weggooien die binnen een paar seconden na het openen van de pagina worden verstuurd, want een mens doet er langer over. En stel een grens in van een paar berichten per uur vanaf hetzelfde adres.

Een puzzel voor de bezoeker, een captcha, heb je pas nodig als dat niet genoeg is. Veel captcha’s van grote bedrijven sturen gegevens van je bezoekers naar dat bedrijf, en dat hoort dan in je privacyverklaring. Stuur ook geen automatische bevestiging naar het adres dat iemand invult. Robots misbruiken zulke formulieren om jouw mail naar vreemden te laten sturen. Een melding op het scherm, zoals “Dank je, ik reageer binnen een werkdag”, is genoeg.

De sleutel, en een kopie van elk bericht

De maildienst geeft je een sleutel: een lange code waarmee je programma namens jou mag versturen. Wie die sleutel heeft, kan mail sturen uit naam van je domein. Hij hoort in een apart bestand op je server, buiten de map van je site, en nooit in een HTML- of JavaScript-bestand, want die bestanden downloadt elke bezoeker mee. Hoe je zulke geheimen bewaart, lees je in Wachtwoorden en API-sleutels in je code.

Laat het programma elk bericht ook op de server bewaren, buiten de map van je site. Mislukt het versturen een keer, dan is er niets verloren. Ruim die berichten na een vaste tijd op, en noem ze in je privacyverklaring.

Een voorbeeld: het formulier van Jeroen

Neem als voorbeeld Jeroen, installateur in Amersfoort. Zijn oude site had een formulier dat het mailadres van de klant als afzender gebruikte, en hij vond de berichten soms weken later in zijn spammap. Voor zijn nieuwe site maakt hij een account bij een maildienst en zet hij de records die de dienst laat zien bij zijn registrar. Pas als de dienst zijn domein als gecontroleerd toont, gaat hij verder.

Dan vraagt hij Claude Code om een klein programma op zijn server dat berichten aanneemt, spam eruit filtert, een kopie bewaart en het bericht doorstuurt via de maildienst, met formulier@ op zijn domein als afzender en de klant als antwoordadres. De sleutel vult hij zelf in, zodat Claude hem nooit te zien krijgt. Zijn eerste testbericht vanaf zijn telefoon staat binnen een minuut in zijn inbox, niet in de spam.

Testen, en de eenvoudigste oplossing

Test je formulier na elke wijziging, vanaf je telefoon, en kijk ook in je spammap. Doe het daarna elke maand een keer. Een formulier dat vorige maand werkte, kan stilletjes stoppen als er iets aan je server of je DNS verandert.

En twijfel je of je een formulier nodig hebt: een telefoonnummer dat je kunt aantikken en een mailadres dat het mailprogramma van de bezoeker opent, gaan nooit stuk. Voor veel kleine bedrijven is dat genoeg. Zet ze in elk geval op je contactpagina, ook als je een formulier hebt. Welke gegevens daar verder horen, staat in Wat er wettelijk op je bedrijfswebsite moet staan.

Vul vandaag het formulier op je eigen site in, vanaf je telefoon, en kijk of het aankomt. Komt het niet aan, of alleen in de spam, kijk dan eerst wie er als afzender in staat. Daar zit de oorzaak vaak.

Foto bovenaan: Jan van der Wolf via Pexels

Delen

Ken je iemand die hier iets aan heeft?

Stuur het door, of deel het als beeld in je story of op LinkedIn.

Als beeld, voor je story of een post

Op een telefoon deel je het beeld meteen, bijvoorbeeld als story op Instagram of in je WhatsApp-status. Op een computer bewaar je het. Zet de link erbij, in je bericht of als sticker.

Meer over een website voor je bedrijf

Alles over een website voor je bedrijf