以下のようにメール本文をHTMLに直書きするとロボット(クローラー)が自動的にメールアドレスを取得して広告メールなんかが爆裂に飛んできてしまう。
<a href="mailto:abc@abc.com">Mail</a>
そこで、以下のようなサイト
https://www.luft.co.jp/cgi/coding.php
を利用してメールエンティティ化する。こうするとメールアドレスが直接HTMLにかかれていないため、拾われることがない。
<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(96,97,98,63,102,108,96,104,107,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>
このメールエンティティ化したリンクをクリックしたとき、メールタイトルやメール本文などをどうするか?というと、こうする
<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(117,104,107,107,96,102,100,111,113,110,108,63,102,108,96,104,107,45,98,110,108,
62,114,116,97,105,100,98,115,60))
+ escape(k_2) + "メールタイトル&body=下記項目を入力してください%0D%0A%0D%0A名前→%0D%0A年齢→%0D%0A住所→%0D%0A電話番号→%0D%0A身長→%0D%0A体重→%0D%0A%0D%0A本文本文本文本文本文本文%0D%0A'");}
document.write('<a href=JavaScript:mail_to("","") class="btn btn-primary btn-block btn-entry">メール送信する<\/a>');
//-->
</script>
<a href="JavaScript:mail_to("","")" class="btn btn-primary btn-block btn-entry">メール送信する</a>
body内にある
%0D%0A
は改行できる。メールリンクはスマホからだと送信する方も、受信して返信する方も、楽である。サーバー上にプログラムを置く必要もない。