
mboxshell v0.6.2
mboxShell. Быстрый терминальный просмотрщик файлов MBOX любого размера. Открывайте, ищите и экспортируйте письма из резервных копий Gmail Takeout (50GB+) без загрузки их в память. Написан на Rust.
mboxShell
Быстрый терминальный просмотрщик для файлов MBOX любого размера. Открывайте, ищите и экспортируйте письма из резервных копий Gmail Takeout (50 ГБ+) без загрузки их в память.
Зачем существует этот проект
Когда вы экспортируете свою почту из Gmail с помощью Google Takeout, вы получаете один или несколько файлов .mbox, которые могут весить десятки гигабайт — плюс ещё один почтовый ящик для каждой группы Google, которой вы владеете, что легко упустить, и он может быть больше самого экспорта Gmail. Не существует кроссплатформенного терминального инструмента, который позволяет открывать, искать и просматривать эти файлы эффективно, не загружая их целиком в память.
mboxShell был создан для решения этой проблемы: открыть MBOX на 50 ГБ за секунды, плавно перемещаться по сотням тысяч сообщений, искать по отправителю, дате или содержимому и экспортировать всё, что нужно. Всё из терминала, без GUI, без сервера, без внешних зависимостей.
Сценарии использования
- Просмотр резервных копий Gmail (Google Takeout) с их оригинальными метками
- Чтение групп, которыми вы владеете, экспортированных Takeout как отдельные почтовые ящики — часто это самые большие файлы в архиве
- Анализ почтовых архивов на серверах, во время миграций или аудитов
- Поиск сообщений в файлах MBOX из любого источника (Thunderbird, Unix-серверы и т. д.)
- Экспорт сообщений в EML, CSV или обычный текст для дальнейшей обработки
- Извлечение вложений по отдельности или массово
- Объединение нескольких файлов MBOX в один с удалением дубликатов
Также на Mac: mboxViewer
Если вы предпочитаете нативный графический интерфейс на macOS, обратите внимание на mboxViewer — нативное приложение для Mac, созданное той же командой. Оно предоставляет привычный интерфейс в стиле почтового ящика для открытия, просмотра и поиска файлов MBOX без необходимости импортировать их в почтовый клиент. Перетащите ваш файл .mbox, и вы получите мгновенный доступ ко всем вашим сообщениям, вложениям и меткам в чистом нативном окне macOS. Идеально для пользователей, которые хотят получить мощь движка парсинга mboxShell с комфортом настольного GUI.
Также в вашем браузере: Online Mbox Viewer
Нужно взглянуть на файл MBOX без установки чего-либо? Попробуйте Online Mbox Viewer — бесплатное веб-приложение с лицензией MIT от того же автора. Оно открывает и отображает файлы .mbox полностью в вашем браузере: ничего не загружается на какой-либо сервер, поэтому ваша почта остаётся на вашей машине. Идеально для быстрого просмотра с любого устройства. Исходный код на github.com/dcarrero/online-mbox-viewer.
Возможности
- Никогда не загружает файл в память. Использует потоковый ввод-вывод с буфером 1 МБ. MBOX размером 100 ГБ использует примерно те же ~500 МБ ОЗУ, что и файл размером 1 ГБ (в памяти хранится только индекс метаданных).
- Постоянное индексирование. При первом открытии создаётся бинарный индекс (
.mboxshell.idx), поэтому последующие открытия занимают менее секунды. - Полная поддержка Gmail. Обнаруживает и отображает
X-Gmail-Labelsкак виртуальные папки на боковой панели, позволяя фильтровать по «Входящим», «Отправленным», «Помеченным», пользовательским меткам и т. д. - Почтовые ящики Google Groups. Читает файлы
topics.mbox, которые архив Takeout содержит для каждой вашей группы, называет их по имени группы вместо бессмысленного имени файла, показывает группу как виртуальную метку и группирует обсуждения по точному идентификаторуX-GM-THRID. - Корректные кодировки. Декодирует encoded-words по RFC 2047, поддерживает UTF-8, ISO-8859-1, Windows-1252, KOI8-R и любую кодировку, распознаваемую
encoding_rs. - Группировка в цепочки обсуждений. Объединяет сообщения в цепочки с помощью алгоритма JWZ (того же, что используется в Netscape/Mozilla) или собственного идентификатора обсуждения почтового ящика, если он есть.
- Расширенный поиск. Фильтрация по конкретным полям (
from:,subject:,date:,body:,has:attachment,label:и т. д.), диапазоны дат, фильтры по размеру, операторы AND/OR и отрицание. - Гибкий экспорт. Индивидуальный или массовый экспорт в EML, CSV (совместимый с Excel), обычный текст, HTML, новый MBOX или Maildir. Извлечение декодированных вложений.
- Единый бинарный файл. Без среды выполнения, без зависимостей. Исполняемый файл размером ~5 МБ, работающий на Linux, macOS и Windows.
- Полноценный терминальный интерфейс. Навигация с клавиатуры (в стиле vi), три режима компоновки, интерактивная строка поиска, настраиваемые сочетания клавиш.
- Двуязычность. Интерфейс доступен на английском и испанском языках, автоматически определяется по системной локали.
Установка
Готовые бинарные файлы (рекомендуется)
Скачайте последний релиз для вашей платформы со страницы Releases:
| Платформа | Бинарный файл |
|---|---|
| Linux x86_64 | mboxshell-linux-x86_64 |
| Linux ARM64 | mboxshell-linux-aarch64 |
| Linux RISC-V 64 | mboxshell-linux-riscv64 |
| FreeBSD x86_64 | mboxshell-freebsd-x86_64 |
| macOS Intel | mboxshell-macos-x86_64 |
| macOS Apple Silicon | mboxshell-macos-aarch64 |
| Windows x86_64 | mboxshell-windows-x86_64.exe |
| Windows ARM64 | mboxshell-windows-arm64.exe |
После скачивания сделайте файл исполняемым и переместите его в ваш PATH:
# Linux / macOS
chmod +x mboxshell-*
sudo mv mboxshell-* /usr/local/bin/mboxshell
# Or place it in a user-local directory
mv mboxshell-* ~/.local/bin/mboxshell
В Windows переместите mboxshell-windows-x86_64.exe в папку, входящую в ваш PATH, или запустите его напрямую.
Сборка из исходного кода
Требования: Rust 1.85 или новее.
# Clone and build
git clone https://github.com/dcarrero/mboxshell.git
cd mboxshell
cargo build --release
# The binary is at target/release/mboxshell
# Install it system-wide:
sudo cp target/release/mboxshell /usr/local/bin/
# Or for the current user only:
cp target/release/mboxshell ~/.local/bin/
Кросс-компиляция для других платформ
# Add the target you need
rustup target add aarch64-apple-darwin # macOS Apple Silicon
rustup target add x86_64-unknown-linux-gnu # Linux x86_64
rustup target add aarch64-unknown-linux-gnu # Linux ARM64
# Build for a specific target
cargo build --release --target aarch64-apple-darwin
Установка через Cargo
cargo install --git https://github.com/dcarrero/mboxshell.git
Быстрый старт
# Open an MBOX file in the terminal UI
mboxshell mail.mbox
# Index and show statistics
mboxshell index mail.mbox
mboxshell stats mail.mbox
# Search from the command line
mboxshell search mail.mbox "from:[email protected] date:2024"
mboxshell search mail.mbox "has:attachment subject:invoice" --json
# Export messages
mboxshell export mail.mbox --format eml --output ./emails/
mboxshell export mail.mbox --format csv --output summary.csv
# Hand over only part of an archive: a new mailbox with just the matches
mboxshell export mail.mbox --format mbox --query "from:[email protected]" -o handover.mbox
# Convert to Maildir (read/replied/flagged state kept as Maildir flags)
mboxshell export mail.mbox --format maildir -o ~/Maildir/Archive
# Extract attachments
mboxshell attachments mail.mbox --output ./attachments/
# Merge multiple MBOX files (duplicates are removed by default)
mboxshell merge file1.mbox file2.mbox -o merged.mbox