メールアドレスを堂々と表示してみる。

メアド収集ロボット対策とかって、メアドを画像にしたり、フォームだけでメアドの掲載をしていないサイトってあると思います。

これってどうなん?

デファスタになっちゃってるからいいの?

やっぱ送り手としては、送り先のメアドを知っておきたいものです。

ってことで、webサイトにメアドを堂々と表示しちゃいましょう。

 

とりあえず、下記のコメント箇所、sampleとexample.comの箇所を書き換えてください。

この例では、sample@example.com になります。

//  リンク生成javascript
$buf =<<<EOT
<span class="c_mail_address"></span>
<script type="text/javascript">
  (function(){
    var a = ['sa','m','p','le']  //  sample
      , b = ['ex','ampl','e.c','om']  //  example.com
      , c = ['ma', 'il', 'to', ':']
      , h = m = '';
    for (var i in c) h += c[i];
    for (var i in a) m += a[i];
    m += '★';
    for (var i in b) m += b[i];
    m = m.replace('★', '@');
    jQuery('span.c_mail_address')
    .html('')
    .append(
      jQuery(document.createElement('a'))
      .attr('href', h+m).html(m)
    );
  })();
</script>
EOT;
//  定数にセット
define('C_MAIL_ADDRESS', $buf);
?>

これで定数 C_MAIL_ADDRESS を echo すればOK!

<html>
  <body>
    <h1>お問い合わせ</h1>
    <p>
      メールはこちらへ → <?php echo C_MAIL_ADDRESS;?>
    </p>
  </body>
</html>

まぁこれでも復元ルーチンは簡単すぎるね。

実際の運用では、配列の復元をもっと複雑にしてもいいと思う。

あと、注意点ですが・・・

もし仮に私が、メアド収集ロボットを作るとしたら、

こんな小手先の対策なんて無意味です。

こんなことしていたって、sample@example.ocmを認識するロボット作れちゃいます。

そんな難しいことでもないしね。

ってことで、素直にフォームにしたほうがいいのかもしれないね。

まぁなんていうか、こういう書き方もできるよってお話でした。