アドレス収集ロボットに探知されないmailto:の書き方

「ホームページにメールアドレスを書くときのお勧めの方法」

SPAM(迷惑メール)とアドレス収集ロボット

インターネットのメールは、郵便切手を貼ったダイレクトメールと比較して格安で送ることができるため、宣伝を送り付ける方法として利用が拡大してきた。宣伝を必要としない人に同意なしで送られるメールは、SPAM(迷惑メール)と呼ばれている。

現在、これら迷惑メールを送り付ける業者は、アドレス収集用のソフトウエア・ロボットをネットに放ち、インターネット内のホームページからメールアドレスを意味する@前後の文字列を読み取ってデータベース化している。

具体的には、テキストでjohn@edb-lab.miyakyo-u.ac.jpと書いたり、mailtoタグで、<a href="mailto:john@edb-lab.miyakyo-u.ac.jp">メールはこちら</a>と書いて公開していると宣伝メールを送る宛先として収集されてしまうのだ。

以下の能書きを読む前に、結論からお教えします!

  1. 柳澤佳里氏作成のメールアドレス暗号化のページ
    http://www.csg.is.titech.ac.jp/old-pages/yanagisawa/Sites/javascript/caesarAddress2.html
    に行き
    1. 「メールアドレス」の部分に暗号化したいメールアドレス
    2. 「リンク文字列 」の部分に「メール」と入力し
  2. 「変換」のボタンを押すと、

    (例)のような暗号化されたJavascript文が生成される。
  3. これを従来
    <a href="mailto:john@edb-lab.miyakyo-u.ac.jp">メールはこちら</a>
    と書いていた部分に置き換える。
  4. 注意
    1. この置き換えは、すでに迷惑メールがたくさん来るようになってしまったメールアドレスの場合「これ以上迷惑メール送信先として収集されない」という意味においての迷惑メール対策にしかなりません。ごめんなさい。一旦収集されたメールは業者間で売買されるため、この対策をしても増えることがあります。
    2. すでに、迷惑メールがたくさん来るようになっている場合で、メールアドレスを変更できないときは、姉妹ページ「Thunderbirdによる迷惑メール対策
      http://edb.miyakyo-u.ac.jp/ugawa/Center/antispam_mozilla/ 」を参考にしてください。
    3. もしホームページでの問い合わせ受付用に新しいメールアドレスがもらえるなら、この際、john@edb-lab.miyakyo-u.ac.jp→john2007@edb-lab.miyakyo-u.ac.jpなどメールアドレスを変更し、年号等の数字をつけるようにし、それを毎年変更できる体制がとれると良いですね。この問い合わせは、個人のメールアドレスとは違い、ホームページを見てその都度くるわけですから、アドレスが変更になっても問題になることはほとんどありません。ホームページを見てメールを出した人は、アドレスが変更になった場合にも、再度ホームページを見てメールを出し直してくれると考えられます。逆に、問い合わせのためのアドレスとしてホームページに個人のメールアドレスを使うのは迷惑メールが沢山くるようになって良くないということです。問い合わせ専用のメールアドレス(alias=別名)を作ってもらえるよう管理者に相談しましょう。

以下、この理由です。

単純で危険なmailto:

普通WebページのURLをクリックしたときにメールソフトが立ち上がるようにするには、以下のようなmailtoアンカーを使うことが多い。しかし、多くのページでこのように表現されているので、迷惑メールを送ろうとする業者はこれを格好のターゲットとして収集している。

JavaScriptを使った比較的安全なmailto:

そこで、私は、かなり前から、単純な方法でmailto:を書くのを止め、以下のJavaScriptを使って探知されないmailtoに改変している。

お知らせhttp://mailrobo.7jp.net/mrobo3.htmlでチェックしたところ、このページに書いてある方法でmailtoを記述した場合も、アドレス収集ロボットによりメールアドレスが取得されるということがわかった。ご自身の判断で使用していただきたい。

現在の私のお薦めは、柳澤 佳里氏作成のmailtoをシーザー暗号で暗号化するJavascriptである。
http://www.is.titech.ac.jp/〜yanagis0/javascript/index.html

 

この例では、mailtoをmaiとlto:に分割、@を&#64;にして、JavaScriptのプログラムが分からないと解析できないようになっている(でも正しく機能する)。

SPAMへの対応

届いたSPAMは、取り扱いに注意が必要である。実は、送った業者が、そのSPAMが読まれているかどうか常にチェックしているのだ。

受信確認をするとか、remove meやno-more-mail等のボタンを押すとか、メールソフトの設定でメールに添付されているリモート画像を表示するようにしていると、SPAMが届いたアドレスは人が見ていると証明するようなものだ。

