対策プログラム


【メールアドレス生成】

 様々な人からのメールを受け入れたいという場合、サイト内にメールアドレスを表記します。
 多くはリンク先に「mailto:user@dammy.com」という表記でメールアドレスを記載するため、メールアドレスを収集する業者などにロボットを使って簡単にメールアドレスを収集されていまいます。
 対策として、表示を2バイトコード(日本語文字)で表示したり、手動でメールアドレスを入力・修正してもらうという方法も見受けられます。
 でも、使い勝手の理想とはかけ離れてしまうのです。そこで、必要な時にメールアドレスを生成してしまう方法を思いつきました。CGIでも可能だと思いますが、手軽なJavaScriptにしてみました。

使用目的

 メールアドレスを生のままHTML内に表示しないで、クリックだけでメールを出してもらえるリンクを提供します。

利点

 ソースファイル(HTMLファイル)をスキャンしただけではメールアドレスを読み取ることはできません。
 JavaScriptを理解しないロボットにはメールアドレスを読み取られる心配がありません。

問題点

 JavaScriptを理解して、リンク先を読み取り、更にそれがメールアドレスの場合に収集するというプログラムがあった場合に、回避できない。(この回避方法が一般化するとその危険性がでてきます。)

使用例1

 リンク型の使用例です。

実例 例文

メール

<A HREF="JavaScript:sendmail()">メール</A>

<SCRIPT LANGUAGE="JavaScript">
function sendmail() {
acount = "user"; //アカウント
domain = "dammy.com"; //ドメイン
this.location.href = "mailto:" + acount + "@" + domain; //メールアドレス生成
}
</SCRIPT>

使用例2

 ボタン型の使用例です。
 スクリプト部分は使用例1と同じです。

実例 例文
<FORM><INPUT TYPE=button VALUE="メール" onClick="sendmail()"></FORM>

<SCRIPT LANGUAGE="JavaScript">
function sendmail() {
acount = "user"; //アカウント
domain = "dammy.com"; //ドメイン
this.location.href = "mailto:" + acount + "@" + domain; //メールアドレス生成
}
</SCRIPT>

☆使用手順

 どちらの使用例も、リンク先(メールアドレス)を呼び出す部分と、リンク先を生成するスクリプトからできています。スクリプトは同じです。
 安全性としてはフォームを絡めたボタン型の方が高いと思われます。さり気なく使うにはリンク型の方が良いでしょう。
 スクリプトはHTML内のどこに置いてもかまいません。そのままHTMLファイル内の<BODY>〜</BODY>の間にコピーして使ってください。
 リンク部分ももちろん任意の位置に置きます。「メール」と記述していますが、ここも修正可能です。間違ってもここにメールアドレスを表記しないようにしてください。(例:user@dammy.com
 スクリプトの中では次の部分を変更します。「user」と「dammy.com」です。あなたのメールアドレスが「user@dammy.com」の場合、「@」の左がアカウント(acount)、右がドメイン(domain)です。「user」をアカウント部分に書き換え、「dammy.com」をドメイン部分で書き換えてください。
 書き換えが出来たら、かならずオンラインで動作確認を行ってください。リンクをクリックして、メールソフトが起動し、メールを作成する画面が出た時に、指定したあなたのメールアドレスが表示されたら成功です。

☆応用例

 メールアドレスの表示をどうしてもしたいという方のために、上記スクリプトを応用した手法を紹介します。
 メールアドレスの表示も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 例文


<SCRIPT LANGUAGE="JavaScript">
acount = "user"; //アカウント
domain = "dammy.com"; //ドメイン
function sendmail() {
this.location.href = "mailto:" + acount + "@" + domain; //メールアドレス生成
}
</SCRIPT>

<!--メールアドレス表示とリンク-->
< A HREF="JavaScript:sendmail()">
<SCRIPT LANGUAGE="JavaScript">
document.write(acount + "@" + domain); //メールアドレス表示
</SCRIPT>
</A>

実例5 例文


<SCRIPT LANGUAGE="JavaScript">
acount = "user"; //アカウント
domain = "dammy.com"; //ドメイン
function sendmail() {
this.location.href = "mailto:" + acount + "@" + domain; //メールアドレス生成
}
</SCRIPT>

<!--メールアドレス表示とリンク-->
< A HREF="JavaScript:sendmail()"><IMG SRC="mail.gif"></A>

 実例4は、メールアドレスの表示を組み合わせています。
 実例5は、メールアドレスに GIFファイルを使っています。表示をグラフィックデータにすることで、文字として表示されるメールアドレスをなくしています。メールアドレスがJavaScriptで生成されるのはクリックをしたときだけになります。例ではボーダーが周囲に表示されていますが、BORDERを「0」にするか、未指定にすれば表示上は文字と区別しにくくなります。

☆ご注意

 このページで機能しているスクリプト、またはメールアドレスの表記では、「user@dammy.com」へのメール誤送信を防ぐため「@」を2バイトコード(日本語)にしています。
 例文をコピーしてご使用下さい。 例文中の「@」は1バイトコードですので、そのまま使用できます。


戻る