Bei anonymen Benutzern gibt das Makro den Text so aus, wie er als Parameter übergeben wurde.
Bei angemeldeten Benutzern verarbeitet das Makro die übergebene Zeichenkette:
- Folgende komplett groß geschriebene Worte werden ersetzt:
AT
@
DOT
.
DASH
-
- Andere komplett groß geschriebene Worte wie z.B. NO SPAM NOSPAM WASAUCHIMMER ICH WILL KEINEN SPAM usw. werden einfach weggeworfen (also durch einen Leerstring ersetzt).
- Danach werden die Leerzeichen entfernt.
Zuguterletzt wird daraus ein anklickbarer mailto:-Link generiert.
Es besteht natürlich die Gefahr, dass ein besonders schlauer Spam-Bot vielleicht übliche Sachen wie AT und DOT und NOSPAM auch schon erkennen kann und entsprechend umformt.
Was aber die Sache wirklich schwierig macht, ist, dass man beliebige Worte einstreuen kann und auch beliebig Leerzeichen einstreuen kann.
Der Spam-Bot, der das noch erkennen kann, hat sich die E-Mail dann quasi redlich verdient.
Man kann die Funktionsweise von MailTo gut sehen, wenn man diese Beispiele als angemeldeter und nicht angemeldeter Benutzer vergleicht:
<<MailTo(Vorname DOT Nachname AT example DOT net)>> ergibt: <Vorname DOT Nachname AT example DOT net>
<<MailTo(Vorname . Nachname AT exa mp le DOT n e t)>> ergibt: <Vorname . Nachname AT exa mp le DOT n e t>
<<MailTo(Vorname ICH WILL KEINEN SPAM . Nachname@example DOT net)>> ergibt: <Vorname ICH WILL KEINEN SPAM . Nachname@example DOT net>
<<MailTo(Vor name ICH Nachname WILL AT KEINEN SPAM example DOT n e t)>> ergibt: <Vor name ICH Nachname WILL AT KEINEN SPAM example DOT n e t>
<<MailTo(Vorname DOT Nachname AT example DOT net, "Ich, meinereiner und ich selbst")>> ergibt: Ich, meinereiner und ich selbst <Vorname DOT Nachname AT example DOT net>
Wieviel jeder Eigentümer einer Mailadresse den nicht-angemeldeten menschlichen Benutzern zumuten will, sei jedem selbst überlassen. Wer es selbst für den menschlichen Leser schwierig macht, bekommt eben weniger E-Mail.