Hide mailto

Door Olaf Lederer, 18 jaar geleden, 4.172x bekeken

Met deze functie is bestaat de mogelijkheid e-mail links op je website voor zogenoemde spam-bots te verbergen. Bij gebruik van deze functie wordt een e-mail adres in Unicode waardes omgezet en de html link tag wordt toegevoegd. Optioneel is het mogelijk een subject en/of standaard tekst toe te voegen. Klik op de demo link voor een voorbeeld en extra informatie (in het engels).

Voorbeeld: http://www.finalwebsites.com/demos/hide_mail_address.php

Gesponsorde koppelingen

PHP script bestanden

  1. hide-mailto

 

Er zijn 51 reacties op 'Hide mailto'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Niek s
niek s
18 jaar geleden
 
0 +1 -0 -1
dit zocht ik!!!
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Niek, geen garantie voor slimme spam-bots :-)
Mitch X
Mitch X
18 jaar geleden
 
0 +1 -0 -1
Lache :)
Bram Z
Bram Z
18 jaar geleden
 
0 +1 -0 -1
eigenlijk dom want als je php hebt kan je van de eerste keer contact script gebruiken ...


18 jaar geleden
 
0 +1 -0 -1
<a href="mailto:vedelaar@gmail.com?subject=hoi&body=hoi">hoi</a>
als uitkomt krijg ik dit :s
in de html staat het wel goed maar in dat tekstvakje niet onder voorbeeld :s
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Derk, dat is ook de bedoeling... bekijk maar de source van de pagina, dan zie je hetzelfde.
Robin
Robin
18 jaar geleden
 
0 +1 -0 -1
Nog makkelijker om niet op spambots te komen..

een jpgje maken van je mail adres.. voor de rest mailen ze maar zelf ^^

Het nadeel aan outlook is dat niet iedereen het gebruikt (kijk naar mij). Ik gebruik altijd webmail doordat ik het overal kan gebruiken en niet mn webmail box leeg wordt gezogen door outlook! Dus je heb altijd backups bij de hand!
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Robin,
ik gebruik de mailclient van mozilla op en imap mailserver, op deze manier is mijn mail ook overall te benaderen (zelf met webmail). Ik zie webmail als de laatste mogelijkheid. Een plaatje is in dynamische tekst moeilijker in te werken. Maar het plaatje is zeker ook een oplossing...


18 jaar geleden
 
0 +1 -0 -1
Ik gebruik gmail en dat werkt goed met het mailto: script. Je moet alleen wel gmail notifier installeeren maar dat is een écht kleine mini tool


18 jaar geleden
 
0 +1 -0 -1
aan olaf (vergat ik daarnet) in de bron staat het goed maar er staat daar zo'n tekstvak waar de code in moet komen in het voorbeeld en daar krijg ik een rare uitkomst het gewone en niet met al die cijfertjes en mij leek dat er dat iets met al die cijfertjes moet komen
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Derk, dat is wel de bedoeling... wil je deze "code" hier gaan posten?
Bas Kreleger
Bas Kreleger
18 jaar geleden
 
0 +1 -0 -1
voor de mensen die het niet meteen snappen (zoals ik :p) het staat in de broncode gecodeerd :o)


18 jaar geleden
 
0 +1 -0 -1
dit is wat je in de bron ziet ipv een emailadres:

mailto:&#116&#101&#115&#116&#64&#101&#120&#97&#109&#112&#108&#101&#46&#99&#111&#109

het emailadres wat ik invoerde was test@example.com en dit maakt ie ervan.

grappig hoor...
De VeeWee
de VeeWee
18 jaar geleden
 
0 +1 -0 -1
Olaf:
Derk, dat is wel de bedoeling... wil je deze "code" hier gaan posten?


olaf:

laat alle & in je textarea eens vervangen door &amp; dan krijg je in het textvak de juiste htmlcode.. (
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php str_replace("&", "&amp;", $textarea); ?>
of iets dat erop trekt :p)

voor de rest ziet het er wel goed uit
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Tom,
Dat is juist de magie... wat in de source te zien is kunnen enkele spambots niet herkennen als mail adres. De link werkt wel zo als het moet.

VeeWee, het enige wat ik vandaag gewijzigt heb (volgens w3) zijn de ampersands van de querystring, de andere ampersands moeten daar wel bliven staan...


18 jaar geleden
 
0 +1 -0 -1
spambots kunnen geen javascript, een betere beveiliging zou zijn:

