メールアドレスを自動収拾されにくくする
Webに公開されているメールアドレスを自動的に収拾するロボットによって被る迷惑メール。
まぁ、それだけが原因ではありませんが、少なくとも自動収拾により拾われにくくする方法がエンティティコード化です。
ここでは10進法のアスキーコード(コード番号127以内で)を使う方法で進めます。
16進法では古いブラウザでは表示できないそうです。
<a href="mailto:test@mail.host">メール送信</a> → <a href="mailto:test@mail.host">メール送信</a>
上記のようにアットマーク(@)を @ と書き換えるだけでも、そのまんま書くよりはいいと思います。
次のように全部をCGIを使ってコード化してしまう方法を解説します。こんな風に…
<a href="mailto:tes
t@mail.host">メール送信</a>
たぶんこれでいいと思うんですが…。変換できるのはアスキーコード番号32〜126までの文字に限る簡易なものです。
s/([-\w.]|[\s\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\?\@\[\\\]\^\_\`\{\|\}\~])/''.unpack('C2',$1).';'/eg;
もっと強力に!
コメント内に入れてしまう(JavaScript利用)ことで、さらに識別しにくくする方法もあるようです。write()文は1行で。
mai と lto を分けたのは、"mailto"という文字に反応させないため。
<Script language="JavaScript">
<!--
document.write('<a href="mai' + 'lto:mailto:tes
t@mail.host">メール送信</a>');
// -->
</Script>
メール送信
<a href="mailto:メールアドレス">メール送信</a>
メール送信
<a href="mailto:メールアドレス?subject=題名&body=本文">メール送信</a>
メール送信
<a href="mailto:メールアドレス?subject=題名&body=本文1%0D%0A本文2">メール送信</a>
※以下に示す文字を並べてはいけません。使いたい場合は下記変換文字を利用します。
対象 | 変換文字 | 備考 |
改行 | %0D%0A | 題名には使わない |
半角スペース | %20 | |
半角 + | %2b | |
半角 % | %25 | |
半角 & | %26 | |
半角 " | %22 | |
全角スペース | %81%40 | なるべく変換文字を使う |
半角 # | %23 | なるべく変換文字を使う |
(参考) JavaScriptで
http://hp.vector.co.jp/authors/VA022023/javascript/make_html_entity-ja.htm
(参考) パソコンソフトで
http://ab.jpn.ph/soft/
(参考) アスキーコード表
http://www.shibu.jp/cppreference/ascii.html
|