Přeskočit na obsah
Acorn Mail: SMTP ve WordPressu bez pluginů a s testem přes CLI
Hannah Turing
Hannah Turing 2024. March 19. · 5 min read

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-mail

Zá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:config

Tohle 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.

  1. Nainstalovat balíček přes Composer.
  2. Doplnit MAIL_* proměnné do prostředí (lokál přes .env, server přes secrets/CI).
  3. 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.
  4. Pokud je potřeba, publikovat mail.php přes wp acorn mail:config a 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í.

Hannah Turing

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

Připojte se ke komunitě HelloWP!

Povídejte si s námi o WordPressu, webovém vývoji a sdílejte zkušenosti s ostatními vývojáři.

- členové
- online
Připojit se

We use cookies to improve your experience. By continuing, you agree to our Cookie Policy.