Acorn Mail: SMTP ve WordPressu bez pluginů a s testem přes CLI
Kdo někdy ladil odesílání e-mailů z WordPressu přes SMTP, ten to zná: rozdílná konfigurace mezi prostředími, nejasné chybové hlášky a často i závislost na pluginu, který do toho „sahá“ způsobem, jenž se špatně debuguje. Navíc se objevují i bezpečnostní incidenty v některých SMTP pluginech (Roots v oznámení zmiňuje konkrétní zranitelnost evidovanou jako CVE-2023-6875), takže dávat SMTP vrstvu do dalšího pluginu není vždy ideální.
Tým kolem Roots proto představil Acorn Mail – balíček, jehož cílem je zjednodušit SMTP konfiguraci a hlavně testování odesílání e-mailů ve WordPress aplikaci postavené na Acornu. Klíčová myšlenka: konfigurace přes environment proměnné a kontrolované napojení na WordPressový PHPMailer (třída, kterou WordPress používá pro odesílání mailů) – a k tomu CLI příkaz na rychlý test.
Co je Acorn Mail a pro koho dává smysl
Acorn Mail je balíček z ekosystému Roots pro projekty, které používají Acorn (frameworkové rozšíření pro WordPress, inspirované Laravelem). Nesnaží se přepsat mailovou logiku WordPressu, jen se chytře napojí na existující instanci PHPMailer a nastaví SMTP ve chvíli, kdy detekuje zadané přihlašovací údaje.
Prakticky to oceníš hlavně tehdy, když:
- chceš držet konfiguraci mimo databázi a mimo admin (12factor styl)
- máš více prostředí (lokál/staging/prod) a chceš konzistentní nastavení bez ručního klikání
- potřebuješ rychle ověřit SMTP credentials a vidět chyby srozumitelně (ne „něco se nepovedlo“).
Instalace přes Composer
Balíček se instaluje standardně přes Composer vedle Acornu. V kořeni projektu spusť:
composer require roots/acorn-mailZákladní konfigurace přes environment proměnné
Po instalaci stačí dodat SMTP nastavení přes env proměnné. Roots uvádí následující sadu:
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=Chování je jednoduché: jakmile Acorn Mail najde tyto hodnoty vyplněné (tj. nejsou prázdné), automaticky se „zahákne“ do WordPressu a nastaví SMTP na úrovni instance PHPMailer. Výhoda je, že nemusíš řešit vlastní hooky, ani mít aktivní samostatný SMTP plugin jen kvůli konfiguraci.
Poznámka k env přístupu
Konfigurace přes .env (resp. přes proměnné prostředí) se dobře verzovat nedá a ani nemá. Do repozitáře patří typicky jen .env.example a reálné hodnoty se doplňují na serveru / v CI.
Pokročilé nastavení: publikování mail.php konfigurace
Pokud potřebuješ jemnější kontrolu, Acorn Mail umožňuje publikovat konfigurační soubor mail.php. Roots pro to dává CLI příkaz:
wp acorn mail:configTohle je užitečné ve chvíli, kdy základní env proměnné nestačí a chceš mít konfiguraci explicitně v projektu (samozřejmě pořád s rozumným zacházením se secret hodnotami podle toho, jak to máš nastavené v deploy pipeline).
Test odeslání: konečně s použitelným výstupem
Největší praktická část je testovací příkaz přes Acorn CLI. Odeslání testovacího e-mailu spustíš takhle:
wp acorn mail:test [--to=]Přepínač --to= umožní poslat test na konkrétní adresu. Podstatné je, že příkaz má podle oznámení čistě vypsat chyby, které během odesílání nastanou. V praxi to zkracuje debug z „zkusím plugin, zkusím jiné nastavení, kouknu do logů“ na jeden příkaz, který ti řekne, na čem to padá.
Jak bych to používal v reálném projektu
Typický setup v modernějším WordPress projektu (Roots/Acorn) vypadá tak, že lokálně můžeš mít třeba sandbox SMTP (nebo úplně vypnuté odesílání) a staging/produkci už napojenou na reálného poskytovatele. S Acorn Mail se to překlápí čistě přes proměnné prostředí, takže stejné buildy běží všude a mění se jen konfigurace.
- Nainstalovat balíček přes Composer.
- Doplnit
MAIL_*proměnné do prostředí (lokál přes.env, server přes secrets/CI). - Ověřit odesílání přes
wp acorn mail:test --to=...a až pak řešit, jestli případná chyba je v DNS, portu, přihlašování nebo v providerovi. - Pokud je potřeba, publikovat
mail.phppřeswp acorn mail:configa doladit pokročilé volby.
Shrnutí
Acorn Mail míří na konkrétní bolest: SMTP ve WordPressu často stojí na pluginech s omezeným debugem a někdy i bezpečnostními riziky. Roots k tomu přidává jednodušší, projektovější přístup – konfiguraci přes env proměnné, automatické napojení na PHPMailer a hlavně CLI test, který má smysluplně vypsat chyby při odesílání.
Reference / Zdroje
Hannah Turing
WordPress vývojářka a technická redaktorka v HelloWP. Pomáhám vývojářům vytvářet lepší webové stránky s moderními nástroji jako Laravel, Tailwind CSS a ekosystém WordPress. Vášnivě se věnuji čistému kódu a vývojářské zkušenosti.
Všechny příspěvky