明日までにメールでレポートを提出、なんてことで前日の夜中に意識朦朧としながらメールを書くときってありますよね。
そんな時に4年に1度訪れるのが、そう、下書き中の大作を削除してしまう、という例の祭りです。
最初は「やべっ、途中で送信してしまったか」と送信済みトレイを確認するのですが、もちろんそんなことはなく、「そういやさっき受信トレイのメール確認したし返事も不要だから削除したような。。」と、そう、それ、下書き中のメールですから!
ちょっと汗が出てくる中、とりあえず Ctrl+Z を試しますが、そんなことでは何も起きません。
ツールバーなりなんなり、開けそうなメニューを、それこそ今まで見たことない、今見ても何言ってるかわからない設定画面を開きに開いても、下書きを復元できそうな操作は出てきません。
いったんここで半べそになって、コーヒーを飲んで眠気を覚ましま、いえ、もうとっくに覚めてます。
冷静になって本題です。
Thunderbird のメールはすべてファイルシステムに保存されているので、アプリ上からは無理でも、直接ファイルを探し出して、ごにょごにょする手段はありました。
Thunderbird のデータは、CentOS-7 だと、ホームディレクトリ配下の .thunderbird ディレクトリに存在します。
Thunderbird のアプリは終了させてから、この中を探っていきます。
$ cd ~/.thunderbird
$ tree -d
.
`-- 5iq670lw.default
|-- ImapMail
| `-- [メールアカウント名のフォルダ]
| `-- INBOX.sbd
| `-- Archives.sbd
|-- Mail
| `-- Local\ Folders
|-- blocklists
|-- calendar-data
|-- datareporting
|-- extensions
`-- gmp
`-- Linux_x86_64-gcc3
私が間違って削除した下書きは、IMAPのほうなので、そっちを探検します。
$ cd 5iq670lw.default/ImapMail/[メールアカウント名のフォルダ]
$ $ tree
.
|-- Archives.msf
|-- Drafts.msf
|-- INBOX
|-- INBOX.msf
|-- INBOX.sbd
| |-- &MF0wbk7W-.msf
| |-- &U8KAA4zHZZk-
| |-- &U8KAA4zHZZk-.msf
| |-- Archives.msf
| |-- Archives.sbd
| | |-- 2017
| | |-- 2017.msf
| | |-- 2018
| | |-- 2018.msf
| | |-- 2019
| | `-- 2019.msf
| |-- Drafts
| |-- Drafts.msf
| |-- Junk.msf
| |-- Sent
| |-- Sent.msf
| |-- TODO
| |-- TODO.msf
| `-- Templates.msf
|-- Sent.msf
|-- Templates.msf
`-- msgFilterRules.dat
この中で、拡張子が msf のものは、Mail Summary File の略だそうで、Thunderbird はこ msf を一覧表示などに利用する要約データとして利用しているそうです。
今回は、生データを探しているので、msf でないファイルで下書きぽいやつを探すと、Drafts という拡張子なしのファイルが1つ確認できます。
これを除いてみると、これまで下書き保存したことがあるメールが時系列に収められています。さっきまで書いていた下書きということで、下から見ていくと、
--------------1B2C36E3FFC35B3F134A036F--^M
From: XXXXXXXXX <XXXXXXXXXXXXXXXXX>^M
Message-ID: <97336315-a7ab-1952-f3af-988e395e7413@XXXXXXXXXXXX>^M
Date: Wed, 16 Oct 2019 21:37:11 +0900^M
X-Mozilla-Draft-Info: internal/draft; vcard=0; receipt=0; DSN=0; uuencode=0;^M
attachmentreminder=0; deliveryformat=4^M
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101^M
Thunderbird/60.9.0^M
MIME-Version: 1.0^M
Content-Type: text/html; charset=utf-8^M
Content-Language: en-US^M
Content-Transfer-Encoding: 8bit^M
^M
<html>^M
<head>^M
^M
<meta http-equiv="content-type" content="text/html; charset=UTF-8">^M
</head>^M
<body text="#000000" bgcolor="#FFFFFF">^M
下書きテスト<br>^M
</body>^M
</html>^M
...
...
うおおお、なんかそれっぽいのがある!
で、ここからは結論を。。
このファイルの中に X-Mozilla-Status という行が何か所かあります。
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
といった具合に。
削除前の状態に戻すには、このステータス値をすべて 0 にすると復活するそうです。http://forums.mozillazine.org/viewtopic.php?f=39&t=1971971
例えば、上記のように 0001 だったら 0000 にします。そして要約である Drafts.msf を削除します。たぶん要約ファイルがなければ次回起動時に自動的に作成されるものと思われます。
ありがとう、先にしくじってくれた人に感謝です。
このファイルを直接操作する作業は、メールを圧縮してしまうともうできなくなるので、事故ったたら早めに対処が必要です。