表示されている画像にはWebビーコンと呼ばれる、各メールに固有のID番号が書いてある場合があり、そのIDの画像がサーバから取得されると、誰宛に出したメールがいつ読まれたかが、出した者にわかる仕組みになっているのである。

HTMLメールの中に埋め込まれたビーコンの例:
<img src="http://www.ウソ.コム/tf/images/tf.jpg?ba=tf&bb=ウケ&bc=ト.リ.人.jp" border="0">

電子メールをネットワーク上に公開するには、ここに書いたようなJavascriptを使うなり、画像で表現するなどの配慮が必要だ。上で書いているは、実は、画像なのだ。残念ながら私のアドレスは、自分で注意していても、他の人々によりネットワーク上に公開され、現在では、多くのSPAMが来るようになってしまった。

不幸にして迷惑メールが来るようになったら

一旦SPAMが来るようになったら、もうお終いだ。迷惑メール送信業者は、アドレスの売買を行なっており、他の業者に売られて迷惑メールがどんどん増えていく。参考URL、1と

自分のメールアドレスが限られた人に知られている程度であれば、携帯電話のメールアドレスのように、迷惑メールが来るようになった時点で、そのアドレスを捨て、別のものにすればよいが、すでに多くの人との連絡に使っている場合、出版されたCD-ROMに書かれている場合、業務で使っている場合には、変更が難しいかもしれない。

ホームページに書く連絡用の業務用アドレスは、ホームページでメールアドレスを調べ、その時点でメールを出す場合が多いから、アドレスが突然変更されても、それほど実害はないはずだ。アドレスに西暦年号を入れ定期的に変更するようにすれば宣伝メールをある程度避けることができる。

CD-ROMに書かれているもの、ホームページで公開している業務用の古いメールアドレスを使用停止にする場合は、以下の方法が考えられる。

まず、通常と同じくUser Unknownを示すエラーを返す。ただし、そのエラーメッセージ中に、人が読めば分かるように新しいメールアドレスへと導くURLを書く(その中に新しいメールアドレスを直接書いてしまうとそのアドレスも収集される可能性があるので書かない)。

そして、このURLをブラウザで表示すると、

という画像として、新しいアドレスが表示される仕組みである。

実は画像にすれば安心という物でもなくなっている。hotmail等のフリーのメールアドレスは、SPAMを出す側にも便利!?に使われているので、単なるスクリプトでは自動で取得できないよう、画像でパスワードを示している。その画像は文字認識ソフトで読み取れないよう曲がっていたりする。hotmail等の大掛かりなところでは、ここまでやらないといけないのだということがわかった次第。でも、とりあえずは、たった1つのSPAM送信先を確保するために画像までは、頑張って読まないと判断。

SPAM対策ソフトの利用

SPAMをなくす抜本的な改革としては、すべてのメールについてそれを出す人がだれかを特定できるような証明書をつけるか、証明がついたメールでなければ受け取らないような体制ができればよいと考えている。PGPなど、メールにデジタル署名をすることで出した本人を証明することは難しくなくなってきた。デジタル署名がないメールは信用できないという環境ができてきつつある。参考URL8

面白い試みとしてHabeasヘッダの利用がある。参考URL7  だが皮肉にも私がこれを知ったのはHabeasヘッダがついたSPAMを受け取ったからである。法律の制定も是非必要だと考える。

上記のような社会的環境が整うまでは、SPAMかどうかをソフトウエアで判断し、メールソフトを使ってフォルダーで振り分けることで対応するしかないと思う。

まだ振り分けが完ぺきとは言いがたいが、これができるメールソフトとしては、Microsoft Outlook, Apple Mail,NetscapeMail, Eudora等が存在する。また、サーバのメールボックスの中のSPAMを掃除してくれたりUserUnknownというウソのエラーメールを返すことができるpostarmorなどもある。残念ながら以上のソフトは正常なメールもSPAMとして判断する率が高く安心して使えない。今後に期待したい。

私の現在のお薦めは、無料で使えるメールソフトMozilla Thunderbirdである。「Mozilla / Thunderbirdによる迷惑メール対策」で設定方法について説明してある。

その他としてユーザだけでは設定できないものではあるが、メールを受け取る途中で、SPAMかどうかについて印をつけてくれるSpamassassinがある。この印を元に振り分けを行なうわけだ。使用したい場合は、プロバイダーやネットワーク管理者、情報処理センターに相談してみるとよい。

Spamassassinには、SPAMに特徴的なテキストを見つける能力、通常のメールではありえないヘッダを見分ける能力と、学習機能等があるが、他のものと違いSpamassassinがSPAMと判断したものの中にSPAM以外が入っていないので安心して使える

