Tagasi blogisse
Tehnoloogia Avaldatud 16.09.2026 Lugemisaeg 6 min

Kui kontaktivorm ütleb „Aitäh“, kuid kirja ei saabu

Kontaktivorm võib katki minna, ilma et keegi viga näeks: külastaja saab sõbraliku kinnituse, teie ei saa midagi. Miks see juhtub ja kuidas seda õigel ajal märgata.

Kujutage ette väikest füsioteraapiakabinetti. Selle veebisaidil on kontaktivorm ja vorm töötab – või vähemalt näib nii. Külastajad täidavad selle, klõpsavad „Saada“ ja näevad sõbralikku teadet „Aitäh, võtame teiega peagi ühendust“. Mida keegi ei näe: sõnumid lakkasid kabineti postkasti jõudmast juba mõnda aega tagasi. Pole viga, pole kellegi postkastis tagastusteadet, pole kuskil punast tuld. Vorm ebaõnnestub vaikselt.

Miks keegi seda ei märka

Vormi „Aitäh“-leht tähendab tavaliselt ainult üht: veebisait andis sõnumi edasi. See, kas meiliserver selle vastu võtab, rämpspostiks liigitab või teel tagasi lükkab, juhtub hiljem, vormi vaateväljast väljas. Näiteks PHP funktsioon mail() teatab õnnestumisest niipea, kui kohalik süsteem võtab sõnumi edastamiseks vastu – mitte siis, kui see kellenigi jõuab. Nii saab külastaja kinnituse ja liigub edasi. Omanik näeb samal ajal tühja postkasti ja eeldab, et tegemist on lihtsalt vaikse kuuga. Vähem päringuid ei ole iseenesest harva murettekitav: puhkused, ilm, majandus – alati on seletus, mis kõlab usutavamalt kui „vorm on katki“.

Hüpoteetiline ajajoon
  1. Päev 0
    Öösel käivitub rutiinne pistikprogrammi uuendus. Sait näeb välja täpselt nagu enne.
  2. Päev 1
    Saabub viimane sõnum. Keegi ei tea, et see on viimane.
  3. Päevad 2–13
    Külastajad saadavad vormi edasi ja näevad edasi teadet „Aitäh“. Postkasti ei jõua midagi.
  4. Päev 14
    Keegi helistab ja küsib kergelt ärritunult, miks tema päringule kunagi ei vastatud.
  5. Päev 15
    Põhjus leitakse tunni jooksul. Nende kahe nädala sõnumid on kadunud – kui vorm just koopiat ei säilitanud.
Mitte päris juhtum – kuid väga tüüpiline muster.

Tavalised põhjused

  • SMTP parool või e-posti teenuse pakkuja muutus. Vorm logib edasi sisse vanade andmetega ja meiliserver keeldub – külastaja jaoks vaikselt.
  • PHP mail() ilma autentimiseta. Veebiserver saadab kirju otse, ilma korralikku meiliserverisse sisse logimata. Paljud vastuvõtvad serverid peavad selliseid kirju kahtlaseks: need satuvad rämpsposti või lükatakse kohe tagasi.
  • SPF, DKIM ja DMARC ei ühti. Paljud vormid panevad külastaja aadressi From-väljale. Sõnum väidab siis, et see tuleb näiteks gmail.com aadressilt, kuid selle saadab teie veebiserver – just see, mida DMARC on loodud peatama.
  • Pistikprogrammi uuendus või teema vahetus rikub vormi või selle CAPTCHA. Muudetud mall jätab välja välja, skript enam ei laadi või CAPTCHA vidin ilmub ilma skriptita – ja iga saatmine kukub valideerimisel läbi.
  • Vastuvõttev postkast on täis. Meiliserver keeldub uutest sõnumitest ja tagastusteade läheb aadressile, mida keegi ei loe.
  • Küpsisebänner blokeerib vormi skripti. Kui nõusolekutööriist liigitab CAPTCHA või vormi skripti „turunduseks“, võivad küpsistest keelduvad külastajad saada vormi, mida ei saa saata või mille saatmised lükatakse tagasi puuduva tokeni tõttu.
  • Aegunud TLS-sertifikaat või domeen. Külastajad näevad brauseri hoiatust ja lahkuvad või meiliserverit ei saa enam turvaliselt kätte. Kui vastuvõtva postkasti domeen aegub, lakkavad sinna saadetud kirjad lihtsalt saabumast.
  • Vahemälukiht serveerib aegunud lehti. Täislehe vahemälu võib edastada vormi aegunud turvatokeniga (nonce või CSRF-token). Server lükkab saatmise tagasi ja olenevalt seadistusest ei näe külastaja selget viga.

