Я размышляю над идеей импортировать несколько тысяч папок Thunderbird, каждая из которых, конечно же, содержит много электронных писем, в виде набора почтовых групп Emacs Gnus.Каждое имя почтовой группы будет получено из иерархии папок.Из-за количества работа будет довольно утомительной, поэтому я бы по возможности автоматизировал этот масштабный импорт.
Среди доступных бэкэндов nnfolder кажется наиболее перспективным в этом случае.Я предполагаю, что было бы лучше заполнить почтовые группы из Gnus.В противном случае мне нужно было бы полностью понять формат nnfolder , и это может потребовать много итераций, прежде чем я действительно пойму это правильно.Более того, поскольку электронная почта продолжает поступать, итерации могут стать сложными для правильной организации без потери чего-либо.
Я полагаю, что мне нужно respool всего, при условии, что выбранная почтовая группа является функциейпроисхождения Thunderbird, переопределяя стандартный механизм выбора Gnus.В прошлом я немного программировал Gnus, но, поскольку я не трогал Emacs в течение дюжины лет, все это очень ржаво.Я немного растерялся о том, как подойти к этой задаче максимально эффективно и быстро.Итак, мой вопрос: как бы вы справились с этим?Или есть какой-то умный скрытый угол Гнуса, который я должен исследовать более глубоко?: -)
Франсуа
PS После того, как я написал этот вопрос, я обнаружил, что у Gnus есть прекрасная функция помощи в достижении этой цели.Идея состоит в том, чтобы сначала скопировать все файлы папки Thunderbird в каталоге ~/Mail
, так как они предназначены для содержимого, но правильно переименованы.После этого M-x nnfolder-generate-active-file
делает сразу, для каждой скопированной папки, редактирует содержимое, оставляет резервную копию ~
, генерирует данные NOV, создает одну почтовую группу и, конечно, корректирует файл ~/Mail/active
.
Чтобы скопировать папки под каталогом ~/.thunderbird/LOGIN/Mail/Local Folders/
, я написал небольшой скрипт на Python.Он игнорирует все файлы .msf
и находится в каталогах .sbd
.В имени пути к папке, относительно Local Folders/
, все строки .sbd/
превращены в точки для получения имени почтовой группы, а также в нижнем регистре, с превращением пробелов и подчеркиваний в тире и соответствующей обработки других специальных символов.В частности, символы не ASCII не обрабатываются должным образом, nnfolder сбивает с толку UTF-8 и ISO-8859-1 здесь и там.Сценарий также должен пропустить msgfilterrules.dat
и, вероятно, drafts
, junk
и тому подобное.
Я заметил две детали, требующие внимания:
- Сам Thunderbird может использоваться длякомпактные папки перед копированием, в противном случае можно невольно восстановить сообщения, которые уже были удалены.
(setq nnmail-use-long-file-names t)
необходимо за ~/.emacs
до выполнения всей операции.
Пакетное преобразованиепрервано, сказав, что не может расшифровать одно из сообщений.Я удалил папку с ошибками, и длительная операция прошла успешно.