Veelvoorkomende fouten

Kapot contactformulier herstellen: waarom e-mails niet aankomen

Kapot contactformulier herstellen: waarom e-mails niet aankomen
Foto: zigazou76 — CC BY 2.0 · Flickr

Het formulier meldt 'verzonden', maar de mail komt nooit aan

Dit is het meest voorkomende scenario: een bezoeker vult het formulier in, krijgt een bevestiging op het scherm, maar de e-mail verschijnt nooit in uw inbox — ook niet in de spamfolder. De oorzaak zit vrijwel nooit in het formulier zelf, maar in hoe de mail wordt verstuurd. Standaard verstuurt WordPress e-mail via de PHP `mail()`-functie van de server, zonder authenticatie. Veel hostingpartijen beperken of blokkeren dit bewust, omdat ditzelfde mechanisme door kwaadwillenden wordt misbruikt om spam te versturen. Het resultaat: uw formulier werkt technisch prima, maar de mail wordt onderweg stilzwijgend geweigerd door de ontvangende mailserver, vaak omdat er geen geldige SPF- of DKIM-verificatie aan hangt.

Waarom mailproviders deze mail weigeren

Grote mailproviders zoals Gmail en Outlook controleren tegenwoordig streng of een binnenkomende e-mail daadwerkelijk namens het opgegeven domein is verstuurd. Daarvoor gebruiken ze drie technische controles:

  • SPF (Sender Policy Framework) geeft aan welke servers namens uw domein mail mogen versturen.
  • DKIM (DomainKeys Identified Mail) voegt een digitale handtekening toe waarmee de ontvanger kan controleren dat de mail onderweg niet is aangepast.
  • DMARC bepaalt wat er moet gebeuren als een mail deze controles niet doorstaat: negeren, naar spam verplaatsen, of volledig weigeren.

Als uw hostingserver een generieke afzender gebruikt die niet overeenkomt met deze records, valt de mail vaak buiten de boot voordat hij ooit in een spamfolder terechtkomt — hij wordt simpelweg niet geaccepteerd.

Zo achterhaalt u waar het misgaat

  • Test eerst of het probleem er al was vanaf de start, of pas ontstond na een update van het formulierplugin, thema of hostingomgeving.
  • Controleer of de plugin (Contact Form 7, Forminator, WPForms en dergelijke) een ingebouwde testmail-functie heeft en gebruik die.
  • Kijk in de spamfolder én controleer of uw mailprovider de afzender blokkeert vanwege een ontbrekende SPF-record.
  • Vraag, indien mogelijk, uw hostingprovider om de mail-logs van de server; daarin ziet u of de e-mail de server heeft verlaten en waar hij is blijven steken.

De structurele oplossing: versturen via SMTP

De meest betrouwbare oplossing is WordPress e-mail laten versturen via SMTP in plaats van via de standaard PHP `mail()`-functie. Met een plugin als WP Mail SMTP koppelt u een echte mailserver (uw eigen zakelijke mailbox, of een dienst als bijvoorbeeld uw hostingpartij aanbiedt) met gebruikersnaam- en wachtwoordauthenticatie aan WordPress. Omdat de mail dan verstuurd wordt als een geauthenticeerde, herkenbare afzender, komt hij vrijwel altijd netjes aan.

Alternatief zonder plugin-installatie

Sommige hostingpartijen bieden zelf een SMTP-relay aan die u alleen hoeft in te vullen. Werkt dat niet direct, maak dan een los, nieuw e-mailadres aan bij uw hosting en gebruik dat als afzenderadres ('From') in de instellingen van uw formulierplugin — dit voorkomt dat externe mailproviders zoals Gmail de mail weigeren omdat het afzenderdomein niet overeenkomt met de verzendende server.

Een andere veelvoorkomende boosdoener: spamfiltering en reCAPTCHA

Naast mailbezorging is een verkeerd geconfigureerde spambeveiliging een andere veelvoorkomende reden waarom formulieren stil lijken te falen. Een reCAPTCHA-sleutel die na een domeinwijziging niet is bijgewerkt, of een spamfilterplugin die te agressief is ingesteld, kan legitieme inzendingen stilzwijgend blokkeren voordat ze ooit bij de mailverzending komen. Dit is lastiger te herkennen dan een mailprobleem, omdat de bezoeker vaak gewoon de bevestigingsmelding ziet, terwijl de inzending op de achtergrond al is tegengehouden. Test daarom periodiek met een inzending die u zelf verwacht te ontvangen, en controleer bij twijfel ook de instellingen van eventuele spam- of captcha-plugins, zeker na een domeinwijziging of SSL-installatie.

Controleer het formulier ook inhoudelijk

Naast de techniek is het zinvol om het formulier zelf periodiek te testen: werken alle verplichte velden, verschijnt de foutmelding bij een ongeldig e-mailadres, is de bevestigingstekst nog correct, en werkt de eventuele koppeling met een CRM- of nieuwsbriefsysteem nog na een update? Sommige formulierplugins veranderen bij een update het gedrag van velden of validatie, wat u pas merkt als een bezoeker een klacht meldt. Dit hoort thuis in een bredere routine, zie formulieren testen op uw website. Merkt u dat dit soort controles blijven liggen door drukte, dan is het testen en herstellen van formulieren ook iets wat u kunt laten uitvoeren als onderdeel van periodiek onderhoud.

Veelgestelde vragen

Waarom komt de testmail van de plugin wel aan, maar de formuliermail niet?
Dat wijst meestal op een afzenderprobleem: de plugin gebruikt bij het testen een ander afzenderadres of -pad dan bij een echte inzending. Controleer de From-instelling van het formulier zelf.
Is SMTP altijd nodig, of kan het ook zonder?
Bij sommige hostingpartijen werkt de standaard PHP mail-functie prima. Zodra e-mails structureel niet aankomen, is SMTP met authenticatie de betrouwbaarste oplossing.
Kan ik zien of iemand het formulier al heeft geprobeerd te versturen zonder dat ik de mail kreeg?
Sommige formulierplugins slaan inzendingen ook op in de WordPress-database, los van de e-mailverzending. Controleer dat overzicht — vaak staat de inzending er wel, ook als de mail niet aankwam.