Nazaj na blog
Tehnika Objavljeno 16.09.2026 6 min branja

Ko kontaktni obrazec reče »Hvala«, pošta pa ne prispe

Kontaktni obrazec se lahko pokvari, ne da bi kdo videl napako: obiskovalec dobi prijazno potrditev, Vi ne dobite ničesar. Zakaj se to zgodi in kako to pravočasno opaziti.

Predstavljajte si majhno fizioterapevtsko ambulanto. Njeno spletno mesto ima kontaktni obrazec in obrazec deluje – ali pa je vsaj videti tako. Obiskovalci ga izpolnijo, kliknejo »Pošlji« in vidijo prijazno »Hvala, kmalu se Vam oglasimo«. Česar nihče ne vidi: sporočila že nekaj časa ne prihajajo več v poštni predal ambulante. Ni napake, ni vrnjenega sporočila v nikogaršnjem predalu, nikjer ne sveti rdeča lučka. Obrazec odpove tiho.

Zakaj nihče ne opazi

Zahvalna stran obrazca običajno pomeni le eno: spletno mesto je sporočilo predalo naprej. Ali ga poštni strežnik sprejme, uvrsti med neželeno pošto ali na poti zavrne, se zgodi pozneje, zunaj vidnega polja obrazca. Funkcija mail() v PHP na primer sporoči uspeh, takoj ko lokalni sistem sprejme sporočilo za dostavo – ne, ko doseže kogar koli. Obiskovalec tako dobi potrditev in gre naprej. Lastnik pa medtem vidi prazen poštni predal in domneva, da je pač miren mesec. Manj povpraševanj samo po sebi redko vzbudi skrb: počitnice, vreme, gospodarstvo – vedno obstaja razlaga, ki zveni verjetneje kot »obrazec je pokvarjen«.

Hipotetična časovnica
  1. Dan 0
    Ponoči se izvede rutinska posodobitev vtičnika. Spletno mesto je videti natanko tako kot prej.
  2. Dan 1
    Prispe zadnje sporočilo. Nihče ne ve, da je zadnje.
  3. Dnevi 2–13
    Obiskovalci še naprej oddajajo obrazec in še naprej vidijo »Hvala«. V poštni predal ne pride nič.
  4. Dan 14
    Nekdo pokliče in nekoliko nejevoljno vpraša, zakaj nihče nikoli ni odgovoril na njegovo povpraševanje.
  5. Dan 15
    Vzrok je najden v eni uri. Sporočila iz teh dveh tednov so izgubljena – razen če je obrazec hranil tudi kopijo.
Ni resničen primer – je pa zelo tipičen vzorec.

Običajni vzroki

  • Spremenilo se je geslo SMTP ali ponudnik e-pošte. Obrazec se še naprej prijavlja s starimi poverilnicami in poštni strežnik zavrača – tiho, kolikor lahko vidi obiskovalec.
  • PHP mail() brez overjanja. Spletni strežnik pošilja pošto neposredno, ne da bi se prijavil v pravi poštni strežnik. Veliko prejemnih strežnikov takšno pošto obravnava kot sumljivo: konča med neželeno pošto ali je takoj zavrnjena.
  • SPF, DKIM in DMARC se ne ujemajo. Veliko obrazcev naslov obiskovalca vnese v polje From. Sporočilo nato trdi, da prihaja na primer z naslova gmail.com, pošlje pa ga Vaš spletni strežnik – natanko to, kar naj bi DMARC preprečil.
  • Posodobitev vtičnika ali zamenjava teme pokvari obrazec ali njegovo CAPTCHA. Spremenjena predloga izpusti polje, skripta se ne naloži več ali pa se gradnik CAPTCHA prikaže brez svoje skripte – in vsaka oddaja ne prestane validacije.
  • Prejemni poštni predal je poln. Poštni strežnik zavrača nova sporočila, obvestilo o nedostavi pa gre na naslov, ki ga nihče ne bere.
  • Pasica za piškotke blokira skripto obrazca. Če orodje za privolitev CAPTCHA ali skripto obrazca uvrsti med »trženje«, lahko obiskovalci, ki piškotke zavrnejo, dobijo obrazec, ki ga ni mogoče oddati, ali katerega oddaje so zavrnjene, ker manjka žeton.
  • Potekel certifikat TLS ali domena. Obiskovalci vidijo opozorilo brskalnika in odidejo ali pa poštnega strežnika ni več mogoče varno doseči. Če domena prejemnega poštnega predala poteče, pošta nanjo preprosto preneha prihajati.
  • Sloj za predpomnjenje streže zastarele strani. Predpomnilnik celotne strani lahko dostavi obrazec s potečenim varnostnim žetonom (nonce ali žeton CSRF). Strežnik oddajo zavrne in, odvisno od nastavitve, obiskovalec ne vidi jasne napake.

