E-mail z WordPressu
Modul 9: E-mail, dohledatelnost, GDPR, údržba a přestěhování · Doba čtení: 9 minut
Cíl lekce: Po této lekci dokážete zajistit, aby pošta z WordPressu (formuláře, objednávky, odkazy na zapomenuté heslo) spolehlivě docházela.
Klíčové pojmy: wp_mail, PHP mail(), odesílatel (From), Reply-To, SMTP, SMTP plugin, autentizovaná schránka, transakční e-mailová služba, SPF, DKIM, DMARC, zarovnání (alignment), MX jinde, testovací e-mail
WordPress odesílá více pošty, než si myslíte
Váš web odesílá poštu při: vyplnění kontaktního formuláře, objednávce (zákazníkovi i Vám), vytvoření nového uživatele, zapomenutém hesle, novém komentáři, automatické aktualizaci, kritické chybě (lekce 5.4). Pokud tato pošta nedorazí, často si toho všimnete až ve chvíli, kdy zavolá zákazník: „formulář jsem vyplnil už třikrát.“
Jak WordPress standardně odesílá poštu
WordPress odesílá vše přes funkci wp_mail. Ta standardně předá poštu PHP funkci mail(), která ji předá poštovnímu programu webového serveru. To funguje, ale má tři slabá místa:
- Odesílatel. Bez nastavení odesílá WordPress jako
wordpress@example.com. Pokud tato adresa neexistuje, nebo je odesílatel jiný než Vaše vlastní doména, příjemci poště nedůvěřují. - SPF, DKIM a DMARC. Přijímající poštovní servery kontrolují, zda server, který poštu doručuje, smí odesílat jménem Vaší domény (SPF), zda má pošta platný digitální podpis Vaší domény (DKIM) a jaká je politika Vaší domény, pokud něco z toho nesedí (DMARC). V kurzu DNS (lekce 4.3 až 4.5) se dočtete, jak to funguje. Pošta odeslaná přes webový server projde těmito kontrolami jen tehdy, pokud jsou podle toho nastaveny Vaše DNS a server.
- Pošta jinde. Pokud Váš e-mail neběží u Vašeho webhostingu, ale například u Microsoft 365 nebo Google Workspace (Vaše MX záznamy směřují tam), pak pošta odeslaná přes webový server často neodpovídá Vašemu SPF a DKIM. A některé webové servery se navíc pokoušejí doručit poštu na Vaši vlastní doménu lokálně místo přes MX, takže se nikdy nedostane do Vaší skutečné schránky.
Správné nastavení odesílatele a Reply-To
Častá chyba u kontaktních formulářů: jako odesílatele (From) použít adresu návštěvníka. To se zdá logické („pak můžu stisknout odpovědět“), ale Váš server nesmí odesílat poštu jménem @gmail.com nebo @hotmail.com. Tyto domény mají přísnou politiku DMARC, takže příjemce poštu odmítne nebo ji označí jako spam.
Správně je:
From: Website <website@example.com> (adresa Vaší vlastní domény)
Reply-To: bezoeker@example.net (adresa, kterou návštěvník zadal)
To: info@example.comDíky Reply-To se Vaše odpověď přesto dostane k návštěvníkovi. Téměř každý plugin pro formuláře má tato dvě pole oddělená.
SMTP: odesílání přes skutečnou e-mailovou schránku
Nejspolehlivějším řešením je nechat WordPress odesílat poštu přes SMTP: stejným způsobem, jakým odesílá Váš poštovní program, s uživatelským jménem a heslem skutečné schránky. To uděláte pomocí SMTP pluginu (například WP Mail SMTP, FluentSMTP nebo Post SMTP; existuje jich více). Plugin zachytí wp_mail a odešle poštu přes server, který zadáte:
| Volba | Pro koho |
|---|---|
Schránka u Vašeho vlastního hostingu (například website@example.com na poštovním serveru Vašeho hostingového balíčku) | Většina malých webů s poštou u stejného poskytovatele |
| Vaše pošta u Microsoft 365 nebo Google Workspace | Pokud je tam Vaše pošta; často přes speciální propojení v pluginu (OAuth) místo hesla, protože tyto služby stále více omezují běžné přihlašování přes SMTP |
| Transakční e-mailová služba (služba specializovaná na odesílání pošty z webů a aplikací) | E-shopy a weby, které odesílají hodně pošty |
Výhody: pošta prochází přes server, který už je pro Vaši doménu nastaven se SPF a DKIM, odesílatel je existující adresa a mnoho pluginů vede protokol (log), takže vidíte, co bylo odesláno a co se nezdařilo.
Dejte pozor na pár věcí:
- Pro web používejte samostatnou e-mailovou adresu (například
website@), nikoli Vaši vlastní schránku. Pokud dojde k napadení webu a heslo unikne, lze tuto adresu bez škody nahradit. - Heslo k SMTP je uloženo v databázi nebo v souboru wp-config.php. Kde je to možné, použijte aplikační heslo nebo propojení bez hesla.
- Protokol pošty obsahuje osobní údaje (kdo co odeslal). Nenechte ho neomezeně růst (lekce 9.3).
SPF, DKIM a DMARC pro Váš web
Ať odesílá jakýkoli server, Vaše DNS tomu musí odpovídat:
- SPF: SPF záznam Vaší domény musí uvádět server, který poštu doručuje. Pokud odesíláte přes poštovní server svého hostingu, většinou tam už je. Pokud odesíláte přes transakční službu, přidejte jejich
include:do stejného SPF záznamu (nikdy druhý SPF záznam, kurz DNS lekce 4.3). - DKIM: odesílající server musí poštu podepsat klíčem, který je uveden ve Vašem DNS (
<selector>._domainkey.example.com). U Vašeho hostingu i u transakčních služeb toto zapnete; služba Vám poskytne záznamy. - DMARC: záznam na
_dmarc.example.com. Začněte sp=nonea zpřísněte, jakmile vše sedí (kurz DNS lekce 4.5).
Pro DMARC musí být doména ve From zarovnaná (aligned) s doménou, která projde kontrolou SPF nebo DKIM. Proto je „From na Vaší vlastní doméně“ tak důležité.
Testování
- Mnoho SMTP pluginů má tlačítko Odeslat testovací e-mail. Odešlete ho na adresu u jiného poskytovatele (adresa Gmail nebo Outlook.com) a zkontrolujte, zda dorazí do doručené pošty.
- V této poště si prohlédněte hlavičky („Zobrazit originál“ nebo „Zobrazit zdroj“). Vyhledejte
spf=pass,dkim=passadmarc=pass. - Vyplňte svůj vlastní kontaktní formulář a zkontrolujte, zda pošta dorazí se správným Reply-To.
- Otestujte také odkaz na heslo a u e-shopu testovací objednávku.
Online nástroje jako mail-tester.com dávají skóre a vysvětlení; pomocí kontroly e-mailu u Vašeho hostingu (u WebOké se jmenuje takto) nebo pomocí internet.nl zkontrolujete stránku DNS.
V praxi: jak to vypadá v panelu
Jako příklad použijeme DirectAdmin a SMTP plugin. U jiných poskytovatelů hostingu a pluginů se pole jmenují podobně.
- V DirectAdminu vytvořte v sekci E-mailové účty schránku
website@example.comse silným heslem. - Vyhledejte u svého hostingu nastavení pro odchozí poštu (název serveru, port 465 nebo 587, šifrování).
- Vyplňte je do SMTP pluginu, s
website@example.comjako odesílatelem. Zapněte „vynutit odesílatele“, aby tuto adresu používaly i ostatní pluginy. - Zkontrolujte ve správě DNS, zda pro Vaši doménu existují SPF, DKIM a DMARC.
- Odešlete testovací e-mail a přečtěte si hlavičky.
Shrnutí
- WordPress odesílá přes wp_mail a standardně přes PHP mail(); zda pošta dorazí, určují odesílatel a DNS.
- Nastavte odesílatele (From) na adresu Vaší vlastní domény a adresu návštěvníka do Reply-To.
- SMTP plugin se samostatnou schránkou nebo transakční službou je nejspolehlivější, s protokolem (logem).
- SPF musí uvádět odesílající server (v jednom záznamu), DKIM musí být zapnuté, DMARC začít s p=none.
- Otestujte s adresou u jiného poskytovatele a přečtěte si spf, dkim a dmarc v hlavičkách.
Kvíz
Úkol
Úkol A9.1: Je Vaše doména připravená k odesílání pošty z webu? Zadejte svou doménu, adresu, kterou Váš web používá jako odesílatele, a server, přes který Váš web odesílá poštu (název SMTP serveru, nebo „webový server“, pokud jste nic nenastavili). Pokud ji znáte, zadejte také selektor DKIM. Program zkontroluje: adresa odesílatele patří k Vaší doméně, existuje přesně jeden SPF záznam a povoluje uvedený server, u selektoru existuje DKIM záznam (nebo oznámí, že bez selektoru nelze zkontrolovat), a existuje platný DMARC záznam.
Úkol D9.1: Čtení testovacího e-mailu. Odešlete ze svého webu testovací e-mail (testovací tlačítko Vašeho SMTP pluginu, nebo odkaz na heslo na testovací účet) na adresu u jiného poskytovatele. Otevřete hlavičky této pošty a zapište si výsledky u spf, dkim a dmarc a jaká doména se u každého uvádí. Poté vyplňte svůj vlastní kontaktní formulář a zkontrolujte: dorazí pošta a vede „odpovědět“ na adresu, kterou jste zadali do formuláře?
Úkol D9.1: Čtení testovacího e-mailu
Tento úkol provádíte sami; nikdo ho nekontroluje. Odškrtněte, co jste udělali, a označte úkol jako splněný.
Tři výsledky (pass, fail nebo none) s doménou, například "spf=pass smtp.mailfrom=vasedomena.cz". V případě selhání uveďte další krok (doplnění SPF, zapnutí DKIM, SMTP plugin).
Vaše zaškrtnutí a poznámky zůstávají pouze v tomto prohlížeči; nikam je neposíláme. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol splnili.
Další čtení
Tyto články popisují kroky v panelech WebOké; u jiných panelů fungují podobně.
- Odesílání pošty přes PHP nefunguje, MX záznamy směřují jinam
- Jak v PHP pomocí mail() nastavit správného odesílatele? SMTP
- Kontaktní formulář na Vašem webu: jak nechat odesílat údaje z polí e-mailem a předcházet spamu
- Jak funguje odesílání e-mailů (SMTP)
- Příručka k DirectAdmin 18.10: Nemohu odeslat e-mail
- Bezplatný kurz DNS 4.3: SPF: kdo smí odesílat poštu jménem Vaší domény?
- Bezplatný kurz DNS 4.4: DKIM: podpis pod Vaší poštou
- Bezplatný kurz DNS 4.5: DMARC: co mají příjemci dělat s podvodnou poštou
