我想出了一种使用javascript加密电子邮件地址的方法,但由于我不熟悉编程,我不确定我的解决方案有多有效。基本上我使用高级自定义字段提取电子邮件,保存其垃圾邮件版本,然后在页脚中使用javascript对其进行转换。仅供参考我正在使用Wordpress。
以下是该页面的相关部分:
<?php get_header(); ?>
<a href='' id='email'></a>
<script type="text/javascript">
var email_storage = "nospam<?php the_field('team-email'); ?>";
console.log(email_storage);
</script>
<?php get_footer(); ?>
然后这个脚本加载到页脚中(在jQuery之后)。
var email_length_nospam = email_storage.length;
var email = email_storage.substr(6,email_length_nospam);
var email_length = email.length;
var at = email.indexOf('@');
var email_name = email.substr(0,at);
var email_domain = email.substr((at+1),email_domain);
console.log(email_length_nospam,email);
jQuery('a#email').html(email_name+'@'+email_domain);
jQuery('a#email').attr('href','mailto:'+email);
我的问题是:
我错过了什么明显的东西吗?换句话说,由于我的错误,垃圾邮件机器人会轻易解码吗?
答案 0 :(得分:1)
您可以从this电子邮件链接混淆器生成器检查生成的Javascript。例如,如果 info@example.com 用于电子邮件地址和链接文本,则会生成此内容:
{ coded = "DMUm@WyBVJgW.AmV"
key = "RGS5Amu4aKOHnZIix0TzqV8EBle1MQPDyhrkNfCp3gWXdjFbwvcosU9JY726Lt"
shift=coded.length
link=""
for (i=0; i<coded.length; i++) {
if (key.indexOf(coded.charAt(i))==-1) {
ltr = coded.charAt(i)
link += (ltr)
}
else {
ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
link += (key.charAt(ltr))
}
}
document.write("<a href='mailto:"+link+"'>info@example.com</a>")
}
我不确定它的效果如何。