ネット上でやってはいけないメールアドレスの公開について。
個人サイト(ホームページ)上で自分のメールアドレスを公開している人は多い。しかし仮にスパムフィルタがあっても安易にネット上にメールアドレスを公開するのは危険だ。Googleが自動的にページを巡回して検索リストに登録するように、メールアドレスを収集してスパムメールを送りつけるボットがある。これらに回収されると、定期的にスパムメールを送りつけられる。大抵は次のようなメールが送られてくる。
誰かは言わないがネット上の友人でサイトのHTML全てにメールアドレスを記述したところ、一ヶ月後には700通のスパムメールが届いていたそうだ。一旦アドレスを回収されると、スパムは止まることがない。きれいなメールアドレスを保つためにはボットにアドレスを回収されないようにアドレスを"隠す"必要がある。策について幾つか考えてみた。
ボットは****@****.****というふうに、@が入った英数字を目印にメールアドレスを回収する。この@を隠すだけで並の収集ボットは防げる。例えば、tester@test.test.jpというアドレスがあったなら、@をISO Latin-1コードの@に置換する。
この場合ソースを tester@test.test.jp から tester@test.test.jp にする。コードはHTML解釈時に@に戻されるので、表示はちゃんと@になる。
@が解読されたらどうすんだって方は、手っ取り早くアドレス全体をLatinコードに置換する。
私はサイトの全HTMLに<link rev="MADE" href="mailto:crab-kani@fooos.com" />を挿入しているが、@を@に置換するだけでスパムメールは殆ど来なくなった。※このメールアドレスの表記は2005/07/30以降削除
原理的には先のISO Latin-1コードと同じ。アットマークを☆や○に変え、そばに☆を@に変えてくださいとでも書いておく。ローテクだが効果は十分。
tester☆test.test.jp
コメントや無意味なタグを挟んでアドレスを隠蔽する。もちろん表示自体は正常である。
t<span>e<!--@-->st<span>e</span>r@<!-- dummy@dummy.com -->te<span>st.</span>te<!-- @.ttt -->st.</span>jp
表示: tester@test.test.jp
流石のボットもJavaScriptは解釈できないだろうし、この方法なら確実に回収を防げる。
<script type="text/javascript"> <!-- document.write("tester"+String.fromCharCode(64)+"test.test.jp"); //--> </script>
こうすればまず回収はされない。JavaScriptでメールアドレスの回収を防ぐ方法はHTML小技集 / メインコンテンツ / ウイルスメール対策などでも紹介されている。ただこれはJavaScriptが実行できない環境では意味をなさない。
画像にすればいくらボットでも手も足もでない。tester@test.test.jpを とすれば大丈夫。画像処理ソフトを使ってもいいし、Handmail - スパム対策に!メールアドレスの画像化無料サービスなどを使ってもいい。 画像を認識しやがる場合も考えて、フォントはできるだけ機械が認識できないようなものを選ぶと良い。(画像を認識する狂ったボットはないと思うが)
以下のようにアドレスを手描きで描くとコンピュータに認識されづらいので極めて有効。
傾けてもいい。
CGIが使えるスペースなら、CGIを利用して送信させればメールアドレスは事実上誰にも分からないので流出を含めたスパムをほぼ100%カットできる。このサイトではCGIを使わないっていうか動作しないのでこれについての詳しい説明は省く。メールフォームをレンタルできるサービスもあるのでそれを利用してもいい。
ただCGIによる送信フォームでは送り主がメールアドレスを知ることができないので、人によっては嫌がられる。