メール

Thunderbirdのメッセージフィルターを直接編集する【速い】

投稿日:2020年5月28日 更新日:

目次【本記事の内容】

問題

Thunderbirdにはメッセージフィルターという、フィルター機能がある。条件をつけてフォルダに分類したり、期日がきたメールをゴミ箱に捨てたりといったことができる。
便利なんだけど、大量のメールアドレスを処理したい時に、フィルターのウィンドウでちまちま打つのは面倒くさい。ルールのコピーもできるけど、それも修正するのが面倒。直接編集したりして、速くできないか。

解決策

直接編集して、速く編集することは、できる。
msgFilterRules.batというファイルがあって、その中にフィルターが羅列してある。これを直接編集できる。

やりかた

msgFilterRules.batを探す。メールデータのフォルダの中に入っている。メールアカウント一つにつき、一つある。メールのデータの場所は、ツール>アカウント設定の各々のアカウントのサーバー設定の一番下、メッセージの保存先というところがある。ここのパスにあるので、これをコピーして、エクスプローラに貼り付けて表示させる。

まずはこれのバックアップを取っておく。コピー・ペーストして、名前をmsgFilterRules.oldとでもしておく。
そしてmsgFilterRules.batをエディタで開く。
ずらずらと載っているが、上二段の
version="9"
logging="yes"

とあり、その下は、
name="~"
から
condition="~"
までが1セットで、繰り返している。
name="" ルールの名前
enabled="yes"ルール適応させるか
type="17"これはわからない
action="Move to folder"動作の内容
actionValue=""ファイルを操作するときのパス
condition=""フィルターのルール

といった内容のようだ。分析すればそんなに難しくなさそう。
しかし、いちから分析して打ち込むのは面倒なので、同じルールのものを使ってメールアドレスのところだけ入れ替えようと思う。

同じルールのところをname="~"から、condition="~"までコピーする。(最初にメッセージフィルターでルールを作っておく。)それを別のエディタにペーストする。
name="hoge@hoge.jp > 90"
enabled="yes"
type="17"
action="Move to folder"
actionValue="mailbox://nobody@Local%20Folders/Trash"
condition="AND (from,contains,hoge@hoge.jp) AND (age in days,is greater than,90)"

これは、このアカウントのhoge@hoge.jpという差出人のメールで、かつ、90日より過ぎてしまったものをゴミ箱に捨てるといった内容のものだ。タイトルのname=”~”のところは自分で適当に考えた。
ここで、入れ替えるところは、メールアドレスのところだ。ここに、同じルールを適応させたいメールアドレスをすげ替える。tekitou@tekitou.comだったら、
name="tekitou@tekitou.com > 90"
enabled="yes"
type="17"
action="Move to folder"
actionValue="mailbox://nobody@Local%20Folders/Trash"
condition="AND (from,contains,tekitou@tekitou.com) AND (age in days,is greater than,90)"

となる。2箇所だけなので、簡単だ。名前のところは、重複しなければなんでもいいので、実質1箇所変えるだけだ。
これを、先程のmsgFilterRules.batに貼り付ける。

これで一つ終わった。これを数だけこなす。別のルールでも同じようにする。
注意点として、この作業をする際には、メーラーは閉じておかないといけない。開けたまま作業してしまうと、メーラーを閉じた時に追加したルールが全て消えてしまう。
つまり、最初に登録したいメールアドレスはエディタなどにコピペしておかないといけない。
それか、別のファイルにコピペしておいて、メーラーを閉じてから、まとめて追加する。

すべての追加ルールを打ち込んだら、メーラーを開いて、フィルターウィンドウを開くと、追加したルールが表示されているはず。

メールアドレスをいちいちコピペするのが面倒なので、自動で作るマクロのようなのを作る。
PhraseExpressのようなスニペットソフト、エクセルなど、色々なやりかたがあるが、エディタのマクロ機能を使う。(エクセルでやると面倒なことが起きた。文字列に”が余分についてしまう。貼り付けた時にエディタの置換で消してもいいが、手間になる)
つかうエディタは、Meryというエディタだ。これにはマクロがついている。
マクロの内容だけど、
var x = ClipboardData.GetData();
document.selection.Replace("@@@", x, meFindNext | meFindReplaceRegExp | meReplaceAll);

という2行のマクロだ。
一行目はクリップボードをXという変数に代入する。
二行目が、@@@というところをXの内容と置換する。というものだ。
実際のフィルター内容部分は
name="@@@ > 90"
enabled="yes"
type="17"
action="Move to folder"
actionValue="mailbox://nobody@Local%20Folders/Trash"
condition="AND (from,contains,@@@) AND (age in days,is greater than,90)"

とした。メールアドレスのところを@@@にしている。
メーラーで、フィルターしたいメールアドレスをコピーする。
そして、マクロを実行すると(F4を押すと実行する)、@@@のところがメールアドレスに変換される。
これをコピペして、また別のエディタのファイルに貼り付ける。これを繰り返す。
まとまったら、もとのmsgFilterRules.batに追加する。
ここで、msgFilterRules.batのバックアップはこまめに取ったほうがいい。打ち間違えると、エラーがでて、全て白紙の状態になる。
まだちょっと面倒だけど、これでも速くはなった。工夫次第でもっと速くできるようになると思う。
構文も簡単なので工夫してみたらいかがでしょうか。


おすすめドメイン

「」で検索:

-メール

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Thunderbirdで、Yahooメールが受信できない

無料のメーラーのThunderbirdを使ってるが、imap設定で受信しようと、いろいろいじくっていたら、受信できなくなってしまった。 具体的には、パスワードを入れても、弾かれてしまう。何度やっても弾 …

no image

Yahooメールアカウントでスマホから送信したいができない。(521エラー)

スマホのメーラーにYahooメール(yahoo.co.jpの方)のアカウントを登録して使ってた。メールを送信しようとすると、 521 smtp.mail.yahoo.co.jp closing tra …

no image

Zohoメールをスマホ(iPhone,Android)やパソコン(PC,Mac)で受信する

ZohoメールをiPhoneで受信できていたのだが、一時期からエラーがでて受信できなくなった。 設定を見直したらできるようになった。ポイントは、Zohoのパスワードが、ログインパスワードは受信では使え …

目次上ユニット

はじめまして、あつろうです。

個人ブログを立ち上げました。

日々思うことを書き連ねていこうと思っています。

よろしくお願いします。