- ベストアンサー
mailwrite()とは何か
- ウェブサイト作成時、メールリンクを張る場合に使用される関数です。
- mailwrite()と呼ばれる関数は、JavaScriptの一部であり、特定のメールソフトウェアを起動するために使用されます。
- この関数を使用することで、メールリンクをクリックしたユーザーは自動的にメールソフトを開くことができ、宛先欄に指定されたメールアドレスが表示されます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>最下行の<a href="mailto:'+encryptedemail_id○○+'">には、何故かメールアドレスが記載してなかったにもかかわらず、画面上でクリックすると自動的にメールソフトが起動し、宛先欄に目的のアドレスが入っていました。 メールアドレスは変数encryptedemail_id○○に格納されています。 大元は配列emailriddlerarrayに入っている [101,110,102,111,... と言うのが「メールアドレスを分解した物」です。 それをString.fromCharCodeを使って連結して変数encryptedemail_id○○に格納します。 後はその内容を、document.writeでmailto:のアドレスにすればクリッカブルなメールリンクの出来上がりです。 普通に <a href="mailto:アドレス"... と表記すればいいではないか、と思われるでしょうが、こんなに面倒な事をするには理由があります。 HTMLに直接、mailto:アドレス が記載されていると、そのメールアドレスは検索サイトなどからクロールされた時に文字列として取得できてしまいます。 これはスパムメールを送るような業者には格好のカモなんです。 労せずしてスパムを送る宛先を手に入れられるというわけです。 しかし、このJavaScriptのような対応を行えば、クロールされた時にも(質問者様がご覧になった通り)、どこにもメールアドレスが文字列として存在しないため、業者は打つ手がありません。 (頑張れば取得できますが、業者としても、そこまで頑張るよりは、ガードの緩いところから取得する方が早いでしょう) このスクリプトは Email Riddler と言います。 ページにクリッカブルなメールアドレスを載せつつスパム対策もする方法「Email Riddler」 http://phpspot.org/blog/archives/2007/02/email_riddler.html メールアドレスをサイトで安全に公開する方法 http://fnya.cocolog-nifty.com/blog/2007/02/post_7095.html
その他の回答 (1)
- asciiz
- ベストアンサー率70% (6823/9703)
ごく簡単な暗号化です。 101,110,102…というのは、文字コードを表していて、1文字ずつ変換していけば、"e","n","f"… というメールアドレスが読み取れます。 (文字コード表を参照すれば、数字に対応するアルファベット・記号が分かります) スクリプトでは、それを戻して文字列にするという動作が書かれています。 最終的に、「<a href="mailto:(変換済みメールアドレス)">メール</a>」というリンクをクリックすることになるので、後は通常通りメーラーが立ち上がると。 ---- HTMLにこのような細工をしているのは、おそらくSPAM対策ですね。 Web上に、「連絡先はこちら aaa@bbb.ccc.jp」などとメールアドレスを直接公開していると、スパマーの巡回botによりアドレス収集され、迷惑メールが送りつけられるようになってしまいます。 それで、ある人は「aaaa*abc.or.jp *は@に変換してください」とか書いていたり、受付入力のフォームを用意してメールアドレスを公開しないような人もいるわけで。 この人は、そのような収集botにアドレスを拾われないように、直接HTML上にメールアドレスを書くことを避け、スクリプトによる細工をしたというわけなのですね。
お礼
ご回答、ありがとうございます。とても参考になりました。
お礼
ご回答、ありがとうございます。とても参考になりました。