ウィルスに見付からずホームページでメールアドレスを公開する方法

 ホームページで、自分のメールアドレス (hogehoge@yahoooo.co.jp) を公開するには、 通常、HTMLで次のように記述します。

<a href="mailto:hogehoge@yahoooo.co.jp">
メールしてね
</a>

 または

<a href="mailto:hogehoge@yahoooo.co.jp">
hogehoge@yahoooo.co.jp
</a>

 しかし、こうやって公開しておくと、 ウィルスやいかがわしいスパムメールが大量に送られてくるようになります。 コンピュータウィルスやスパム業者のアドレス収集ソフトが、 HTMLに記述してあるメールアドレスを自動的に採取するからです。
 その対策として、私は無料転送メール CSCを利用していました。 ウィルスやスパムが来たら、次々にアドレスを変えてしまおうという手です。 これは「捨てアド」と言うらしく、多くの人がやっているようです。
 ところが、変えても変えても送られてくるという「いたちごっこ」にうんざり。 アドレスの末尾を a から始めて g にまで達したところで、 新しいアイデアを思い付きました。 どうしてもっと早く思い付かなかったのかと悔やまれます。

 その方法とは、メールアドレスを生のまま記述しないで、 JavaScript を使って合成するのです。 具体的には、次の文字列を HTMLの </head> の行の前あたりに埋め込んでおきます。 コピペして自由に使ってください。
 内容は、"hogehoge" と "yahoooo.co.jp" を別々に記述しておいて、 間に "@" をはさんで、それらをつないでいるだけです。 unescape("%40") は "@" のことで、念のため "@" も直接使わないようにしています。 コンピュータウィルスやスパム業者のアドレス収集ソフトが、 JavaScript まで解読することは考えられないので、 ほぼ確実にシャットアウトできると思います。 これでダメなら、更に複雑なものに直しましょう。

<script Language="JavaScript">
<!--
madrs1 = "hogehoge";
madrs2 = "yahoooo.co.jp";
madrs = madrs1 + unescape("%40") + madrs2;
function mailto()
{
  location.href = "mai" + "lto:" + madrs;
}
// -->
</script>

 これを HTMLの先頭の <head>部分に埋め込んだら、 メールアドレスを表示するところでは、次のようにします。 (上の2つの例に対応します。)

<a href="JavaScript:mailto();">
メールしてね
</a>

 または

<a href="JavaScript:mailto();">
<script Language="JavaScript">
<!--
document.write(madrs);
// -->
</script>
</a>


 実際にやってみると、次のようになります。

従来の方法
メールしてね
 または
hogehoge@yahoooo.co.jp

JavaScript を使った方法
メールしてね
 または



 この例の hogehoge@yahoooo.co.jp というメールアドレスは実在しません。
 例題の架空のメールアドレスを最初 yahooo.co.jp にしようと思って、 http://www.yahooo.co.jp と打ってみたところ、 実在するんですね、怪しい「yahooもどき」が。 しかも、メールアドレス販売のリンクまであって。 おい、こいつかよ!!!


※ '06/12/2 更新
 ブラウザ Firefox を使用するとメールアドレスが異常になる、とのご指摘を受けまして、 "&#64;" を "@" に変換するのはやめて、 unescape("%40") を "@" に変換するように修正しました。 ご指摘ありがとうございました。
 また、上述の「yahooもどき」を久しぶりに見てみたところ、 URL は存在するものの表紙ページは真っ白になっていました。


BALCONY   ときめきのバルコニー