Kada kontaktni obrazac kaže „Hvala”, ali e-pošta ne stiže
Kontaktni obrazac može prestati raditi, a da nitko ne vidi pogrešku: posjetitelj dobije ljubaznu potvrdu, a Vi ne dobijete ništa. Zašto se to događa i kako primijetiti na vrijeme.
Zamislite malu fizioterapeutsku ordinaciju. Njezina web-stranica ima kontaktni obrazac i obrazac radi – ili barem tako izgleda. Posjetitelji ga ispune, kliknu „Pošalji” i vide ljubazno „Hvala, uskoro ćemo Vam se javiti”. Ono što nitko ne vidi: poruke su prije nekog vremena prestale stizati u ulaznu poštu ordinacije. Nema pogreške, nema povratne obavijesti o neisporuci ni u čijoj ulaznoj pošti, nigdje nema crvenog svjetla. Obrazac otkazuje neprimjetno.
Zašto nitko ne primjećuje
Stranica „Hvala” nakon slanja obrasca obično znači samo jedno: web-stranica proslijedila je poruku. Hoće li je poslužitelj e-pošte prihvatiti, svrstati u neželjenu poštu ili usput odbiti, događa se kasnije, izvan dosega obrasca. Primjerice, PHP-ova funkcija mail() prijavljuje uspjeh čim lokalni sustav prihvati poruku za isporuku – ne kada ona nekome stigne. Posjetitelj stoga dobije potvrdu i nastavi dalje. Vlasnik u međuvremenu vidi praznu ulaznu poštu i pretpostavlja da je mjesec jednostavno miran. Manje upita samo po sebi rijetko izaziva uzbunu: praznici, vrijeme, gospodarstvo – uvijek postoji objašnjenje koje zvuči uvjerljivije od „obrazac je pokvaren”.
- Dan 0Tijekom noći provodi se rutinsko ažuriranje dodatka. Stranica izgleda potpuno kao prije.
- Dan 1Stiže posljednja poruka. Nitko ne zna da je posljednja.
- Dani 2–13Posjetitelji i dalje šalju obrazac i vide „Hvala”. Ništa ne stiže u ulaznu poštu.
- Dan 14Netko nazove i pomalo ljutito pita zašto nitko nije odgovorio na njegov upit.
- Dan 15Uzrok se pronađe unutar jednog sata. Poruke iz ta dva tjedna izgubljene su – osim ako je obrazac čuvao i kopiju.
Uobičajeni uzroci
- Promijenjena je SMTP lozinka ili pružatelj usluge e-pošte. Obrazac se i dalje prijavljuje starim pristupnim podacima, a poslužitelj e-pošte odbija prijavu – neprimjetno za posjetitelja.
- PHP mail() bez autentifikacije. Web-poslužitelj šalje e-poštu izravno, bez prijave na odgovarajući poslužitelj e-pošte. Mnogi prijamni poslužitelji takvu poštu smatraju sumnjivom: završava u neželjenoj pošti ili se odmah odbija.
- SPF, DKIM i DMARC nisu usklađeni. Mnogi obrasci stavljaju adresu posjetitelja u polje From. Poruka tada tvrdi da dolazi, primjerice, s adrese gmail.com, ali šalje je Vaš web-poslužitelj – upravo ono što je DMARC namijenjen spriječiti.
- Ažuriranje dodatka ili promjena teme naruši rad obrasca ili njegove CAPTCHA-e. Izmijenjeni predložak izostavi polje, skripta se više ne učitava ili se CAPTCHA dodatak pojavi bez svoje skripte – i svako slanje padne na provjeri valjanosti.
- Poštanski sandučić primatelja pun je. Poslužitelj e-pošte odbija nove poruke, a obavijest o neisporuci odlazi na adresu koju nitko ne čita.
- Natpis za kolačiće blokira skriptu obrasca. Ako alat za privolu CAPTCHA-u ili skriptu obrasca svrsta u „marketing”, posjetitelji koji odbiju kolačiće mogu dobiti obrazac koji se ne može poslati ili čije se slanje odbija jer nedostaje token.
- Istekli TLS certifikat ili domena. Posjetitelji vide upozorenje preglednika i odlaze ili se poslužitelju e-pošte više ne može sigurno pristupiti. Ako istekne domena poštanskog sandučića primatelja, isporuka pošte na njega jednostavno prestaje.
- Sloj predmemoriranja poslužuje zastarjele stranice. Predmemorija cijele stranice može isporučiti obrazac s isteklim sigurnosnim tokenom (nonce ili CSRF tokenom). Poslužitelj odbija slanje, a ovisno o postavkama posjetitelj ne vidi jasnu pogrešku.
Zamka adrese From
Treći uzrok zaslužuje podrobniji pogled jer je u mnogim postavkama obrazaca ugrađen prema zadanim postavkama. DMARC provjerava podudara li se domena u vidljivoj adresi From s domenom za koju jamči SPF ili DKIM. Ako obrazac šalje poruku „s” adrese posjetitelja, Vaš poslužitelj nije ovlašten slati za tu domenu, pa provjera ne uspijeva. Ovisno o DMARC pravilima domene posjetitelja i Vašem pružatelju usluge e-pošte, poruka završava u neželjenoj pošti ili se odbija. Rješenje je jednostavno: šaljite s adrese na vlastitoj domeni, a adresu posjetitelja stavite u Reply-To. Klik na „Odgovori” i dalje vodi do posjetitelja.
- From: adresa posjetitelja
- Bez Reply-To
- PHP mail() izravno s web-poslužitelja
- Bez SPF-a, DKIM-a ili DMARC-a za domenu pošiljatelja
- Poruka postoji samo kao e-pošta
- From: adresa na Vašoj domeni, npr. form@yourdomain
- Reply-To: adresa posjetitelja
- SMTP s autentifikacijom ili usluga slanja
- SPF, DKIM i DMARC postavljeni i usklađeni
- Kopija se pohranjuje i u bazu podataka
Što učiniti
- 1Redovito šaljite probnu poruku putem vlastitog obrasca – barem jednom mjesečno i uvijek nakon ažuriranja, promjena teme ili postavki e-pošte. Jasno je označite kao test da nitko na nju ne odgovori.
- 2Poznajte svoj uobičajeni ritam. Ako obrazac obično donosi nekoliko poruka tjedno, dva tjedna tišine razlog su za provjeru, a ne miran mjesec.
- 3Šaljite putem SMTP-a s autentifikacijom – preko svojeg pružatelja e-pošte ili namjenske usluge slanja – umjesto da se oslanjate na PHP mail().
- 4U polju From koristite vlastitu domenu, a u Reply-To adresu posjetitelja. Zatim postavite SPF, DKIM i DMARC za tu domenu kako bi poruke prošle provjere.
- 5Čuvajte kopiju svakog poslanog obrasca u bazi podataka. Mnogi dodaci za obrasce to nude, katkad kao proširenje. Ako e-pošta zakaže, upiti su i dalje dostupni.
- 6Provjerite obrazac nakon svakog ažuriranja dodatka – uključujući CAPTCHA-u, a također i uz odbijene kolačiće.
Provjere poput ovih lako je zaboraviti, pa ih se isplati automatizirati. Uz račun i potvrđenu domenu formexposed može poslati jasno označen probni obrazac i provjeriti stiže li doista (provjera isporuke, samo uz izričito uključivanje). Otkriva i tišinu – obrazac koji inače prima poruke odjednom ne prima nijednu – te provjerava SPF, DKIM i DMARC obavijesti e-poštom, kao i istek TLS certifikata i domene. Upozorenje dobivate samo kada se nešto promijeni.
Ako želite samo početni uvid: besplatna provjera na formexposed.com ne zahtijeva račun i ništa ne šalje putem obrasca. Među ostalim pokazuje postoji li CAPTCHA koja ne radi – dodatak bez svoje skripte, javni testni ključ, pogreške u pregledniku – što je jedan od manje primjetnih načina na koje obrazac prestane raditi. Stižu li poruke doista može se potvrditi samo stvarnom probnom porukom, stoga je pošaljite već danas.