Moodul 9 · 9.1
E-post WordPressist
Moodul 9: E-post, leitavus, isikuandmete kaitse üldmäärus (GDPR), hooldus ja kolimine · Lugemisaeg: 9 minutit
Õpieesmärk: Pärast seda õppetundi oskad hoolitseda selle eest, et WordPressist saadetud kirjad (vormid, tellimused, parooliviited) usaldusväärselt kohale jõuaksid.
Põhimõisted: wp_mail, PHP mail(), saatja (From), Reply-To, SMTP, SMTP-plugin, autenditud postkast, transaktsiooniline e-posti teenus, SPF, DKIM, DMARC, joondus (alignment), MX mujal, testkiri
WordPress saadab rohkem kirju, kui arvad
Sinu sait saadab kirju, kui: kontaktivorm täidetakse ära, tellimus tehakse (kliendile ja sulle), uus kasutaja lisatakse, parool unustatakse, uus kommentaar lisatakse, automaatne uuendus tehakse, tekib kriitiline viga (õppetund 5.4). Kui kiri ei jõua kohale, märkad seda sageli alles siis, kui klient helistab: „täitsin vormi juba kolm korda ära.“
Kuidas WordPress vaikimisi kirju saadab
WordPress saadab kõik funktsiooni wp_mail kaudu. Vaikimisi annab see kirja edasi PHP funktsioonile mail(), mis edastab selle veebiserveri postiprogrammile. See töötab, kuid sellel on kolm nõrka kohta:
- Saatja. Ilma seadistuseta saadab WordPress kirju aadressilt
wordpress@example.com. Kui seda aadressi ei eksisteeri või on saatja midagi muud kui sinu enda domeen, siis saajad kahtlustavad kirja. - SPF, DKIM ja DMARC. Vastuvõtvad postiserverid kontrollivad, kas kirja kohale toimetav server tohib sinu domeeni nimel kirju saata (SPF), kas kirjal on sinu domeeni kehtiv digiallkiri (DKIM) ja milline on sinu domeeni reeglistik, kui midagi ei klapi (DMARC). DNS-i kursuses (õppetunnid 4.3 kuni 4.5) loed, kuidas see töötab. Veebiserveri kaudu saadetud kirjad läbivad need kontrollid ainult siis, kui su DNS ja server on selleks seadistatud.
- E-post mujal. Kui sinu e-post ei asu veebimajutaja juures, vaid näiteks Microsoft 365 või Google Workspace keskkonnas (su MX-kirjed osutavad sinna), siis veebiserveri kaudu saadetud kiri sageli ei klapi su SPF ja DKIM seadistustega. Ning mõned veebiserverid proovivad kirju sinu enda domeenile kohale toimetada kohalikult, mitte MX-kirjete kaudu, mistõttu need ei jõua kunagi su päris postkasti.
Saatja ja Reply-To õigesti seadistamine
Levinud viga kontaktivormides: kasutada saatjana (From) külastaja enda aadressi. See tundub loogiline („siis saan vastata nupule vajutades“), kuid sinu server ei tohi saata kirju domeeni @gmail.com või @hotmail.com nimel. Neil domeenidel on range DMARC-poliitika, mistõttu vastuvõtja kas keeldub kirjast või suunab selle rämpspostiks.
Õige on nii:
From: Website <website@example.com> (sinu enda domeeni aadress)
Reply-To: bezoeker@example.net (külastaja sisestatud aadress)
To: info@example.comTänu väljale Reply-To jõuab sinu vastus siiski külastajani. Peaaegu igal vormi pluginal on need kaks välja eraldi olemas.
SMTP: saatmine päris postkasti kaudu
Kõige usaldusväärsem lahendus on lasta WordPressil saata kirju SMTP kaudu: samal moel, nagu su postiprogramm saadab, kasutades päris postkasti kasutajanime ja parooli. Seda teed SMTP-pluginaga (näiteks WP Mail SMTP, FluentSMTP või Post SMTP, neid on rohkemgi). Plugin püüab wp_mail kinni ja saadab kirja määratud serveri kaudu:
| Valik | Kellele sobib |
|---|---|
Postkast sinu enda majutuspakkuja juures (näiteks website@example.com sinu majutuspaketi postiserveris) | Enamikele väiksematele saitidele, mille e-post asub sama teenusepakkuja juures |
| Sinu e-post asub Microsoft 365 või Google Workspace keskkonnas | Kui su e-post asub seal; sageli erilise ühenduse kaudu pluginas (OAuth), mitte parooliga, kuna need teenused piiravad üha enam tavalist SMTP-sisselogimist |
| Transaktsiooniline e-posti teenus (teenus, mis on spetsialiseerunud veebisaitidelt ja rakendustest kirjade saatmisele) | Veebipoodidele ja saitidele, mis saadavad palju kirju |
Eelised: kiri läbib serveri, mis on juba sinu domeeni jaoks SPF ja DKIM seadistustega korrastatud, saatja on olemasolev aadress ja paljud pluginad peavad logi, et näeksid, mis saadeti ja mis ebaõnnestus.
Pane tähele mõningaid asju:
- Kasuta saidi jaoks eraldi e-posti aadressi (näiteks
website@), mitte oma isiklikku postkasti. Kui sait häkitakse ja parool lekib, saab selle aadressi ilma kahjudeta asendada. - SMTP parool asub andmebaasis või failis wp-config.php. Kasuta võimaluse korral rakenduse parooli (app-parool) või parooliga ühendust nõudvat seadistust.
- Posti logi sisaldab isikuandmeid (kes mida saatis). Ära lase sel lõputult kasvada (õppetund 9.3).
SPF, DKIM ja DMARC sinu saidile
Olenemata sellest, milline server kirju saadab, peab sinu DNS sellele vastama:
- SPF: sinu domeeni SPF-kirje peab nimetama serverit, mis kirja kohale toimetab. Kui saadad kirju oma majutuspakkuja postiserveri kaudu, on see tavaliselt juba sees. Kui saadad transaktsioonilise teenuse kaudu, lisa nende
include:samasse SPF-kirjesse (mitte kunagi teist SPF-kirjet, vt DNS-i kursuse õppetund 4.3). - DKIM: saatev server peab kirja allkirjastama võtmega, mis asub su DNS-is (
<selector>._domainkey.example.com). Lülita see sisse oma majutuspakkuja ja transaktsiooniliste teenuste juures; teenus annab sulle vastavad kirjed. - DMARC: kirje aadressil
_dmarc.example.com. Alusta väärtusegap=noneja karmista reegleid, kui kõik toimib (vt DNS-i kursuse õppetund 4.5).
DMARC jaoks peab From-väljas olev domeen olema joondatud domeeniga, mis läbib SPF või DKIM kontrolli. Seepärast on „From sinu enda domeenil“ nii oluline.
Testimine
- Paljudel SMTP-pluginatel on nupp Testkirja saatmine. Saada üks teise teenusepakkuja aadressile (Gmaili või Outlook.com aadress) ja vaata, kas see jõuab sisendkausta.
- Vaata selles kirjas päiseid („Näita originaali“ või „Näita allikat“). Otsi väärtusi
spf=pass,dkim=passjadmarc=pass. - Täida enda kontaktivorm ja vaata, kas kiri jõuab kohale, õige Reply-To aadressiga.
- Testi ka parooliviidet ja poe puhul testtellimust.
Veebipõhised tööriistad nagu mail-tester.com annavad hinnangu ja selgituse; oma majutuspakkuja E-posti kontrolliga (WebOkés kannab see just sellist nime) või internet.nl abil saad kontrollida DNS-i poolt.
Praktikas: nii näeb see välja haldusliideses
Näitena kasutame DirectAdmini ja SMTP-pluginat. Teistel majutuspakkujatel ja pluginatel on väljad sarnased.
- Loo DirectAdminis jaotises E-mail accounts postkast
website@example.comtugeva parooliga. - Otsi oma majutuspakkuja juures üles väljuva posti seaded (serveri nimi, port 465 või 587, krüpteerimine).
- Sisesta need SMTP-pluginasse, saatjaks määra
website@example.com. Lülita sisse „saatja sundimine“, et ka teised pluginad kasutaksid seda aadressi. - Kontrolli jaotises DNS-haldus, et sinu domeenile oleksid olemas SPF, DKIM ja DMARC kirjed.
- Saada testkiri ja loe päiseid.
Kokkuvõte
- WordPress saadab kirju wp_mail kaudu ja vaikimisi PHP mail() funktsiooni abil; saatja ja DNS määravad, kas kiri kohale jõuab.
- Sea saatjaks (From) oma domeeni aadress ja külastaja aadress pane Reply-To väljale.
- Kõige usaldusväärsem on SMTP-plugin koos eraldi postkastiga või transaktsiooniline teenus, koos logiga.
- SPF peab nimetama saatva serveri (ühes kirjes), DKIM peab olema sisse lülitatud, DMARC peab alustama väärtusest p=none.
- Testi teise teenusepakkuja aadressiga ja loe päistest spf, dkim ja dmarc väärtusi.
Test (quiz)
Ülesanne
Ülesanne A9.1: Kas su domeen on valmis saidilt kirju saatma? Sisesta oma domeen, aadress, mida su sait saatjana kasutab, ja server, mille kaudu su sait kirju saadab (SMTP-serveri nimi, või „veebiserver“, kui sa pole midagi seadistanud). Sisesta ka DKIM-i selektor, kui sa seda tead. Programm kontrollib: kas saatja aadress kuulub su domeenile, kas on täpselt üks SPF-kirje ja kas see lubab nimetatud serveril saata, kas selektori juures on DKIM-kirje olemas (või teatab, et ilma selektorita ei saa kontrollida) ja kas on olemas kehtiv DMARC-kirje.
Ülesanne D9.1: Testkirja lugemine. Saada oma saidilt testkiri (oma SMTP-pluginas olev testnupp või parooliviide testkontole) teise teenusepakkuja aadressile. Ava selle kirja päised ja kirjuta üles tulemused spf, dkim ja dmarc juures ning milline domeen igaühe juures on. Täida seejärel oma kontaktivorm ja kontrolli: kas kiri jõuab kohale ning kas „vasta“ suunab aadressile, mille sa vormi sisestasid?
Ülesanne D9.1: Testkirja lugemine
Selle ülesande teed ise, keegi ei kontrolli seda. Märgi ära, mida tegid, ja märgi ülesanne tehtuks.
Kolm tulemust (pass, fail või none) koos domeeniga, näiteks "spf=pass smtp.mailfrom=sinudomeen.ee". Fail'i korral nimeta järgmine samm (SPF täiendamine, DKIM sisselülitamine, SMTP plugin).
Su linnukesed ja märkmed jäävad ainult sellesse brauserisse, me ei saada neid kuhugi. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et tegid ülesande ära.
Lisalugemist
Need artiklid kirjeldavad samme WebOké haldusliidestes; teistes liidestes töötavad need sarnaselt.
- E-posti saatmine PHP kaudu ei õnnestu, MX-kirjed suunavad mujale
- Kuidas saada PHP funktsiooniga mail() õige saatja? SMTP
- Kontaktivorm sinu veebisaidil: väljade saatmine e-posti teel ja rämpsposti vältimine
- E-kirjade saatmise protsess / SMTP
- DirectAdmin juhend 18.10: Ma ei saa e-kirju saata
- Tasuta DNS-kursus 4.3: SPF: kes tohib sinu domeeni nimel kirju saata?
- Tasuta DNS-kursus 4.4: DKIM: allkiri sinu e-kirja all
- Tasuta DNS-kursus 4.5: DMARC: mida vastuvõtjad peavad tegema võltspostiga