Spamassassinの学習機能を使わず、デフォルトの設定のままのときは、すり抜けてくるSPAMの処理が大変だったが、学習をさせることで、真に「使える」ようになった。是非、学習機能を使って欲しい。

(1)手動での振り分け、(2)自動的な振り分けの両方を容易にするためと、(3)Spamassassinの学習機能を利用するには、単にPOPでパソコンにメールを持ってくるのではなく、サーバ上に置いたままメールを扱うことができるIMAPでメールを見ることが必要だ(一旦POPで持っていっても、IMAPを使っていれば学習用に戻すことができる)。自動振り分けには、Procmailまたは、パソコンのメールソフトの振り分け機能を使うことをお勧めする。

以下は、私のIMAPのメールボックスである。ProcmailとSpamassassinの働きで、SPAMのほとんどは受信時に自動的にSPAMフォルダーに入る。たまにSPAMなのにSPAMとして振り分けられなかったものがINBOXに残るので、それをSPAM-Learnフォルダーに移動してやると、次回からはSPAMと学習してくれる(以下は、DISC0UNT MED1CATI0NSというメールを学習のために移動しているところ)。

詳しい処理の流れは以下である。

  1. まず、.procmailrcに以下の記述をして、X-Spam-Level: *****(Levelが5以上)だったら特定のフォルダー(私の場合は、SPAM)に入れる。最初からごみ箱で削除するより、振り分けの機能を確かめる意味でも、一旦、どこかに取っておくことをお勧めする。
  2. その他、よく来るメール、メールリスト等のメールは、すべて自動でしかるべきフォルダーに振り分ける。これは、procmailでやっても、パソコン側のメールソフトでやってもいい。パソコンメールソフトでは、この機能のことを、振り分け、ルール、フィルターなどと呼ばれている。
  3. 残ったメールを目で見て、もしSPAMであれば後で学習させるために別のフォルダー(私の場合は、SPAM-Learn)に入れておく。
    このとき、何でもかんでも学習させればよいというものではない。私の場合は、管理業務があるため、管理者宛に来る、見なければならないメールがSPAMとして処理されないよう注意している。具体的には、短すぎるメールや、自分で見ても意味不明のメールなどは、学習ではなく、手で削除することにしている。
  4. 学習させるSPAMをSpamassassinの"sa-learn --spam --mbox IMAPフォルダ名"のコマンドを使って学習させる。と言っても、いちいちUNIXにログインしてこのコマンドを起動するのは大変である。そこで、以下の方法で自動化を行なう。具体的には、、
    まず、次のsa-learn.shを作成する

    これをcrontab に以下のように定期的に実行できるよう登録する。

    これにより定期的に自動で学習されるので、普段の作業は「SPAMであれば後で学習させるために別のフォルダーに入れておく。」のみである。
  5. 時々SPAMフォルダーを確認して、誤ってSPAM以外が入っていないかを確認。もしSPAM以外が入っていたら、SPAMではないと学習させる必要がある。が、今まで、これが起こったことはない。

Spamassassinの学習のため!?には、人間には見えないがSPAM業者は持っていくような偽アドレス、いわゆるワナを設けるという方法もある。ワナにかかるメールは必ずSPAMなので、それを学習に使うことができる。例えば、ここに明示的に、mailto:john@ugawalab.miyakyo-u.ac.jpと書いてみたりする。メールサーバによっては、特定アドレスを含むSMTPセッションは、つかんだまま放さないという意地悪ができるものも存在すると聞いた。いろいろ挑戦してみて欲しい。

参考

  1. スパムメールに返事を出したら――体験レポート
    http://hotwired.goo.ne.jp/news/business/story/20030221104.html
  2. スパムメールの道程を追跡した地図が完成
    http://hotwired.goo.ne.jp/news/culture/story/20020710206.html
    http://www.ij.net/spamdemicmap.shtml
  3. mailto以外の様々なSpamTrapの方法
    http://www.neilgunton.com/spambot_trap/ (英語)
  4. スパムの選り分け手法 -- 不要なEメールを排除するための6通りの方法
    http://www.ibm.com/developerworks/jp/linux/library/l-spamf/
  5. スパム・メール関連のURL@マルチメディア・インターネット事典
    http://www.jiten.com/dicmi/docs/k13/17993s.htm
  6. Spamassassin bogofilter
    http://www.google.co.jp/search?q=Spamassassin+bogofilter&lr=lang_ja
  7. Habeas ヘッダの利用
    http://www.tidbits.com/tb-issues/lang/jp/TidBITS-jp-661.html#lnk2
    http://www.habeas.com/
  8. GnuPG とThunderbird で暗号メール
    http://stahl.arch.t.u-tokyo.ac.jp/〜iyama/memo/Computer/gpg.html


--鵜川義弘(うがわよしひろ)