WordPress neodosiela e-maily: SMTP, SPF, DKIM a riešenie problémov

Riešenie problémov s odosielaním e-mailov z WordPressu cez SMTP, SPF a DKIM

Prečo WordPress neodosiela e-maily?

Zákazník si objedná tovar a potvrdenie objednávky nikdy nepríde. Niekto si zabudne heslo, klikne na „obnoviť heslo“ a čaká na e-mail, ktorý nikdy nedorazí. Kontaktný formulár na webe hlási „správa bola odoslaná“, ale vo vašej schránke nič nie je. Tento problém sa v drvivej väčšine prípadov netýka WordPressu samotného, ale toho, ako (a či vôbec) je server nastavený na skutočné odosielanie pošty.

WordPress na odosielanie e-mailov interne používa funkciu wp_mail(), ktorá je len obálkou nad knižnicou PHPMailer. Pokiaľ nie je nastavené inak, PHPMailer sa spolieha na vstavanú funkciu PHP mail() a tá potrebuje na serveri fungujúci prenosový agent (MTA, napríklad sendmail alebo Postfix). Veľa hostingov túto cestu buď vôbec nemá poriadne nastavenú, alebo ju aktívne obmedzuje kvôli spamu. Výsledok je rovnaký: WordPress si „myslí“, že e-mail odoslal, ale ten nikdy nedorazí k adresátovi.

Krátka odpoveď: WordPress štandardne posiela poštu cez nespoľahlivú funkciu PHP mail(), nie cez overený e-mailový kanál. Riešením je nastaviť skutočný SMTP prenos cez overenú doménu a doplniť DNS záznamy SPF a DKIM (ideálne aj DMARC). Ak e-maily stále nechodia aj po správnom SMTP nastavení, príčinou býva konflikt pluginov, zlá konfigurácia hostingu alebo chýbajúce DNS záznamy.

Ako funguje odosielanie e-mailov vo WordPresse

Podľa oficiálnej dokumentácie WordPress.org platí, že pokiaľ server nemá správne nastavený a nakonfigurovaný SMTP server (MTA), odchádzajúca pošta sa jednoducho neodošle. Na spravovanom hostingu (napríklad u väčšiny slovenských poskytovateľov) toto zvyčajne rieši samotný hosting, ale nie vždy spoľahlivo pre všetky typy e-mailov, najmä ak web posiela väčší objem transakčných správ.

Pre samostatne spravované servery dokumentácia odporúča tri prístupy: lokálny MTA s priamym odosielaním (vyžaduje skúsenosti a nesie riziko zlej IP reputácie), lokálny MTA, ktorý poštu preposiela cez overenú tretiu stranu („odporúčaná metóda pre väčšinu self-hosted nastavení“), alebo SMTP priamo cez kód či plugin. Tretí spôsob je najjednoduchší na nastavenie, ale pri vyššom objeme pošty môže podľa rovnakej dokumentácie spôsobiť výkonnostné spomalenie, pretože si vyžaduje samostatné pripojenie pri každom odoslanom e-maile.

Bez ohľadu na zvolenú cestu platí jedno: samotné odoslanie e-mailu zo servera ešte neznamená, že ho prijímajúca schránka (Gmail, Outlook, firemná pošta) skutočne doručí do doručenej pošty. To rozhoduje autentifikácia.

Najčastejšie príčiny, prečo e-maily nechodia

Hosting bez funkčného MTA

Server nemá správne nastavený prenosový agent alebo ho poskytovateľ z bezpečnostných dôvodov obmedzuje. E-mail sa nikdy neodošle ďalej, aj keď WordPress hlási úspech.

Chýbajúci alebo nesprávny SMTP prenos

Web posiela poštu cez nespoľahlivú funkciu mail() namiesto autentifikovaného SMTP pripojenia k overenej odosielacej službe.

Chýbajúce alebo nesprávne SPF a DKIM záznamy

Prijímajúci server nedokáže overiť, že e-mail skutočne patrí vašej doméne, a preto ho označí ako podozrivý alebo ho rovno odmietne.

Konflikt pluginu alebo témy

Bezpečnostný plugin, iný SMTP doplnok alebo vlastný kód môžu odosielanie nevedomky blokovať alebo prepisovať nastavenia navzájom.

Porovnanie spôsobov nastavenia odosielania

