9 modulis · 9.1
El. paštas iš WordPress
9 modulis: El. paštas, matomumas paieškoje, BDAR, priežiūra ir perkėlimas · Skaitymo trukmė: 9 min.
Mokymosi tikslas: Po šios pamokos galėsite užtikrinti, kad el. laiškai iš WordPress (formos, užsakymai, slaptažodžių nuorodos) patikimai pasiektų gavėją.
Pagrindinės sąvokos: wp_mail, PHP mail(), siuntėjas (From), Reply-To, SMTP, SMTP įskiepis, autentifikuota pašto dėžutė, tranzakcinio pašto paslauga, SPF, DKIM, DMARC, suderinimas (alignment), MX kitur, testinis laiškas
WordPress siunčia daugiau laiškų, nei manote
Jūsų svetainė siunčia laiškus esant šiems atvejams: užpildyta kontaktų forma, užsakymas (klientui ir Jums), naujas naudotojas, pamirštas slaptažodis, naujas komentaras, automatinis atnaujinimas, kritinė klaida (žr. 5.4 pamoką). Jei toks laiškas nepasiekia gavėjo, tai dažnai pastebite tik tada, kai paskambina klientas: „aš tris kartus užpildžiau formą“.
Kaip WordPress siunčia laiškus pagal numatytuosius nustatymus
WordPress visus laiškus siunčia per funkciją wp_mail. Pagal numatytuosius nustatymus ji perduoda laišką PHP funkcijai mail(), kuri jį perduoda žiniatinklio serverio pašto programai. Tai veikia, tačiau turi tris silpnąsias vietas:
- Siuntėjas. Be nustatymo WordPress siunčia kaip
wordpress@example.com. Jei toks adresas neegzistuoja arba siuntėjas skiriasi nuo Jūsų paties domeno, gavėjai juo nepasitiki. - SPF, DKIM ir DMARC. Gaunantys pašto serveriai patikrina, ar laišką pristatantis serveris turi teisę siųsti laiškus Jūsų domeno vardu (SPF), ar laiškas turi galiojantį Jūsų domeno skaitmeninį parašą (DKIM) ir kokia yra Jūsų domeno politika, jei kas nors iš to neatitinka (DMARC). DNS kurse (4.3 iki 4.5 pamokose) galite paskaityti, kaip tai veikia. Laiškas, siunčiamas per žiniatinklio serverį, šias patikras praeina tik tuo atveju, jei DNS ir serveris yra tam tinkamai sutvarkyti.
- Paštas kitur. Jei Jūsų el. paštas tvarkomas ne pas talpinimo paslaugų teikėją, o, pavyzdžiui, Microsoft 365 ar Google Workspace (Jūsų MX įrašai nukreipia ten), tai laiškas, siunčiamas per žiniatinklio serverį, dažnai neatitiks Jūsų SPF ir DKIM. Be to, kai kurie žiniatinklio serveriai bando pristatyti laiškus Jūsų paties domenui vietoje, o ne per MX, todėl jie niekada nepasiekia Jūsų tikrosios pašto dėžutės.
Teisingas siuntėjo ir Reply-To nustatymas
Dažna klaida kontaktų formose: kaip siuntėją (From) naudoti lankytojo adresą. Tai atrodo logiška („tada galėsiu tiesiog atsakyti“), tačiau Jūsų serveris neturi teisės siųsti laiškų @gmail.com arba @hotmail.com vardu. Šie domenai taiko griežtą DMARC politiką, todėl gavėjas laišką atmeta arba pažymi kaip šlamštą.
Teisingai turi būti taip:
From: Website <website@example.com> (Jūsų paties domeno adresas)
Reply-To: bezoeker@example.net (adresas, kurį įvedė lankytojas)
To: info@example.comNaudojant Reply-To, Jūsų atsakymas vis tiek pasieks lankytoją. Beveik kiekvienas formų įskiepis turi šiuos du laukus atskirai.
SMTP: siuntimas per tikrą pašto dėžutę
Patikimiausias sprendimas yra priversti WordPress siųsti laiškus per SMTP: tuo pačiu būdu, kaip tai daro Jūsų pašto programa, naudojant tikros pašto dėžutės naudotojo vardą ir slaptažodį. Tai atliekama naudojant SMTP įskiepį (pavyzdžiui, WP Mail SMTP, FluentSMTP ar Post SMTP; yra ir daugiau variantų). Įskiepis perima wp_mail ir siunčia laišką per Jūsų nurodytą serverį:
| Pasirinkimas | Kam tinka |
|---|---|
Pašto dėžutė pas Jūsų talpinimo paslaugų teikėją (pavyzdžiui, website@example.com Jūsų talpinimo paketo pašto serveryje) | Daugumai mažų svetainių, kurių el. paštas tvarkomas to paties paslaugų teikėjo |
| Jūsų paštas Microsoft 365 ar Google Workspace | Jei Jūsų paštas tvarkomas tenai; dažnai per specialią jungtį įskiepyje (OAuth), o ne slaptažodį, nes šios paslaugos vis labiau riboja įprastą SMTP prisijungimą |
| Tranzakcinio pašto paslauga (paslauga, specializuota laiškų siuntimui iš svetainių ir programų) | Internetinėms parduotuvėms ir svetainėms, siunčiančioms daug laiškų |
Privalumai: laiškas keliauja per serverį, kuris jau sutvarkytas su SPF ir DKIM Jūsų domenui, siuntėjas yra egzistuojantis adresas, o daugelis įskiepių saugo žurnalą, kad matytumėte, kas buvo išsiųsta ir kas nepavyko.
Atkreipkite dėmesį į keletą dalykų:
- Svetainei naudokite atskirą pašto adresą (pavyzdžiui,
website@), o ne savo asmeninę pašto dėžutę. Jei svetainė būtų nulaužta ir slaptažodis nutekėtų, šį adresą galima pakeisti be jokios žalos. - SMTP slaptažodis saugomas duomenų bazėje arba wp-config.php faile. Kai įmanoma, naudokite programos slaptažodį (app password) arba jungtį be slaptažodžio.
- Pašto žurnale saugomi asmens duomenys (kas ką siuntė). Neleiskite jam augti be apribojimų (žr. 9.3 pamoką).
SPF, DKIM ir DMARC Jūsų svetainei
Nesvarbu, koks serveris siunčia laiškus, Jūsų DNS turi tai atitikti:
- SPF: Jūsų domeno SPF įraše turi būti nurodytas laišką pristatantis serveris. Jei siunčiate per savo talpinimo paslaugų teikėjo pašto serverį, jis dažniausiai jau ten įtrauktas. Jei siunčiate per tranzakcinio pašto paslaugą, pridėkite jos
include:į tą patį SPF įrašą (niekada nekurkite antro SPF įrašo, žr. DNS kurso 4.3 pamoką). - DKIM: siunčiantis serveris turi pasirašyti laišką raktu, kuris nurodytas Jūsų DNS (
<selector>._domainkey.example.com). Tai įjungiate pas savo talpinimo paslaugų teikėją ir tranzakcinio pašto paslaugose; paslauga pateikia reikiamus įrašus. - DMARC: įrašas adresu
_dmarc.example.com. Pradėkite nuop=noneir griežtinkite, kai viskas veikia tinkamai (žr. DNS kurso 4.5 pamoką).
Kad DMARC veiktų, domenas From lauke turi būti suderintas (aligned) su domenu, kurį patvirtina SPF arba DKIM. Štai kodėl taip svarbu, kad „From būtų Jūsų paties domenas“.
Testavimas
- Daugelis SMTP įskiepių turi mygtuką Siųsti testinį laišką. Išsiųskite jį į adresą kitame paslaugų teikėjo pašte (Gmail ar Outlook.com adresą) ir patikrinkite, ar jis pasiekia gautuosius.
- Tame laiške peržiūrėkite antraštes (headers) (funkcija „Rodyti originalų laišką“ arba „Rodyti šaltinį“). Suraskite
spf=pass,dkim=passirdmarc=pass. - Užpildykite savo paties kontaktų formą ir patikrinkite, ar laiškas pasiekia adresatą su teisingu Reply-To.
- Patestuokite ir slaptažodžio nuorodą, o parduotuvės atveju, taip pat testinį užsakymą.
Internetiniai įrankiai, pvz., mail-tester.com, pateikia įvertinimą ir paaiškinimą; naudodami savo talpinimo paslaugų teikėjo el. pašto patikrą (pas WebOké ji taip ir vadinasi) arba internet.nl, galite patikrinti DNS pusę.
Praktikoje: kaip tai atrodo valdymo skydelyje
Kaip pavyzdį naudosime DirectAdmin ir SMTP įskiepį. Kituose talpinimo paslaugų teikėjų skydeliuose ir įskiepiuose laukai vadinami panašiai.
- DirectAdmin skiltyje E. pašto paskyros sukurkite pašto dėžutę
website@example.comsu stipriu slaptažodžiu. - Pas savo talpinimo paslaugų teikėją susiraskite siunčiamo pašto nustatymus (serverio pavadinimą, prievadą 465 arba 587, šifravimą).
- Įveskite juos SMTP įskiepyje, nurodydami
website@example.comkaip siuntėją. Įjunkite „priverstinį siuntėjo nustatymą“, kad ir kiti įskiepiai naudotų šį adresą. - Skiltyje DNS valdymas patikrinkite, ar Jūsų domenui egzistuoja SPF, DKIM ir DMARC įrašai.
- Išsiųskite testinį laišką ir perskaitykite antraštes.
Santrauka
- WordPress siunčia per wp_mail ir pagal numatytuosius nustatymus per PHP mail(); ar laiškas pasieks adresatą, lemia siuntėjas ir DNS.
- Nustatykite siuntėją (From) į Jūsų paties domeno adresą, o lankytojo adresą įrašykite į Reply-To.
- Patikimiausias sprendimas yra SMTP įskiepis su atskira pašto dėžute arba tranzakcinio pašto paslauga, kartu su žurnalu.
- SPF turi nurodyti siunčiantį serverį (viename įraše), DKIM turi būti įjungtas, DMARC pradėkite nuo p=none.
- Testuokite su adresu kitame paslaugų teikėjo pašte ir antraštėse patikrinkite spf, dkim ir dmarc.
Testas (quiz)
Užduotis
Užduotis A9.1: Ar Jūsų domenas paruoštas siųsti laiškus iš Jūsų svetainės? Įveskite savo domeną, adresą, kurį Jūsų svetainė naudoja kaip siuntėją, ir serverį, per kurį Jūsų svetainė siunčia laiškus (SMTP serverio pavadinimą arba „webserver“, jei nieko nenustatėte). Jei žinote, įveskite ir DKIM selektorių. Programa patikrins: ar siuntėjo adresas priklauso Jūsų domenui, ar yra tiksliai vienas SPF įrašas ir ar jis leidžia nurodytam serveriui siųsti laiškus, ar yra DKIM įrašas prie selektoriaus (arba praneš, kad be selektoriaus patikrinti negali), ir ar yra galiojantis DMARC įrašas.
Užduotis D9.1: Testinio laiško skaitymas. Išsiųskite testinį laišką iš savo svetainės (naudodami SMTP įskiepio testavimo mygtuką arba slaptažodžio nuorodą į testinę paskyrą) į adresą kitame pašte. Atverkite to laiško antraštes ir užsirašykite rezultatus prie spf, dkim ir dmarc, taip pat kuris domenas nurodytas prie kiekvieno iš jų. Tada užpildykite savo paties kontaktų formą ir patikrinkite: ar laiškas pasiekia adresatą ir ar „atsakyti“ nukreipia į adresą, kurį įvedėte formoje?
Užduotis D9.1: Bandomojo laiško skaitymas
Šią užduotį atliekate patys; niekas jos netikrina. Pažymėkite, ką atlikote, ir pažymėkite užduotį kaip atliktą.
Trys rezultatai (pass, fail arba none) su domenu, pavyzdžiui, „spf=pass smtp.mailfrom=jusudomenas.lt“. Jei rezultatas fail, nurodykite tolesnį žingsnį (papildyti SPF, įjungti DKIM, SMTP įskiepis).
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.
Papildoma literatūra
Šiuose straipsniuose aprašomi veiksmai WebOké valdymo skydeliuose; kituose paskyrose jie veikia panašiai.
- Nepavyksta siųsti laiškų per PHP, MX įrašai nukreipti kitur
- Kaip PHP funkcija mail() gauti teisingą siuntėją? SMTP
- Kontaktinė forma Jūsų interneto svetainėje: laukų siuntimas el. paštu ir apsauga nuo šlamšto
- Kaip siunčiami el. laiškai (SMTP)
- DirectAdmin vadovas 18.10: Negaliu išsiųsti el. laiško
- Nemokamas DNS kursas 4.3: SPF: kas gali siųsti laiškus Jūsų domeno vardu?
- Nemokamas DNS kursas 4.4: DKIM: parašas po Jūsų paštu
- Nemokamas DNS kursas 4.5: DMARC: ką gavėjai turi daryti su netikru paštu
