Module 6 · 6.1
Mails van je shop en bezorgbaarheid
Module 6: Beheer en veiligheid · Leestijd: 10 minuten
Leerdoel: Na deze les kun je de mails van een WooCommerce-shop instellen, ervoor zorgen dat ze in de inbox aankomen en het testen, zodat geen klant zonder bevestiging blijft zitten.
Kernbegrippen: transactionele mail, bestelmails voor klant en beheerder, afzendernaam en afzenderadres, antwoordadres (Reply-To), sjablonen, extra inhoud, SMTP, transactionele maildienst, SPF, DKIM, DMARC, uitlijning, volume, mail in staging uit
Een shop is ook een mailserver
Een gewone WordPress-site stuurt af en toe een wachtwoordlink of een formulier door. Een shop stuurt bij elke bestelling mail, en die mails zijn geen bijzaak. De bevestigingsmail is voor de klant het bewijs dat zijn betaling goed is aangekomen. Hij is ook de duurzame gegevensdrager waarop je de informatie over de bestelling en het herroepingsrecht geeft (les 5.4). En de ontvangstbevestiging van een herroeping (les 5.3) moet de klant echt bereiken. Komt zo'n mail in de spam of helemaal niet aan, dan krijg je vragen, dubbele bestellingen en in het ergste geval een klant die denkt dat je niet levert.
Hoe mail vanuit WordPress werkt (de functie wp_mail, PHP mail, waarom SMTP beter is) staat in de WordPress-cursus, les 9.1. De techniek achter SPF, DKIM en DMARC staat in de cursus E-mail op orde. In deze les alleen wat er bij een shop bij komt.
Welke mails WooCommerce verstuurt
WooCommerce heeft een vaste set mails. Bij WooCommerce > Instellingen > E-mails (Emails) zie je ze allemaal, met per mail een schakelaar, de ontvanger, het onderwerp en de kop. De belangrijkste:
| Naar | Wanneer | |
|---|---|---|
| Nieuwe bestelling | Beheerder | Een bestelling is betaald of in de wacht gezet |
| Bestelling in behandeling | Klant | De betaling is gelukt; dit is de echte bevestiging |
| Bestelling in de wacht | Klant | Je wacht nog op betaling, bijvoorbeeld een bankoverschrijving |
| Bestelling afgerond | Klant | Je hebt de bestelling op Afgerond gezet, meestal bij verzending |
| Bestelling terugbetaald | Klant | Je hebt (een deel) terugbetaald |
| Geannuleerde en mislukte bestelling | Beheerder en klant | De betaling is mislukt of de bestelling geannuleerd |
| Factuur of bestelgegevens | Klant | Als je die handmatig vanuit de bestelling stuurt |
| Klantnotitie | Klant | Als je bij een bestelling een notitie "aan de klant" schrijft |
| Wachtwoord herstellen, nieuw account | Klant | Bij accounts |
Gebruik je de functie voor herroeping (les 5.3), dan komen er twee bij: een ontvangstbevestiging voor de klant en een melding voor jou. WooCommerce rondt een herroeping niet af als een ingeschakelde mail niet verstuurd kan worden. Ook daarom moet mail werken.
Zet geen mails uit om "rust" te hebben. Wil je minder beheerdersmails, verander dan de ontvanger in een gedeelde mailbox, niet de schakelaar.
Afzender, antwoordadres en inhoud
Onderaan het e-mailscherm staan de opties voor de afzender: de naam ("Theehuis Example") en het afzenderadres. Drie regels:
- Een adres op je eigen domein, bijvoorbeeld
bestellingen@example.com. Nooit een adres van Gmail of Outlook.com: die domeinen staan jouw server niet toe om namens hen te mailen, en hun DMARC-beleid laat ontvangers zulke mail weigeren. - Een adres dat bestaat en gelezen wordt. Klanten antwoorden op hun bevestiging met vragen ("kan ik nog een pak thee toevoegen?"). Gaat dat antwoord naar een
noreply-adres, dan raak je die vragen kwijt. Wil je antwoorden ergens anders hebben, regel dat met een antwoordadres in je mailplugin of via een doorstuurregel. - Hetzelfde domein als waarmee je verstuurt. Mail je via de webserver, dan moet die server in het SPF-record van dat domein staan en moet de mail een DKIM-handtekening van dat domein hebben. Daarover gaat de opdracht.
In elke mail kun je extra inhoud toevoegen (een tekstveld onder de bestelgegevens). Gebruik dat voor wat de wet in de bevestiging vraagt: een korte zin over het herroepingsrecht met een link naar je herroepingsinformatie en naar de herroepingsknop. Bij Klantgegevens en in de voettekst van de mails zet je je bedrijfsgegevens. Wil je meer veranderen dan de instellingen per mail toelaten, dan kan dat door een sjabloon in je (child) thema te overschrijven of met een plugin. Overschreven sjablonen moet je na updates nakijken (les 6.2).
Waarom bestelmails in de spam vallen
Een paar oorzaken die je bij shops vaak ziet:
- Versturen via de webserver zonder SPF en DKIM voor het afzenderdomein. De ontvangende server ziet een mail "van"
example.comvanaf een IP dat daar niet bij hoort. - Je mail staat elders. Staat de mailbox van
example.combij een andere partij (bijvoorbeeld Microsoft 365) en verstuurt de shop via de webserver, dan moet het SPF-record ook de webserver toestaan, of laat je de shop via de mailserver van die partij versturen met SMTP. KB 13 legt uit wat er dan misgaat. - Volume en limieten. Een uitverkoop met 600 bestellingen op een avond is ook 1.200 mails (klant en beheerder). Hostingpakketten hebben een limiet voor het aantal mails per uur (KB 20). Bij veel bestellingen of een nieuwsbrief is een transactionele maildienst (een dienst die gespecialiseerd is in mail uit websites) een betere route; die geeft ook een overzicht van wat aankwam en wat terugkwam.
- Nieuwsbrieven via dezelfde weg. Stuur marketingmail niet via hetzelfde adres en dezelfde server als je bestelmails. Een klacht over een nieuwsbrief mag je bestelmails niet meeslepen. Zie de cursus E-mail op orde over nieuwsbrieven.
Gebruik voor SMTP een plugin die WordPress via een echte mailbox of dienst laat versturen (WordPress-cursus, les 9.1), en vul daar dezelfde afzender in als in WooCommerce.
Testen, en staging stil houden
Test na elke wijziging met een echte bestelling in testmodus (les 4.5), naar een adres bij een andere partij dan je eigen domein. Kijk niet alleen of hij aankwam, maar ook in de kopregels van de mail: staat er spf=pass, dkim=pass en dmarc=pass met jouw domein? Hoe je kopregels leest, staat in de cursus E-mail op orde.
Op een staging-kopie (les 7.3) zitten de echte klantgegevens. Zet daar het versturen van mail uit, of stuur alle mail naar één testadres met een plugin, voordat je iets test. Anders krijgen klanten bevestigingen van bestellingen die nooit bestonden.
Bij WebOké verstuurt een site standaard via de mailserver van het pakket; met een SMTP-plugin kun je via een mailbox in hetzelfde pakket versturen. Bij andere hosters werkt dat vergelijkbaar.
In de praktijk: zo ziet het eruit in WooCommerce
Bij Theehuis Example:
- WooCommerce > Instellingen > E-mails: afzendernaam "Theehuis Example", afzenderadres
bestellingen@example.com(een echte mailbox). - Bij "Nieuwe bestelling" als ontvanger
winkel@example.com, een gedeelde mailbox. - Bij "Bestelling in behandeling" extra inhoud: "Je hebt 14 dagen bedenktijd. Herroepen kan via de link Overeenkomst herroepen onderaan onze site."
- Een SMTP-plugin die via de mailbox
bestellingen@example.comverstuurt; SPF, DKIM en DMARC voorexample.comgecontroleerd. - Testbestelling naar een adres bij een andere partij; kopregels gecontroleerd.
Samenvatting
- Bestelmails zijn bewijs voor de klant en de plek voor de wettelijke bevestiging; ze moeten aankomen.
- Afzender op je eigen domein, een mailbox die gelezen wordt, en SPF en DKIM voor de server die echt verstuurt.
- Let op limieten bij drukte; overweeg een transactionele maildienst en houd nieuwsbrieven gescheiden.
- Test met een testbestelling naar een adres elders en lees de kopregels.
- Zet mail op staging uit of vang hem af.
Quiz
Opdracht
Opdracht A6.1: Komen je bestelmails aan? Vul je domein in, het afzenderadres dat bij WooCommerce > Instellingen > E-mails staat, en de server die de mail echt verstuurt: "webserver" als WooCommerce via je hostingpakket mailt, of de hostnaam van je maildienst of SMTP-server. Een DKIM-selector mag je erbij zetten (je vindt hem in de kopregels van een testmail). Het programma vraagt het SPF-record van je domein op en rekent uit of de IP-adressen van die server erin passen (pass), zoekt het DKIM-record bij de selector en het DMARC-record. Groen als het afzenderadres op je domein eindigt, er precies één SPF-record is dat pass geeft, DKIM gevonden is en er precies één geldig DMARC-record is. Oranje bij softfail of neutral, zonder selector, of bij DMARC p=none. Rood bij een afzender op een ander domein, geen of meerdere SPF-records, fail, een selector zonder record, of geen DMARC.
Doe daarna zelf (niet nagekeken): plaats een testbestelling naar een adres bij een andere partij en zoek in de kopregels de uitkomst van spf, dkim en dmarc.
Een groen vinkje betekent dat deze controle nu klopt, niet dat je shop veilig is.
Verder lezen
Stappen in een paneel gelden voor WebOké; bij andere aanbieders werkt het vergelijkbaar.
- Gratis WordPress-cursus 9.1: E-mail vanuit WordPress
- Gratis cursus E-mail op orde: instellen en goed laten aankomen 7.3: Mail vanaf je website en formulieren
- Gratis cursus E-mail op orde: instellen en goed laten aankomen 4.2: SPF in de praktijk: alle verzenders in kaart
- Gratis cursus E-mail op orde: instellen en goed laten aankomen 4.3: DKIM in de praktijk: selectors, sleutels en diensten
- Gratis cursus E-mail op orde: instellen en goed laten aankomen 4.1: Waarom mail in de spam belandt
- Gratis cursus E-mail op orde: instellen en goed laten aankomen 1.5: Kopregels lezen: waar kwam deze mail vandaan?
- Mail versturen via PHP lukt niet, de MX-records wijzen naar elders
- Limiet voor het versturen van mail
- Hoe kan ik in php met mail() de juiste afzender krijgen? smtp
- Mail uit WordPress en WooCommerce betrouwbaar versturen via SMTP