<script language="Javascript" type="text/javascript">
<!--
document.write("<a href='mail")
document.write("to:")
document.write("
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($user); ?>
")
document.write("@")
document.write("
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($domain); ?>
")
document.write("?subject=")
document.write("
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($subject); ?>
")
document.write("'>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($linktxt); ?>
")
document.write("</a>")
//-->
</script>
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Ok, I heb ik eerder ook gebruikt... maar wat is als de client geen JS ondersteund?

:-)

Oh... en dat zijn ook een paar bytes meer te downloaden


18 jaar geleden
 
0 +1 -0 -1
tog maar ff een scriptje gemaakt :P

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php

function safeMail($email, $subject = null, $linktxt = null) {
   $return_str = "";
   $email_array = explode("@", $email);
   $user = $email_array[0];
   $domain = $email_array[1];
   $textmail = textMail($email);
   if (!$linktxt) {
      $linktxt = $textmail;
   }

   $return_str .= "
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
       document.write(\"<a href='mail\")
       document.write(\"to:\")
       document.write(\""
. $user . "\")
       document.write(\"@\")
       document.write(\""
. $domain . "\")
       document.write(\"?subject=\")
       document.write(\""
. $subject . "\")
       document.write(\"'>"
. $linktxt . "\")
       document.write(\"</a>\")
    //-->
    </script>
   "
;
   $return_str .= "<noscript>\n" . $textmail . "\n</noscript>\n";
   return $return_str;
}

function
textMail ($email) {
   $return_str = $email;
   $return_str = str_replace("@", " at ", $return_str);
   $return_str = str_replace(".", " dot ", $return_str);
   return $return_str;
}


echo("Reacties? " . safeMail("postmaster@intranet.lan", "test", "Mail") . " me!");

?>


18 jaar geleden
 
0 +1 -0 -1
Jama, als bots geen javascript kennen, dan komen ze dus bij <noscript> uit - waar dus in de broncode (en dit is hilarisch) gewoon de mailto:postmaster@intranet.lan staat :-P
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Dat begrijp ik niet helemaal, hoezo komt in de broncode de e-mail adres te voorschijn?
DaeDaluz
DaeDaluz
18 jaar geleden
 
0 +1 -0 -1
in de <noscript> staat 'postmaster at intranet dot lan' lijkt mij...
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
lijkt mij niet zo... Het bestand is altijd hetzelfde, alleen de verschillende browsers begrijpen de inhoud verschillend. En de noscript tag moet ook ogegeven zijn...
Legolas
Legolas
18 jaar geleden
 
0 +1 -0 -1
de zekerste methode is uiteindelijk mail aliassen gebruiken :P
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Legolas,

wat is den een reden om mijn manier niet te gebruiken?
Legolas
Legolas
18 jaar geleden
 
0 +1 -0 -1
ik heb jouw manier in de noscript staan op mijn functie, die laatste opmerking was om te zeggen dat niks echt werkt ;)
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Daar heb je natuurlijk gelijk, ik vind wel dat een site ook zonder JS moet kunnen werken (nog nooit een noscript tag gebruikt), al zeker bij eenvoudige dingen zoals een e-mail adres.
DaeDaluz
DaeDaluz
18 jaar geleden
 
0 +1 -0 -1
oeh met mijn post keek ik naar legolas zn post o.O


18 jaar geleden
 
0 +1 -0 -1
Het schijnt dat via mijn formulier (volledig in PHP) spam verstuurd wordt door derden. Hoe is dit tegen te gaan?
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Staat de email functie in je contact form script en gebruik je $_SERVER['PHP_SELF'] um je form te posten? gebruik je post in plaats van get?

misschien kan je vertellen waat het formulier staat...
Hannah B
Hannah B
18 jaar geleden
 
0 +1 -0 -1
Oei wat een lappen code voor zoiets simpels! Daarom schrikt php mij zo af, ondanks de handigheden. Op mijn sites heb ik gewoon '@'vervangen door &#64;
DaeDaluz
DaeDaluz
18 jaar geleden
 
0 +1 -0 -1
Eeuhmz dus op jouw site staat steeds plof &#64; hotmail.com ipv een normaal email adress :?
Legolas
Legolas
18 jaar geleden
 
0 +1 -0 -1
dat werkt niet :P
Joris van Rooij
Joris van Rooij
18 jaar geleden
 
0 +1 -0 -1
hee leuk, ik ben hier ook mee bezig geweest een paar dagen geleden. Ik zal ff posten hoe ik het heb gedaan, het komt verassend bijna op het zelfde neer:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
    $email
= 'ikke@test.domein.com';
    $emailpieces = explode('@', $email);
    $emailstring .= strtolower($emailpieces[0]);
    $emailstring .= ' at ';
    $emailpieces2 = explode('.', $emailpieces[1]);
    foreach ($emailpieces2 as $emailpiece2) {
      if ($emailpiece2 == $emailpieces2[0]) {
        $emailstring .= strtolower($emailpiece2);
      }
else {
        $emailstring .= ' dot '.strtolower($emailpiece2);
      }
    }
  function
hexentities($str) { //php.net
    $return = '';
    for($i = 0; $i < strlen($str); $i++) {
      $return .= '&#x'.bin2hex(substr($str, $i, 1)).';';
     }

     return $return;
  }
  function
cloakmail($string) {
    $array = preg_split('//', $string);
    foreach ($array as $key) {
      if (rand(0, 1) == 1) {
        $return .= hexentities($key);
      }
else {
        $return .= $key;
      }
    }

    return $return;
  }

  echo cloakmail($emailstring);
?>


Je hebt hier dus geen linkje. Ik wilde wat maken in de trant van de email dingen van php.net. Het is vrij aardig gelukt zou je zo zeggen.
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
JoRRiZZa,
waarin zie je het voordeel ten opzichte van mijn script? (dit staat bovenaan, maar 15 regels code)
Joris van Rooij
Joris van Rooij
18 jaar geleden
 
0 +1 -0 -1
nou, de spambots die ik tot nu heb gezien kunnen wel degelijk hex lezen, dus heb ik er voor gekozen om random hex en ascii door elkaar te gebruiken. Ook omdat het adres eerst wordt omgezet naar "blaat at domein dot suffix" en dan naar hex+ascii is het bijna onmogelijk om als spambot zijnde het nu nog snel te decoderen. Maar ja, jouw script heeft weer als voordeel dat je werkelijk kunt klikken. Omdat dit lapje code leuk past in dit onderwerp, vond ik het wel misschien een leuk idee om het hier neer te zetten. Wie weet heeft iemand er ooit wat aan.
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Dit lijkt de oplossing:
maak een bestand en noem het (b.v.) mail.php en plaats deze code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
header("Location: mailto:info@phphulp.nl");
exit;
?>

en gebruik deze code in je html:
<a href="mail.php">test mail</a>


18 jaar geleden
 
0 +1 -0 -1
als je toch php hebt, kan je net zo goed (vin ik :D) een mailformulier gebruiken dat is veel makkelijker, en ook een stukje mooier. Maar toch handig als je geen zin heb om dat te maken :P

laterz

Olaf, dat is de oplossing (als ik het zo bekijk)
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
precies peter,

het voordeel van een e-mail link is dat je de verzonden mail via de mail client kan benaderen. Ik ben zelf ook voor geheime mail adressen ;-)

Je kan alles beschermen met dit soort functies en toch krijg je met de tijd de spam binnen :-(


18 jaar geleden
 
0 +1 -0 -1
waar moet je die code dan neer zette :S ???
Olaf Lederer
Olaf Lederer
18 jaar geleden
 
0 +1 -0 -1
Jan, de functie kan je ergens in het bestand plaatsen (ik heb de functies altijd bij het begin staan) en de voorbeeld code waar je de link wil hebben.


17 jaar geleden
 
0 +1 -0 -1
The output is not XHTML valid. The line inside the foreach() iteration sould be changed to $new_mail .= "&#".ord($val).";";
Olaf Lederer
Olaf Lederer
17 jaar geleden
 
0 +1 -0 -1
Mike, bedankt dat is de reden dat het soms niet goed gaat... ik zou het gelijk wijzigen.
YStec
YStec
17 jaar geleden
 
0 +1 -0 -1
ik heb hier zitten lezen... ik had dus gister een site gezien, en gelukkig stond het nog in de browserhistory:

http://www.safeemail.org/hide-email.php
-> hier zie je een php code, die een plaatje genereert en die dan weergegeven wordt, byzondere is dat de tekst achterstevoren is geschreven, dus msn@gmail.com wordt geschreven als moc.liamg@nsm .

Je kunt de lettertype kleur en achtergrondkleur ook veranderen...
ik weet niet wat de systemspecs ervan is.
hoop dat er iemand iets aan heeft..
Olaf Lederer
Olaf Lederer
17 jaar geleden
 
0 +1 -0 -1
zeker veilig maar de bezoeker moet dan de adres in tikken. het beste is dan waarschijnlijk een contact formulier...
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
Een contact formulier is dan denk ik inderdaad het beste en dan het liefste met een limiet per ip :P

btw: meest übercommented script :), je hebt een trent gezet :P

edit: overigens is de mtehode van songteksten.net beter dan die van http://www.safeemail.org/hide-email.php, beter geëncodeerd mail adres dan achterstevoren :)
Olaf Lederer
Olaf Lederer
17 jaar geleden
 
0 +1 -0 -1
boaaah, wat een aantal comments ... hehe
YStec
YStec
17 jaar geleden
 
0 +1 -0 -1
-----
Olaf Lederer schreef op 17.08.2005 08:05
zeker veilig maar de bezoeker moet dan de adres in tikken. het beste is dan waarschijnlijk een contact formulier...
---
(code = mail.php)
ne dat hoeft dus niet, je kopieert de phpcode, en maakt een image tag aan met:
<img src="mail.php?m=moc.liamg@nsm"> je ziet dan een plaatje...
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
dus? dan moet je nog het email adress intikken als je er een mailtje naar wilt sturen...
Olaf Lederer
Olaf Lederer
17 jaar geleden
 
0 +1 -0 -1
Plus dat de email adres opnieuw in de html code te zien is... echt slim bedacht.
Van Dijk
van Dijk
14 jaar geleden
 
0 +1 -0 -1
Sommige spam-bots kunnen dat ook lezen:P
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Olaf Lederer
Olaf Lederer
14 jaar geleden
 
0 +1 -0 -1
Hi Schreef,

het script is intussen bijna 3 jaar oud :)

'tuurlijk worden de bots steeds slimmer...(waren zij in 2004 al)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. hide-mailto

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.