masahirorの気まま記録簿

個人的な出来事や意見、生活などの記録を思うままにブログに記録

メーラー「Becky!」でYahooの迷惑メール機能を有効活用

ホームページを公開してるせいもあり、迷惑メールが凄く多い。ましてやメインのメールがYahooだからなおさら。
ただ、Yahooも対策はしてくれてるので、迷惑メールは自動で判別して「迷惑メールフォルダ」に移動してくれる。
しかし、この機能はあくまで「Webアクセス(http://mail.yahoo.co.jp/)からメールを読む時」のみ。POPアクセスで受信すると、「迷惑メールフォルダ」のメールも全部受信されてしまう。YahooメールのWeb版で、どうにかこれを受信されないように設定できないか探したが、見つけることはできなかった。もちろん、受信拒否という設定もあるが、量が多いと設定も面倒。


僕はメールソフトに「Becky! Internet Mail」を愛用している。学生時代からだから、もう7年目だ。このソフトは機能も豊富で優れていて非常に使いやすい。
その機能の一つに「振り分け機能」があるのだが、これを使ってうまいこと「Yahooメールが自動判別した迷惑メールを即ごみ箱へ移動」できないものか試してみた。

ちなみに、迷惑メールがらみのプラグインもあるのだが、1つ試したが処理が重くなったり誤反応が多かったりで今は外しています。他にもあるみたいなので、それを使えば今回の設定は不要かもしれませんが、まだあまり試してなく、今回の方法はYahoo限定であれば簡単に設定ができ、かつ(Yahoo次第だが)正確に判定されるので紹介しています。



まず、メールソフト上の「フォルダへの振り分けルール」が使えそう。いつもはここでメールマガジンやらネットショップ・登録などのメールの振り分ける設定を行っている。ただ、大抵は「Form」「件名」などで判別し他の機能では振り分けしたことがない。


ここで、ヤフーに送られたメールで「迷惑メール」に認定されたメールをPOPで受信し、ヘッダを確認してみると・・・

X-YahooFilteredBulk: XXX.X.XX.XXX

というヘッダが追加されていた。XXXはIPアドレスっぽいのだが、どのIPなのか分からないし、迷惑メールによって全然違うIPアドレスが設定されていた。
もちろん、通常のメールと比較すると、このヘッダは追加されていない。ということは、迷惑メールと判断されたメールは、Yahooメール側がこのヘッダを追加してくれているのだ。名前も「・・・・Bulk」だし。


これをうまく使えば、迷惑メールを振り分けれるのではないか?
早速先ほどの、「フォルダへの振り分けルール」。これをごみ箱で設定してみる。
Becky!上のごみ箱→右クリック→「フォルダへの振り分けルール」
条件のヘッダに「X-YahooFilteredBulk」、文字列に・・・・・・・何と入れればいいのだろうか。
文字列はIPアドレスっぽいが固定ではないので普通の指定は無理。迷惑メールのみに追加される「X-YahooFilteredBulk」だが、「ヘッダにX-YahooFilteredBulkがあれば」、という設定も思いつかない*1
どうしようかと思っていたら、そういや文字列の設定に「正規表現」が使えるみたい。これを使えばうまくいくのでは?
しかしあまり「正規表現」に詳しくないので、正規表現の書き方についてネットで検索。ある程度勉強した後、Becky!のヘルプを見てBecky!用の正規表現の書き方を学習。
これらの知識を元に、文字列は「IPアドレスがあれば」という設定をするため最終的には以下のように設定。

ヘッダ:X-YahooFilteredBulk
文字列:([0-9]+)*.([0-9]+)*.([0-9]+)*.([0-9]+)*

文字列の正規表現は、

  • [0-9]+ で「0から9までの数字」を1文字以上あるか
  • ([0-9]+)* で上記条件を0文字以上繰り返しているか
  • ([0-9]+)*. で上記条件+.があるか
  • 上記3つをIP分4回繋ぎあわす

という意味を持っている。これで「振り分け」を実行してみると・・・
見事迷惑メール振り分け成功!しかも過去の分で受信箱にほっといて埋もれていた迷惑メールも、見事ごみ箱振り分けられ、受信箱がすっきした。
新規で来た分も、受信と同時にごみ箱に入っていく!
当初

([0-9]+).([0-9]+).([0-9]+).([0-9]+)

と設定して試してみたが、一部はうまくいったのだがIPが「XX.X.X.XX」と短かった場合にメールがうまく振り分けられなかった。なので、現在の形にしたのだが、元々ほとんど「正規表現」に対して知識の少ない自分。もっと簡単な書き方もあるのだろうが、とりあえずまともにうごいてるのでよしとしよう。この辺はまだまだ正規表現の勉強が必要だな。


というわけで、見事いちいちYahooメールのWeb版を見て、「迷惑メールフォルダ」を空にするという作業をしなくてよくなった。万歳ー!

ただし、これはあくまでYahooの迷惑メール機能があるからこそ使えるわけなので、「YahooメールのPOP受信」+「メーラーがBecky!」の人にしか使えない技。他のメールサービスでも迷惑メールを判断してくれるところはあるだろうけど、サービスによって迷惑メールの処理の仕方やヘッダに追加する項目名が違ったり、その項目にセットされるデータも違うだろうから*2、それらで設定してみたい人はこれを参考にしていただけるとよいかと。
また、あくまでメーラーが「Becky!」の場合であり、それ以外のメーラーだとこのような振り分け機能がないと、せっかくYahooメール使っててもうまく振り分けの設定ができないかもしれない。そこは、僕もほとんど他のメーラーは使ったことないので分からない。

「YahooメールのPOP受信」+「メーラーがBecky!」の人には参考になったら幸いです。その他の人も何かしらのヒントにはなるかと思います。
ただ、注意したいのは「迷惑メールの誤反応」。
今回の設定自体には問題ないのだが、Yahooメール側の迷惑メール防止機能が普通のメールを誤判断して「迷惑メール」と認定した場合、「X-YahooFilteredBulk」というヘッダが付与されることになり、これを受信すると上記の設定で自動的に「ごみ箱」に入ってしまう。
なので、Becky!のごみ箱を空にするときには、一度誤認識された普通のメールがないか確認したほうがよい。
もしくは、Becky!上に「迷惑メール」というフォルダを作って、そこに「フォルダへの振り分けルール」として上記の設定をし、定期的に確認して不要だったらごみ箱に主導で移動させる方法もありかな。一手間増えるけど、誤って消してしまうのは防げるのでよく誤認識される人や迷惑メールの件数が少ない人はこちらのほうがお勧めです。迷惑メールが多い人は絶対前者が便利。
まあ、最近はYahooメールのスパムガードもかなり精度が上がってきてるし、なにせ1PCの1ソフトでスパム判定をするわけではなく、サーバ側で判定してくれるから最新のスパムにも対応が早いだろうし、PC側で定義の更新といった作業もなく、サーバにお任せできるので便利。


最近はOutlookにも「迷惑メール」機能が追加されたみたいだけど、使ってないのでどの程度の精度かは不明です。

そういうやり方を見つけて喜んだ土曜日でした。

【追記】

その後、上記の設定を使いつつも、迷惑メール防止プラグインのひとつ「BkASPil for Becky!2」を入れて併用しています。

BkASPil for Becky!2 総合案内
http://b2antispam.s33.xrea.com/

これはかなり精度がよく、普通に判定するほか、自動学習やアドレス・ドメイン単位で受信拒否設定などに対応しており、誤判定は「ホワイトリスト」に入れることで今後の間違いが無く、さらに迷惑メールに判定されなかった迷惑メールは、Becky!のメニューから直接このプラグインの開発元へオンラインで報告できたり、かなり多機能で便利。

*1:本当はあるかもしれないけど、今回僕は見つけきれなかった

*2:よく見かけるのは「迷惑メール度」といった感じで何%とかのスコアを自動で付ける方法