Home - E-mail vanuit WordPress komt niet aan: oplossen met SMTP, SPF, DKIM en DMARC
Op deze pagina

E-mail vanuit WordPress komt niet aan: oplossen met SMTP, SPF, DKIM en DMARC

Foto van David Ladiges
David Ladiges
Technical Lead
E-mail vanuit WordPress komt niet aan: oplossen met SMTP, SPF, DKIM en DMARC
E-mail vanuit WordPress komt niet aan: oplossen met SMTP, SPF, DKIM en DMARC

Een klant belt dat hij geen orderbevestiging heeft gekregen, of je ontdekt dat berichten uit je contactformulier al weken in de spamfolder belanden. E-mails vanuit WordPress komen vaak niet aan omdat ze via de PHP-mailfunctie zonder authenticatie worden verstuurd. Los dit op met SMTP of een transactionele e-maildienst en correcte SPF-, DKIM- en DMARC-records op je domein. Hieronder lees je hoe je de oorzaak vindt, SMTP instelt en zorgt dat ontvangers je domein als betrouwbare afzender herkennen. De achtergrond staat in hoe domein, DNS en e-mail samenhangen.

Waarom WordPress-mails niet aankomen

WordPress-mails komen niet aan omdat WordPress standaard verstuurt zonder in te loggen op een mailserver. De functie wp_mail() gebruikt de PHP-mailfunctie van de webserver, en die stuurt het bericht gewoon de deur uit. Gmail en Outlook zien dan een mail die zegt van jouw domein te komen, maar die niet van een server komt die namens dat domein mag mailen. Vergelijk het met een brief zonder afzender en zonder poststempel. Die gaat op de stapel met verdachte post, en bij e-mail is dat de spamfolder, of de mail wordt helemaal geweigerd.

Meestal zie ik een van vier oorzaken, vaak in combinatie. De eerste is dat WordPress dus niet inlogt op een mailserver. De tweede is een afzenderadres dat niet bij je eigen domein hoort, bijvoorbeeld een Gmail-adres of het adres van de bezoeker. Ten derde ontbreken SPF, DKIM of DMARC op je domein, of ze kloppen niet. En ten slotte beperken veel hostingpartijen uitgaande mail via PHP, om te voorkomen dat een gehackte site spam gaat versturen.

Eerst checken: waar gaat het mis?

De oorzaak vind je het snelst met een vaste diagnosevolgorde, voordat je plugins gaat installeren. Dit is de volgorde die ik zelf aanhoud.

  1. Kijk in de spamfolder van de ontvanger.
  2. Stuur een testmail, bijvoorbeeld met de testfunctie van je SMTP-plugin of met de plugin Check Email.
  3. Zet een e-maillog aan om te zien of WordPress de mail wel verstuurt.
  4. Controleer het afzenderadres onder Instellingen > Algemeen en in je formulierplugin.
  5. Test je domein op internet.nl of met Mail-Tester.

Het e-maillog vertelt je vaak meteen wat er mis is, als je de foutmeldingen kent. Staat er dat de authenticatie is mislukt, dan klopt het wachtwoord niet of vraagt je provider om een app-wachtwoord. Een time-out op de verbinding wijst op een verkeerde poort, of op een poort die geblokkeerd wordt. En de code 550 5.7.1 betekent dat de ontvanger jouw server niet als geautoriseerde afzender ziet. Mijn vuistregel is eenvoudig. Belandt de mail in de spamfolder, dan heb je een authenticatieprobleem, en wordt hij helemaal niet verstuurd, dan zit het in de configuratie.

WordPress-mail versturen via SMTP

SMTP (Simple Mail Transfer Protocol) is het protocol waarmee een mailprogramma inlogt op een mailserver om berichten te versturen. Met een SMTP-plugin doet WordPress precies hetzelfde als Outlook op je laptop. Er zijn drie routes, en welke past hangt af van hoeveel mail je site verstuurt.

Optie 1: via de mailbox van je eigen domein

  1. Installeer een SMTP-plugin, zoals WP Mail SMTP, FluentSMTP of Post SMTP.
  2. Vul de SMTP-server van je mailprovider in.
  3. Kies poort 587 met STARTTLS, of poort 465 met SSL als 587 niet werkt.
  4. Vul de gebruikersnaam en het wachtwoord van een bestaande mailbox in.
  5. Vergrendel het afzenderadres, bijvoorbeeld met Force From Email in WP Mail SMTP, zodat andere plugins het niet overschrijven.
  6. Stuur een testmail.

Hiervoor heb je een mailbox op je eigen domein nodig, bijvoorbeeld via e-mail hosting. Deze route is prima voor een site met een contactformulier en weinig mail. Een mailbox bij Surver verstuurt maximaal 75 mails per uur.

Optie 2: via een transactionele e-maildienst

