科技 · 實用指南
Thunderbird「本機資料夾」消失?匯入前先稽核 mbox 檔案
唯讀 CSV 清冊可以說明哪些資料仍在,同時避免動到可能是唯一副本的設定檔。

「本機資料夾」消失不只代表一種故障:Thunderbird 可能開啟了另一個設定檔,舊設定檔裡可能仍有無副檔名的 mbox 檔案,也可能只剩索引或不完整的 IMAP 離線快取。在釐清實際狀態前,最危險的第一步就是把檔案直接複製進正在使用的設定檔。
本指南要求在任何匯入前,先完成範圍明確的唯讀盤點。清冊保留每個候選檔案的來源設定檔、目錄階層、大小與 SHA-256,只記錄位元組中實際可見的證據;一旦發現設定檔衝突或目的地同名,就停止而不代替使用者選擇。它不保證可以復原,也不會修改受檢查的副本。
可執行的復原判斷必須先回答來源問題:哪個設定檔、哪一棵儲存樹、哪一組精確位元組,以及還有哪些不確定性。清冊把 mbox 格式候選與索引、階層容器、空資料夾及僅有快取的 IMAP 證據區分開後,才能選擇最小且可撤銷的動作。
把原始備份、稽核副本、CSV 與程式雜湊一起保存。來源仍不明確時,寧可繼續保全,也不要合併。延後一次審慎匯入,遠比覆寫唯一倖存的郵件儲存庫便宜。
先複製,再檢查;不要掃描 Thunderbird 正在使用的設定檔
開始蒐集前先關閉 Thunderbird。Mozilla 的移轉說明要求在 Thunderbird 未執行時複製設定資料;設定檔文件也提醒,不要從多個位置同時開啟同一個設定檔。把每個候選設定檔目錄完整複製到一般本機磁碟,保留原始備份不動,稽核只針對這份可信副本。
如果升級後郵件突然「消失」,只在記錄 about:profiles 目前作用中設定檔路徑時開啟 Thunderbird,然後再次關閉。安裝執行個體切換到不同設定檔,會讓完好的資料看似不見。應記錄所有找到的設定檔路徑,不能只依目錄時間或名稱猜測最新的就是正確來源。
先理解檔案能證明什麼,也要知道它不能證明什麼
在設定檔目錄中,Mail 通常存放 POP 帳號與「本機資料夾」,ImapMail 對應 IMAP 帳號。Thunderbird 常以無副檔名檔案保存一個 mbox 資料夾;同名的 .msf 是可重建索引,不是郵件正文儲存庫;以 .sbd 結尾的目錄代表子資料夾階層,應和相關檔案一起保留。
這些命名只能當作線索,不能當作結論。空白的無副檔名檔案可能只是原本就空的資料夾,另一個無副檔名檔案也可能是完全無關的二進位資料。ImapMail 裡可能只有索引或不完整的離線快取,存在這些檔案並不能證明伺服器上的所有郵件都可復原。因此,稽核只標記格式證據與不確定性,不會宣稱每個候選都能安全匯入。
執行有界限的唯讀盤點
把已提供的 thunderbird_mbox_audit.py 儲存到安裝了 Python 3 的電腦。輸出 CSV 必須位於設定檔副本目錄之外,而且檔名不得已存在。程式會拒絕符號連結、拒絕超過 10,000 個來源檔案、拒絕覆寫現有報告,並在掃描前後分別核對位元組、檔案大小、奈秒級修改時間與 SHA-256。
執行:python3 thunderbird_mbox_audit.py "/離線副本路徑" "/新報告路徑/audit.csv"。程式會走訪 Mail 與 ImapMail,但不修改它們;它統計 mbox 格式的 From 分隔行、檢查分隔行附近是否出現常見郵件標頭、記錄 SHA-256、將無副檔名候選與 .msf 配對、保留 .sbd 階層,並依不分大小寫的目的地鍵值分組。
把 CSV 當作證據清冊,不要當成匯入指令
每一列只說明一條路徑的現況。profile_root 表示候選來自哪個設定檔;storage_tree 區分 Mail/Local Folders、POP 帳號樹與 ImapMail 帳號;relative_path 與 sbd_parent 保留階層;size_bytes 與 sha256 用來判斷兩個候選是否位元組完全相同,而不只是同名。
風險標籤 mbox-like-evidence-not-proof 表示檔案至少出現一個 mbox 分隔行,而且附近找到常見郵件標頭,但仍需人工複核。extensionless-no-mbox-evidence 表示不能只因沒有副檔名就匯入;empty-extensionless-candidate 需要核對歷史;rebuildable-index 表示 .msf;hierarchy-container-not-message-data 表示 .sbd。same-destination-name-collision 表示至少兩個候選爭用同一目的地身分,程式會刻意拒絕代替你選其中一個。
分開判斷「本機資料夾」與 IMAP 快取證據
位於 Mail/Local Folders 下、且具有合理 mbox 證據的檔案,是已消失本機郵件的最強候選。位於其他 Mail 帳號樹的候選也可能重要,但在任何移動前都應記錄帳號身分。對 ImapMail,必須區分實際下載的郵件位元組與只剩索引的殘留,並記住離線快取可能不完整;伺服器帳號仍存在時,應先與伺服器比對,不能把快取直接視為權威封存。
不要把 .msf 列算作郵件,不要用一個非空的 ImapMail 候選推斷伺服器郵件總數,也不要只因資料夾名稱熟悉就合併不同設定檔。遇到同名衝突時,保留兩邊檔案與雜湊,確認各自的設定檔和帳號來源,之後再設計可撤銷的重新命名方案或分開測試匯入。
依證據選擇最小且可撤銷的下一步
如果只是作用中設定檔選錯,最小動作可能是選擇正確設定檔,而不是匯入。若有確認完好的完整舊設定檔,應在 Thunderbird 關閉且應用程式版本相容時,依 Mozilla 的完整設定檔移轉流程操作。若只剩部分本機 mbox 候選,應在另一個一次性測試設定檔中工作,並停在 Thunderbird 文件規定的正式匯入界線之前;診斷階段不要取代正在使用的 Local Folders 樹。
當來源身分不明、掃描期間副本發生變化、報告出現同名衝突、唯一證據只是 .msf,或材料只是無法確認完整性的 IMAP 快取時,應立即停止。保留 CSV、來源副本雜湊、程式雜湊與原始備份。本稽核不會修復損壞的 mbox 位元組、去除重複郵件、復原從未下載的伺服器郵件,也不保證 Thunderbird 一定接受某個候選。
證據決策表
觀察到的狀態 | 它支持的判斷 | 它不能證明的事 | 最安全的下一步
about:profiles 顯示另一個可信設定檔 — 郵件可能只是因 Thunderbird 開啟了不同設定檔而看似消失 — 另一個設定檔一定完整或最新 — 關閉 Thunderbird,分別複製並稽核兩個設定檔
無副檔名檔案具有分隔行與郵件標頭 — 存在值得複核的 mbox 格式證據 — 每封郵件都能剖析,或檔案屬於預期資料夾 — 固定雜湊後保留;只在一次性設定檔中檢查與測試
只有 .msf,沒有對應的無副檔名檔案 — 索引檔案仍然存在 — 郵件正文仍保存在本機 — 不要計為可復原郵件;檢查備份或伺服器
.sbd 目錄下有子候選 — 存在子資料夾階層證據 — 父層 mbox 必然存在或有效 — 保留階層,並逐一稽核子候選
ImapMail 候選 — 帳號快取中可能保留部分資料 — 伺服器全部郵件都已下載 — 先與伺服器比對;不要把快取當作完整封存
目的地同名衝突 — 兩個設定檔或目錄樹聲稱同一個邏輯名稱 — 應該用哪一個覆寫另一個 — 兩邊都保留,確認來源後分別匯入或重新命名
常見問題
刪除 .msf 就能復原資料夾嗎? 不能把 .msf 當作郵件正文。它是可重建索引;相關 mbox 存在時,Thunderbird 可能重新產生索引,但刪除索引無法重建已經遺失的郵件位元組。先保留副本並找到對應的無副檔名儲存庫。
Mail 目錄下所有無副檔名檔案都是郵件嗎? 不是。Thunderbird 的 mbox 經常沒有副檔名,但這只是線索。還要結合大小、分隔行、郵件標頭、路徑脈絡與人工檢查;程式只標記證據,不斷言檔案有效。
可以直接匯入正在使用的 Local Folders 嗎? 不要把正式設定檔當成診斷工作區。複製時保持 Thunderbird 關閉、保留原始備份,只有在稽核釐清來源和同名衝突後,才在一次性測試設定檔中驗證選定候選。
ImapMail 能復原伺服器上已刪除的郵件嗎? 無法可靠保證。IMAP 設定檔中可能只有索引、部分快取正文或過時資料。盤點能顯示本機證據,但不能證明完整,也不能復原從未下載的郵件。
