暗号化したメールアドレスに件名と本文を追加する方法

暗号化したメールアドレスに件名と本文を追加する方法

サイト制作におけるちょっとしたお困りごとを解消してくれるツールとして、LUFTTOOLSをよく利用させてもらっています。

その中でも「メールアドレス暗号化」は便利で、サイトに載せるメールアドレスのスパム対策として非常に有効です。

推奨されている「安全性:高」を好んで設定するのですが、こちらのツールで生成されるのはメールアドレスのみのmailtoであり、同時に「件名」や「本文」は設定できません。

そこで、生成されたJavaScriptに少し付け加えるだけで対応できましたので、備忘録として残しておきます。

escape(k_2) の後ろに追記する

メールアドレス、件名、本文は以下のように設定したいとします。

メールアドレス hoge@hoge.com
件名 お問い合わせ
本文 名前:
性別:

Before

<script type="text/javascript">
<!--
function converter(M){
var str="", str_as="";
for(var i=0;i<M.length;i++){
str_as = M.charCodeAt(i);
str += String.fromCharCode(str_as + 1);
}
return str;
}
function mail_to(k_1,k_2)
{eval(String.fromCharCode(108,111,99,97,116,105,111,110,46,104,114,101,102,32,
61,32,39,109,97,105,108,116,111,58)
+ escape(k_1) +
converter(String.fromCharCode(103,110,102,100,63,103,110,102,100,45,98,110,108,
62,114,116,97,105,100,98,115,60))
+ escape(k_2) + "'");}
document.write('<a href=JavaScript:mail_to("","")>(必ずお問い合わせなどの文字を入力してください)<\/a>');
//-->
</script>
<noscript>(画像などを設置)</noscript>

After

<script type="text/javascript">
<!--
function converter(M){
var str="", str_as="";
for(var i=0;i<M.length;i++){
str_as = M.charCodeAt(i);
str += String.fromCharCode(str_as + 1);
}
return str;
}
function mail_to(k_1,k_2)
{eval(String.fromCharCode(108,111,99,97,116,105,111,110,46,104,114,101,102,32,
61,32,39,109,97,105,108,116,111,58)
+ escape(k_1) +
converter(String.fromCharCode(103,110,102,100,63,103,110,102,100,45,98,110,108,
62,114,116,97,105,100,98,115,60))
+ escape(k_2) + encodeURI('お問い合わせ&body=名前:\r\n性別:') + "'");}
document.write('<a href=JavaScript:mail_to("","")>(必ずお問い合わせなどの文字を入力してください)<\/a>');
//-->
</script>
<noscript>(画像などを設置)</noscript>

マウスオーバーを「javascript:void(0);」に変更

デフォルトのままソースを使用すると、マウスオーバーで「javascript:mail_to(“”,“”)」という風に表示されます。
これはお好みかと思いますが、個人的には「javascript:void(0);」にしたいところ。

document.write で出力されるaタグを少し改修すれば、対応可能です。

document.write('<a href=JavaScript:mail_to("","")>(必ずお問い合わせなどの文字を入力してください)<\/a>');

document.write('<a href="javascript:void(0);" onclick="mail_to("","");">(必ずお問い合わせなどの文字を入力してください)<\/a>');

最終的にはこのようなコードとなりました。

<script type="text/javascript">
<!--
function converter(M){
var str="", str_as="";
for(var i=0;i<M.length;i++){
str_as = M.charCodeAt(i);
str += String.fromCharCode(str_as + 1);
}
return str;
}
function mail_to(k_1,k_2)
{eval(String.fromCharCode(108,111,99,97,116,105,111,110,46,104,114,101,102,32,
61,32,39,109,97,105,108,116,111,58)
+ escape(k_1) +
converter(String.fromCharCode(103,110,102,100,63,103,110,102,100,45,98,110,108,
62,114,116,97,105,100,98,115,60))
+ escape(k_2) + encodeURI('お問い合わせ&body=名前:\r\n性別:') + "'");}
document.write('<a href="javascript:void(0);" onclick="mail_to("","");">(必ずお問い合わせなどの文字を入力してください)<\/a>');
//-->
</script>
<noscript>(画像などを設置)</noscript>

HTML/CSS/JSカテゴリの最新記事