Kaip užmaskuoti elektroninio pašto adresus

http://sum.lt/straipsniai/uzmaskuoti_adresai.php

Kaip apsaugoti interneto svetainėse pateikiamus elektroninio pašto adresus nuo SPAM'o robotų? Pateikiamas vienas adresų maskavimo būdų.

SPAM'o robotai?!!

Tuk tuk tuk...
— Kas ten?..
— SPAM'o robotas

Šiandien niekam nereikia aiškinti, kas yra SPAM'as — kiekvienas, bent kiek aktyviau veikiantis interneto erdvėje, jį yra patyręs „savo kailiu“. Didžioji dauguma elektroninio pašto adresų yra surankiojama SPAM'o robotais, nenuilstamai landžiojančiais interneto platybėse. Kaip nuo jų apsisaugoti?

Pats efektyviausias apsaugos būdas...

...neatspėsite, koks. — Tiesiog savo elektroninio pašto adreso neskelbti niekur. T. y. jokiose interneto svetainėse, jokiuose forumuose ir pan.

Taip jūsų adresas bus saugus. Tiksliau, sąlyginai saugus — kompiuteryje ar tarnybinėje stotyje „prasisukęs“ virusas gali suteikti jūsų adresui antrąjį gyvenimą. Tada jūs daug ir intensyviai būsite kviečiamas pirkti nesakysiu kokių prekių ir lankytis nesakysiu kokiose svetainėse :-)

Tačiau, ką daryti, jei vis tik reikia viešai paskelbti savo elektroninio pašto adresą? Yra keletas labai paprastų būdų.

Kiti būdai

Galima vietoj ženklo @ naudoti jį atitinkantį žodį — „at“ (angl.), „ant“ ir pan. Pavyzdžiui, john.doe at example.com; arba jonas ant example.net; arba jonas [ant] example [taškas] net. Ir panašiai.

Simbolis @ reiškia angliškąjį žodį „at“, pvz., „at home“ — namie. Nepriimtini simbolio pavadinimai šnekamojoje kalboje — „kopūstas“, „sabaka“ (šuo — rus.). Taip pat nevartotinas labai paplitęs pavadinimas „eta“ — Eta yra graikų kalbos raidė (didžioji Η, mažoji η) ir yra visai nepanaši į šį simbolį.

Kitas metodas — elektroninio pašto adrese įterpti akivaizdžiai nereikalingus žodžius, kuriuos rašantysis laišką pats ištrins. Pavyzdžiui: anzNESPAMINKelmas@example.com (šiuo atveju turėtu būti ištrintas žodis „NESPAMINK“).

Dar vienas būdas — vietoj elektroninio pašto teksto naudoti paveikslėlį. Tačiau toks naudojimas ne visur bus patogus ar net techniškai neįmanomas.

Paminėsiu dar vieną būdą, reikalaujantį žmogaus dalyvavimo ir neįkandamą mašinai — CAPTCHA. Elektroninis adresas pateikiamas tik po lankytojo patikrinimo — ar jis žmogus, ar mašina — kai įvesties laukelyje pakartojamas šalia rodomo paveiksliuko tekstas. Daugiau informacijos rasite paieškos sistemose įvedę raktinį žodį captcha (angl.).

Reikia pastebėti, kad visi šie metodai turi trūkumų. Jų naudojimas apriboja funkcionalumą — lankytojas (o kai kam kiekvienas lankytojas — potencialus klientas) turi „rankutėmis“ taisyti ar įvesti adresą pašto savo programoje. Ne visi lankytojai supras tokius adresų užrašymus. Įvyks kuriozinė situacija, kai svetainės lankytojas skambins telefonu, kad sužinotų elektroninio pašto adresą. Arba dar blogiau — kliento rašyti laiškai pateiktuoju adresu iš vis bus neišsiųsti jo pašto programos arba sugrįš su žyme „Status: undeliverable“.

Problema

Kaip pateikti elektroninio pašto adresus svetainėje kartu neprarandant funkcionaliumo ir nepatenkant „spameriams“ į nagus? — Sprendimas yra!

Geriausias sprendimas

puikiai užsimaskavęs @Elektroninio adreso maskavimui pasinaudosime JavaScript galimybėmis.

Esmė trumpai. Norėdami tam tikroje puslapio vietoje įterpti adresą, iššauksime funkciją, kuri tą adresą sugeneruos (ir atvaizduos). O HTML byloje esantis kodas bus „neįkandamas“ robotams.

Parašykime laišką Jonui iš ankstesnio pavyzdžio — tam, kur [ant] example [taškas] com :-)

JavaScript

Pradžioje parašysiu visą funkcijos kodą, o paskui po eilutę „išnarstysiu“.

<script type="text/javascript">
	function mails (z, kas, dl2, dl1) {
		var full=kas + "@" + dl2 + "." + dl1;
		document.write('<a href="mailto:' + full + '">' + z + '</a>');
	}
</script>

Paaiškinimai:
mails — kuriamos funkcijos pavadinimas (jei kam nepatinka manasis anglo-žemaitiškas pavadinimas, galite laisvai naudoti bet kokį).
z — funkcijos kintamasis, tekstas, kuris bus matomas ekrane, ir kuris turės nuorodą į elektroninio pašto adresą. Iškviečiant funkciją jokiu būtu nepriskirkite šiam kintamajam tikrosios elektroninio pašto adreso reikšmės, nes visas šis mūsų „triūsas“ bus veltui.
kas — funkcijos kintamasis, elektroninio adreso dalis iki ženklo @
dl2 ir dl1 — kintamieji, atitinkamai antro ir pirmo lygio adresų sričių pavadinimai
full — kintamasis, kuriam funkcija priskiria pilno elektroninio pašto adreso reikšmę
document.write() — JavaSript metodas.

Kaip matome funkcijos veikimas labai paprastas — funkcija gauna kintamuosius, juos apjungia į vieną elementą ir įrašo nuorodą dokumente — funkcijos iškvietimo vietoje.

Pastaba:
šis JavaScript kodas gali būti įterptas bet kurioje HTML bylos vietoje tačiau būtinai prieš iškviečiant pačią funkciją.

HTML

Nuorodą tekste visada įterpsime tokiu būdu (pavyzdys):

<p>Parašyk <script type="text/javascript">
mails ("Jonui", "jonas", "example", "com")
</script> laišką

Štai ir viskas!

Rezultatas

Parašyk laišką.

Patobulinimai

Čia pateikiau patį paprasčiausią maskavimo pavyzdį. Galimi įvairiausi patobulinimai. Iškviečiant funkciją galima papildomai pridėti laiško temą (?Sub=), title atributą ir pan. Taip pat galima atidaryti nedidelį naują langelį, kuriame elektroninio pašto adresas bus matomas vizualiai — tas naudinga, jei lankytojas nenori rašyti laiško tiesiog dabar, o tik įsiminti ar išsisaugoti kontaktinį adresą. Pastarasis sprendimas yra realizuotas šios svetainės kontaktų skyrelyje.