ウェブページにメールアドレスを載せると、メールアドレス収集ロボットに収集されてスパムメールが送られてくることになります。
この対策として、メールアドレスを数値文字参照で記述したり、全角英字で表現するといった方法や、画像を使うといった手段があります。しかし、それに対応したロボットも増え、また訪問者がメールを送るのに手間がかかります。
そこでメールアドレスを簡単に暗号化し、ロボットによる収集を防ぐためのスクリプトを作成しました。
この方法では、リンクにonmouseover(マウスが重なる)等のイベントがあって初めて、メールアドレス用のリンクに変化するものです。したがって、JavaScriptに対応したロボットであっても収集をいっそう難しくできるかと思います。
もしCGIが使える環境であれば、そちらを利用した対策を利用すべきだと思います。JavaScriptだと訪問者の環境に依存しますから。
設置方法
まずhead要素内に、この枠内のスクリプトを貼り付けてください。
<script type="text/javascript">
<!--
function nospamDecode(str){
var addr = "";
var i;
for(i = 0; i < str.length; i += 2) addr += String.fromCharCode("0x" + str.substr(i, 2) - 0);
return addr;
}
function mailtoAnc(anc, str){
anc.href = mailzu + nospamDecode(str);
}
var mailzu = nospamDecode("6d61696c746f3a");
//-->
</script>
次に、下のテキストボックスにメールアドレスを入力し、"変換"をクリックしてください。すると、そのメールアドレスへのリンクを作成するスクリプトが表示されます。これをコピーして、メールアドレスを表示したい場所に貼り付けてください。「メールはこちらへ」の部分は適当に変えてください。
こちらは、もう少し改造して使いたい場合のものです。
下の2つのテキストボックスに入力した文字列は、そのままA要素の開始タグの一部になると考えてください。左のテキストボックスにメールアドレスを入力し、右のテキストボックスには、必要ならばA要素に追加したい属性を入力してください(入力例:id="hoge" title="hoge")。
"メールはこちらへ"と表示されたテキストエリアには、リンクに使いたい文や画像などを入力してください(入力例:<img src="mail.gif" alt="メール">連絡先)。
"変換"をクリックすることで、暗号化されて、"出力"のテキストボックスに出力されます。これをコピーして、メールアドレスを表示したい場所に貼り付けてください。
もしJavaScriptを無効にしている訪問者のことを考えるなら、noscript要素内にメールアドレスを書いた画像を配置するなどしてください。
設置例
これは実際に設置したいくつかの例です。ソースを見てもメールアドレスは見えません。