メールアドレスをWebに載せると、迷惑メールがたくさんやってきます。
どのようにしてこれを防いだらいいでしょう。
実にたくさんの方法があります。それぞれ得失があり、決定版というのはありません。
検討と実験を行って実際の効果を確かめた後、自分にあった対策をとるのが望ましいです。
しかし、これらの方法はアイデア勝負のところがあり、実際のところいくらでもアイデアは出てきます。
ひとつひとつを詳細に検討と実験を行って全て網羅するのはムリなところがあります。
いっそのこと対策のアイデアだけを100書いてみましょう。検討と実験無しでも、これだけ集めると価値があるでしょう。
この対策は、メールサーバと連携をする必要のある対策があります。この対策については、
自分でメールサーバを運用している組織向きです。プロバイダのメールサーバを使用している
組織などは、メールサーバの管理者にお問い合わせください。
メールアドレスを迷惑メール業者に知られないようにする対策 †
メールアドレス収集ロボットを使用する業者への対策です。
Webページにメールアドレスを表示する場合 †
1〜30 mailto:を使って、メールソフトの自動起動を使う場合 またはmailto:を使用しなくても、閲覧者のメールソフトを自動起動する必要のある場合 †
- アットマークをHTMLエンティティで表示する(「@」と書けば、ブラウザ上では「@」となる)。
- メールアドレスをHTMLエンティティで表示する。
- メールアドレスをHTMLエンティティにし、間に改行を入れる。
- mailto:タグをHTMLエンティティにする。
- mailto:タグをHTMLエンティティにし、間に改行を入れる。しかし、この方法はメールソフトの起動について期待した動作が行えない。
- メールアドレスをJavaScript?でDocument.writeで表示する。
- <a href="mailto:test">としておき、@以下をJavaScript?で補完する。
- メールアドレスを暗号化し、JavaScript?で複号して表示する。
- メールアドレスを全角にし、JavaScript?で半角に変換して表示する。
- メールアイコンをクリックするとJavaScript?でmailto:を表示するようにする。
- メールアドレスを表示せず、フォーム→サブミットボタンを押すと表示するようにする。
- メールアドレスを表示せず、フォーム→サブミットボタンを押し、簡単な質問(なぞなぞ)に答えると表示するようにする。
- メールアドレスを表示せず、Captcha機能(歪んだ文字)付きフォーム→サブミットボタンを押すと表示するようにする。
- 「dummy@nanbu.com ←こちらはニセモノです。これを使った場合にはブラックリストに載せます」という表示をいっしょに出しておく。ブラックリストに登録されたメールアドレスからは受信しない。
- リファラーをチェックして、ロボットらしきものにはメールアドレスを表示しない。
- アクセスログをチェックして、クロウしているようなものにはメールアドレスを表示しない。
- FLASHよりメールソフトを起動させる。
- PDFのメールリンク機能を利用する。
- htmlを暗号化する。
- AJAX化して、メールアドレスはサーバよりのXML通信で取得する。
- メールアドレスの@を★にして、「★を@に変えてくださ い」と書いておく。
- メールアドレスを「test@nanbu.com.com←最後の.comを削除してください」としておき、メールソフト上でに余計な文字を追加して、「最後の.jpを削除してください」と書いておく。
- 小文字のメールアドレスを使うことが前提として、「testREMOVE@PLEASEnanbu.com」としておく。
- JavaScript?でメールアドレスをスロットマシン状にシャッフルする。当たった時のみ、正規のメールアドレスであることがわかるように光る。光らないとmailto:が有効にならない。
- JavaScript?で暗号解読風にかっこよく徐々に表示させる。2,3分かかってようやく表示される。表示が終わらないとmailto:が有効にならない。
- インスタントメッセンジャーのアドレスリンクを表示しておく。チャット上にメールアドレスが自動応答される。
- インスタントメッセンジャーのアドレスリンクを表示しておく。プロフィール上にメールアドレスを表示しておく。
- 「迷惑メール対策を兼ねて、アンケートを実施しています。メールアドレスはアンケートの次のページで表示されます」。
- 「クリック募金」のようなリンクを作り、リンクをクリック済みならメールアドレスが表示される
- 会員制にする。
- Webに載せるメールアドレスはフリーメールを使う。一定期間で更新し、旧いメールアドレスは廃棄する。
- 複数のメールアドレスをあらかじめ用意しておき、一定期間で更新する。メールアドレスは一巡するとまた使用する。
上に掲げた方法のうち、HTMLエンティティを使うやりかたはよく使用されていますが、効果が薄いようです
mailto:を使わず、メールソフトの自動起動する必要のない場合 メールアドレスのコピペはできるようにする †
- 単にmailto:を使わないだけ。
- アットマークを画像にする。
- アットマークの前後に空白をつける。
- メールアドレスの@以降をカタカナにする。
- test"AT"nanbu.comというように書く。
- PDFで表示する。
- FLASHで表示し、クリックするとSystem.setClipboardでクリップボードに格納するようにする。
- メールアドレスを表示するところをリクエストフォームにし、メールアドレスを入力するとそのメールアドレスにメールが届くようにする。
- ZIPファイルにしておき、解凍にパスワードが必要。パスワードはWebページに書いておく。
mailto:を使わず、メールソフトの自動起動する必要のない場合 メールアドレスのコピペすらできない。手で写さないといけない †
- メールアドレスを画像にする。
- メールアドレスをCaptcha画像(歪んだ画像)にする。
- FLASHで表示する。
メールアドレスをWebページに表示しない場合 †
メールを使用することが前提であれば、Webページ上では秘密にしておいても、他のルートで漏洩することは避けられないことに注意。
- メールアドレスを公開せず、メール送信フォームを設置する。
- mixiの自分のページに飛ばす。誰が見たか記録して悪用対策。
自分のメールアドレスを知られたくない相手には、メールサポートとは別のものが必要になります。 †
メールを使用することが前提の場合、メールを使って連絡をしようとする側は、自分のメールアドレスが漏洩するのではないか、という心配がある。したがって、メールを使わない連絡手段を別途考慮した方がいい場合があります。特に、サポート目的などの場合は、メールサポート以外の方法と併用するのが良い。
- サポート掲示板を設置。
- Wikiで対応。
- ブログのコメント欄で対応。
- ブログのトラックバックで対応。
- 問い合わせフォームに対し、RSSで返事。
携帯電話対策 †
携帯電話はJavaScript?が使えないことを前提に考えなければならない。また、メールアドレスを打ち変えるのは大変めんどくさい。これらを踏まえた対策。
- パソコンの画面上にあるQRコードを読み取ってもらう。
- 携帯ゲートウェイからのアクセスの場合のみmailto:を有効にする。
- RSSで返事。
メールアドレスを迷惑メール業者に知られることを前提とし、メールの受信時を含む対策 †
メールソフトで対策 †
- Thunderbirdなど、迷惑メールフィルタ機能の付いたメールソフトを使用する。
- RBLリスト対応ソフトを使う。
- プロバイダの迷惑メール削除機能を使う
- アンチスパムソフトを利用する
- 迷惑メール機能つきIDSをゲートウェイに設置する
- Webページのmailto:でタイトルを指定しておく。特定のタイトルのメールしか受け取らない
- Webページのmailto:で本文のフォーマットを設定しておく。特定のフォーマットのメールしか受け取らない
受信メールサーバでの対処 †
サブアドレスを使う方法 †
- メールサーバにサブアドレスが使えるように設定しておき、一定期間で更新する。
- ワンタイムメールアドレスを使う(1)Webリクエストごとに別のメールアドレスを生成
- ワンタイムメールアドレスを使う(2)日付によって別のメールアドレスを生成
- ワンタイムメールアドレスを使う(3)メールアドレス取得要求ごとに別のメールアドレスを生成 期限付
- ワンタイムメールアドレスを使う(4)メールアドレス取得要求ごとに閲覧者のメールアドレスを含む別のメールアドレスを生成 そのメールアドレスから送られたメールでないと有効ではない
- ワンタイムメールアドレスを使う(5)メールアドレスにリモートホストを埋め込み、そこを経由したメールしか受け付けない
- ワンタイムメールアドレスを使う(6)メールアドレスにメールタイトルのハッシュを埋め込み、タイトルと一致したメールしか受け付けない
サブアドレスとは:
例えば、test@nanbu.comとあります。
サブアドレスを導入すると、
これをtest-toiawase@nanbu.com
test-support@nanbu.com
などとしても、全部test@nanbu.comに届きます。
Webページには、test-toiawaseApril@nanbu.com
としておいて、迷惑メールが増えてきたら、test-toiawaseMay@nanbu.comと切り替えます。
また、この方法をつかって、ワンタイムメールアドレスを作ることができます。
例えば、test-toiawase20070501@nanbu.comとすると、このアドレスはこの日だけしか使えないことになります。
この方法だと、例えば名刺交換をする時にも、 Aさんには test-A@nanbu.com Bさんには test-B@nanbu.com をアナウンスし、ここに送ってもらうことにします。
そうすれば、test-Aやtest-Bのメールは優先的に見ることができ、迷惑メールに埋もれることがありません。あとメールアドレスが迷惑メール業者に
漏洩したときにも漏洩経路を特定することができます。
サーバ上でのその他の対処 †
- 遅延処理を行う SMTPコマンドごとに応答を遅らせ、相手のスクリプトの効率低下を図る。
- 送信元メールアドレスのドメイン名が実在するかチェックする。
- 送信元メールアドレスが実在するかどうか、SMTPセッションを使って確認する。
- グレイリスティングを使う。
- IPホワイトリストを使う。
- HELOコマンド/EHLOコマンドチェックを行う。
- ネームサーバによるホスト認証を行う。
- 送られてきたメールは、1通目は受信するが,2通目はこちらからの返信が確認できないと受信できないようにサーバを設定しておく。
その他 †
- info@〜やsupport@〜などはRFC2142で推奨されているアドレスであるが、これをあえて使わない。
- 上の方に例示した、JavaScript?や画像化の対策をhtml中に入れるのはめんどくさいので、mailaddress.nanbu.com?id=1234のようなメアドサーバーへのリクエストによって表示するとコンテンツを作る側も簡単になる。
お笑い †
本当のお笑いと、時代がズレた技術として微妙なものもここに。
- Waveファイルに録音して、メールアドレスを読み上げる
- ActiveXを使ってOutlookExpress?を制御する
- メール送信.exeをダウンロードしてもらって送信してもらう
- レジストリファイルに書いておき、次回起動時に勝手に送信する
- VRMLで表示する。3Dで回ってかっこいい。無駄に見た目にこだわるクライアント向き。
- Canvas要素で表示する。ベクター情報を使うのでソースを読んでもわからない。
- SVGでグラフィック表示
- OpenOffice?で表示する。うまくいけばプラグインでインラインフレーム内に表示できる
- Microsoft Officeで表示する。うまくいけばプラグインでインラインフレーム内に表示できる
- Javaアプレットを利用し、サーバからメールを送る
- Java Web Startを利用してメールを送る
- VMLでグラフィック表示
- 裸眼立体視グラフィックで表示
- メールアドレスを暗号化し、暗号化したものを載せておく。頭のいい人しか復号してメールを送れない。
- 逆に並べ替える
- ISOファイルにしておく。CDに書くと見えるようになる。
- VNCのlistenモード遠隔サポートキットをダウンロード・実行されるようにして、接続してきたクライアントを操作して、メールソフトを起動し、メールアドレスをタイプインする。
- グラウンドの芝生を刈り取ってメールアドレスを描く。google mapsの衛星画像の自社の座標にリンクを貼り、見てもらう。
- TELをかけると自動応答でメールが教えてもらえる。
- amazonのレビューにリンクし、そこで公開しているメールアドレスを読んでもらう。お小遣いにもなってお得!
- 「メールアドレスはこちらをクリック」として、エントランスFLASHをここぞとばかりに使いまくる
- 「メールアドレスはこちらをクリック」として、ストリーミング動画の最後にメールアドレスが出る。苦痛でも、早送りせずにみないといけない。
- AnonymousFTPサーバにアクセスさせて、パスワードメールアドレスに送信する
他サイト †
ここまで書いたものは、一般的なものや、私が独自に考えたものですが、以下に他サイトで独創的なものを示します。
- 3秒後に表示する
http://www.nikkei-azabu10.com/smail.html
実験してみた結果も表示されており、おすすめです。
100少々の方法を書きましたが、重複しているのもあるので、数は100程度でしょう。
これらのうち、個人的にいいんじゃないかと思うのは、以下のものです。
- 単にmailto:を使わない。
- アットマークを画像にする。
- アットマークの前後に空白をつける。
- メールアドレスを表示するところをリクエストフォームにし、メールアドレスを入力するとそのメールアドレスにメールが届くようにする。
- ワンタイムメールアドレスを使う(4)メールアドレス取得要求ごとに閲覧者のメールアドレスを含む別のメールアドレスを生成 そのメールアドレスから送られたメールでないと有効ではない
- <a href="mailto:test">としておき、@以下をJavaScript?で補完する。
- 携帯ゲートウェイからのアクセスの場合のみmailto:を有効にする。
- JavaScript?で暗号解読風にかっこよく徐々に表示させる。2,3分かかってようやく表示される。表示が終わらないとmailto:が有効にならない。
- Wikiでサポート対応。
- メールアドレスを公開せず、メール送信フォームを設置する。
- Webページのmailto:でタイトルを指定しておく。特定のタイトルのメールしか受け取らない
- info@〜やsupport@〜などはRFC2142で推奨されているアドレスであるが、これをあえて使わない。
これらを、自分のサイトにあわせて組み合わせるといいと思います。