电子邮件混淆:反垃圾邮件()可以接受吗?

时间:2014-06-25 作者:Howdy_McGee

我一直在研究电子邮件混淆,并试图避开混淆插件,这时我遇到了以下代码段[1]:

function remove_plaintext_email($emailAddress) {
    $emailRegEx = \'/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4})/i\';
    return preg_replace_callback($emailRegEx, "encodeEmail", $emailAddress);
}
function encodeEmail($result) {
    return antispambot($result[1]);
}
add_filter( \'the_content\', \'remove_plaintext_email\', 20 );
add_filter( \'widget_text\', \'remove_plaintext_email\', 20 );
对我来说,这几乎可以在几行代码中取代任何混淆插件,这总是很好的。我关心的是antispambot() 尝试通过将电子邮件转换为HTML实体来隐藏电子邮件。我的问题是,这是否足以阻止spambots窃取电子邮件?这个功能已经存在很长时间了,我只是想确保它仍然可以使用,或者是否有更好的方法来隐藏垃圾邮件。

[1]Source

1 个回复
最合适的回答,由SO网友:Matt Royal 整理而成

这个antispambot() 根据我的经验,这种方法仍然非常可靠和健壮,我在使用它时并没有遇到很多问题,但根据您在保护电子邮件地址方面的意愿,还有其他一些需要考虑的问题,这可能是最简单和最有效的方法之一,但也是最不为人所知的方法,不管您相信与否,它只需要少量的CSS。我知道疯狂;-)

您可以向后写入电子邮件地址,然后在浏览器中呈现时使用CSS反转文本方向,如下所示

浏览器中的输出示例:[email protected]

HTML

<span class="obfuscate">moc.liamg@layorttam</span>
CSS

.obfuscate { unicode-bidi: bidi-override; direction: rtl; }
另一个CSS模糊处理技巧是添加一些随机文本。以下面这个虚拟电子邮件地址为例。

浏览器中的输出示例:[email protected]

HTML

<span class="obfuscate">
    mattroyal<span>no</span>@<span>spammers</span>gmail<span>allowed</span>.com
</span>
CSS

.obfuscate span { display: none; }
这两种方法的缺点都是无法使用mailto: 当然,如果有人复制了电子邮件地址,当他们粘贴它时,它会向后移动,或者有你添加的随机文本。

然而,这些方法已经被证明是非常有效的,您甚至可以将它们与编码/解码方法结合起来。

结束

相关推荐

WordPress Form to Email.php and Theme

我的模板页面中有一些自定义表单。我正在使用表单“action”链接到formtoemail。php文件。如果我离开formtoemail,一切都会好起来的。php原样,但我想调用我的主题元素来动态设置页面样式。我尝试了以下操作,但不幸的是出现了一个错误“调用未定义的函数get\\u header()”如果我从页面复制/粘贴html,一切都很好,但我真的不想每次都更新html。我确信有一种方法可以做到这一点,但我不是超级PHP高手。有人能帮忙吗?<?php $my_email = \