From-aadressi lõks

Kolmas põhjus väärib lähemat vaatlust, sest paljudes vormiseadistustes on see vaikimisi sisse ehitatud. DMARC kontrollib, kas nähtava From-aadressi domeen vastab domeenile, mille eest SPF või DKIM tagavad. Kui vorm saadab sõnumi külastaja aadressilt „nimel“, ei ole teie serveril õigust selle domeeni nimel saata, seega kontroll ebaõnnestub. Olenevalt külastaja domeeni DMARC-poliitikast ja teie enda e-posti teenuse pakkujast satub sõnum rämpsposti või lükatakse tagasi. Parandus on lihtne: saatke oma domeeni aadressilt ja pange külastaja aadress välja Reply-To. Nupu „Vasta“ klõpsamine jõuab ikkagi külastajani.

Kaks viisi sama vormisõnumi saatmiseks
Habras
  • From: külastaja aadress
  • Reply-To puudub
  • PHP mail() otse veebiserverist
  • Saatval domeenil puuduvad SPF, DKIM ja DMARC
  • Sõnum on olemas ainult e-kirjana
Töökindel
  • From: teie enda domeeni aadress, nt form@yourdomain
  • Reply-To: külastaja aadress
  • SMTP autentimisega või saatmisteenus
  • SPF, DKIM ja DMARC on seadistatud ja ühtivad
  • Koopia salvestatakse ka andmebaasi
Parempoolne veerg ei nõua peaaegu rohkem tööd – see on enamasti seadistamise küsimus.

Mida teha

  1. 1Saatke regulaarselt oma vormi kaudu testsõnum – vähemalt kord kuus ning alati pärast uuendusi, teema vahetust või e-posti seadete muutmist. Märkige see selgelt testiks, et keegi sellele ei vastaks.
  2. 2Teadke oma tavalist rütmi. Kui vorm toob tavaliselt mõne sõnumi nädalas, on kahenädalane vaikus põhjus kontrollimiseks, mitte vaikne kuu.
  3. 3Saatke SMTP kaudu autentimisega – oma e-posti teenuse pakkuja või spetsiaalse saatmisteenuse kaudu –, selle asemel et loota PHP funktsioonile mail().
  4. 4Kasutage väljal From oma domeeni ja väljal Reply-To külastaja aadressi. Seejärel seadistage selle domeeni jaoks SPF, DKIM ja DMARC, et sõnumid läbiksid kontrollid.
  5. 5Hoidke iga saatmise koopiat andmebaasis. Paljud vormipistikprogrammid pakuvad seda, mõnikord lisamoodulina. Kui e-post ei tööta, on päringud ikkagi alles.
  6. 6Kontrollige vormi pärast iga pistikprogrammi uuendust – sealhulgas CAPTCHA-t ja ka küpsistest keeldumise korral.

Selliseid kontrolle on lihtne unustada, mistõttu tasub need automatiseerida. Konto ja kinnitatud domeeni korral saab formexposed saata selgelt märgistatud testsaatmise ja kontrollida, kas see tegelikult kohale jõuab (kohaletoimetamise kontroll, ainult nõusolekul). See tuvastab ka vaikuse – vormi, mis tavaliselt sõnumeid saab, kuid äkki enam ei saa – ning kontrollib teavituskirjade SPF-i, DKIM-i ja DMARC-i ning TLS-sertifikaadi ja domeeni aegumist. Hoiatuse saate ainult siis, kui midagi muutub.

Kui soovite lihtsalt esimest pilku heita: tasuta kontroll saidil formexposed.com ei vaja kontot ega saada midagi. Muu hulgas näitab see, kas CAPTCHA on olemas, kuid katki – vidin ilma skriptita, avalik testvõti, vead brauseris –, mis on üks vaiksemaid viise, kuidas vorm töötamast lakkab. Seda, kas sõnumid tõesti kohale jõuavad, saab kinnitada ainult päris testsõnum, nii et saatke see täna.