Modul 7 · 7.3
Slovenčina
Mail z vašej webovej stránky a formulárov
Modul 7: Newslettery a e-mail z vašej webovej stránky · Čas čítania: 11 minút
Cieľ lekcie: Po tejto lekcii budete vedieť nastaviť poštu z webovej stránky (kontaktné formuláre, potvrdenia objednávok, upozornenia WordPress) tak, aby bola doručená, nespôsobovala problémy s DMARC a nezneužívala váš balík.
Kľúčové pojmy: PHP mail(), SMTP s prihlásením, envelope odosielateľ, From vs. Reply-To, adresa návštevníka nikdy ako From, SMTP doplnok, transakčná pošta, spam cez formuláre, captcha, honeypot, limit odosielania, lokálne doručenie keď MX ukazuje inam
Vaša webová stránka je tiež mailový program
Vaša webová stránka odosiela viac pošty, než si myslíte. Kontaktný formulár vám posiela e-mail pri každej správe. Internetový obchod odosiela potvrdenia objednávok, faktúry a správy o odoslaní. WordPress posiela e-mail pri novom komentári, aktualizácii alebo obnovení hesla. Pre príjemcu je to jednoducho pošta z vašej domény a kontroluje sa rovnako prísne ako pošta z vašej schránky: SPF, DKIM, DMARC, reputácia.
Napriek tomu sa pošta z webovej stránky kazí častejšie než bežná pošta. Zvyčajne je to jedna z troch vecí: spôsob odosielania, adresa odosielateľa alebo zneužitie formulára.
Spôsob 1: PHP mail()
Najjednoduchší spôsob, ako môže webová stránka odosielať poštu, je funkcia PHP mail(). Webová stránka vtedy odovzdá poštu priamo mailovému programu webového servera, bez prihlásenia. Väčšinou to funguje, ale má to nevýhody:
- Envelope odosielateľ (Return-Path) sa často stáva systémovým účtom vášho balíka, napríklad
gebruiker@server.hosting.example, a nie vašou adresou. SPF sa potom kontroluje pre doménu servera, a teda nie je zarovnané s vašou doménou vo From (lekcia 7.1). - Či sa pripojí DKIM podpis vašej domény, závisí od servera. Na niektorých serveroch áno, na iných nie.
- Nič neuvidíte späť. Ak pošta nedorazí alebo dostanete bounce, ide na systémový účet, kam sa nikto nepozerá.
- Žiadny limit na formulár. Ak dôjde k zneužitiu formulára, server bude vo vašom mene odosielať poštu, kým sa nedosiahne limit vášho balíka.
Spôsob 2: SMTP s prihlásením (lepšie)
Nechajte vašu webovú stránku odosielať tak, ako to robí váš mailový program: prihlásiť sa na odchádzajúci mailový server so skutočnou schránkou, cez port 587 (STARTTLS) alebo 465 (SSL/TLS), s plnou e-mailovou adresou ako používateľským menom (lekcie 1.4 a 2.1). Potom:
- envelope odosielateľ je vaša adresa a pošta sa podpisuje rovnako ako bežná pošta z vašej domény;
- bounce správy prídu do schránky, ktorú si môžete prečítať;
- odoslaná pošta sa, ak chcete, uloží do priečinka Odoslané;
- môžete nastaviť vlastný limit odosielania pre každú schránku.
Vo WordPress to urobíte pomocou SMTP doplnku. Ten nahrádza štandardnú mailovú funkciu WordPress odosielaním cez SMTP. Vyplníte rovnaké údaje ako v mailovom programe: server, port, zabezpečenie, používateľské meno a heslo. Na tento účel si radšej vytvorte samostatnú schránku, napríklad website@example.com. Ak niekedy dôjde k úniku hesla, vaša vlastná schránka zostane v bezpečí a na prvý pohľad vidíte, ktorá pošta pochádza z webovej stránky.
Pre vlastnú PHP stránku existujú knižnice, ktoré odosielajú poštu cez SMTP, napríklad PHPMailer. Heslo uložte do konfiguračného súboru mimo webového priečinka, nie priamo do kódu stránky.
Vo WebOké sú údaje pre SMTP uvedené v návode pre DirectAdmin 8.1, s názvom servera vášho balíka; u iných poskytovateľov ich nájdete v návode alebo uvítacom e-maile a funguje to rovnakým spôsobom.
Veľa transakčnej pošty? Použite službu
Ak odosielate stovky potvrdení objednávok denne, oplatí sa transakčná služba: odosielacia služba pre automatickú poštu. Má dobrú reputáciu a zobrazuje, čo sa stalo s každou správou. Doménu pripojíte rovnako ako pri službe na newslettre (DKIM cez CNAME, lekcia 7.1). Transakčnú poštu a newslettre držte oddelene: neúspešná kampaň nesmie ovplyvniť potvrdzovaciu poštu vašich objednávok.
Zlaté pravidlo: adresa návštevníka nikdy nie je odosielateľ
Pri kontaktnom formulári je lákavé nechať poštu odosielať "v mene" návštevníka. Potom môžete vo svojom mailovom programe hneď kliknúť na Odpovedať. Vyzerá to takto:
From: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulierAle váš server vôbec nesmie posielať poštu v mene example.net. Predstavte si, že example.net má politiku DMARC p=reject. Prijímajúci server (váš vlastný, alebo server Gmail, ak poštu presmerúvate) uvidí poštu s From example.net, ktorá neprešla cez SPF ani DKIM domény example.net, a odmietne ju. Mnohé veľké mailové domény majú prísnu politiku: pri kontrole 8. novembra 2026 mali okrem iného yahoo.com, aol.com, ziggo.nl a kpnmail.nl politiku DMARC p=reject, a icloud.com, gmx.de a web.de politiku p=quarantine. Návštevník s takouto adresou vyplní váš formulár a vy jeho správu nikdy nedostanete, alebo skončí vo vašom priečinku spam. Domény s p=none (ako v tom čase gmail.com a hotmail.com) môžu svoju politiku kedykoľvek sprísniť, a Google vo svojich pokynoch výslovne uvádza, že nesmiete napodobňovať Gmail adresy v From. Nikdy sa teda nespoliehajte na to, že to dopadne dobre.
Správny spôsob:
From: Website example.com <website@example.com>
Reply-To: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulierOdosielateľom je vaša vlastná adresa, takže SPF, DKIM a DMARC súhlasia. Adresa návštevníka je uvedená v poli Reply-To. Keď kliknete na Odpovedať, odpoveď pôjde Pieterovi. Vo väčšine doplnkov na formuláre to nájdete v nastaveniach pošty: pri Odosielateľ (From) nastavte pevnú adresu vašej vlastnej domény, a pri Reply-To pole, do ktorého návštevník vpíše svoju adresu.
Ochrana formulárov pred zneužitím
Formulár bez ochrany skôr či neskôr nájdu boty. V najlepšom prípade dostanete spam vy. V najhoršom prípade ho zneužijú na posielanie spamu iným: ak váš formulár posiela potvrdenie na "adresu, ktorú návštevník vyplní", bot tam môže vyplniť akúkoľvek adresu na svete, s vlastným textom v správe. Vaša doména potom odosiela spam, so všetkými dôsledkami pre vašu reputáciu (lekcia 5.2).
Ochrana vo vrstvách:
- Captcha alebo neviditeľná kontrola (ako reCAPTCHA alebo Turnstile) zastaví väčšinu botov.
- Honeypot: skryté pole, ktoré ľudia nevidia, ale boty ho vyplnia. Ak je vyplnené, správa sa neodošle.
- Žiadny voľný text v potvrdení pre návštevníka, alebo žiadne potvrdenie na zadanú adresu vôbec. Jednoduché hlásenie "Ďakujeme, vašu správu sme prijali" na stránke stačí.
- Limit odosielania pre schránku schránky webovej stránky, nižší než limit vášho balíka.
- Aktualizácia softvéru. Staré doplnky sú známou cestou na zneužitie.
Všimli ste si, že váš balík zrazu odosiela veľa pošty, alebo dostanete upozornenie, že bol dosiahnutý denný limit, hoci sami posielate málo pošty? Okamžite zmeňte heslá a zistite, ktorý formulár alebo skript poštu odosiela (lekcia 3.4).
Pošta je inde, webová stránka tu
Častá nástraha: vaša webová stránka je u jedného poskytovateľa, vaša pošta u iného (napríklad Microsoft 365 alebo Google Workspace). Váš MX ukazuje na toho druhého poskytovateľa. Ale webový server si stále myslí, že sám spracúva poštu pre vašu doménu, pretože doména je aj na jeho vlastnom balíku. Poštu z formulára na info@example.com potom doručí lokálne, do schránky na webovom serveri, kam sa nikto nepozerá, alebo vráti chybu typu 550 ... mailbox unavailable.
Riešením je v paneli webového servera nastaviť, že poštu spracúva niekto iný. V DirectAdmin pri WebOké je to zaškrtávacie políčko „Použiť tento server na spracovanie mojich e-mailov“ pri MX záznamoch (vypnúť). Iné panely majú podobné nastavenia, napríklad „smerovanie e-mailu: externé“ v cPanel. Ešte lepšie: nechajte webovú stránku odosielať poštu cez SMTP so schránkou u poskytovateľa, kde sa skutočne nachádza vaša pošta.
Zhrnutie
- Pošta z webovej stránky sa kontroluje rovnako prísne ako bežná pošta. Nechajte stránku odosielať cez SMTP s prihlásením, nie cez
mail(). - Použite samostatnú schránku pre webovú stránku, s vlastným limitom odosielania.
- Adresa návštevníka patrí do Reply-To, nikdy do From. Inak zlyhá DMARC a pri doménach s
p=reject(ako yahoo.com, ziggo.nl, kpnmail.nl) bude pošta odmietnutá. - Chráňte formuláre pomocou captcha, honeypotu a bez voľných potvrdení na zadané adresy.
- Ak je vaša pošta u iného poskytovateľa, vypnite lokálne doručovanie na webovom serveri alebo odosielajte cez SMTP u tohto poskytovateľa.
Kvíz
Úloha
Úloha O7.3: Preverenie pošty z webovej stránky. Vyplňte formulár na vašej vlastnej webovej stránke s adresou Gmail alebo Outlook.com ako odosielateľom a pozrite sa na hlavičky správy, ktorá vám príde. Odpovedzte na kontrolný zoznam: ktorá adresa je uvedená vo From, je adresa návštevníka v Reply-To, čo hovoria spf=, dkim= a dmarc= pri Authentication-Results, odosiela vaša stránka poštu cez SMTP alebo cez mail(), a má formulár captcha alebo honeypot? Ak nemáte vlastnú webovú stránku, odpovedzte na otázky pre príklad v tejto lekcii. Následne dostanete vzorovú odpoveď.
Úloha O7.3: Preverenie pošty z webovej stránky
Túto úlohu vykonávate sami, nikto ju nekontroluje. Odškrtnite, čo ste urobili, a označte úlohu ako splnenú.
From = pevná vlastná adresa, Reply-To = návštevník, odosielanie cez SMTP s prihlásením, captcha alebo honeypot a žiadne potvrdenie s voľným textom (to zneužívajú spamери). Ak je v poli From adresa návštevníka, DMARC zlyhá hneď, ako má doména návštevníka nastavenú politiku (lekcia 7.3).
Vaše zaškrtnutia a poznámky zostávajú iba v tomto prehliadači, nikam ich neposielame. Po prihlásení si v sekcii Moje kurzy uchovávame iba to, že ste úlohu splnili.
Ďalšie čítanie
Kroky v týchto článkoch platia pre panely WebOké; u iných poskytovateľov to funguje podobne.
- Kontaktný formulár na vašom webe: ako posielať polia e-mailom a predchádzať spamu
- Ako v PHP s funkciou mail() dosiahnuť správneho odosielateľa? SMTP
- Odosielanie e-mailov cez PHP nefunguje, záznamy MX smerujú inam
- Limit pre odosielanie pošty
- Dosiahnutý denný limit e-mailov
- Návod na DirectAdmin 8.1: Všetky nastavenia na jednom mieste: servery, porty a zabezpečenie
- Návod na DirectAdmin 5.10: E-mail pri Microsoft 365 alebo Google Workspace, webová stránka u WebOké
