Конвертация массовой папки Thunderbird в Gnus nnfolder

Я размышляю над идеей импортировать несколько тысяч папок Thunderbird, каждая из которых, конечно же, содержит много электронных писем, в виде набора почтовых групп Emacs Gnus. Имя каждой почтовой группы будет получено из иерархии папок. Из-за количества работа будет довольно утомительной, поэтому я бы автоматизировал этот масштабный импорт, если это возможно.

Среди доступных бэкэндов nnfolder кажется наиболее перспективным в этом случае. Я предполагаю, что было бы лучше заполнить почтовые группы из Gnus. В противном случае мне нужно было бы полностью понять формат nnfolder, и это может потребовать много итераций, прежде чем я действительно пойму это правильно. Более того, поскольку электронная почта продолжает поступать, итерации могут стать сложными для правильной организации без потери чего-либо.

Я предполагаю, что мне нужно переупорядочить все, при условии, что выбранная почтовая группа является функцией источника 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 до всей операции.

Пакетное преобразование прервано, сказав, что не может расшифровать одно из сообщений. Я удалил папку с ошибками, а затем продолжительная операция прошла успешно.

0 ответов

Другие вопросы по тегам