Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/mu-plugins/gkphp.php on line 1
Klickbar mailto länk utan att få skräpmail från spambots « Javascript « Daniel Liljeberg
Warning: count(): Parameter must be an array or an object that implements Countable in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-includes/post-template.php on line 284

Warning: count(): Parameter must be an array or an object that implements Countable in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-includes/post-template.php on line 284

Klickbar mailto länk utan att få skräpmail från spambots

28 augusti, 2009 av Daniel Liljeberg Lämna en kommentar »

Borta är dagarna då en publik hemsida utan att bry sig om otrevliga konsekvenser kunde ha en mailto länk som kontaktväg. Spambots som crawlar websiter, samlar in mailadresser och skickar spam till dessa har gjort att folk fått börja tänka på alternativa sätt att förmedla sin mailadress. En del ersätter möjligheten med ett kontaktformulär och kör captcha validering för att undvika att botar fyller i formuläret. Andra lägger helt enkelt in en bild med texten för mailadressen istället. Det finns flera lösningar på “problemet” men det alla dessa har gemensamt är att de försvårar. Inte bara för en spambot utan även för vanliga användare som faktiskt vill komma i kontakt med ert företag eller dig som person. Antingen måste de spendera tid med att fylla i ett formulär och försöka tyda en captcha som oftast är allt annat än lätt tolkad. Eller så måste de skriva av din mailadress ifrån en bild. Båda dessa försvårar och drar ner helhetsintrycket av användarens besök på din site. Tänk om man kunde ha en klickbar mailto länk utan att vara rädd för att spambotarna snor den och skickar skräpmail i sådana mängder att den enklaste lösningen till sist blir att byta företagsnamn och domänadress.

Självklart finns det sådana möjligheter. För att inte kräva något extra från användaren så brukar jag själv använda mig av javascript för att klara av detta. Det är faktiskt extremt enkelt och gör att länken utåt mot användaren fungerar precis som vanligt. Men en bot har mycket svårare att tyda den. Observera att OM boten vet vad den letar efter så kan de crawla även detta.För att göra det så jobbigt som möjligt så gör man därför klokt i att inte lägga koden direkt i länken som i exemplet nedan utan i en funktion i en javascript fil. Sedan förhindrar man direkt åtkomst till dessa via sin .htaccess fil så att folk inte direkt kan ladda den och titta efter lösningen där.

För att få en “säker” mailto länk the quick and dirty way så gör du följande

<a href="#" onclick="var username='foo'; var domain='bar'; var countrycode='se'; this.href='m'+'a'+'i'+'l'+'t'+'o:'+username+'@'+domain+'.'+countrycode;">Skicka mail genom att klicka här!</a>

Istället för “Skicka mail genom att klicka här!” kan man självklart ha sin mailadress, men då blir det lite för lätt att plocka ut den. Via detta kommer man iaf inte att kunna göra på det “enkla” sättet, vilket ofta är att crawla en site för just “mailto:” och extrahera mailadressen därefter. Skulle man göra detta här skulle man inte få ut något som gick att använda för att skicka spm till dig iaf.

Om man, som jag nämde innan vill vara ännu säkrare så gör man följande

"]// Function placed in js filefunction getFooMailLink(linkelement) {  var username = 'foo';  var domain = 'bar';  var countrycode = 'se'  linkelement.href='m'+'a'+'i'+'l'+'t'+'o:'+username+'@'+domain+'.'+contrycode;}

På html sidan skriver du sedan bara

<a href="#" onclick="getFooMailLink(this)">Skicka mail genom att klicka här!</a>

Nu kommer enkelheten hos mailto länkarna att finnas till hands för era besökare men ni slipper de jobbiga “överraskningarna” som är associerade med att använda dem. Det finns säkerligen en hel del andra lösningar också på detta så dela gärna med er.

Flattr this!

Annonser

Kommentera

Du måste vara inloggad för att kunna posta kommentarer..