daß wir uns nicht falsch verstehen, ich möchte den Link nicht für
meine regulären Besucher „verstecken“, sondern für Programme die
das Web nach EMail-Adressen absuchen.
Ich hab mir gedacht, ich schreib einfach ein HTML-Formular in der folgenden Form:
darin rufe ich das Programm „mailto.php“ auf, der Quelltext folgt hier:
<?php // This script is free for all, feel free to <br /> // use and modify it as you want.
//
$email = "[email protected]";
$url = $HTTP\_REFERER;
if(isset($url))
{
/\* (1) \*/ header("Location: mailto:blush:email");
/\* (2) \*/ header("Location: $url");
}
?\>
Mein Problem ist, daß, wenn ich (1) ohne (2) aufrufe, funktioniert der Mailaufruf aber ich bekomme im Browser natürlich eine leere Seite angezeigt. Rufe ich (1) und (2) auf, erfolgt der Aufruf des Mailprogramms nicht. (Liegt wohl an der Ausführungszeit oder so)
Mein Problem ist, daß, wenn ich (1) ohne (2) aufrufe,
funktioniert der Mailaufruf aber ich bekomme im Browser
natürlich eine leere Seite angezeigt. Rufe ich (1) und (2)
auf, erfolgt der Aufruf des Mailprogramms nicht. (Liegt wohl
an der Ausführungszeit oder so)
Habs ausprobiert, und verhält sich wirklich lustig. Es wird jeweils der letzte header()-Aufruf ausgeführt (den ersten hätte ich ja noch verstanden).
Außerdem habe ich auch keine Lösung gefunden, aber vielleicht könntest dus es mit einem Frameset lösen, so dass zwei Seiten geladen werden: der obere Frame mit 1 Pixel Höhe führt das mailto: aus und der untere lädt die Seite.
Ich weiß, nicht sonderlich befriedigend, aber damit sollte es immerhin schon mal klappen.
Nö, ich hab was gegen Frames, einfach nicht mein Geschmack,
habs jetzt folgendermaßen gelöst:
<?php // mailto v1.0 by Kirchberger Manuel<br /> // "Give EMail-spammer-bots no chance
//
// This script is free for all, feel free to
// use and modify it as you want.
//
$email = "[email protected]";
$url = $HTTP\_REFERER;
?\>Mail-Aufruf
Es wird versucht, ihre Mail-Software zu öffnen, sollte sich das EMail-Fenster
nicht öffnen, klicken Sie bitte auf diesen
[**Link.**](mailto:<?php%20echo%20%24email;%20?>)
[Hier geht's zurück](%3C?php%2520echo%2520%2524url;%2520?%3E)
Ist zwar auch nicht gerade elegant, aber es funktioniert. Ich denke mal, da die Seite dynamisch über einen Formularaufruf generiert wird, dürfte der Inhalt mit der EMail-Adresse auch nicht in einer Suchmaschine auftauchen und somit nicht gefunden werden.
Hoffe ich zumindest.
Trotzdem danke für Deinen Rat!
MfG
Manuel
Habs ausprobiert, und verhält sich wirklich lustig. Es wird
jeweils der letzte header()-Aufruf ausgeführt (den ersten
hätte ich ja noch verstanden).
Außerdem habe ich auch keine Lösung gefunden, aber vielleicht
könntest dus es mit einem Frameset lösen, so dass zwei Seiten
geladen werden: der obere Frame mit 1 Pixel Höhe führt das
mailto: aus und der untere lädt die Seite.
Ich weiß, nicht sonderlich befriedigend, aber damit sollte es
immerhin schon mal klappen.
Ich hab mir gedacht, ich schreib einfach ein HTML-Formular in
der folgenden Form:
prima, der richtige Anfang.
/* (1) */ header(„Location: mailto:blush:email“);
Dir ist nicht bekannt, ob der Client das mailto-Protokoll überhaupt kennt; geschweige denn, ob ein Mailclient vorhanden, richtig konfiguriert und an einen verfügbaren SMTP-Server angeschlossen ist; und noch viel weniger, ob der Mailclient die übergebenen Daten dann auch versteht. Was Du hier tust ist genauso wenig sinnvoll, wie ein mailto-Formular - vrgl. http://www.praast.de/ffq/mailto.htm
Warum benutzt Du nicht einfach die mail()-Funktion von PHP?
/* (2) */ header(„Location: $url“);
HTTP erlaubt nur einen Location-Header. Wenn Du mehrere angibst, kannst Du das Verhalten eines Clients nicht mehr vorhersehen.
Mein Problem ist, daß, wenn ich (1) ohne (2) aufrufe,
funktioniert der Mailaufruf
Bei _Deinem_ System. Bei meinem auch?
weiß jemand eine Lösung, mit der es funktioniert?
Serverseitiger Mailversand. Alles(!) andere ist nicht praxistauglich. Allerdings kann der User zu Recht die Nennung einer Mailadresse erwarten; in einem mailto-Link kann er diese, wenn er kann, dann gleich verwenden.
Wie sieht denn Deine vollständige Lösung (serverseitig) aus?
Und wie sieht die Lösung aus, wenn ich 10 verschiedene Email-Links auf meiner Homepage habe?
Ich will, dass optisch der Link wie ein Email-Link aussieht, der Link aber keine Emailadresse und kein @ enthält. Das @ als GIF zwischen den verschiedenen Email-Namen einbauen geht nicht so leicht, da das optisch einfach nie gut aussieht (Höhe des GIF passt nie korrekt zum Text).
Friedrich
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]