Mozilla Thunderbird: восстановление электронной почты с global-messages-db.sqlite
Как я могу восстановить потерянные электронные письма из global-messages-db.sqlite от Thunderbird?
Ядро моего компьютера запаниковало во время миграции некоторых писем из Imap в локальное хранилище. В результате эта миграция не завершила запись на диск.
Из-за неудачной миграции многие электронные письма существуют в global-messages-db.sqlite, но не существуют в соответствующих файлах mbox (например, не в Mail/username@hostname.tld). Я проверил, что электронные письма существуют в global-messages-db.sqlite через https://sqlitebrowser.org/. На самом деле я успешно извлек содержание некоторых критических сообщений вручную.
При запуске Thunderbird отбирает электронные письма global-messages-db.sqlite, которые он не находит в файлах mbox. Если я заменю активный global-messages-db.sqlite версией, содержащей мои потерянные электронные письма, Thunderbird игнорирует и в конечном итоге удаляет эти потерянные электронные письма.
Это было бы тривиальной дилеммой, если бы у меня все еще был доступ к учетной записи Imap. К сожалению, нет.
1 ответ
Написание скриптов для конвертера тривиально
Я бы быстро запрограммировал конвертер gloda->mbox, это, вероятно, ваш самый быстрый путь к успеху. Вы уже обнаружили структуру базы данных gloda. Теперь нужно просто написать немного JavaScript в файле node.js, который открывает базу данных sqlite, перебирает папки, затем сообщения в каждой папке и записывает файл mbox для каждой папки. Формат файла mbox тривиален (просто обратите внимание на "От"). Получив это, вы можете открыть эти файлы mbox в Thunderbird, просто переписав существующую пустую локальную папку.
PS Как напоминание: делать резервные копии. Особенно до таких миграционных операций, но и регулярно.