スパム対策2. メールアドレス内の記号を他の文字に変更する方法

最も簡単なスパム対策としてよく使われているのが、メールアドレスに含まれる「@」記号だけを他の文字に変更して掲載する方法です。下図のように「★記号を@記号に置き換えて下さい」などの注釈と共にメールアドレスが掲載されているケースをよく見かけます。
 
メールアドレスに含まれる「@」記号だけを別の文字に置き換える掲載方法

メールアドレスに含まれる「@」記号だけを別の文字に置き換える掲載方法


メールアドレスの特徴は「@」記号が必ず含まれることですから、メールアドレスを自動収集するプログラムは、HTMLソース中から「@」記号の存在を検索するでしょう。したがって「@」記号を使わずにメールアドレスを掲載しておけば自動収集プログラムを回避できるだろう、という考え方です。

【このスパム対策の目次】  

メールアドレス内の記号を他の文字に変更するメリット・デメリット

メールアドレス内の記号を別の文字に置き換えるメリット
「@」記号を別の記号に置き換えて注釈を加えるだけなので、とても簡単な作業で済む点が最大のメリットでしょう。閲覧者にとっても、記号1つを書き換えれば良いだけなので大した手間はかかりません。記号以外の部分についてはコピー&ペーストすれば良いので、打ち間違いも起きません。

メールアドレス内の記号を別の文字に置き換えるデメリット
「連続する英数字」+「メールアドレスに使えない記号」+「連続する英数字」+「.com」のような文字列をメールアドレスだと自動認識するのは、さほど難しくはないでしょう。賢い自動収集プログラムは「@」記号を別の文字に置き換えた程度では問題なく収集していく可能性もあります。

記号1つに置き換えるのではなく「あっと!」のような日本語に置き換えると収集されにくくなるでしょうが、人間の閲覧者にも分かりにくくなってしまいます。

 

メールアドレス内の記号を他の文字に変更する方法

説明するまでもないでしょうが、例えば以下のようにHTMLを記述します。
<p>
   example★example.com <br>
   ※上記の「★」記号を「@」記号に置き換えて下さい。
</p>

アットマーク「@」だけでなくドット「.」も置き換えれば、なお自動収集されにくいでしょう。
<p>
   example▲example▼com <br>
   ※上記の「▲」記号を「@」記号に置き換えて下さい。
   ※上記の「▼」記号は「.」記号に置き換えて下さい。
</p>
 

全角文字のアットマーク「@」は使わない方が良い

メールアドレスに使われる半角(1バイト)の「@」記号の代わりに、全角(2バイト)の「@」記号を使うのは避ける方が望ましいでしょう。理由は下記の3点です。
 
  • 初心者は全角文字の「@」記号ではメールアドレスにならないことを知らない可能性があり、そのまま送信しようとしてしまうかもしれないため。
  • 閲覧環境(フォント)によっては、全角「@」と半角「@」の見分けが付かず、修正する必要がある点に気がつかない可能性があるため。
  • 多少賢いメールアドレスの自動収集プログラムは、全角記号の「@」が使われていてもメールアドレスだと解釈して収集するかもしれないため。

下記の(A)は半角「@」記号でメールアドレスを書いた例、(B)は全角「@」記号でメールアドレスを書いた例です。フォントによっては、まったく見分けられない場合もあります。

(A) example@example.com  ←半角@
(B) example@example.com  ←全角@

テキストエディタでは等幅フォントで表示されるため、上記の2行をコピー&ペーストしてみると下図のように全角記号と半角記号の差がよく分かります。
 
等幅フォントで表示されれば半角「@」記号と全角「@」記号の違いは明確だが

等幅フォントなら、半角「@」記号と全角「@」記号の違いは明確

 

たとえ記号を置き換えても、リンクにはしない方が無難

下記のHTMLソースのようにリンクの形にすると、クリックするだけでメーラが起動するので閲覧者にとっては便利です。しかし、この方法は避けておく方が無難でしょう。
<a href="mailto:example★example.com">
   example★example.com
</a>
※「★」記号を「@」に置き換えて下さい。

上記のようにリンクの形にすると、HTMLソース中に「mailto:」という文字列が登場するため、それに続く文字がメールアドレスだと明示することになってしまいます。すると、そこに含まれる何らかの記号を「@」記号に置き換えれば正しいメールアドレスに変換できるため、比較的容易に自動収集されてしまいそうです。

 

数値文字参照を使って記述する方法に効果はない

本記事の1ページ目でもご紹介しましたが、数値文字参照という記述方法を使えば「@」記号は「@」と書くことでも表示できます。この方法を使えば、HTMLソース内に「@」記号を書かずにメールアドレスを掲載できます。例えば以下のように書けます。
<a href="mailto:example@example.com">
   example@example.com
</a>

閲覧者は何も修正する必要なくメールを送信できるので便利ですが、この数値文字参照を使う方法ではスパム対策としての効果は期待できないと考えておく方が無難です。「@」記号のほかに「@」という記述も探せば良いだけなので、自動収集プログラムの対応が容易だからです。

数値文字参照はウェブ上で一般的に使われる記述方法ですから、自動収集プログラムはその程度には対応済みだと考えておきましょう。


次に、メールアドレス内にダミーの文字列を追加する方法をご紹介いたします。