様々な人からのメールを受け入れたいという場合、サイト内にメールアドレスを表記します。
多くはリンク先に「mailto:user@dammy.com」という表記でメールアドレスを記載するため、メールアドレスを収集する業者などにロボットを使って簡単にメールアドレスを収集されていまいます。
対策として、表示を2バイトコード(日本語文字)で表示したり、手動でメールアドレスを入力・修正してもらうという方法も見受けられます。
でも、使い勝手の理想とはかけ離れてしまうのです。そこで、必要な時にメールアドレスを生成してしまう方法を思いつきました。CGIでも可能だと思いますが、手軽なJavaScriptにしてみました。
メールアドレスを生のままHTML内に表示しないで、クリックだけでメールを出してもらえるリンクを提供します。
ソースファイル(HTMLファイル)をスキャンしただけではメールアドレスを読み取ることはできません。
JavaScriptを理解しないロボットにはメールアドレスを読み取られる心配がありません。
JavaScriptを理解して、リンク先を読み取り、更にそれがメールアドレスの場合に収集するというプログラムがあった場合に、回避できない。(この回避方法が一般化するとその危険性がでてきます。)
リンク型の使用例です。
実例 | 例文 |
---|---|
<A HREF="JavaScript:sendmail()">メール</A>
<SCRIPT LANGUAGE="JavaScript"> |
ボタン型の使用例です。
スクリプト部分は使用例1と同じです。
実例 | 例文 |
---|---|
<FORM><INPUT TYPE=button VALUE="メール"
onClick="sendmail()"></FORM>
<SCRIPT LANGUAGE="JavaScript"> |
メールアドレスの表示をどうしてもしたいという方のために、上記スクリプトを応用した手法を紹介します。
メールアドレスの表示もJavaScriptで行います。更に、リンクも同時に設定してみましょう。
実例1 | 例文 |
---|---|
|
<SCRIPT LANGUAGE="JavaScript"> acount = "user"; //アカウント domain = "dammy.com"; //ドメイン document.write(acount + "@" + domain); //メールアドレス表示 </SCRIPT> |
実例2 | 例文 |
<A HREF="JavaScript:sendmail()"> <SCRIPT LANGUAGE="JavaScript"> acount = "user"; //アカウント domain = "dammy.com"; //ドメイン document.write(acount + "@" + domain); //メールアドレス表示 function sendmail() { this.location.href = "mailto:" + acount + "@" + domain; //メールアドレス生成 } </SCRIPT> </A> |
文字列を表示するだけの場合(実例1)と、リンクも表示する場合(実例2)の例示をしました。後者の場合、メールアドレス生成のスクリプトも含まれていて、共通の部分省略できるので、コンパクトになっています。
また、設定部分とメールアドレスの表示部分は別にできますので、設定を1つ書いて置いて、表示は数カ所にすることもできます。(実例3)
実例3 | 例文 |
---|---|
|
<SCRIPT LANGUAGE="JavaScript"> acount = "user"; //アカウント domain = "dammy.com"; //ドメイン </SCRIPT> <SCRIPT LANGUAGE="JavaScript"> document.write(acount + "@" + domain); //メールアドレス表示 </SCRIPT> |
実例4 | 例文 |
<!--メールアドレス表示とリンク--> |
|
実例5 | 例文 |
<!--メールアドレス表示とリンク--> |
実例4は、メールアドレスの表示を組み合わせています。
実例5は、メールアドレスに
GIFファイルを使っています。表示をグラフィックデータにすることで、文字として表示されるメールアドレスをなくしています。メールアドレスがJavaScriptで生成されるのはクリックをしたときだけになります。例ではボーダーが周囲に表示されていますが、BORDERを「0」にするか、未指定にすれば表示上は文字と区別しにくくなります。
このページで機能しているスクリプト、またはメールアドレスの表記では、「user@dammy.com」へのメール誤送信を防ぐため「@」を2バイトコード(日本語)にしています。
例文をコピーしてご使用下さい。 例文中の「@」は1バイトコードですので、そのまま使用できます。