AboutデジタルIT・インターネットホームページ作成ホームページ作成テクニック、小技スパム対策をしてメールアドレスを公開する方法ホームページ作成/ホームページ作成テクニック、小技スパム対策をしてメールアドレスを公開する方法(6ページ目)迷惑メールを防止する7種類のスパム対策方法を解説。ホームページにメールアドレスを掲載すると、大量の迷惑メール(スパムメール)が届くようになってしまいます。メールアドレスを公開しつつも、メールアドレスの自動収集プログラムに収集されるのを防ぐ対策方法をご紹介。準備に少々手間がかかりますが、おすすめのスパム対策としてJavaScriptでメールリンクを生成する方法があります。JavaScriptには、数値の羅列をASCIIコードだと解釈して英数字や記号に変換する関数があります。これを利用すると、HTMLソースにもJavaScriptソースにもメールアドレスを書くことなく、ウェブページ上にメールアドレスへのリンクを表示できます。数字の羅列からJavaScriptでメールアドレスを生成する方法なら、ソースにメールアドレスは含まれない英字の「a」は97、「b」は98、「c」は99......のように、コンピュータで取り扱える文字には番号が割り振られています。メールアドレスを構成する文字を事前に数値に変換してソース内に列挙しておき、表示時にJavaScriptを使って文字に変換すれば、ソース内にメールアドレスを書くことなく画面上にメールアドレスを表示できます。【このスパム対策の目次】JavaScriptでメールリンクを生成するメリット・デメリットJavaScriptでメールリンクを生成する書き方の例メールアドレスを表示するためのJavaScriptソースを生成するサービス計算式を含めて、より分かりにくくする例JavaScriptでメールリンクを生成するメリット・デメリット■JavaScriptでメールリンクを生成するメリットHTMLソースにもJavaScriptソースにもメールアドレスそのものは含まれないため、ソースの中身を読むだけの自動収集プログラムはメールアドレスを収集できません。ブラウザ上ではメールアドレスへのリンクとして表示できるため、閲覧者はクリックするだけでメールを送信できます。「スパム対策をしたいが、ユーザの利便性は損ないたくない」という場合には特におすすめの方法です。■JavaScriptでメールリンクを生成するデメリットブラウザと同じようにJavaScriptを実行して、その結果として生成されるテキストからメールアドレスを探すような賢い収集プログラムに対しては効果がありません。JavaScriptを実行できない環境ではメールアドレスが表示されません。最近の環境でJavaScriptが実行できない状況はあまりないでしょうから、この点はデメリットとは言えないでしょう。JavaScriptでメールリンクを生成する書き方の例まずはJavaScriptでメールアドレスとリンクを表示する関数を作ります。次に、HTMLソース内のメールアドレスを表示したい場所でその関数を呼び出します。109」で表しています。このような数値に変換する方法は後述します。secretaddress();</script>です。必要なHTMLソースは上記だけです。JavaScriptで作成した「secretaddress」関数を呼び出しているだけであり、メールアドレスは含まれていません。※このHTMLソースを記述する箇所よりも前に、先のJavaScriptソースを書いておく必要がありますので注意して下さい。■サンプルページ:お使いのブラウザで試してみたい場合は、サンプルページ「メールアドレスをJavaScriptで表示する例」をご覧下さい。表示例は下図の通りです。ソース内にメールアドレスの記載はないものの、メールアドレスへのリンクとして機能するメールアドレスを表示するためのJavaScriptソースを生成するサービスメールアドレスに含まれる文字を1つ1つASCIIコード表に照らし合わせて数値に変換するのは面倒です。下図のような変換サービスを使えば楽に作成できます。先程ご紹介したソースでは、ASCIIコード表に照らし合わせるだけで元の文字が判明します。下記のように計算式を含めて記述すると、見た目にはさらに分かりにくくなります。上記でご紹介した変換サービスでは、このような計算式としてソースを生成することもできます。String.fromCharCode(100+1,121-1,95+2,108+1,111+1,109-1,99+2,68-4,100+1,122-2,98-1,100+9,112+0,107+1,111-10,49-3,90+9,100+11,108+1);もちろん、もっと複雑な計算をさせても良いでしょう。計算するための関数と、メールアドレスを表す数値の配列を別々に記述すれば、さらに分かりにくくできます。次に、フォームとスクリプトを使ってメールアドレスを掲載する方法をご紹介いたします。About公式SNS日々の生活や仕事を楽しむための情報を毎日お届けします。