MetódaNáročnosť nastaveniaKedy sa hodí
Lokálny MTA s priamym odosielanímVysoká, vyžaduje serverové skúsenosti a správu IP reputácieSkúsení administrátori s vlastným serverom a kontrolou nad infraštruktúrou
Lokálny MTA s prenosom cez overenú tretiu stranuStredná, reputáciu preberá etablovaná službaOdporúčaný prístup pre väčšinu samostatne spravovaných serverov
SMTP priamo cez kód alebo pluginNízka, rýchle nastavenie cez rozhranie pluginuBežné riešenie na spravovanom hostingu alebo pri menšom objeme e-mailov

Ako problém opraviť krok za krokom

  1. Skontrolujte Site Health. V administrácii choďte na Nástroje → Zdravie stránky a pozrite sa, či WordPress hlási problém s odosielaním pošty priamo v tomto module.
  2. Otestujte reálne doručenie, nie len odoslanie. Pošlite si testovací e-mail na vlastnú schránku aj na bežnú Gmail alebo Outlook adresu. Rozdiel medzi „prišlo“ a „prišlo do spamu“ vám povie veľa o tom, kde presne problém je.
  3. Nastavte SMTP cez overenú doménu. Namiesto spoliehania sa na PHP mail() pripojte WordPress na autentifikovanú odosielaciu službu, ktorá reálne posiela poštu za vašu doménu.
  4. Pridajte alebo opravte SPF záznam. SPF v DNS zázname domény určuje, ktoré servery smú v jej mene odosielať poštu. Musí obsahovať presne tie služby, ktoré skutočne posielajú e-maily (napríklad hosting aj transakčnú SMTP službu, ak používate obe).
  5. Nastavte DKIM podpis. DKIM pridáva k odchádzajúcej pošte kryptografický podpis, ktorý prijímajúci server overí voči verejnému kľúču vo vašom DNS. Bez platného podpisu môže prijímajúci server e-mail rovno vyhodnotiť ako spam.
  6. Zvážte DMARC. DMARC záznam určuje, čo sa má stať, keď SPF alebo DKIM zlyhajú, a zároveň poskytuje reporty o tom, kto sa v mene vašej domény pokúša posielať poštu.
  7. Overte doručenie naprieč viacerými poskytovateľmi. Gmail, Outlook a firemné schránky môžu na rovnaké nastavenie reagovať odlišne. Otestujte doručenie na aspoň dvoch rôznych typoch schránok pred tým, ako problém označíte za vyriešený.

Riziká a časté chyby

Doména môže mať platný iba jeden SPF záznam. Ak firma popri WordPresse používa aj bežnú firemnú poštu (napríklad Google Workspace), oba zdroje musia byť zahrnuté v tom istom zázname, inak sa časť pošty automaticky vyhodnotí ako podozrivá.

Podľa oficiálnych pravidiel Google pre odosielateľov , Gmail od odosielateľov posielajúcich vo väčšom objeme vyžaduje nastavené SPF aj DKIM a platné doménové záznamy vrátane reverzného DNS. Rovnaké odporúčanie sa oplatí dodržať aj pri menšom objeme pošty, pretože zvyšuje šancu na doručenie do doručenej pošty namiesto priečinka spam.

Ďalšia bežná chyba je testovanie iba na vlastnú e-mailovú schránku, ktorá môže mať mierne odlišné pravidlá než bežná zákaznícka schránka. Rovnako sa oplatí nezabúdať, že objednávkové a transakčné e-maily vo WooCommerce idú cez rovnaký mechanizmus ako zvyšok WordPressu, takže ten istý problém typicky postihne stratené heslá aj potvrdenia objednávok naraz.

Koľko to stojí a čo to vyžaduje

Samotné pridanie SPF a DKIM záznamu je vo väčšine prípadov otázkou pár minút úprav v DNS správe domény a nemá priamy poplatok. Náklady rastú, ak web potrebuje profesionálnu transakčnú SMTP službu s vyšším objemom odosielaných e-mailov, alebo ak je potrebné najprv diagnostikovať konflikt medzi viacerými pluginmi či nesprávnu konfiguráciu hostingu. Presný rozsah práce a cenu vie určiť až konkrétna diagnostika vášho webu, keďže závisí od hostingu, počtu aktívnych pluginov a toho, či ide o jednorazovú opravu alebo o dlhodobejšie nastavenie.

