良好的电子邮件链接保护方法

时间:2011-04-10 03:35:32

标签: php javascript html email encryption

你们可以发布电子邮件链接垃圾邮件保护方法(用php或javascript)吗?

基本上我想在网页上加上“mailto”链接,比如

<a href="mailto:pony@fuu.com">E-mail me</a>

但我不希望垃圾邮件机器人拿起它然后用阴茎扩大电子邮件发送垃圾邮件:)

到目前为止,我在这里发现了一个javascript混淆器:http://www.jottings.com/obfuscator/不确定它有多么有效..

3 个答案:

答案 0 :(得分:5)

JavaScript解决方案

使用JavaScript,您可以执行以下操作。

emailE = ('yourname@' + 'emailserver.com')
document.write('<A href="mailto:' + emailE + '">' + emailE + '</a>')

有了这个,Crawlers再也无法从源代码中读取您的电子邮件。

PHP解决方案

使用php,您可以将电子邮件转换为unicode值

function converte($email) {
    $p = str_split(trim($email));
    $new_mail = '';
    foreach ($p as $val) {
        $new_mail .= '&#'.ord($val).';';
    }
    return $new_mail;
}

并在您的页面上使用像

这样的功能
<?php echo converte('my@email.com'); ?>

源代码输出类似于

&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;

答案 1 :(得分:4)

这是一个related question,接受的答案涵盖了一些保护方法及其运作情况。

您最好的选择是使用CSS代码重定向(取自该链接):

<span style="unicode-bidi:bidi-override; direction: rtl;">
moc.elpmaxe@zyx
</span>

答案 2 :(得分:0)

我编写了一个PHP函数,它接收电子邮件,将其分解,然后使用JavaScript将其重新组合在一起

<?php
function php_split_js_make_email($phpemail)
{
    $pieces = explode("@", $phpemail);

    echo '
        <script type="text/javascript">
            var a = "<a href=\'mailto:";
            var b = "' . $pieces[0] . '";
            var c = "' . $pieces[1] .'";
                var d = "\' class=\'email\'>";
                var e = "</a>";
                document.write(a+b+"@"+c+d+b+"@"+c+e);
            </script>
            <noscript>Please enable JavaScript to view emails</noscript>
        ';
    }
?>

演示: http://djave.co.uk/php-js-email-protector/