2005年03月08日

メールフォームのソースから自分のアドレスを見られない方法

プロバイダやレンタルのメールデコードサービス(メールフォーム)で、htmlのなかに自分のメールアドレスを書くタイプのものがありますね。niftyや、私も使っているぷららなどもそうです。
このタイプのフォーム、自分のメールアドレスがわかってしまうから使いたくないというかたも多いと思います。
サイトにアドレスを書かなくても受け取れるのがメールフォームの利点のひとつなのに、ソースを見ればわかってしまうというのでは、たしかに嬉しくないですね。

回避手段としては、メールアドレスをhtml内に書かなくていい他のレンタルサービス(私がよく紹介しているFormMailerなどもそのタイプです)や、フリー配布のCGIを使うという方法が考えられるのですが、「無料レンタルは広告が出てしまう」「機能に不満がある」「CGI設置は出来ないサーバーだ」など、アドレスの問題がなければプロバイダ提供サービスを使いたいという人もいるでしょう。

そこで、Javascriptを利用して「ソースを見られても、自分のアドレスを知られにくくする方法」を考えてみました。
※あくまでも「知られにくい方法」であって「絶対わからない方法」ではありません。


1.フォームのソースを全て外部Javascriptで書き出す。
フォーム部分のソースをコピーして、テキストエディタに貼り付けます。(下記はぷらら提供のメールデコードの記述例をそのまま使っています)
document.write('<FORM METHOD="POST" ACTION="http://www6.plala.or.jp/cgi-bin5/mailsend.cgi">');
document.write('<INPUT TYPE="hidden" NAME="to" VALUE="youraddress@xxx.plala.or.jp">');
document.write('<INPUT TYPE="hidden" NAME="subject" VALUE="ホームページ感想">');
document.write('<TABLE>');
document.write('<TR>');
document.write('<TD>お名前</TD>');
document.write('<TD><INPUT TYPE="text" NAME="name" SIZE=30></TD>');
document.write('</TR>');
document.write('<TR>');
document.write('<TD>メールアドレス(必須)</TD>');
document.write('<TD><INPUT TYPE="text" NAME="from" SIZE=30></TD>');
document.write('</TR>');
document.write('<TR>');
document.write('<TD>コメント</TD>');
document.write('<TD> <TEXTAREA NAME="comment" ROWS=4 COLS=32> </TEXTAREA></TD>');
document.write('</TR>');
document.write('<TR>');
document.write('<TD><INPUT TYPE="submit" VALUE="送信"></TD>');
document.write('<TD><INPUT TYPE="reset" VALUE="クリア"></TD>');
document.write('</TR>');
document.write('</TABLE>');
document.write('</FORM>');

こんな感じで、1行ごとにdocument.write('');で挟んでやり、そのファイルを拡張子jsで保存します。(例:form.js

続いて、html内のフォームを置いていた場所から、
<script type="text/javascript" src="form.js"></script><noscript>Javascriptでフォームを表示しています。</noscript>

のようにしてJavascriptを呼び出します。


これで、元のページのソースを見ただけでは送り先のアドレスがわからなくなりました。
ただし、Javascriptを無効にしている人にはメールフォームそのものが見えなくなっています。また、方法を知っている人なら簡単にform.jsの中身を見ることが出来ます。


2.ダミーのアドレスを書いておき、送信時に正しいメールアドレスを書き込む
ソース内にはダミーのアドレスを書いておき、フォームの送信のタイミングで、正しいアドレスに書き換える方法です。

まず、テキストエディタに下記の関数を書いて、拡張子jsで保存します。
function SendCheck(Form) {
Form["to"].value = '正しいメールアドレス';
}

※["to"]には、お使いのデコードサービスで、メールアドレスを記述する部分のname属性を入れます。ぷららですと「to」(http://www.plala.or.jp/access/community/phps/cgi_main.html参照)、@niftyだと「to_mail」(http://homepage.nifty.com/mail/sample.htm参照)等となります。

このjsファイルをフォームを置いたhtmlから呼び出します。呼び出し方は1を参照してください。head内でもbody内でも構いませんが、フォームのタグより先に書く必要があります。

続いて、メールフォームの<form>タグにonsubmit="SendCheck(this)"と書き加えます。こんな感じです。
<FORM METHOD="POST" ACTION="http://www6.plala.or.jp/cgi-bin5/mailsend.cgi" onsubmit="SendCheck(this)">

この方法のメリットは、ぱっと見てアドレスを隠していることがわからないことですね。
SendCheck関数に、ついでに未入力チェックのスクリプトも一緒に仕込んでみたりすると更に効果的です。

ただし、この方法を使う場合、Javascriptを無効にしている人が使うと、ダミーのアドレスにメールを送ろうとしてしまいます。でたらめなアドレスを書いてしまうと他人に迷惑をかけてしまう可能性があるので、知られても構わないフリーの別アドレスを入れておくか、空欄にしておくなど、工夫してください。

3.メールアドレスを暗号化する
これはすでにいろいろな場所で紹介されている方法なので、ここでは解説しません。検索してみてください。
posted by 文月夕 at 15:59| Comment(4) | TrackBack(0) | web技 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
prices can be had by means of online opportunities to ’ http://canadianpharmacyonline77.com/ best canadian online pharmacy Learn more about it!, Bookmark this portal for buying my canadian pharmacy http://precriptiondrugscanada24.com/ Buy, | There are ways to canadian online pharmacy http://canadapharmacyonlinev.com/ pills from these pharmacies, coverage you have now.Lock in the best deal on canadian pharmacy http://canadaonlinepharmacyv.com/ only after you have looked at competitive online specials, coverage you have now.Lock in the best deal on canadian online pharmacy http://onlinecial4ferc.com/ been approved by the FDA? !
Posted by GndfatmCA at 2017年03月01日 19:13
<a href="http://canadadrugsonline7.com/">sildenafil over the counter</a>

Simply desire to say your article is as surprising. The clarity in your post is simply spectacular and i could assume you are an expert on this subject. Well with your permission let me to grab your RSS feed to keep up to date with forthcoming post. Thanks a million and please keep up the enjoyable work. ’ http://canadadrugsonline7.com/
Posted by NkiyirMD at 2017年03月23日 06:29
cialis online ’
<a href="http://celagenericcialisonlinecheap.com/">cialis generic</a>
cheap cialis
<a href="http://celagenericcialisonlinecheap.com/">cialis price</a>
Posted by BjnhRashMU at 2017年04月22日 07:51
cialis generic ’
<a href="http://effcialisonlinewithoutprescription.com/">cialis 20mg</a>
cialis for sale
<a href="http://effcialisonlinewithoutprescription.com/">cialis daily</a>
Posted by ByhnRashAS at 2017年04月24日 16:09
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

PR

×

この広告は90日以上新しい記事の投稿がないブログに表示されております。