7 modulis · 7.3
Paštas iš Jūsų svetainės ir formų
7 modulis: Naujienlaiškiai ir paštas iš Jūsų svetainės · Skaitymo trukmė: 11 min.
Mokymosi tikslas: Po šios pamokos galėsite sukonfigūruoti svetainės paštą (kontaktų formas, užsakymų patvirtinimus, WordPress pranešimus) taip, kad jis pasiektų adresatą, nesukeltų DMARC problemų ir kad Jūsų paketas nebūtų panaudotas piktnaudžiavimui.
Pagrindinės sąvokos: PHP mail(), SMTP su prisijungimu, envelope sender, From ir Reply-To skirtumas, lankytojo adresas niekada kaip From, SMTP papildinys, tranzakcinis paštas, formų šlamštas, captcha, honeypot, siuntimo limitas, vietinis pristatymas, kai MX nurodo į kitą vietą
Jūsų svetainė taip pat yra pašto programa
Jūsų svetainė siunčia daugiau pašto, nei galite pagalvoti. Kontaktų forma siunčia Jums kiekvieną žinutę. Internetinė parduotuvė siunčia užsakymų patvirtinimus, sąskaitas ir pranešimus apie siuntimą. WordPress siunčia laišką gavus naują komentarą, atnaujinus sistemą ar atkuriant slaptažodį. Gavėjui tai yra tiesiog paštas iš Jūsų domeno, ir jis tikrinamas taip pat griežtai, kaip ir paštas iš Jūsų pašto dėžutės: SPF, DKIM, DMARC, reputacija.
Tačiau svetainės paštas dažniau sukelia problemų nei įprastas paštas. Paprastai priežastis yra viena iš trijų: siuntimo būdas, siuntėjo adresas arba formos piktnaudžiavimas.
1 būdas: PHP mail()
Paprasčiausias būdas svetainei siųsti paštą yra PHP funkcija mail(). Svetainė tuomet perduoda laišką tiesiogiai žiniatinklio serverio pašto programai, be prisijungimo. Tai dažniausiai 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. SPF tuomet tikrinamas pagal serverio domeną, taigi jis nesuderintas (aligned) su Jūsų From domenu (7.1 pamoka). - Ar prie laiško pridedamas DKIM parašas iš Jūsų domeno, 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 netikrina.
- Nėra limito vienai formai. Jei forma piktnaudžiaujama, serveris Jūsų vardu siunčia laiškus, kol pasiekiamas Jūsų paketo limitas.
2 būdas: SMTP su prisijungimu (geriau)
Leiskite savo svetainei siųsti taip, kaip tai daro Jūsų pašto programa: prisijungti prie išsiunčiamo pašto serverio naudojant tikrą pašto dėžutę per 587 prievadą (STARTTLS) arba 465 prievadą (SSL/TLS), naudojant pilną el. pašto adresą kaip naudotojo vardą (1.4 ir 2.1 pamokos). Tuomet:
- envelope sender yra Jūsų adresas, o laiškas pasirašomas taip pat, kaip įprastas paštas iš Jūsų domeno;
- klaidos pranešimai (bounce) atsiduria pašto dėžutėje, kurią galite skaityti;
- jei norite, išsiųstas laiškas 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ą, saugumą, naudotojo vardą ir slaptažodį. Tam geriausia sukurti atskirą pašto dėžutę, pavyzdžiui, website@example.com. Jei slaptažodis kada nors būtų pavogtas, Jūsų asmeninė pašto dėžutė lieka saugi, ir iš karto matote, kuris laiškas atkeliavo iš svetainės.
Jei turite savo PHP svetainę, yra bibliotekų, kurios siunčia per SMTP, pavyzdžiui, PHPMailer. Įrašykite slaptažodį konfigūracijos faile už žiniatinklio aplanko ribų, o ne puslapio kode.
WebOké atveju SMTP duomenys nurodyti DirectAdmin instrukcijoje 8.1, kartu su Jūsų paketo serverio pavadinimu; pas kitus paslaugų teikėjus jie nurodyti instrukcijoje arba pasveikinimo laiške, o veikimo principas yra toks pat.
Daug tranzakcinio pašto? Naudokite paslaugą
Jei kasdien siunčiate šimtus užsakymų patvirtinimų, verta naudoti tranzakcinio pašto paslaugą: automatinio pašto siuntimo tarnybą. Ji turi gerą reputaciją ir parodo, kas atsitiko su kiekvienu laišku. Domeną susiejate taip pat, kaip ir su naujienlaiškių paslauga (DKIM per CNAME, 7.1 pamoka). Tranzakcinį paštą ir naujienlaiškius laikykite atskirai: nepavykusi kampanija neturi paveikti Jūsų užsakymų patvirtinimo laiškų.
Auksinė taisyklė: lankytojo adresas niekada nėra siuntėjas
Kontaktų formoje gali kilti pagunda leisti laišką siųsti „nuo“ lankytojo. Tuomet pašto programoje galite iš karto spausti Atsakyti. Tai atrodo taip:
From: Pieter <pieter@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ų arba Gmail, jei persiunčiate paštą) pamato laišką, kurio From yra example.net, tačiau jis neatitinka example.net SPF ar DKIM, ir jį atmeta. Daug didelių pašto domenų taiko griežtą politiką: patikrinus 2026 m. lapkričio 8 d., tarp kitų, 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 niekada negaunate žinutės arba ji 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ų From lauke. Taigi niekada negalvokite, kad viskas bus gerai.
Teisingas būdas:
From: Website example.com <website@example.com>
Reply-To: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulierSiuntėjas yra Jūsų paties adresas, taigi SPF, DKIM ir DMARC atitinka. Lankytojo adresas nurodomas lauke Reply-To. Paspaudus Atsakyti, atsakymas keliauja Pieter. Daugumoje formų papildinių tai rasite pašto nustatymuose: lauke Siuntėjas (From) nurodykite pastovų savo domeno adresą, o lauke Reply-To, kuriame lankytojas įveda savo adresą.
Formų apsauga nuo piktnaudžiavimo
Anksčiau ar vėliau nesaugomą formą suras botai. Geriausiu atveju gausite šlamšto. Blogiausiu atveju jie ją panaudos šlamšto siuntimui kitiems: jei Jūsų forma siunčia patvirtinimą „adresu, kurį įvedė lankytojas“, botas gali ten įrašyti bet kurį pasaulio adresą, kartu su savo tekstu žinutėje. Tuomet Jūsų domenas siunčia šlamštą, su visomis pasekmėmis Jūsų reputacijai (5.2 pamoka).
Sluoksninė apsauga:
- Captcha arba nematomas patikrinimas (pavyzdžiui, reCAPTCHA arba Turnstile) sustabdo daugumą botų.
- Honeypot: paslėptas laukas, kurio žmonės nemato, o botai jį užpildo. Jei jis užpildytas, žinutė nesiunčiama.
- Jokio laisvo teksto patvirtinime lankytojui arba iš viso jokio patvirtinimo nurodytu adresu. Paprasto pranešimo puslapyje „Dėkojame, gavome Jūsų žinutę“ pakanka.
- Siuntimo limitas kiekvienai pašto dėžutei svetainės pašto dėžutei, mažesnis už Jūsų paketo limitą.
- Programinės įrangos atnaujinimas. Seni papildiniai yra žinomas piktnaudžiavimo šaltinis.
Pastebėjote, kad Jūsų paketas staiga siunčia daug pašto, arba gaunate pranešimą, kad pasiektas dienos limitas, nors patys siunčiate mažai laiškų? Nedelsdami pakeiskite slaptažodžius ir išsiaiškinkite, kuri forma ar skriptas siunčia paštą (3.4 pamoka).
Paštas yra kitur, svetainė čia
Dažna spąstų situacija: Jūsų svetainė yra pas vieną paslaugų teikėją, o paštas pas kitą (pavyzdžiui, Microsoft 365 arba Google Workspace). Jūsų MX nurodo į tą kitą paslaugų 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 tuomet pristato vietoje, į pašto dėžutę žiniatinklio serveryje, kurios niekas netikrina, arba grąžina klaidą, pavyzdžiui, 550 ... mailbox unavailable.
Sprendimas yra žiniatinklio serverio valdymo skydelyje nurodyti, kad paštas tvarkomas kitur. DirectAdmin, naudojamame WebOké, tai žymimasis langelis „Naudoti šį serverį mano el. laiškams tvarkyti“ ties MX įrašai (jį reikia išjungti). Kituose valdymo skydeliuose yra panašūs nustatymai, pavyzdžiui, „el. pašto maršrutas: išorinis“ cPanel. Dar geriau: leiskite svetainei siųsti laiškus per SMTP, naudojant pašto dėžutę pas paslaugų teikėją, kuriame 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 paštą per SMTP su prisijungimu, o ne per
mail(). - Svetainei naudokite atskirą pašto dėžutę su atskiru siuntimo limitu.
- Lankytojo adresas priklauso Reply-To laukui, niekada ne From. Priešingu atveju DMARC patikra nepavyksta, o domenuose su
p=reject(pavyzdžiui, yahoo.com, ziggo.nl, kpnmail.nl) laiškas atmetamas. - Apsaugokite formas naudodami captcha, honeypot ir nesiųsdami laisvo teksto patvirtinimų nurodytais adresais.
- Jei Jūsų paštas yra pas kitą paslaugų teikėją, išjunkite vietinį pristatymą žiniatinklio serveryje arba siųskite paštą per SMTP pas tą paslaugų teikėją.
Testas
Užduotis
Užduotis O7.3: Svetainės pašto peržiūra. Užpildykite formą savo svetainėje, kaip siuntėjo adresą nurodydami Gmail arba Outlook.com adresą, ir peržiūrėkite Jus pasiekusio laiško kopregeles. Atsakykite į kontrolinio sąrašo klausimus: kokiu adresu nurodyta From, ar lankytojo adresas yra lauke Reply-To, ką rodo spf=, dkim= ir dmarc= ties Authentication-Results, ar Jūsų svetainė siunčia paštą per SMTP ar per mail(), ir ar forma turi captcha arba honeypot? Jei neturite savo svetainės, atsakykite į klausimus pagal šios pamokos pavyzdį. Po to 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 nuosavas adresas, Reply-To = lankytojas, siuntimas per SMTP su prisijungimu, captcha arba honeypot, ir jokio patvirtinimo su laisvu tekstu (tuo piktnaudžiauja spameriai). Jei lauke From nurodytas lankytojo adresas, DMARC patikra nepavyksta, kai tik lankytojo domenas turi nustatytą politiką (3 pamoka, 7 modulis).
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 nurodyti veiksmai galioja WebOké valdymo skydeliams; pas kitus paslaugų teikėjus veikimo principas yra panašus.
- Kontaktinė forma Jūsų interneto svetainėje: laukų siuntimas el. paštu ir apsauga nuo šlamšto
- Kaip PHP funkcija mail() gauti teisingą siuntėją? SMTP
- Nepavyksta siųsti laiškų per PHP, MX įrašai nukreipti kitur
- Pašto siuntimo riba
- Pasiektas dienos el. laiškų limitas
- 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é
