• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Email codieren

Status
Für weitere Antworten geschlossen.

Zoepfli

Neues Mitglied
folgende problematik.
um Harvestern die arbeit zu erschweren, möchte ich Emailadressen auf meiner Page in Hexcode und Dezimalcode ausschreiben. in reinem html funktioniert das problemlos.
da ich aber in html nicht alles hinbekomm, benutze ich einen ziemlich aufwendigen Editor, der für viele Dinge Scripts benutzt. Füge ich nun in dieses Script "mailto:adresse" in hexcode oder dezimalcode ein, steht dieser Code am ende auch im mailprogramm im Adressfeld.
vieleicht kann mir ja mal jemand sagen, warum das so ist, oder wie ich dieses Problem löse

Gruss Zoepfli
 
Hexcode und Dezimalcode? Was denn nun? Und wie sieht so ein Link in deinem erzeugten HTML-Code aus?
 
mailto:[email protected]">[email protected]

so sieht der code aus. schreibt man ihn in eine html-Seite, kommt klartext an der Anzeige raus, aber der Harvester kann nicht so viel damit anfangen, da er nach dem @ Symbol schaut und dann alle schriftzeichen davor und danach kopiert... (aus dem Quelltext)
 
Achso. Sowas meinst Du. Ja, das ist völlig logisch. Die E-Mail-Adresse wird mit HTML-kodierten Zeichen ausgegeben welche dann auch per mailto: an das Mailprogramm übergeben werden. Das ist folglich keine Möglichkeit um sauber das Spam-Problem zu umgehen.

Kleiner Tipp: maskiere diese E-Mail-Adressen lieber mit JavaScript. Das können bisher imho keine Spam-Bots ausführen.

Code:
document.write('<a href="mailto:[email protected]">E-Mail</a>');
 
äham... :smile:
da ich ja von script nicht viel Ahnung hab muss ich nu doch noch mal nachhaken.
dokument.write. bedeutet doch, das es auf der Internetseite ausgeschrieben wird?
bei mir ist das anders. hab nen Email-Button mit onmouseover und onmouseclick und würde gerne bei betätigung, quasi onmouseclick mailto:name@adresse codiert in den Quelltext reinschreiben. Laut Daniel Rehbein ne gute Sache... siehe Info zum Thema.

Gruss Zoepfli... ich hoffe ich bin wirklich nicht zu blöd dafür :grin:
 
Ja, document.write schreibt direkt in die Seite rein.

Das mit onmouseover und onclick klingt durchaus nachvollziehbar. Dort wo du das her hast müsste es doch eine komplette Lösung dafür geben ;-) Ist jedenfalls nichts so einfaches wie das document.write.
 
beschrieben ist die emailfunktion (adobe golive) einfach statt dem normalen Link, die email-adresse reinschreiben... mit mailto: natürlich. aber der Hex- oder dezimalcode wird dann nimmer umgewandelt, wie in reinem html.

wenn ichs heute nimmer hinbekomm, ist es auch nicht so schlimm. Trotzdem danke für die Hilfe

Gruss Zoepfli
 
so, jetzt schreib ich mal noch den orginalcode hier rein, fals irgendwer noch über diese Problematik stolpert

Code:
	<head>
		<meta http-equiv="content-type" content="text/html;charset=utf-8" />
		<meta name="generator" content="Adobe GoLive" />
		<title>Unbenannte Seite</title>
		<style type="text/css" media="all"><!--
.dsR3 /*agl rulekind: base;*/ { width: 140px; height: 400px; }
#button_about_n { position: absolute; top: 50px; left: 10px; width: 120px; height: 32px; }
#button_gallery_n { position: absolute; top: 90px; left: 10px; width: 120px; height: 32px; }
#button_links_n { position: absolute; top: 130px; left: 10px; width: 120px; height: 32px; }
#button_email_n { position: absolute; top: 230px; left: 10px; width: 120px; height: 32px; }
#button_home_n { position: absolute; top: 10px; left: 10px; width: 120px; height: 32px; }
--></style>
		<csactions>
			<csaction name="5f5c4bd3" class="Goto Link" type="onevent" val0="../index.html" val1="top" urlparams="1"></csaction>
			<csaction name="5f8c2ab5" class="Target 2 Frames" type="onevent" val0="rm" val1="about_menue.html" val2="mm" val3="mainabout.html" urlparams="2,4"></csaction>
			<csaction name="662ada910" class="Goto Link" type="onevent" val0="[COLOR="Red"]mailto:%26#105;%26#x6E;%26#102;%26#111;@%26#x4D;%26#97;%26#x72;%26#x6B;%26#117;%26#x73;%26#90;%26#x6F;%26#x65;%26#112;%26#102;%26#108;i%26#46;de"[/COLOR] val1="" urlparams="1"></csaction>
		</csactions>
		<csscriptdict>
			<script type="text/javascript"><!--
