Looking for Python code to obsfucate mailto links on web site

Dan Sommers me at privacy.net
Sun Jun 25 19:22:02 EDT 2006


On Sun, 25 Jun 2006 21:10:31 +0100,
Andrew McLean <andrew-news at andros.org.uk> wrote:

> I'm looking at putting some e-mail contact addresses on a web site,
> and wanted to make it difficult for spammers to harvest them.

[ ... ]

> Searching the web it looks like the best solution for me might be to
> embed JavaScript in the web page that dynamically generates the e-mail
> address in the browser client.

[ ... ]

> Now I could write suitable code myself, but would be surprised if it
> wasn't already available. Any pointers?

Pointers?  What do you think this is, C?  ;-)  Try this:

def spam_averse_email_address( email_address, text ):
    """return HTML-embedded javascript to create a spam-averse mailto link"""

    def char_codes( a_string ):
        return ",".join(str(ord(a_char)) for a_char in a_string)

    return """<script type="text/javascript">
<!--
document.write(
    '<a href="mailto:'
    + String.fromCharCode(%s)
    + '">'
    + String.fromCharCode(%s)
    + '<\/A>');
// -->
</script>""" % (char_codes(email_address), char_codes(text))

The newlines within the triple quoted string are important; use that
function something like this:

    print "<html>"
    print "<head><title>Title</title></head>
    print "<body>
    print "<P>%s</P>" % spam_averse_email_address( 'email at mydomain.com',
                                                   'click here to email me' )
    print "</body>"
    print "</html>"

You mentioned accessibility; make sure that your HTML does something
sensible if the user's browser doesn't do javascript.

HTH,
Dan

-- 
Dan Sommers
<http://www.tombstonezero.net/dan/>
"I wish people would die in alphabetical order." -- My wife, the genealogist



More information about the Python-list mailing list