Modul 9 · 9.1
E-mail fra WordPress
Modul 9: E-mail, synlighed i søgemaskiner, GDPR, vedligeholdelse og flytning · Læsetid: 9 minutter
Læringsmål: Efter denne lektion kan du sørge for, at mail fra WordPress (formularer, bestillinger, adgangskode-links) kommer frem pålideligt.
Nøglebegreber: wp_mail, PHP mail(), afsender (From), Reply-To, SMTP, SMTP-plugin, autentificeret mailboks, transaktionel maildienst, SPF, DKIM, DMARC, alignment, MX et andet sted, testmail
WordPress sender mere mail, end du tror
Dit websted sender mail ved: en udfyldt kontaktformular, en bestilling (til kunden og til dig), en ny bruger, en glemt adgangskode, en ny kommentar, en automatisk opdatering, en kritisk fejl (lektion 5.4). Kommer den mail ikke frem, opdager du det ofte først, når en kunde ringer: "jeg har udfyldt formularen tre gange."
Sådan sender WordPress mail som standard
WordPress sender alt via funktionen wp_mail. Som standard giver den mailen videre til PHP-funktionen mail(), som sender den videre til webserverens mailprogram. Det virker, men har tre svage punkter:
- Afsenderen. Uden indstilling sender WordPress som
wordpress@example.com. Findes den adresse ikke, eller er afsenderen noget andet end dit eget domæne, mistror modtagerne den. - SPF, DKIM og DMARC. Modtagende mailservere kontrollerer, om den server, der afleverer mailen, må sende mail på vegne af dit domæne (SPF), om mailen har en gyldig digital signatur fra dit domæne (DKIM), og hvad dit domænes politik er, hvis det ikke stemmer (DMARC). I DNS-kurset (lektion 4.3 til og med 4.5) kan du læse, hvordan det fungerer. Mail via webserveren består kun disse kontroller, hvis din DNS og serveren er indrettet til det.
- Mail et andet sted. Ligger din e-mail ikke hos din webhost, men f.eks. hos Microsoft 365 eller Google Workspace (dine MX-records peger derhen), stemmer mailen via webserveren ofte ikke overens med dit SPF og DKIM. Og nogle webservere forsøger at aflevere mail til dit eget domæne lokalt i stedet for via MX, så den aldrig når din rigtige mailboks.
Sæt afsender og Reply-To korrekt op
En hyppig fejl ved kontaktformularer: at bruge besøgendes adresse som afsender (From). Det virker logisk ("så kan jeg trykke svar"), men din server må ikke sende mail på vegne af @gmail.com eller @hotmail.com. Disse domæner har en streng DMARC-politik, så modtageren afviser mailen eller sender den i spam.
Korrekt er:
From: Website <website@example.com> (en adresse fra dit eget domæne)
Reply-To: bezoeker@example.net (adressen den besøgende udfyldte)
To: info@example.comMed Reply-To ender dit svar alligevel hos den besøgende. Stort set alle formularplugins har disse to felter adskilt.
SMTP: send via en rigtig mailboks
Den mest pålidelige løsning er at lade WordPress sende mail via SMTP: samme måde som dit mailprogram sender på, med brugernavn og adgangskode til en rigtig mailboks. Det gør du med et SMTP-plugin (f.eks. WP Mail SMTP, FluentSMTP eller Post SMTP; der findes flere). Pluginet opfanger wp_mail og sender mailen via den server, du angiver:
| Valg | For hvem |
|---|---|
Mailboksen hos din egen host (f.eks. website@example.com på mailserveren i din hostingpakke) | De fleste små websteder med mail hos samme udbyder |
| Din mail hos Microsoft 365 eller Google Workspace | Hvis din mail ligger der; ofte via en speciel kobling i pluginet (OAuth) i stedet for en adgangskode, fordi disse tjenester i stigende grad begrænser almindelig SMTP-login |
| En transaktionel maildienst (en tjeneste specialiseret i at sende mail fra websteder og apps) | Webshops og websteder, der sender meget mail |
Fordele: mailen går via en server, der allerede er indrettet med SPF og DKIM til dit domæne, afsenderen er en eksisterende adresse, og mange plugins fører en log, så du kan se, hvad der er sendt, og hvad der mislykkedes.
Vær opmærksom på et par ting:
- Brug en separat mailadresse til websitet (f.eks.
website@), ikke din egen mailboks. Hvis websitet bliver hacket, og adgangskoden lækker, kan adressen udskiftes uden skade. - SMTP-adgangskoden ligger i databasen eller i wp-config.php. Brug hvor det er muligt en app-adgangskode eller en kobling uden adgangskode.
- En maillog indeholder personoplysninger (hvem har sendt hvad). Lad den ikke vokse i det uendelige (lektion 9.3).
SPF, DKIM og DMARC til dit websted
Uanset hvilken server der sender, skal din DNS passe til det:
- SPF: dit domænes SPF-record skal nævne den server, der afleverer mailen. Sender du via din hosts mailserver, står den som regel allerede der. Sender du via en transaktionel tjeneste, tilføjer du deres
include:i samme SPF-record (aldrig en anden SPF-record, DNS-kursus lektion 4.3). - DKIM: den afsendende server skal signere mailen med en nøgle, der står i din DNS (
<selector>._domainkey.example.com). Hos din host og hos transaktionelle tjenester aktiverer du det; tjenesten giver dig records. - DMARC: en record på
_dmarc.example.com. Begynd medp=noneog stram til, når alt stemmer (DNS-kursus lektion 4.5).
For DMARC skal domænet i From være alignet med det domæne, som SPF eller DKIM bekræfter. Derfor er "From på dit eget domæne" så vigtigt.
Test
- Mange SMTP-plugins har en knap Send testmail. Send en til en adresse hos en anden udbyder (en Gmail- eller Outlook.com-adresse), og se om den lander i indbakken.
- Se på headerne i den mail ("Vis original" eller "Vis kilde"). Find
spf=pass,dkim=passogdmarc=pass. - Udfyld din egen kontaktformular, og se om mailen kommer frem, med korrekt Reply-To.
- Test også et adgangskode-link og, hvis du har en webshop, en testbestilling.
Online værktøjer som mail-tester.com giver en score og forklaring; med din hosts e-mailtjek (hos WebOké hedder den sådan) eller internet.nl kontrollerer du DNS-siden.
I praksis: sådan ser det ud i et panel
Som eksempel bruger vi DirectAdmin og et SMTP-plugin. Hos andre hosts og plugins hedder felterne tilsvarende.
- Opret i DirectAdmin under E-mailkonti en mailboks
website@example.commed en stærk adgangskode. - Find hos din host indstillingerne for udgående mail (servernavn, port 465 eller 587, kryptering).
- Indtast dem i SMTP-pluginet, med
website@example.comsom afsender. Aktivér "gennemtving afsender", så andre plugins også bruger denne adresse. - Kontrollér under DNS-administration, at SPF, DKIM og DMARC findes for dit domæne.
- Send en testmail, og læs headerne.
Opsummering
- WordPress sender via wp_mail og som standard via PHP mail(); afsenderen og DNS afgør, om det kommer frem.
- Sæt afsenderen (From) til en adresse fra dit eget domæne, og den besøgendes adresse i Reply-To.
- Et SMTP-plugin med en separat mailboks eller en transaktionel tjeneste er mest pålideligt, med en log.
- SPF skal nævne den afsendende server (i én record), DKIM skal være aktiveret, DMARC skal begynde med p=none.
- Test med en adresse hos en anden udbyder, og læs spf, dkim og dmarc i headerne.
Quiz
Opgave
Opgave A9.1: Er dit domæne klar til at sende mail fra dit websted? Indtast dit domæne, den adresse dit websted bruger som afsender, og den server dit websted sender mail via (navnet på SMTP-serveren, eller "webserver" hvis du ikke har indstillet noget). Indtast også DKIM-selectoren, hvis du kender den. Programmet kontrollerer: afsenderadressen hører til dit domæne, der findes præcis én SPF-record og den tillader den nævnte server, der findes en DKIM-record ved selectoren (eller det melder, at det ikke kan kontrollere uden selector), og der findes en gyldig DMARC-record.
Opgave D9.1: Læs en testmail. Send en testmail fra dit websted (testknappen i dit SMTP-plugin, eller et adgangskode-link til en testkonto) til en adresse hos en anden udbyder. Åbn headerne i den mail, og notér resultaterne ved spf, dkim og dmarc, og hvilket domæne der står ved hver af dem. Udfyld derefter din egen kontaktformular, og kontrollér: kommer mailen frem, og går "svar" til den adresse, du indtastede i formularen?
Opgave D9.1: Læs en testmail
Denne opgave laver du selv; ingen tjekker den. Afkryds hvad du har gjort, og markér opgaven som udført.
Tre resultater (pass, fail eller none) med et domæne, for eksempel "spf=pass smtp.mailfrom=dindomæne.dk". Ved en fail nævner du det næste skridt (udbygge SPF, slå DKIM til, SMTP-plugin).
Dine afkrydsninger og noter forbliver kun i denne browser; vi sender dem ingen steder hen. Er du logget ind, gemmer vi kun i Mine kurser, at du har udført opgaven.
Læs mere
Disse artikler beskriver trinnene i panelerne hos WebOké; i andre paneler fungerer de tilsvarende.
- Mail kan ikke sendes via PHP, MX-poster peger et andet sted hen
- Hvordan får jeg den rigtige afsender med mail() i PHP? SMTP
- En kontaktformular på din hjemmeside: få felter sendt via mail og undgå spam
- Sådan bliver e-mails sendt / SMTP
- DirectAdmin vejledning 18.10: Jeg kan ikke sende e-mail
- Gratis DNS-kursus 4.3: SPF: hvem må sende mail på vegne af dit domæne?
- Gratis DNS-kursus 4.4: DKIM: underskriften under din mail
- Gratis DNS-kursus 4.5: DMARC: hvad modtagere skal gøre med falsk mail
