ウェブのmailto:で迷惑メールが来るのを(なるべく)防ぐ

まえふり

ウェブを見た人からメールを欲しいとき、「<a href="mailto:someone@example.com">ここにメールして!</a>」なんてこと、よくやりますよね。大きな問題は、迷惑メール業者のロボットに発見されて、メールアドレスを抜き出されて、そのうち迷惑メールがたくさん届くってことです。さあ、どうしましょうか。

  • mailto:をやめちゃう。ぜんぶお問い合わせフォームで。これは確実だけど、人によっては、お問い合わせフォームにちまちま入力するのが嫌いで、「メールで送らせろ」ってこともある。特に、フォームの作りによっては、キーボードのエスケープキーを間違ってたたいてしまうとフォームの内容が全部クリアされちゃったり。不評です。
  • mailto:...を、「HTMLエンティティ」で記述する。「&#97;」とかいう書き方ですね。ま、これは簡単なわりに効果もそこそこ。ただし、最近のロボットはそんなものはさっさと普通の書き方に逆変換してから収集する「らしい」です。これをやってても迷惑メールが届く事例がけっこうあります。

さて。

うちでよくやる方法。

こういうスクリプトを用意しておいて。

<script language="javascript">
function emaillink(text, rcpt, subject) {
  var domain = "example.com";     /* メールアドレスのアットマークから後ろをここに書く */
  rcpt += "\@" + domain;
  if (text == "")
    text = rcpt
  document.write(
    "<a href=\"mailto:" + rcpt + "?subject=" + subject + "&amp" + "\">" + text + "</a>");
}
</script>

mailto:が欲しい場所で、こんなふうに記述する。

<script language="javascript">emaillink('リンクテキスト', 'アットマークの前の部分', 'メールの件名');</script>

リンクテキストを「''」にすると、メールアドレス自体がリンクテキストになります。

メールの件名は「''」でもいいです。

この方法、わりと成績いいですよ。 迷惑メール、ほとんど来ません。 迷惑メールやさんのメールアドレス収集エンジンも、わざわざJavaScript?を解読するほどのことはやらないってことなんでしょう。

問題は、よくあるHTMLエディタのたぐいが、スクリプトの部分を壊してしまいがちだということ。 エディタで開いて保存するときは、よく確認してからにしないと、 わざわざJavaScript?を実行した上で「mailto:someone@example.com」に置き換えやがります。 ひとたびこのままウェブを公開してしまうと、とたんに迷惑メールやさんに知られて、迷惑メールが届くようになります。