Past naslova From

Tretji vzrok si zasluži podrobnejši pogled, ker ga ima veliko nastavitev obrazcev privzeto vgrajenega. DMARC preverja, ali se domena v vidnem naslovu From ujema z domeno, za katero jamčita SPF ali DKIM. Če obrazec pošlje sporočilo »od« naslova obiskovalca, Vaš strežnik ni pooblaščen za pošiljanje za to domeno, zato preverjanje ne uspe. Odvisno od politike DMARC domene obiskovalca in od Vašega ponudnika e-pošte sporočilo konča med neželeno pošto ali je zavrnjeno. Rešitev je preprosta: pošiljajte z naslova na svoji lastni domeni, naslov obiskovalca pa vnesite v Reply-To. Klik na »Odgovori« še vedno doseže obiskovalca.

Dva načina pošiljanja istega sporočila obrazca
Krhko
  • From: naslov obiskovalca
  • Brez Reply-To
  • PHP mail() neposredno s spletnega strežnika
  • Brez SPF, DKIM ali DMARC za pošiljajočo domeno
  • Sporočilo obstaja le kot e-pošta
Robustno
  • From: naslov na Vaši lastni domeni, npr. form@yourdomain
  • Reply-To: naslov obiskovalca
  • SMTP z overjanjem ali storitev za pošiljanje
  • SPF, DKIM in DMARC nastavljeni in usklajeni
  • Kopija je shranjena tudi v podatkovni bazi
Desni stolpec komaj pomeni več dela – večinoma gre za nastavitve.

Kaj storiti

  1. 1Redno pošljite testno sporočilo prek svojega obrazca – vsaj mesečno in vedno po posodobitvah, zamenjavah teme ali spremembah nastavitev pošte. Jasno ga označite kot test, da nanj nihče ne odgovori.
  2. 2Poznajte svoj običajni ritem. Če obrazec običajno prinese nekaj sporočil na teden, sta dva tedna tišine razlog za preverjanje, ne miren mesec.
  3. 3Pošiljajte prek SMTP z overjanjem – prek svojega ponudnika e-pošte ali namenske storitve za pošiljanje – namesto da se zanašate na PHP mail().
  4. 4V From uporabite svojo lastno domeno, v Reply-To pa naslov obiskovalca. Nato za to domeno nastavite SPF, DKIM in DMARC, da sporočila prestanejo preverjanja.
  5. 5Kopijo vsake oddaje hranite v podatkovni bazi. Veliko vtičnikov za obrazce to ponuja, včasih kot dodatek. Če pošta odpove, so povpraševanja še vedno tam.
  6. 6Obrazec preverite po vsaki posodobitvi vtičnika – vključno s CAPTCHA in tudi z zavrnjenimi piškotki.

Na taka preverjanja je lahko pozabiti, zato se jih splača avtomatizirati. Z računom in potrjeno domeno lahko formexposed pošlje jasno označeno testno oddajo in preveri, ali dejansko prispe (preverjanje dostave, le z vklopom). Zazna tudi tišino – obrazec, ki običajno dobiva sporočila, nenadoma ne dobi nobenega – ter preverja SPF, DKIM in DMARC sporočil z obvestili ter potek certifikata TLS in domene. Opozorilo dobite le, ko se kaj spremeni.

Če želite le prvi pogled: brezplačno preverjanje na formexposed.com ne potrebuje računa in ničesar ne odda. Med drugim pokaže, ali je CAPTCHA prisotna, a pokvarjena – gradnik brez skripte, javni testni ključ, napake v brskalniku – kar je eden tišjih načinov, kako obrazec preneha delovati. Ali sporočila res prispejo, lahko potrdi le pravo testno sporočilo, zato ga pošljite še danes.