WordPressに限ったことではなく、サイト作りをしていて管理人へのメールが送れるようなリンクを設置したいと思う機会はあると思います。通常はmailtoタグを使って
<a href=”mailto:sample@sample.com“>sample@sample.com</a>
のように記述することで、クリックするとメーラーが開き、件名や本文を入れて送信できる仕組みを作ることができます。
でもこの方法ではアドレス収集ロボットなどと呼ばれるメールアドレスを自動収集するようなプログラムによって搾取され、スパムメールの嵐となることが多くあります。
WordPressでは対策として
などのプラグインを使ってメールアドレスを暗号化するという方法が数多く紹介されていますが、
- そもそもこのプラグインがどう暗号化されているのか?どう機能しているのかが分からない
- この類のプラグイン作者がひょっとしてスパマーだったらどうする?
とは感じませんか?また、メールアドレスを暗号化するためだけにプラグインを1つ追加するのも・・・と思う方もいるかもしれません。
今回は簡単なプログラムコードを使って表示したい場所へコード挿入するだけでhtmlソースに表示されるメールアドレスを全く別物にしてスパムから回避する方法を紹介します。
と格好いいこと言ってますけど、ネットで見つけた方法を自身の備忘録として紹介している記事になりますのでご容赦ください。
プラグインなしでメールリンクのスパム対策をする
コードなど詳しいことは
に掲載されていますので参照ください。そちらではメールアドレスを入力するだけでコピペ用コードが生成できるようになっていて本当に便利です。
生成されたコードを投稿本文など挿入したい場所へ張り付けるだけで機能します。
※↑のサンプルでは参照サイトのコードを少し改造して
- メーラーが開いたとき自動で件名を入力する
- リンクをメールアドレスではなく「こちら」という文字にする
ようにしています。参照ページで生成できるコードの中の
document.write("管理人への連絡は、<a href=\"mai"+"lto:"+em_shtml+"\">こちら</a> からお願いします(規定のメールソフトが開きます)");
を
document.write("管理人への連絡は、<a href=\"mai"+"lto:"+em_shtml+"?subject=管理人様へ"+"\">こちら</a> からお願いします(規定のメールソフトが開きます)");
に変更すればOKです。
さいごに
メールアドレス収集ロボット対策を目的としたプラグインをインストールしてプログラムを見ると、今回と同じような形で暗号化しているのが分かると思います。・・・ということは、これらのプラグインのことを知っていて収集しよう!と思えば簡単にできてしまうということにもなるので、できるだけオリジナルな方法で対策した方がいいと思います。
また、WordPressではこうしたメールリンクの代わりに「Contactform7」などのコンタクトフォームを使って最初からメールアドレスが類推されないようにすることが多いですが、問い合わせる方がメールの入力を誤って送信してしまい、返信してもエラーになるということが多くありますから、どちらを使うかはサイトの状況に応じて判断するといいと思います。