Acorn Mail: SMTP i WordPress uden plugin-rod og med test via CLI
Hvis du har forsøgt at få WordPress til at sende mail stabilt via SMTP på tværs af local/staging/production, kender du sikkert frustrationen: et plugin her, lidt “magi” der, og stadig ingen garanti for, at password, port, TLS og afsender er sat rigtigt. Og når det fejler, får man ofte nærmest ingen brugbar fejlrapportering.
Samtidig er SMTP-plugins ikke bare et spørgsmål om smag. De kan være ustabile, og i værste fald decideret usikre. Roots peger fx på en konkret sårbarhed i et SMTP-plugin-landskab, som er værd at have i baghovedet, når man lægger autentificeringsoplysninger ind i WordPress-admin: CVE-2023-6875.
Roots’ bud på en mere udviklervenlig løsning er Acorn Mail: et Composer-installérbart package, der kobler sig på WordPress’ PHPMailer (mail-motoren WordPress bruger internt) og sætter SMTP op via miljøvariabler. Bonus: du får et CLI-testværktøj, der viser fejl tydeligt, i stedet for at du skal gætte dig frem ud fra “Mailen kom aldrig frem”.
Hvad er Acorn Mail – og hvorfor giver det mening?
Acorn Mail er et add-on til Roots Acorn, som standardiserer SMTP-konfigurationen i en WordPress-applikation og gør det nemt at teste mailflowet. I praksis betyder det:
- Konfiguration via miljøvariabler i stedet for admin-UI og DB-gemte settings
- Automatisk opsætning af SMTP på WordPress’
PHPMailernår credentials er til stede - En simpel CLI-kommando til at sende testmail og se fejl undervejs
Det er især interessant i miljøer, hvor du deployer “12-factor”-agtigt: secrets i environment, config i kode, og så lidt som muligt i WordPress-admin.
Installation med Composer
Acorn Mail installeres sammen med Acorn via Composer:
composer require roots/acorn-mailNår pakken er installeret, er den grundlæggende idé, at du ikke skal klikke dig rundt i et plugin-interface. Du sætter i stedet mailopsætningen i environment.
Basiskonfiguration via environment variables
Acorn Mail læser SMTP-oplysninger fra følgende miljøvariabler:
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=Når Acorn Mail registrerer, at credentials er sat (dvs. ikke tomme), hooker den automatisk ind i WordPress’ PHPMailer-instance og konfigurerer SMTP derfra.
Hvorfor miljøvariabler?
I praksis gør det det nemmere at holde forskelle mellem local/staging/production ude af kodebasen og væk fra WordPress-admin. Det passer godt til moderne deploy-flows, hvor secrets håndteres af platformen.
Avanceret konfiguration: publicér mail.php
Har du brug for mere avancerede indstillinger end det, environment variables dækker, kan du publicere Acorn Mails konfigurationsfil:
wp acorn mail:configDet giver dig en mail.php-config, som du kan justere efter behov.
Test af mail – direkte fra CLI
Noget af det mest praktiske i pakken er testkommandoen. I stedet for at stole på en “Send test mail”-knap, der ikke fortæller dig noget ved fejl, kan du køre:
wp acorn mail:test [--to=]Kommandoen sender en testmail til den adresse, du angiver, og viser fejl “rent” i outputtet, så du kan se, om problemet ligger i host, port, auth eller noget andet i kæden.
Hvornår er Acorn Mail et godt match?
Acorn Mail giver mest mening, hvis du i forvejen bygger WordPress-projekter med Roots-stack (Acorn/Bedrock-tilgangen) og ønsker at:
- Undgå SMTP-plugins i WordPress-admin af sikkerheds- og driftshensyn
- Have ensartet konfiguration på tværs af miljøer
- Kunne verificere mailsetup hurtigt i forbindelse med deploy eller fejlsøgning
- Holde credentials ude af databasen og væk fra klik-konfiguration
Opsummering
Acorn Mail er et lille, men meget praktisk stykke “infrastruktur” til WordPress-mail: installation via Composer, SMTP sat op via miljøvariabler, automatisk wiring til PHPMailer, og en CLI-testkommando der faktisk hjælper, når noget går galt. Hvis du allerede er i Roots/Acorn-universet, er det en markant mere robust arbejdsgang end den klassiske plugin-baserede SMTP-opsætning.
Referencer / Kilder
Hannah Turing
WordPress-udvikler og teknisk skribent hos HelloWP. Jeg hjælper udviklere med at bygge bedre hjemmesider med moderne værktøjer som Laravel, Tailwind CSS og WordPress-økosystemet. Passioneret omkring ren kode og udvikleroplevelse.
Alle indlæg