Thunderbirdのフィルタールールを複数PCで共有する

ワタシは現在Windows、macOSのメインのメールクライアントソフトとしてThunderbirdを使用しています。オープンソースで情報の抜き取りはしていない(であろう)ことやカスタマイズの自由度などからThunderbirdを使用しています。
2024年2月現在、Android用は「K-9 Mail」がThunderbirdによる管理となり、機能はまだ少ないですけどメールに関してはこちらで対処。iOS版だけはまだありませんが、本年の後半にはアルファ版が出るとされており、来年にはiOS版も正式に出そうな感じですね。期待しています。

で、ワタシは複数台のパソコンを使用しています。メイン機、サブ機、ノートPCなどなど。Thunderbirdを使うのはいいのですが、それぞれで設定を行う必要があります。細かく
ただこれはプロファイルフォルダーをまるごとコピーしてしまえば一気に情報を引き継げるのでたいした手間ではありません。
ちなみにプロファイルフォルダーは以下にあります。

macOS:
/Users/(ユーザー名)/Library/Thunderbird/Profiles/(固有のプロファイルフォルダ名)

Windows:
C:\Users\(ユーザー名)\AppData\Roaming\Thunderbird\Profiles\(固有のプロファイルフォルダ名)

この固有のフォルダと、同一階層にある .default のデータも一緒にコピーしないと紐付けできないようです。これらをコピーすれば環境はコピーできます。

これで環境はコピーできますしメールはIMAPであればサーバにあるので問題ないのですが、環境は同期されるわけではないので しょっちゅう更新するファイルはそれぞれのパソコンで設定を行い、同じ事を繰り返す必要があります。
これでは面倒なのでクラウドを使って同期させます。

まるごと同期する

まず、環境を含めてまるごと同期させる方法。上記のプロファイルまるごとをクラウドに置き、そこへシンボリックリンクを張ってクラウド上のプロファイルを読ませるようにすればOK。

Windowsではコマンドプロンプトを管理者権限で、mklinkを使います。ディレクトリまるごとなので「 mklink /d (リンク名)  (リンク先=実際のファイル)」として/dオプションを付けて指定(2つのカッコ間にはスペース)。

macOSはターミナルを起動してスーパーユーザーになるか sudo を頭に付けて「ln -s (リンク先=実際のファイル) (リンク名)」とするだけ。

ただし、いくつか問題があります。
プロファイルをまるごとクラウドに置いた場合、起動が極端に遅くなることがあります。ローカルに常にファイルを置くようにしてあれば良いのですが、Windowsのファイルオンデマンド、macOSのFileProviderのそれぞれの機能を使っていると(デフォルトではオンになっている)、実態を毎回ネット経由で読み込むためです。ファイルオンデマンドやFileProviderはオフ、あるいは個別に常時読み込みをさせてローカル環境にコピーが保存されている状態にしないと、特に外出先では極端に遅くなります。

また、ファイルオンデマンドやFileProviderをオフにしてローカルにファイルがあっても、ノートPCなどで外ではオフラインになっている端末では、最後に同期されたのがいつだか分かりません。Thunderbird起動時に同期ができていないと古い環境をベースにしているかもしれないのです。

もう一つ、複数の端末でThunderbirdを同時起動するとときどきコンフリクトします。
プロフィルフォルダ内の各データの更新タイミングなどはよく分かりませんが、同時に起動しているとファイルが見つからないとか同期のエラーなどが発生することがあり、ファイルが壊れていた事もあります。

ですのでプロファイルをまるごとクラウドに置くというのはあまりオススメしません。
どうせ同時起動できないならプロファイルをUSBメモリーに入れるなどしてそのとき利用するPCで起動する方が安全かも知れません。
ということで、この方法はワタシはとっていません。

[広告]

必要なファイルだけクラウドに置く

有効なのは更新頻度の高いデータだけクラウドに置く方法。ワタシの場合はメール仕分けのルール「メールフィルター」の設定ファイルです。

環境は一度設定すればそう何度も変えるものではないので、変えたときだけ各マシンで設定すればいいですし、上記のようにコピーしてもいいでしょう。

でもワタシの場合はフィルタールールはかなり頻繁に追加します。
特に捨てアドレスというわけではないけど、雑多なメールを受けるように設定しているアカウントには日々色々なプロモーションメールが届きます。都度必要の度合いに応じてフィルターを設定しますが、これを何台ものパソコンでいちいちやるのは面倒。
ですのでこのフィルターの設定ファイルだけクラウドに置いて、同期させています。

たいしたファイルではないので 多少古い設定が読み込まれても害はありませんし、ファイルが壊れても簡単にコピペで他からバックアップから持ってこれます。なんなら一度削除してしまえばルール設定は消えますがエラーは出なくなります。
ちなみに、起動時に読み込まれ、ルール変更したとき(設定画面を閉じたとき)にだけ書き込まれるようなので同時起動していてもトラブルにはなっていません。

