Kada kontakt obrazac kaže „Hvala“, ali pošta ne stiže
Kontakt obrazac može prestati da radi, a da niko ne vidi grešku: posetilac dobija ljubaznu potvrdu, Vi ništa. Zašto se to dešava i kako primetiti na vreme.
Zamislite malu fizioterapeutsku ordinaciju. Njen sajt ima kontakt obrazac i obrazac radi — ili bar tako izgleda. Posetioci ga popune, kliknu na „Pošalji“ i vide ljubazno „Hvala, uskoro ćemo Vam se javiti“. Ono što niko ne vidi: poruke su pre nekog vremena prestale da stižu u sanduče ordinacije. Nema greške, nema povratne poruke u bilo čijem sandučetu, nigde crvenog svetla. Obrazac otkazuje tiho.
Zašto niko ne primećuje
Stranica „Hvala“ na obrascu obično znači samo jedno: sajt je predao poruku dalje. Da li je server e-pošte prihvati, svrsta u neželjenu poštu ili odbaci usput, dešava se kasnije, van vidokruga obrasca. PHP funkcija mail(), na primer, prijavljuje uspeh čim lokalni sistem prihvati poruku za isporuku — ne kada stigne bilo kome. Posetilac zato dobije potvrdu i nastavi dalje. Vlasnik u međuvremenu vidi prazno sanduče i pretpostavlja da je samo miran mesec. Manje upita retko samo po sebi izaziva uzbunu: praznici, vreme, ekonomija — uvek postoji objašnjenje koje deluje verovatnije od „obrazac je pokvaren“.
- Dan 0Rutinsko ažuriranje dodatka izvršava se tokom noći. Sajt izgleda potpuno isto kao ranije.
- Dan 1Poslednja poruka stiže. Niko ne zna da je poslednja.
- Dani 2–13Posetioci nastavljaju da šalju obrazac i da vide „Hvala“. Ništa ne stiže u sanduče.
- Dan 14Neko zove i pomalo iznervirano pita zašto niko nije odgovorio na njegov upit.
- Dan 15Uzrok je pronađen za sat vremena. Poruke iz te dve nedelje su izgubljene — osim ako je obrazac čuvao i kopiju.
Uobičajeni uzroci
- Promenjena je SMTP lozinka ili pružalac e-pošte. Obrazac nastavlja da se prijavljuje starim podacima, a server e-pošte odbija — tiho, koliko posetilac može da vidi.
- PHP mail() bez autentikacije. Veb server šalje poštu direktno, bez prijavljivanja na odgovarajući server e-pošte. Mnogi prijemni serveri 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 posetioca u polje From. Poruka zatim tvrdi da dolazi, recimo, sa adrese gmail.com, ali je šalje Vaš veb server — upravo ono što DMARC treba da spreči.
- Ažuriranje dodatka ili promena teme kvari obrazac ili njegov CAPTCHA. Izmenjeni šablon izostavlja polje, skripta se više ne učitava ili se CAPTCHA vidžet pojavljuje bez skripte — i svako slanje pada na validaciji.
- Prijemno poštansko sanduče je puno. Server e-pošte odbija nove poruke, a povratno obaveštenje odlazi na adresu koju niko ne čita.
- Baner za kolačiće blokira skriptu obrasca. Ako alat za pristanak klasifikuje CAPTCHA ili skriptu obrasca kao „marketing“, posetioci koji odbiju kolačiće mogu dobiti obrazac koji ne može da se pošalje ili čija se slanja odbijaju jer nedostaje token.
- Istekao je TLS sertifikat ili domen. Posetioci vide upozorenje pregledača i odlaze ili server e-pošte više ne može bezbedno da se dosegne. Ako domen prijemnog sandučeta istekne, pošta ka njemu jednostavno prestaje.
- Keš sloj isporučuje zastarele stranice. Keš cele stranice može dostaviti obrazac sa isteklim bezbednosnim tokenom (nonce ili CSRF tokenom). Server odbija slanje, a zavisno od postavke posetilac ne vidi jasnu grešku.
Zamka sa adresom From
Treći uzrok zaslužuje pažljiviji pogled jer je podrazumevano ugrađen u mnoge postavke obrazaca. DMARC proverava da li domen u vidljivoj adresi From odgovara domenu za koji jamče SPF ili DKIM. Ako obrazac šalje poruku „sa“ adrese posetioca, Vaš server nije ovlašćen da šalje za taj domen, pa provera ne uspeva. U zavisnosti od DMARC politike domena posetioca i Vašeg pružaoca e-pošte, poruka završava u neželjenoj pošti ili se odbija. Rešenje je jednostavno: šaljite sa adrese na svom domenu i stavite adresu posetioca u Reply-To. Klik na „Odgovori“ i dalje vodi do posetioca.
- From: adresa posetioca
- Bez Reply-To
- PHP mail() direktno sa veb servera
- Bez SPF, DKIM ili DMARC za domen pošiljaoca
- Poruka postoji samo kao e-pošta
- From: adresa na Vašem domenu, npr. form@yourdomain
- Reply-To: adresa posetioca
- SMTP sa autentikacijom ili usluga slanja
- SPF, DKIM i DMARC podešeni i usklađeni
- Kopija se čuva i u bazi podataka
Šta uraditi
- 1Redovno šaljite probnu poruku kroz sopstveni obrazac — najmanje mesečno i uvek nakon ažuriranja, promene teme ili podešavanja e-pošte. Jasno je označite kao probnu da niko ne bi odgovorio.
- 2Poznajte svoj uobičajeni ritam. Ako obrazac obično donosi nekoliko poruka nedeljno, dve nedelje tišine su razlog za proveru, a ne miran mesec.
- 3Šaljite putem SMTP-a sa autentikacijom — preko svog pružaoca e-pošte ili namenske usluge slanja — umesto oslanjanja na PHP mail().
- 4Koristite svoj domen u From, a adresu posetioca u Reply-To. Zatim podesite SPF, DKIM i DMARC za taj domen da poruke prođu provere.
- 5Čuvajte kopiju svakog slanja u bazi podataka. Mnogi dodaci za obrasce to nude, ponekad kao dodatnu funkciju. Ako pošta zakaže, upiti su i dalje tu.
- 6Proverite obrazac nakon svakog ažuriranja dodataka — uključujući CAPTCHA, kao i sa odbijenim kolačićima.
Ovakve provere se lako zaborave, zato ih vredi automatizovati. Uz nalog i potvrđen domen, formexposed može poslati jasno označenu testnu poruku i proveriti da li zaista stiže (provera isporuke e-pošte, samo uz izričito uključivanje). Otkriva i tišinu — obrazac koji obično prima poruke odjednom ne dobija nijednu — i proverava SPF, DKIM i DMARC e-poruka sa obaveštenjima, kao i istek TLS sertifikata i domena. Dobijate upozorenje samo kada se nešto promeni.
Ako želite samo prvi pogled: besplatna provera na formexposed.com ne zahteva nalog i ništa ne šalje. Između ostalog, pokazuje da li je CAPTCHA prisutan ali neispravan — vidžet bez skripte, javni probni ključ, greške u pregledaču — što je jedan od tiših načina na koje obrazac prestaje da radi. Da li poruke zaista stižu može potvrditi samo prava probna poruka, zato je pošaljite danas.