Kontrolný zoznam pred odoslaním prvého testu

SMTP SPF DKIM DMARC Testovanie
  • WordPress je pripojený na autentifikované SMTP, nie na predvolenú funkciu PHP mail().
  • SPF záznam domény obsahuje všetky služby, ktoré skutočne posielajú poštu v jej mene.
  • DKIM podpis je aktívny a verejný kľúč je správne publikovaný v DNS.
  • DMARC záznam existuje aspoň v monitorovacom režime, aby ste videli prípadné zneužitie domény.
  • Testovací e-mail bol overený minimálne na dvoch rôznych poskytovateľoch schránok.
  • WooCommerce e-maily (objednávka, reset hesla) boli otestované samostatne, nie len kontaktný formulár.

Súvisiace návody a zdroje

Potrebujete overiť, prečo váš web neodosiela e-maily?

Pošlite nám adresu webu a stručný popis problému (napríklad či ide o kontaktný formulár, reset hesla alebo objednávky WooCommerce). Najskôr preveríme skutočnú príčinu a až potom navrhneme konkrétny postup opravy aj s cenovým odhadom.

Preveriť problém s e-mailami

Na záver

Chýbajúce e-maily pôsobia ako malý technický detail, kým si niekto neuvedomí, koľko zákazníkov medzitým prišlo o potvrdenie objednávky alebo sa nedokázalo prihlásiť späť do účtu. Dobrá správa je, že príčina je takmer vždy zistiteľná a oprava zvyčajne nevyžaduje prepisovanie webu, iba správne DNS záznamy a spoľahlivý SMTP prenos. Ak si nie ste istí, ktorá časť reťazca zlyháva, oplatí sa to najprv poriadne oddiagnostikovať namiesto skúšania náhodných pluginov jeden po druhom.

Časté otázky

Skontrolujte priečinok spam na testovacej schránke a súčasne pošlite testovací e-mail cez SMTP logovací plugin alebo hostingový mail log. Ak e-mail nie je ani v spame, ani v logu, problém je pri samotnom odoslaní zo servera. Ak sa v logu objaví, ale neprišiel, ide skôr o problém s doručiteľnosťou (SPF, DKIM) než s odosielaním.

Nie. Väčšina webov použije SMTP pripojenie k existujúcej odosielacej službe alebo k hostingom poskytovanému mail serveru. Vlastný lokálny mail server dáva zmysel iba pri vyššom objeme pošty alebo špecifických technických požiadavkách.

SMTP plugin vyrieši spôsob odosielania, ale nezaručí doručenie. SPF a DKIM sú DNS záznamy na úrovni domény, ktoré prijímajúcemu serveru dokazujú, že e-mail je legitímny. Bez nich môže pošta aj napriek správnemu SMTP skončiť v spame alebo byť odmietnutá.

Doména môže mať iba jeden platný SPF záznam, takže musí obsahovať všetky služby naraz, ktoré v jej mene posielajú poštu, teda webhosting aj Google Workspace alebo inú firemnú poštu. Pridanie druhého samostatného SPF záznamu SPF nezosilní, iba ho zneplatní.

Áno. WooCommerce posiela transakčné e-maily cez rovnaký mechanizmus ako zvyšok WordPressu, takže pokazené odosielanie zvyčajne postihne súčasne potvrdenia objednávok, faktúry aj reset hesla, nie iba kontaktný formulár.

Šírenie DNS zmien zvyčajne trvá od niekoľkých minút do niekoľkých hodín v závislosti od TTL záznamu a poskytovateľa DNS. Pred ďalším testovaním sa oplatí počkať aspoň hodinu a zmenu si overiť priamo v DNS, nie iba podľa toho, či testovací e-mail už prišiel.

Nie, viacero samostatných SPF záznamov je podľa štandardu neplatných a niektoré servery ich z tohto dôvodu ignorujú úplne. Všetky odosielajúce služby musia byť zahrnuté v jedinom SPF zázname domény.

Ak sa problém neprejaví jednoznačne (napríklad e-maily chodia niektorým zákazníkom a iným nie), ak je na serveri viacero pluginov, ktoré môžu odosielanie ovplyvňovať súčasne, alebo ak firma nemá istotu v správu vlastných DNS záznamov, je bezpečnejšie nechať diagnostiku a nastavenie odbornej kontrole než experimentovať priamo na produkčnom webe.