Transactionele e-mail is automatische mail die verstuurd wordt na een actie van een bezoeker, zoals een orderbevestiging, een wachtwoordherstel of een formulierbevestiging. Een gespecialiseerde dienst bezorgt die beter, omdat hij een vaste verzendreputatie opbouwt, logs bijhoudt en bounces (onbestelbare mail) netjes afhandelt. Bekende voorbeelden zijn Brevo, Mailgun en Amazon SES. Mijn mening is hier vrij stellig. Een webshop hoort geen orderbevestigingen via de standaard PHP-mailfunctie te versturen, en een transactionele e-maildienst is daar geen luxe maar basis.

Optie 3: via Google Workspace of Microsoft 365

Gebruik je al Google Workspace of Microsoft 365 voor je zakelijke mail, dan kan WordPress ook via die omgeving mailen. Je hebt dan een OAuth-koppeling of een app-wachtwoord nodig, en je zit aan hun verzendlimieten. Beide pakketten, Google Workspace en Microsoft 365, kun je overigens ook via Surver afnemen. De afweging tussen de opties lees je in e-mail hosting, Google Workspace of Microsoft 365.

SPF, DKIM en DMARC: zo herkent de ontvanger jouw domein

SPF, DKIM en DMARC zijn drie TXT-records in je DNS die ontvangers vertellen of een mail echt van jou komt. Hoe DNS werkt, lees je in wat DNS is, en de werking van TXT-records staat in DNS-records uitgelegd. SPF is een DNS-record dat vastlegt welke servers namens je domein mogen mailen. Zie het als de gastenlijst bij de deur. Een voorbeeld is v=spf1 include:_spf.voorbeelddienst.nl ~all. DKIM is een digitale handtekening in elke mail, die de ontvanger controleert met een publieke sleutel in je DNS. Die sleutel krijg je van je verzenddienst.

DMARC is een DNS-record dat de ontvanger vertelt wat hij moet doen als SPF of DKIM faalt, en waar hij rapporten heen moet sturen. Een veilige start is v=DMARC1; p=none; rua=mailto:dmarc@jouwdomein.nl. Bij het instellen zie ik steeds dezelfde fouten. Mensen maken een tweede SPF-record aan in plaats van het bestaande uit te breiden, terwijl er maar één mag zijn. Of ze vergeten de verzenddienst aan SPF toe te voegen. Minder bekend is dat SPF maximaal 10 DNS-lookups mag doen, dus wie veel diensten met include toevoegt, krijgt ongemerkt een ongeldig record. En zet DMARC nooit direct op p=reject. Begin met p=none, bekijk de rapporten en schroef daarna op naar quarantine en reject. Je reputatie bij Gmail volg je in Google Postmaster Tools.

Contactformulieren en WooCommerce-mails goed instellen

Formulier- en ordermails komen het best aan als ze vertrekken vanaf een adres op je eigen domein. Bij een contactformulier zet je het adres van de bezoeker in het Reply-To-veld, niet in het Van-veld. Mailt het formulier namens de bezoeker, dan faalt DMARC per definitie, omdat jouw server niet namens zijn domein mag mailen. Zet er ook een captcha op, want spam die via je formulier wordt verstuurd, beschadigt de reputatie van je domein. Meer lees je in contactformulier instellen in WordPress.

In WooCommerce controleer je de afzendernaam en het afzenderadres onder WooCommerce > Instellingen > E-mails. Doe na elke wijziging een testbestelling en kijk of de orderbevestiging en de factuur aankomen in zowel Gmail als Outlook. Wil je dat periodiek laten controleren, dan kan dat via WooCommerce beheer.

Bij Surver hebben we hier een eigen oplossing voor. Onze transactionele e-mail heet Dropper, en die neem je af als add-on bij je hostingpakket, bijvoorbeeld bij managed WordPress hosting. Gaat je webshop of formulier over de 75 mails per uur van een gewone mailbox heen, dan is Dropper de route. Twijfel je daarna nog over je records, dan kijkt onze support met je mee. Wil je het instellen en bijhouden van je site liever helemaal uitbesteden, kijk dan bij WordPress onderhoud en beheer.

Veelgestelde vragen

Heb ik een SMTP-plugin nodig?

Ja, voor vrijwel elke site die formulier- of ordermails verstuurt. De enige uitzondering is als je mail al via een geauthenticeerde transactionele dienst loopt die zelf de verzending afhandelt.

Is SMTP voor WordPress gratis?

Via de mailbox van je eigen domein kost het niets extra, en SMTP-plugins hebben gratis versies. Verstuur je meer mail, bij Surver boven 75 per uur per mailbox, dan heb je een transactionele e-maildienst nodig.

Is DMARC verplicht?

Niet wettelijk, maar Gmail en Yahoo eisen het sinds 2024 van afzenders die grote volumes versturen. Mijn advies is om altijd minimaal een DMARC-record met p=none te hebben, zodat je rapporten krijgt en ziet wie namens je domein mailt.

Heb je een vraag over je website of hosting?

Ons team staat klaar om je te helpen! Laat je gegevens achter en we nemen vrijblijvend contact op.

Deel dit artikel:

Stel je vraag

Heb je een vraag over je website, hosting of WordPress? Vul je gegevens hieronder in en we nemen zo snel mogelijk contact met je op met een persoonlijk antwoord.

Je hebt geen technische kennis nodig. We denken graag met je mee.

Stel je vraag