Kad saziņas forma saka „Paldies”, bet vēstule nepienāk
Saziņas forma var sabojāties tā, ka neviens neredz kļūdu: apmeklētājs saņem draudzīgu apstiprinājumu, jūs nesaņemat neko. Kāpēc tā notiek un kā to laikus pamanīt.
Iedomājieties nelielu fizioterapijas praksi. Tās vietnē ir saziņas forma, un forma darbojas – vai vismaz izskatās, ka darbojas. Apmeklētāji to aizpilda, noklikšķina uz „Sūtīt” un redz draudzīgu „Paldies, mēs drīz ar jums sazināsimies”. Ko neviens neredz: ziņojumi jau kādu laiku vairs nenonāk prakses pastkastē. Nav kļūdas, nav atteikuma ziņojuma nevienā pastkastē, nekur nedeg sarkana gaisma. Forma sabojājas klusi.
Kāpēc neviens to nepamana
Formas lapa „Paldies” parasti nozīmē tikai vienu: vietne ir nodevusi ziņojumu tālāk. Tas, vai pasta serveris to pieņem, ievieto surogātpastā vai pa ceļam noraida, notiek vēlāk, formai neredzami. Piemēram, PHP funkcija mail() ziņo par veiksmi, tiklīdz lokālā sistēma pieņem ziņojumu piegādei – nevis tad, kad tas kādu sasniedz. Tāpēc apmeklētājs saņem apstiprinājumu un dodas tālāk. Īpašnieks tikmēr redz tukšu pastkasti un pieņem, ka tas vienkārši ir kluss mēnesis. Mazāks pieprasījumu skaits pats par sevi reti rada bažas: brīvdienas, laikapstākļi, ekonomika – vienmēr ir kāds izskaidrojums, kas izklausās ticamāk nekā „forma ir salauzta”.
- 0. dienaNaktī tiek veikts kārtējs spraudņa atjauninājums. Vietne izskatās tieši tāpat kā iepriekš.
- 1. dienaPienāk pēdējais ziņojums. Neviens nezina, ka tas ir pēdējais.
- 2.–13. dienaApmeklētāji turpina iesniegt formu un turpina redzēt „Paldies”. Pastkastē nekas nenonāk.
- 14. dienaKāds piezvana un nedaudz aizkaitināti jautā, kāpēc neviens tā arī neatbildēja uz viņa pieprasījumu.
- 15. dienaIemesls tiek atrasts stundas laikā. Šo divu nedēļu ziņojumi ir zuduši – ja vien forma nesaglabāja arī kopiju.
Biežākie iemesli
- Ir mainījusies SMTP parole vai e-pasta pakalpojumu sniedzējs. Forma turpina pieteikties ar vecajiem piekļuves datiem, un pasta serveris atsakās – no apmeklētāja skatpunkta klusi.
- PHP mail() bez autentifikācijas. Tīmekļa serveris sūta vēstules tieši, nepiesakoties īstā pasta serverī. Daudzi saņēmēju serveri šādas vēstules uzskata par aizdomīgām: tās nonāk surogātpastā vai tiek uzreiz noraidītas.
- SPF, DKIM un DMARC nesaskan. Daudzas formas ievieto apmeklētāja adresi laukā From. Tad ziņojums apgalvo, ka nāk, piemēram, no gmail.com adreses, bet to sūta jūsu tīmekļa serveris – tieši to, ko DMARC ir paredzēts apturēt.
- Spraudņa atjauninājums vai motīva maiņa salauž formu vai tās CAPTCHA. Mainīta veidne izmet kādu lauku, skripts vairs neielādējas vai CAPTCHA logrīks parādās bez sava skripta – un katrs iesniegums neiztur validāciju.
- Saņēmēja pastkaste ir pilna. Pasta serveris atsakās pieņemt jaunus ziņojumus, un atteikuma ziņojums nonāk adresē, kuru neviens nelasa.
- Sīkdatņu paziņojums bloķē formas skriptu. Ja piekrišanas rīks CAPTCHA vai formas skriptu klasificē kā „mārketingu”, apmeklētāji, kuri atsakās no sīkdatnēm, var saņemt formu, ko nevar iesniegt vai kuras iesniegumi tiek noraidīti trūkstoša marķiera dēļ.
- Beidzies TLS sertifikāta vai domēna derīgums. Apmeklētāji redz pārlūkprogrammas brīdinājumu un aiziet, vai arī pasta serveri vairs nevar sasniegt droši. Ja beidzas saņēmēja pastkastes domēna derīgums, vēstules uz to vienkārši vairs nepienāk.
- Kešatmiņas slānis pasniedz novecojušas lapas. Pilnas lapas kešatmiņa var piegādāt formu ar novecojušu drošības marķieri (nonce vai CSRF marķieri). Serveris noraida iesniegumu, un atkarībā no konfigurācijas apmeklētājs neredz skaidru kļūdu.
From adreses slazds
Trešais iemesls ir pelnījis rūpīgāku aplūkošanu, jo daudzās formu konfigurācijās tas ir iebūvēts pēc noklusējuma. DMARC pārbauda, vai domēns redzamajā From adresē atbilst domēnam, par kuru galvo SPF vai DKIM. Ja forma sūta ziņojumu „no” apmeklētāja adreses, jūsu serveris nav pilnvarots sūtīt šī domēna vārdā, tāpēc pārbaude neizdodas. Atkarībā no apmeklētāja domēna DMARC politikas un jūsu paša e-pasta pakalpojumu sniedzēja ziņojums nonāk surogātpastā vai tiek noraidīts. Labojums ir vienkāršs: sūtiet no adreses savā domēnā un apmeklētāja adresi ievietojiet laukā Reply-To. Noklikšķinot uz „Atbildēt”, atbilde joprojām nonāk pie apmeklētāja.
- From: apmeklētāja adrese
- Nav Reply-To
- PHP mail() tieši no tīmekļa servera
- Sūtītāja domēnam nav SPF, DKIM vai DMARC
- Ziņojums pastāv tikai kā e-pasta vēstule
- From: adrese jūsu pašu domēnā, piem., form@yourdomain
- Reply-To: apmeklētāja adrese
- SMTP ar autentifikāciju vai sūtīšanas pakalpojums
- SPF, DKIM un DMARC iestatīti un saskaņoti
- Kopija tiek saglabāta arī datubāzē
Ko darīt
- 1Regulāri nosūtiet testa ziņojumu caur savu formu – vismaz reizi mēnesī un vienmēr pēc atjauninājumiem, motīva maiņas vai e-pasta iestatījumu izmaiņām. Skaidri atzīmējiet to kā testu, lai neviens uz to neatbildētu.
- 2Ziniet savu parasto ritmu. Ja forma parasti nes dažus ziņojumus nedēļā, divas klusuma nedēļas ir iemesls pārbaudīt, nevis kluss mēnesis.
- 3Sūtiet, izmantojot SMTP ar autentifikāciju – ar sava e-pasta pakalpojumu sniedzēja vai īpaša sūtīšanas pakalpojuma starpniecību –, nevis paļaujoties uz PHP mail().
- 4Laukā From izmantojiet savu domēnu, bet laukā Reply-To – apmeklētāja adresi. Pēc tam šim domēnam iestatiet SPF, DKIM un DMARC, lai ziņojumi izturētu pārbaudes.
- 5Glabājiet katra iesnieguma kopiju datubāzē. Daudzi formu spraudņi to piedāvā, dažreiz kā papildinājumu. Ja e-pasts nedarbojas, pieprasījumi joprojām ir saglabāti.
- 6Pārbaudiet formu pēc katra spraudņa atjauninājuma – arī CAPTCHA un arī ar noraidītām sīkdatnēm.
Šādas pārbaudes ir viegli aizmirst, tāpēc ir vērts tās automatizēt. Ar kontu un verificētu domēnu formexposed var nosūtīt skaidri marķētu testa iesniegumu un pārbaudīt, vai tas patiešām pienāk (piegādes pārbaude, tikai ar jūsu piekrišanu). Tas arī konstatē klusumu – kad forma, kas parasti saņem ziņojumus, pēkšņi nesaņem nevienu – un pārbauda paziņojumu vēstuļu SPF, DKIM un DMARC, kā arī TLS sertifikāta un domēna derīguma termiņu. Brīdinājumu jūs saņemat tikai tad, ja kaut kas mainās.
Ja vēlaties tikai pirmo ieskatu: bezmaksas pārbaudei vietnē formexposed.com nav vajadzīgs konts, un tā neko neiesniedz. Cita starpā tā parāda, vai CAPTCHA ir, bet ir salauzta – logrīks bez sava skripta, publiska testa atslēga, kļūdas pārlūkprogrammā –, kas ir viens no klusākajiem veidiem, kā forma pārstāj darboties. To, vai ziņojumi patiešām pienāk, var apstiprināt tikai īsts testa ziņojums, tāpēc nosūtiet to jau šodien.