CSStopExecution=false;
function CSAction(array) {return CSAction2(CSAct, array);}
function CSAction2(fct, array) { 
	var result;
	for (var i=0;i<array.length;i++) {
		if(CSStopExecution) return false; 
		var aa = fct[array[i]];
		if (aa == null) return false;
		var ta = new Array;
		for(var j=1;j<aa.length;j++) {
			if((aa[j]!=null)&&(typeof(aa[j])=="object")&&(aa[j].length==2)){
				if(aa[j][0]=="VAR"){ta[j]=CSStateArray[aa[j][1]];}
				else{if(aa[j][0]=="ACT"){ta[j]=CSAction(new Array(new String(aa[j][1])));}
				else ta[j]=aa[j];}
			} else ta[j]=aa[j];
		}			
		result=aa[0](ta);
	}
	return result;
}
CSAct = new Object;

function CSGotoLink(action) {
	if (action[2].length) {
		var hasFrame=false;
		for(i=0;i<parent.frames.length;i++) { if (parent.frames[i].name==action[2]) { hasFrame=true; break;}}
		if (hasFrame==true)
			parent.frames[action[2]].location = action[1];
		else
			window.open (action[1],action[2],"");
	}
	else location = action[1];
}


function CSPAKtrg2frames(action) { 
	parent.frames[action[1]].location.href = action[2]
	parent.frames[action[3]].location.href = action[4]
 }

function CSClickReturn () {
	var bAgent = window.navigator.userAgent; 
	var bAppName = window.navigator.appName;
	if ((bAppName.indexOf("Explorer") >= 0) && (bAgent.indexOf("Mozilla/3") >= 0) && (bAgent.indexOf("Mac") >= 0))
		return true; /* dont follow link */
	else return false; /* dont follow link */
}



function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}


function changeImagesArray(array) {
	if (preloadFlag == true) {
		var d = document; var img;
		for (var i=0; i<array.length; i+=2) {
			img = null; var n = array[i];
			if (d.images) {img = d.images[n];}
			if (!img && d.getElementById) {img = d.getElementById(n);}
			if (img) {img.src = array[i+1];}
		}
	}
}


function changeImages() {
	changeImagesArray(changeImages.arguments);
}



// --></script>
		</csscriptdict>
		<csactiondict>
			<script type="text/javascript"><!--
CSAct[/*CMP*/ '5f5c4bd3'] = new Array(CSGotoLink,/*URL*/ '../index.html','top');
CSAct[/*CMP*/ '5f8c2ab5'] = new Array(CSPAKtrg2frames,'rm',/*URL*/ 'about_menue.html','mm',/*URL*/ 'mainabout.html');
[COLOR="Red"]CSAct[/*CMP*/ '662ada910'] = new Array(CSGotoLink,/*URL*/ 'mailto:%26#105;%26#x6E;%26#102;%26#111;@%26#x4D;%26#97;%26#x72;%26#x6B;%26#117;%26#x73;%26#90;%26#x6F;%26#x65;%26#112;%26#102;%26#108;i%26#46;de','');[/COLOR]
var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		pre_button_about_d = newImage('../bilder/button_about_d.gif');
		pre_button_gallery_d = newImage('../bilder/button_gallery_d.gif');
		pre_button_links_d = newImage('../bilder/button_links_d.gif');
		pre_button_home_d = newImage('../bilder/button_home_d.gif');
		preloadFlag = true;
	}
}