また、WindowsとmacOSで共有する場合ですが、WindowsとmacOSではフィルタールールデータの文字コードは同じですが改行コードが異なるようです。
でも、とりあえず問題なく共有できています。

クラウドにフィルターデータをおく

Thunderbirdのメールフィルターのデータは、各アカウント毎に設定されています。ですので複数のメールアカウントをThunderbirdに設定している場合は最初だけちょっと面倒です。ワタシの場合はThunderbirdに6つのアカウントを設定しているので、6回作業を行いました。たいした手間ではありませんけどね。

1.アカウントフォルダを確認する

では実際の作業に入る前に、Thunderbirdを起動して、それぞれのアカウントのフォルダ名を確認しておきます。同じドメインで複数のアドレスを持っていると「@lightparty.jp-1」「@lightparty.jp-2」といった具合に番記されてどのアドレスのフォルダか分からなくなるからです。

Thunderbirdを起動し、[アカウント設定]で、それぞれのアカウントの[サーバー設定]を開き、一番下を見ると[メッセージの保存先]があります。これがそのアカウントのデータが詰まったフォルダです。フィルターデータもこの中にあります。この保存先の場所を確認し、番記がある場合は何番がどのアカウントのものかを確認して控えておきます。

これで一回Thunderbirdは終了させておきます。念のため。

[広告]
2.フィルターデータをクラウドに置く

次にフィルターのデータをクラウドに置きます。
既に一番沢山のルールを設定しているパソコンのフィルターデータをクラウドに置くのがいいでしょうね。
ファイルはプロファイルフォルダーにありますが、さらにその中で色々分かれていますが、イマドキはIMAPメールを使っているでしょうから[ImapMail]を見ます。POPを使っている方は別途必要フォルダを確認してください。

そのImapMailの中に、アカウント毎のフォルダがありその中に[msgFilterRules.dat]があります。これがフィルターデータです。

この[msgFilterRules.dat]をクラウドの任意の場所に置きます。
そしてすべてのマシンのThunderbirdでこのフィルターデータを使うようにします。

 

macOS:
/Users/(ユーザー名)/Library/Thunderbird/Profiles/(固有のプロファイルフォルダ名)/ImapMail/(アカウントフォルダ名)/msgFilterRules.dat

Windows:
C:\Users\(ユーザー名)\AppData\Roaming\Thunderbird\Profiles\(固有のプロファイルフォルダ名)/ImapMail/(アカウントフォルダ名)/msgFilterRules.dat

3.シンボリックリンクの作成

フィルターデータをクラウドに置いたら、ローカルのプロファイルフォルダーにシンボリックリンクを作成します。
これまでの[msgFilterRules.dat]はOLDなどを付けて[OLD_msgFilterRules.dat]などに名前を変更して残しておくといいかと。いざとなればテキストエディタで開けるので、開けばどのアカウント用で何が設定されているかも分かりますし、名前を戻せばまた使えます。

次にWindowsならコマンドプロンプトを管理者権限で、macOSならターミナルを起動します。

Windowsの場合は以下のようにします。ディレクトリまるごとではないので/dオプションは不要です。

mklink “(ローカルのプロファイルフォルダ)\ImapMail\(アカウントフォルダ)\msgFilterRules.dat” “(クラウドの保存場所)\msgFilterRules.dat”

です。ワタシの場合は

mklink “C:\Users\(ユーザー名)\AppData\Roaming\Thunderbird\Profiles\(プロファイル名)\ImapMail\(アカウント名)\msgFilterRules.dat” “D:\OneDrive\Thunderbird\lightparty-Main.jp\msgFilterRules.dat”

といった具合です。

macOSの場合は、

sudo ln -s “(クラウドの保存場所)/msgFilterRules.dat” “(ローカルのプロファイルフォルダ)/ImapMail/(アカウントフォルダ)/msgFilterRules.dat”

macOSのアカウント認証画面が表示されるのでパスワード入力します。

以上をアカウント分だけ繰り返せばOK。
すべてのアカウントで同じフォルダ構成にしてあれば同じフィルターデータでイケるかとも思いますが、それぞれのアカウントでIMAPフォルダが異なるためワタシは全部分けています。特にOutlookなどMicrosoft系のアカウントの場合は独自のIMAPフォルダ構成が絶対になっていますからね。

[広告]

運用

上記でフィルタールールはクラウド共有できます。
注意としてはフィルター設定画面を閉じたときに書込みが行われるので、共有している複数台のパソコンで同時に画面を閉じなければコンフリクトの危険性は低いでしょう。複数台で作業を行う場合は、一台でルールを変更したら数秒程度待ってクラウドの同期が終わるのを待ってから別のパソコンでルールを変更するのが吉。

ですので常時起動しているThunderbirdがあっても問題ないでしょう。ただし常時起動しているThunderbirdには起動したままでは新しいルールが適用されないので、どれかで変更した場合はThunderbirdを再起動すると良いでしょう。

コメント

タイトルとURLをコピーしました