7 modulis · 7.3
Laiškai iš Jūsų svetainės ir formų
7 modulis: Naujienlaiškiai ir laiškai iš Jūsų svetainės · Skaitymo trukmė: 11 min.
Mokymosi tikslas: Po šios pamokos galėsite sukonfigūruoti svetainės paštą (kontaktines formas, užsakymų patvirtinimus, WordPress pranešimus) taip, kad jis pasiektų adresatą, nesukeltų DMARC problemų ir nebūtų panaudotas Jūsų paketo piktnaudžiavimui.
Pagrindinės sąvokos: PHP mail(), SMTP su prisijungimu, envelope sender, From ir Reply-To, lankytojo adreso niekada nerašyti kaip From, SMTP papildinys, tranzakcinis paštas, formų šlamštas, captcha, honeypot, siuntimo limitas, vietinis pristatymas, kai MX įrašas rodo kitur
Jūsų svetainė taip pat yra pašto programa
Jūsų svetainė siunčia daugiau laiškų, nei manote. Kontaktinė forma Jums atsiunčia kiekvieną žinutę. Internetinė parduotuvė siunčia užsakymų patvirtinimus, sąskaitas ir pranešimus apie siuntas. WordPress siunčia laišką, kai gaunamas naujas komentaras, atliekamas atnaujinimas ar atkuriamas slaptažodis. Gavėjui tai yra tiesiog laiškas iš Jūsų domeno, ir jis tikrinamas taip pat griežtai, kaip ir laiškas iš Jūsų pašto dėžutės: SPF, DKIM, DMARC, reputacija.
Vis dėlto svetainės paštas dažniau sukelia problemų nei įprastas paštas. Dažniausiai taip nutinka dėl vieno iš trijų dalykų: siuntimo būdo, siuntėjo adreso arba formos piktnaudžiavimo.
1 būdas: PHP mail()
Paprasčiausias būdas svetainei siųsti laiškus yra PHP funkcija mail(). Svetainė tuomet laišką perduoda tiesiai žiniatinklio serverio pašto programai, be prisijungimo. Dažniausiai tai veikia, tačiau turi trūkumų:
- Envelope sender (Return-Path) dažnai tampa Jūsų paketo sistemine paskyra, pavyzdžiui,
gebruiker@server.hosting.example, o ne Jūsų adresu. Tuomet SPF tikrinamas pagal serverio domeną ir todėl nesuderintas (alignment) su Jūsų From domenu (pamoka 7.1). - Ar prie laiško bus pridėtas Jūsų domeno DKIM parašas, priklauso nuo serverio. Vienuose serveriuose taip, kituose ne.
- Jūs nieko nematote. Jei laiškas nepasiekia adresato arba gaunate klaidos pranešimą (bounce), jis nukeliauja į sisteminę paskyrą, kurios niekas nestebi.
- Nėra limito vienai formai. Jei forma piktnaudžiaujama, serveris Jūsų vardu siunčia laiškus tol, kol pasiekiamas Jūsų paketo limitas.
2 būdas: SMTP su prisijungimu (geriau)
Leiskite svetainei siųsti laiškus taip, kaip tai daro Jūsų pašto programa: prisijungiant prie išsiunčiamo pašto serverio su tikra pašto dėžute per 587 (STARTTLS) arba 465 (SSL/TLS) prievadą, naudojant pilną el. pašto adresą kaip vartotojo vardą (pamoka 1.4 ir 2.1). Tada:
- envelope sender yra Jūsų adresas, ir laiškas pasirašomas taip pat, kaip įprastas laiškas iš Jūsų domeno;
- klaidos pranešimai (bounce) patenka į pašto dėžutę, kurią galite perskaityti;
- išsiųstas laiškas, jei pageidaujate, atsiduria aplanke Išsiųsta;
- kiekvienai pašto dėžutei galite nustatyti atskirą siuntimo limitą.
WordPress tai atliekama naudojant SMTP papildinį. Jis pakeičia standartinę WordPress pašto funkciją siuntimu per SMTP. Įvedate tuos pačius duomenis kaip pašto programoje: serverį, prievadą, saugumo tipą, vartotojo vardą ir slaptažodį. Tam geriausia sukurti atskirą pašto dėžutę, pavyzdžiui, website@example.com. Jei slaptažodis kada nors bus pavogtas, Jūsų asmeninė pašto dėžutė lieka saugi, ir iš karto matote, kuris laiškas atkeliavo iš svetainės.
Jei kuriate savo PHP svetainę, yra bibliotekų, kurios siunčia laiškus per SMTP, pavyzdžiui, PHPMailer. Slaptažodį laikykite konfigūracijos faile už žiniatinklio aplanko ribų, o ne puslapio kode.
WebOké SMTP duomenys nurodyti DirectAdmin instrukcijoje 8.1, kartu su Jūsų paketo serverio pavadinimu; kitų paslaugų teikėjų atveju jie nurodomi instrukcijoje arba pasveikinimo laiške, ir veikia panašiai.
Daug tranzakcinio pašto? Naudokite paslaugą
Jei kasdien siunčiate šimtus užsakymų patvirtinimų, verta apsvarstyti tranzakcinio pašto paslaugą: siuntimo paslaugą automatiniams laiškams. Ji turi gerą reputaciją ir parodo, kas nutiko su kiekvienu laišku. Domeną susiejate taip pat, kaip su naujienlaiškių paslauga (DKIM per CNAME, pamoka 7.1). Laikykite tranzakcinį paštą ir naujienlaiškius atskirai: nepavykusi kampanija neturi paveikti Jūsų užsakymų patvirtinimo laiškų.
Auksinė taisyklė: lankytojo adresas niekada nėra siuntėjas
Kontaktinėje formoje gali kilti pagunda laišką siųsti "iš" lankytojo vardo. Tuomet savo pašto programoje galite iš karto spausti Atsakyti. Tai atrodytų taip:
From: Petras <petras@example.net>
To: info@example.com
Subject: Vraag via het contactformulierTačiau Jūsų serveris visiškai neturi teisės siųsti laiškų example.net vardu. Tarkime, kad example.net turi DMARC politiką p=reject. Gaunantysis serveris (Jūsų paties, arba Gmail, jei persiunčiate laiškus) mato laišką su From example.net, kuris neatitinka example.net SPF ar DKIM, ir atmeta jį. Daug didelių pašto domenų turi griežtą politiką: 2026 m. lapkričio 8 d. atliktas patikrinimas parodė, kad, be kita ko, yahoo.com, aol.com, ziggo.nl ir kpnmail.nl turėjo DMARC politiką p=reject, o icloud.com, gmx.de ir web.de, turėjo p=quarantine. Lankytojas su tokiu adresu užpildo Jūsų formą, o Jūs laiško niekada negaunate arba jis atsiduria šlamšto aplanke. Domenai su p=none (kaip tuo metu gmail.com ir hotmail.com) savo politiką gali bet kada sugriežtinti, o Google savo gairėse aiškiai nurodo, kad negalima imituoti Gmail adresų lauke From. Todėl niekada nesitikėkite, kad viskas vyks sklandžiai.
Teisingas būdas:
From: Website example.com <website@example.com>
Reply-To: Petras <petras@example.net>
To: info@example.com
Subject: Vraag via het contactformulierSiuntėjas yra Jūsų paties adresas, taigi SPF, DKIM ir DMARC atitinka reikalavimus. Lankytojo adresas nurodytas lauke Reply-To. Spustelėjus Atsakyti, atsakymas keliaus Petrui. Daugumoje formų papildinių tai rasite pašto nustatymuose: ties Siuntėjas (From) nurodykite nuolatinį Jūsų paties domeno adresą, o lauke Reply-To, kuriame lankytojas įveda savo adresą.
Formų apsauga nuo piktnaudžiavimo
Nesaugomą formą anksčiau ar vėliau suras botai. Geriausiu atveju gausite šlamšto. Blogiausiu atveju ja pasinaudos šlamšto siuntimui kitiems: jei Jūsų forma siunčia patvirtinimą "adresui, kurį įveda lankytojas", botas gali ten įvesti bet kurį adresą pasaulyje, su savo tekstu žinutėje. Tuomet Jūsų domenas siunčia šlamštą, su visomis pasekmėmis Jūsų reputacijai (pamoka 5.2).
Apsauga sluoksniais:
- Captcha arba nematomas patikrinimas (pavyzdžiui, reCAPTCHA ar Turnstile) sustabdo daugumą botų.
- Honeypot: paslėptas laukas, kurio žmonės nemato, bet botai jį užpildo. Jei jis užpildytas, žinutė nesiunčiama.
- Jokio laisvo teksto patvirtinime lankytojui, arba apskritai jokio patvirtinimo į nurodytą adresą. Paprasto pranešimo "Ačiū, gavome Jūsų žinutę" puslapyje pakanka.
- Siuntimo limitas kiekvienai pašto dėžutei svetainės pašto dėžutei, mažesnis už viso paketo limitą.
- Programinės įrangos atnaujinimas. Pasenę papildiniai yra žinomas piktnaudžiavimo kelias.
Pastebėjote, kad Jūsų paketas staiga išsiunčia daug laiškų, arba gaunate pranešimą, kad pasiektas dienos limitas, nors patys siunčiate mažai? Tuomet nedelsdami pakeiskite slaptažodžius ir išsiaiškinkite, kuri forma ar scenarijus siunčia laiškus (pamoka 3.4).
Paštas kitur, svetainė čia
Dažna spąstai: Jūsų svetainė yra pas vieną teikėją, Jūsų paštas pas kitą (pavyzdžiui, Microsoft 365 arba Google Workspace). Jūsų MX įrašas rodo į tą kitą teikėją. Tačiau žiniatinklio serveris vis dar mano, kad pats tvarko Jūsų domeno paštą, nes domenas taip pat yra jo paties pakete. Laišką iš formos adresu info@example.com jis pristato vietoje, pašto dėžutėje žiniatinklio serveryje, kurios niekas nestebi, arba grąžina klaidą, pavyzdžiui, 550 ... mailbox unavailable.
Sprendimas yra žiniatinklio serverio valdymo skydelyje nurodyti, kad paštas tvarkomas kitur. DirectAdmin, WebOké sistemoje, tai yra varnelė "Naudoti šį serverį mano el. laiškams tvarkyti" prie MX įrašai (MX Records) (ją reikia išjungti). Kituose valdymo skydeliuose yra panašūs nustatymai, pavyzdžiui, "el. pašto maršrutizavimas: išorinis" cPanel sistemoje. Dar geriau: leiskite svetainei siųsti laiškus per SMTP, naudojant pašto dėžutę pas teikėją, kur iš tikrųjų yra Jūsų paštas.
Santrauka
- Svetainės paštas tikrinamas taip pat griežtai, kaip ir įprastas paštas. Leiskite svetainei siųsti laiškus per SMTP su prisijungimu, o ne per
mail(). - Naudokite atskirą pašto dėžutę svetainei, su atskiru siuntimo limitu.
- Lankytojo adresas priklauso lauke Reply-To, niekada From. Kitaip DMARC patikra nepavyks, o domenai su
p=reject(pavyzdžiui, yahoo.com, ziggo.nl, kpnmail.nl) laišką atmes. - Apsaugokite formas captcha, honeypot priemonėmis ir nesiųskite laisvo teksto patvirtinimų į nurodytus adresus.
- Jei Jūsų paštas yra pas kitą teikėją, išjunkite vietinį pristatymą žiniatinklio serveryje arba siųskite laiškus per SMTP pas tą teikėją.
Testas
Užduotis
Užduotis O7.3: Svetainės pašto peržiūra. Užpildykite savo svetainės formą nurodydami Gmail arba Outlook.com adresą kaip siuntėją ir peržiūrėkite Jus pasiekusio laiško antraštes. Atsakykite į kontrolinio sąrašo klausimus: koks adresas nurodytas lauke From, ar lankytojo adresas yra lauke Reply-To, ką rodo spf=, dkim= ir dmarc= ties Authentication-Results, ar Jūsų svetainė siunčia per SMTP ar per mail(), ir ar forma turi captcha arba honeypot? Jei neturite savo svetainės, atsakykite į klausimus pagal šioje pamokoje pateiktą pavyzdį. Vėliau gausite pavyzdinį atsakymą.
Užduotis O7.3: Svetainės pašto peržiūra
Šią užduotį atliekate patys; niekas jos netikrina. Pažymėkite, ką atlikote, ir pažymėkite užduotį kaip atliktą.
From = pastovus savas adresas, Reply-To = lankytojas, siuntimas per SMTP su prisijungimu, captcha arba honeypot, ir jokio patvirtinimo su laisvu tekstu (tuo piktnaudžiauja spameriai). Jei lankytojo adresas yra lauke From, DMARC patikra nepavyks, kai tik lankytojo domenas turės nustatytą politiką (pamoka 7.3).
Jūsų pažymėti varneliai ir pastabos lieka tik šioje naršyklėje; niekur jų nesiunčiame. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotį atlikote.
Skaitykite daugiau
Šiuose straipsniuose aprašyti veiksmai galioja WebOké valdymo skydeliams; pas kitus teikėjus veikimo principas panašus.
- Kontaktų forma Jūsų svetainėje: kaip laukų duomenis siųsti el. paštu ir išvengti šlamšto
- Kaip PHP su mail() funkcija galiu nustatyti teisingą siuntėją? SMTP
- Nepavyksta siųsti laiškų per PHP, MX įrašai nukreipti kitur
- Pašto siuntimo riba
- DirectAdmin vadovas 8.1: Visi nustatymai vienoje vietoje: serveriai, prievadai ir saugumas
- DirectAdmin vadovas 5.10: El. paštas per Microsoft 365 arba Google Workspace, svetainė pas WebOké
- Patikimai siųskite el. laiškus iš WordPress ir WooCommerce per SMTP
- Nemokamas WordPress kursas 9.1: El. paštas iš WordPress
