通过使用 MailTo 宏,您可以放心的将邮件地址写在wiki中,不必担心邮件地址被垃圾邮件程序收集(这种机器人程序专门收集电子邮件地址),或被垃圾邮件制造者非法使用。
用法
[[MailTo(Firstname DOT Lastname AT example DOT net)]]
或者
[[MailTo(Firstname DOT Lastname AT example DOT net, link text)]]
这个宏应该做些什么?
我们需要区分已登录用户和匿名用户(其中包含了垃圾邮件机器人程序)。
已登录用户应该可以看到邮件地址,并且应该可以通过点击链接来使用该邮件地址。
匿名用户的情况比较棘手 — 他们可能是“普通”用户,也可能是一些专门收集邮件地址的人或者其他什么东西(比如,垃圾邮件机器人)。这些邮件地址可能被滥用于发送商业邮件,这也是因特网上普遍存在的问题。
1. 已登录用户
他们将看到下面的结果:
2. 匿名用户
匿名用户(比如垃圾邮件机器人程序和其它用途的机器人程序)将只能得到和宏参数一样的结果:
- Firstname DOT Lastname AT example DOT net
纯文本,没有 mailto: 链接。聪明的“人类”将可以解释这些文字,并把得到的地址手动填加到电子邮件程序里。
但是一个自动化的机器应该不能从中提取出有用信息,因而忽略它(除非这种机器人程序非常聪明,这种情况下,请看下面的介绍)— 这个宏命令就达到了它的目的,防止垃圾邮件。
工作原理及更多示例
对于匿名用户,本宏命令会简单得将其得到的参数直接输出。
对于已登录用户,本宏命令会按照如下方法处理其参数:
- 下面的“全大写”单词将被替换成相应字符:
AT
@
DOT
.
DASH
-
- 其他的“全大写”单词,例如:NO SPAM NOSPAM WHATEVER I DONT WANT SPAM 等等,将会被清除(替换成空字符串)。
- 删除所有空白字符。
创建一个能够被点击的 mailto: 链接。
当然,一个特别聪明的垃圾邮件机器人有可能正确识别和转换通常用作“垃圾邮件保护单词”的单词,例如: AT, DOT 和 NOSPAM 。如果你在其中加入了任意的单词或空格,这种事情就不太可能发生了。但垃圾邮件机器人还是能够识别出它里面包含有您的邮件地址.
这里,您可以简单的比较一下已登录用户和匿名用户见到的 MailTo 的不同效果:
[[MailTo(Firstname DOT Lastname AT example DOT net)]] 变成 <Firstname DOT Lastname AT example DOT net>
[[MailTo(Firstname . Lastname AT exa mp le DOT n e t)]] 变成 <Firstname . Lastname AT exa mp le DOT n e t>
[[MailTo(Firstname I DONT WANT SPAM . Lastname@example DOT net)]] 变成 <Firstname I DONT WANT SPAM . Lastname@example DOT net>
[[MailTo(First name I Lastname DONT AT WANT SPAM example DOT n e t)]] 变成 <First name I Lastname DONT AT WANT SPAM example DOT n e t>
[[MailTo(Vorname DOT Nachname AT example DOT net, Me, Myself, and I)]] 变成 <<MailTo: 执行失败 [参数过多] (see also the log)>>
有了随意加入“全大写”单词的能力,每个用户都可以随意增加机器人或者非登录用户的阅读障碍。如果它难以被人看懂,你收到的邮件可能就不会像以前那么多了。
此页的英文版本:HelpOnMacros/MailTo