Thunderbirdを使っていると、定期的にメール本文が文字化けしたり、件名と本文が違う内容の表示になることがあります
その際に「フォルダの修復」をすればだいたい直るのですが、頻度が多くてその手間がめんどくさいことと、稀にメールが消えてしまうトラブルも発生しており、困っています
Thunderbirdのローカルのメール保存形式は「mbox」という保存形式がデフォルトで使われており、1つのファイルで複数メールを管理していることからこのような事象が発生すると言われています
このメール形式を「maildir」というメール数=ファイル数で管理する方式にすると、事象が発生しなくなるという記事を見かけましたので、設定してみることにしました


上記のサイトは、メール保存形式について検証を通しながら詳しく解説されており、非常に参考になりました!
本当にありがとうございます!
発生中の事象
- 件名に対して違うメールの本文が表示される
- メールの中身が文字化けする
- 削除した覚えのないメールが消える
発生原因
「mbox形式」というローカルのメール保存形式によるものと考えられています
Thunderbirdでは、通常「mbox形式」というメールの保存形式が使用されています
この形式では、メールデータを1つの大きなファイルに保存します
削除したメールデータもファイル内に残り続けるため、時間とともにゴミデータが蓄積されます
これを整理するために「フォルダーの最適化」が自動で動作します
しかし、最適化処理中にファイルの読み書き位置が適切に更新されないと、mboxファイルが破損し、メールの内容が正しく表示されなくなる可能性があります
より詳細な仕組みが知りたい方は、上記サイトにとても詳しく記載がありましたのでそちらをご確認ください
mbox形式とmaildir形式
mboxとは
メリット
- Thunderbirdのデフォルト設定であり、ある程度安定している
- 1ファイルにまとまっているため管理がシンプル
デメリット
- 1つのファイルに全メールが保存されるため、破損時の影響が大きい
- 削除・移動が多いとファイルが肥大化しやすい
maildirとは
メリット
- 各メールが個別ファイルになるため破損リスクが分散
- アクセスや修復がしやすい
デメリット
- デフォルトの設定ではないため、実績や情報がmboxより少ない
- ファイル数が多くなり、ファイルシステムへの負荷が増えることがある
ファイルシステムの負荷ですが、特に移動ユーザープロファイルを使っている場合に問題になります
NTFSファイルシステムでは、ファイル数の上限が約43億個とされています
もしローカル環境ではなく、サーバー上でユーザープロファイルを管理している場合、各ユーザーのプロファイルがすべてサーバーに保存されます
このため、メールで使用するファイル数が増えると、サーバー上のファイル数も同じように増加します
その結果、NTFSのファイル数制限に達するリスクが高くなる可能性があります
また、ファイル数が増えるとユーザーが移動プロファイルを使ってログインする際の時間やメール検索にかかる時間が長くなります
以上の理由から、移動ユーザープロファイルを使用している環境では、maildir形式の使用は避けた方が良いでしょう
既存のメールアカウントの保存形式を変更
本作業の設定は環境によっては推奨されません
メール設定の大きな変更作業になりますので、検証環境でよく試してから本環境の設定を変更するか検討のうえ、自己責任でお願いいたします
複数アカウントありますが、アカウント毎に形式を設定できるので一番使用頻度が少ないアカウントで設定してみます
本環境はIMAPを使用しているので、IMAPを想定した手順です
メールアカウント設定のバックアップ取得
アカウントを削除した際にアカウント設定が飛びますので、設定をスクショやメモ帳に張るなどしてバックアップを取っておきます
特に署名は作り直すのがめんどくさいのでバックアップを取っておくことをお勧めします
メールアカウントを削除
Thunderbirdからメールアカウントを削除します
ここでの削除はあくまでThunderbirdから削除するだけなので、メールサーバー上からアカウントを消すわけではありません
Thunderbirdを起動し、該当のアカウントを右クリックして「設定」をクリックします

該当のアカウントが選択されていることを確認し、「削除」をクリックします

「メッセージデータを削除」にチェックを入れたうえで、「削除」をクリックします
メッセージデータはIMAPなので後程アカウントを再追加した際に再取得されることと、旧形式のメッセージデータは残さないほうが移行後の不具合が少ないと考えます
メッセージデータの再取得の際にネットワーク帯域の消費が大きくなりますので、気になる方は別の移行方法(上記サイトにある「Thunderbirdが提供する移行機能で移行する」など)をお勧めします

新しいアカウントのメッセージ格納形式を変更
Thunderbirdを起動し、[三]-[アカウント設定]を開きます

[一般]-[索引データベース]を開き、「新しいアカウントのメッセージ格納形式」を「メッセージ単位(maildir形式)」に変更します

メールアカウントの再設定
「アカウント設定」をクリックします

[新しいアカウント]-[メールアカウント]をクリックします

アカウント情報を入力します
入力したら「続ける」をクリックします

IMAPの設定情報を確認し、問題なければ「完了」をクリックします
設定が違う場合や、メールサーバーが見つからない場合は「手動設定」から設定を変更してください

アカウント設定を開き、[サーバー設定]-[メッセージの保存]-[メッセージの格納形式]を確認します
「メッセージ単位(maildir形式)」となっていればOKです
既存アカウントのメッセージの格納形式は変更できないので、グレーアウトされています

実際に保存されたメールデータの比較
Thunderbirdのプロファイルに保存されているメールデータが、保存形式を変更することでどのように変わったかを比較します
どちらも同じアカウントの「A」というフォルダの中にある「Int」というサブフォルダのメールデータを表示しています
mbox
Aフォルダの下にIntのメールデータとインデックスファイルがありました
拡張子のついていないファイルはメールデータで、msfファイルはインデックスファイルです
ファイル数:2(メールデータとインデックスファイル)
ファイルサイズ:44.4 MB

余談ですが、フォルダの修復がエラーが出て実施できない時がたまにあり、その際に私はこのmsfファイルを消してThunderbirdを再起動し、インデックスを再作成することが多いです
(メールデータはもう一つの拡張子なしのファイルに格納されているので消えません)
maildir
Aフォルダの下にIntのフォルダがあり、同階層にインデックスファイルもありました
Intフォルダ下にはcurとtmpの2種類のフォルダがありました
curフォルダを開くとメールデータがありました
ファイル数:114(メールデータとインデックスファイル)
ファイルサイズ:44.4 MB



インデックスを除いたメールデータのファイル数は、実際にThunderbirdで確認したメッセージ数と一致しました

比較してわかったこと
- 全体のファイルサイズはほとんど変わらない
- maildirの方がメールデータの階層が深くなる
その他わかったこと
- maildir形式とmbox形式を何度か入替したが、問題なかった
- maildir形式で保存しているアカウントを削除する際に、メッセージデータも削除するとmbox形式で同様の作業をする時よりも時間が掛かる(削除するファイル数が増えるためだと考えられる)
- トレイ間の移動時やメールを開くときほんの少しmaildirのが早い(気がする)
まとめ
mboxとmaildirの切替作業自体はさほど難しくはありませんでした
メール数やプロファイルの管理方法にもよるので、一概に使ってみて!とは言えませんが、検証環境などの業務影響が少ない環境で事象に困っている方はmaildir方式を試してみるのも良いのではないかと思います
今は1つのアカウントだけで様子を見ていますが、問題なかったら他のアカウントにも設定してみようと思います
参考にしたサイト
最初に紹介した以外に参考にしたサイトはこちらです


コメント