// --></script>
		</csactiondict>
	</head>

	<body onload="preloadImages();" topmargin="0" leftmargin="0" bgcolor="white">
		<div class="dsR3" style=" position: relative; -adbe-g: p,10,10;">
			<div>
				<a onclick="CSAction(new Array(/*CMP*/'5f8c2ab5'));return CSClickReturn()" onmouseover="changeImages('button_about_n','../bilder/button_about_d.gif');return true" onmouseout="changeImages('button_about_n','../bilder/button_about_n.gif');return true" href="#" csclick="5f8c2ab5"><img id="button_about_n" src="../bilder/button_about_n.gif" alt="" name="button_about_n" height="32" width="120" border="0" /></a></div>
			<div>
				<a onmouseover="changeImages('button_gallery_n','../bilder/button_gallery_d.gif');return true" onmouseout="changeImages('button_gallery_n','../bilder/button_gallery_n.gif');return true" href="#"><img id="button_gallery_n" src="../bilder/button_gallery_n.gif" alt="" name="button_gallery_n" height="32" width="120" border="0" /></a></div>
			<div>
				<a onmouseover="changeImages('button_links_n','../bilder/button_links_d.gif');return true" onmouseout="changeImages('button_links_n','../bilder/button_links_n.gif');return true" href="#"><img id="button_links_n" src="../bilder/button_links_n.gif" alt="" name="button_links_n" height="32" width="120" border="0" /></a></div>
			<div>
				<a onclick="CSAction(new Array(/*CMP*/'662ada910'));return CSClickReturn()" href="#" csclick="662ada910"><img id="button_email_n" src="../bilder/button_email_n.gif" alt="" name="button_email_n" height="32" width="120" border="0" /></a></div>
			<div>
				<a onclick="CSAction(new Array(/*CMP*/'5f5c4bd3'));return CSClickReturn()" onmouseover="changeImages('button_home_n','../bilder/button_home_d.gif');return true" onmouseout="changeImages('button_home_n','../bilder/button_home_n.gif');return true" href="#" csclick="5f5c4bd3"><img id="button_home_n" src="../bilder/button_home_n.gif" alt="" name="button_home_n" height="32" width="120" border="0" /></a></div>
		</div>
	</body>

</html>


ich hoffe, das ist nicht zu verwirrend
 
Code:
document.write('<a href="mailto:[email protected]">E-Mail</a>');
geht gar nicht, denn Bots suchen nach einer Art E-Mail, das dort finden die hunderprozentig.

Die einfachste Methode ist statt @ einfach at zu schreiben. Spambots die nach "at" suchen, werden nie fertig.
 
ach ja Mädels und Jungs ich wart noch auf ne Lösung :-P
vieleicht gibts ja noch einen Crack, der damit zurechtkommt :-)
 
mailto:[email protected]">[email protected]

der Harvester kann nicht so viel damit anfangen, da er nach dem @ Symbol schaut und dann alle schriftzeichen davor und danach kopiert... (aus dem Quelltext)
Hmmm..erklär mir doch mal bitte:
a) Warum der Harvester dabei das Klammerefchen nicht finden sollte und
b) Was den Harvester daran hindert, die Zeichen alle in KLartext umzuwandeln, das ist ja nichts in irgendeiner außerirdischen Form codiertes, was da steht.

Kleiner Tipp: maskiere diese E-Mail-Adressen lieber mit JavaScript. Das können bisher imho keine Spam-Bots ausführen.

Code:
document.write('<a href="mailto:[email protected]">E-Mail</a>');
Ausführen nicht, aber die Mailadresse steht doch da im Klartext und ist für jeden Harvester lesbar. Wie soll das helfen?
 
Copy und Paste von einem Projekt;

Code:
addEvent(window, 'load', function () {
    var emails = getElementsByClassName("email", document.getElementById("site")); // im ersten Container, sonst document.body

    function replace_emails (node) {
        var first = node.firstChild;
        var email = first.nodeValue.replace(" at ", "@").replace(" punkt ", ".");
        var link  = document.createElement("a");
        link.href = "mailto:" + email;
        link.appendChild(document.createTextNode(email));
        node.replaceChild(link, first);
    }

    for (var i = 0, email; email = emails[i]; i++) {
        replace_emails(email);
    }
});
dann:
Code:
<span class="email">foo at bar punkt de</span>
unter Verwendung von: www.lubyte.de Git - javascript-q.git/blob - snippets/getElementsByClassName.js
Nicht perfekt aber war bis her immer ausreichend.

Ach und das gute alte addEvent().
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben