العودة إلى التحديثات
New releaseSep 5, 2026

mboxshell v0.7.3

mboxShell. عارض طرفية سريع لملفات MBOX مهما كان حجمها. افتح رسائل البريد الإلكتروني من النسخ الاحتياطية لـGmail Takeout (50GB+) وابحث فيها وصدّرها دون تحميلها في الذاكرة. مبني بلغة Rust.

مشاركة

mboxShell

عارض طرفي سريع لملفات MBOX بأي حجم. افتح وابحث وصدّر رسائل البريد الإلكتروني من نسخ Gmail Takeout الاحتياطية (50 GB+) دون تحميلها في الذاكرة.

License: MIT Rust

Leer en Espanol / Spanish


لماذا يوجد هذا المشروع

عند تصدير بريدك الإلكتروني من Gmail باستخدام Google Takeout، تحصل على ملف واحد أو أكثر بامتداد .mbox قد يزن عشرات الجيجابايت — بالإضافة إلى صندوق بريد آخر لكل مجموعة Google تملكها، وهو أمر يسهل تفويته وقد يكون أكبر من تصدير Gmail نفسه. لا يوجد أداة طرفية متعددة المنصات تتيح لك فتح هذه الملفات والبحث فيها وتصفحها بكفاءة دون تحميلها بالكامل في الذاكرة.

تم بناء mboxShell لحل هذه المشكلة: افتح ملف MBOX بحجم 50 GB في ثوانٍ، وتنقل بين مئات الآلاف من الرسائل بسلاسة، وابحث حسب المرسل أو التاريخ أو المحتوى، وصدّر ما تحتاجه. كل ذلك من الطرفية، بدون واجهة رسومية، بدون خادم، بدون تبعيات خارجية.

حالات الاستخدام

  • تصفح نسخ Gmail الاحتياطية (Google Takeout) مع تسمياتها الأصلية
  • اقرأ المجموعات التي تملكها، التي يصدّرها Takeout كصناديق بريد خاصة بها — وغالبًا ما تكون أكبر الملفات في الأرشيف
  • حلّل أرشيفات البريد على الخوادم، أثناء الترحيل أو التدقيق
  • ابحث في الرسائل داخل ملفات MBOX من أي مصدر (Thunderbird، خوادم Unix، إلخ)
  • صدّر الرسائل إلى EML أو CSV أو نص عادي لمزيد من المعالجة
  • استخرج المرفقات فرديًا أو دفعة واحدة
  • ادمج ملفات MBOX متعددة في ملف واحد، مع إزالة التكرارات

أيضًا على Mac: mboxViewer

إذا كنت تفضل تجربة رسومية أصلية على macOS، اطّلع على mboxViewer — تطبيق Mac أصلي من تطوير الفريق نفسه. يوفر واجهة على نمط صناديق البريد المألوفة لفتح ملفات MBOX وتصفحها والبحث فيها دون استيرادها إلى أي عميل بريد. اسحب وأفلت ملف .mbox الخاص بك، وستحصل على وصول فوري إلى جميع رسائلك ومرفقاتك وتسمياتك في نافذة نظيفة أصلية على macOS. مثالي للمستخدمين الذين يريدون قوة محرك التحليل في mboxShell مع راحة واجهة رسومية سطح مكتبية.

أيضًا في متصفحك: Online Mbox Viewer

هل تحتاج إلى إلقاء نظرة على ملف MBOX دون تثبيت أي شيء؟ جرّب Online Mbox Viewer — تطبيق ويب مجاني بترخيص MIT من المؤلف نفسه. يفتح ملفات .mbox ويعرضها بالكامل في متصفحك: لا يتم رفع أي شيء إلى أي خادم، لذا يبقى بريدك على جهازك. مثالي لإلقاء نظرة سريعة من أي جهاز. الكود المصدري على github.com/dcarrero/online-mbox-viewer.

الميزات

  • لا يحمّل الملف في الذاكرة أبدًا. يستخدم إدخال/إخراج متدفق مع مخزن مؤقت بحجم 1 MB. ملف MBOX بحجم 100 GB يستخدم تقريبًا نفس ~500 MB من الذاكرة العشوائية مثل ملف بحجم 1 GB (فقط فهرس البيانات الوصفية يبقى في الذاكرة).
  • فهرسة دائمة. الفتح الأول ينشئ فهرسًا ثنائيًا (.mboxshell.idx) بحيث تستغرق عمليات الفتح اللاحقة أقل من ثانية.
  • دعم كامل لـ Gmail. يكتشف ويعرض X-Gmail-Labels كمجلدات افتراضية في لوحة جانبية، مما يتيح لك التصفية حسب Inbox وSent وStarred والتسميات المخصصة، إلخ.
  • صناديق بريد Google Groups. يقرأ ملفات topics.mbox التي يضمّنها أرشيف Takeout لكل مجموعة تملكها، ويسميها باسم المجموعة بدلًا من اسم الملف الذي لا معنى له، ويعرض المجموعة كتسمية افتراضية، ويجمع المحادثات حسب المعرّف الدقيق X-GM-THRID.
  • ترميزات صحيحة. يفكّ ترميز الكلمات المشفرة وفق 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) أو نص عادي. استخراج المرفقات المفكوكة الترميز.
  • ملف تنفيذي واحد. بدون بيئة تشغيل، بدون تبعيات. ملف تنفيذي بحجم ~5 MB يعمل على Linux وmacOS وWindows.
  • واجهة طرفية كاملة. تنقل بلوحة المفاتيح (بنمط vi)، وثلاثة أنماط تخطيط، وشريط بحث تفاعلي، واختصارات قابلة للتخصيص.
  • ثنائي اللغة. الواجهة متاحة بالإنجليزية والإسبانية، ويتم اكتشافها تلقائيًا من إعدادات النظام المحلية.

التثبيت

ملفات تنفيذية جاهزة (موصى به)

نزّل أحدث إصدار لمنصتك من صفحة Releases:

المنصةالملف التنفيذي
Linux x86_64mboxshell-linux-x86_64
Linux ARM64mboxshell-linux-aarch64
Linux RISC-V 64mboxshell-linux-riscv64
FreeBSD x86_64mboxshell-freebsd-x86_64
macOS Intelmboxshell-macos-x86_64
macOS Apple Siliconmboxshell-macos-aarch64
Windows x86_64mboxshell-windows-x86_64.exe
Windows ARM64mboxshell-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

# 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

# Merge tagging every message with the mailbox it came from
mboxshell merge Inbox.mbox Sent.mbox -o merged.mbox --source-header

# Generate shell completions
mboxshell completions bash > /etc/bash_completion.d/mboxshell
mboxshell completions zsh > ~/.zfunc/_mboxshell
mboxshell completions fish > ~/.config/fish/completions/mboxshell.fish

أوامر CLI

الأمرالوصف
mboxshell [FILE]فتح ملف في واجهة TUI (الإجراء الافتراضي)
mboxshell open <path>فتح ملف MBOX في واجهة TUI
mboxshell index <path> [-f/--force]بناء أو إعادة بناء الفهرس الثنائي
mboxshell stats <path> [--json]عرض إحصائيات حول ملف MBOX
mboxshell search <path> <query> [--json]البحث في الرسائل من سطر الأوامر
mboxshell export <path> -f <format> -o <output> [--query <q>]تصدير الرسائل (الصيغ: eml، csv، txt، html، mbox)
mboxshell merge <files...> -o <output> [--no-dedup] [--source-header]دمج ملفات MBOX متعددة في ملف واحد
mboxshell attachments <path> -o <output>استخراج جميع المرفقات
mboxshell completions <shell>توليد إكمالات الصدفة (bash، zsh، fish، powershell، elvish)
mboxshell manpageتوليد صفحة دليل (man page)

الأعلام العامة:

العلمالوصف
-f, --forceفرض إعادة بناء الفهرس حتى لو كان موجودًا (في export، -f تعني --format — اكتب --force صراحةً هناك)
-v, --verboseزيادة مستوى تفصيل السجل (-v info، -vv debug، -vvv trace)
--lang <en|es>فرض لغة الواجهة (يتم اكتشافها تلقائيًا افتراضيًا)

أعلام الدمج:

العلمالوصف
--no-dedupتخطي اكتشاف تكرار Message-ID ودمج المدخلات بايتًا ببايت (إزالة التكرار مفعّلة افتراضيًا)
--source-headerحقن ترويسة X-Mbox-Source: <mailbox name> في كل رسالة، بحيث يبقى الأرشيف المدموج قابلًا للتتبع إلى صندوق البريد الذي جاءت منه كل رسالة

تسمية المصدر هي اسم صندوق البريد الذي تراه: بالنسبة لتصدير Apple Mail — مجلد Inbox.mbox يحتوي على ملف يُسمى حرفيًا mbox — فإنها تُقرأ Inbox.mbox، وليس mbox. صناديق البريد التي قد تتشارك في تسمية واحدة يتم تمييزها عن بعضها البعض (Work/Inbox.mbox مقابل Personal/Inbox.mbox).

الواجهة الطرفية

mboxShell screenshot

اختصارات لوحة المفاتيح

المفتاحالإجراء
j / kالرسالة التالية / السابقة
g / Gالرسالة الأولى / الأخيرة
PgDn / PgUpصفحة لأسفل / لأعلى
Enterفتح الرسالة / التبديل إلى عرض الرسالة
Shift-↑ / Shift-↓تمرير نص الرسالة المحددة (مع الحفاظ على تركيز القائمة)؛ يظهر مؤشر الموضع (Top / NN% / Bot) في إطار الرسالة
Tab / Shift-Tabالتنقل بين تركيز اللوحات
Escالعودة إلى القائمة / إغلاق النافذة المنبثقة
/فتح شريط البحث
fفتح نافذة مرشح البحث المنبثقة
n / Nنتيجة البحث التالية / السابقة
Spaceتعليم / إلغاء تعليم الرسالة
*تعليم / إلغاء تعليم الكل
sتبديل عمود الترتيب (Date، From، Subject، Size)
Sتبديل اتجاه الترتيب
eتصدير الرسالة (EML، TXT، CSV، Attachments)
aعرض المرفقات (j/k للتنقل، Enter للحفظ، A لحفظ الكل)
tتبديل عرض المحادثات المجمّعة
lعرض / تركيز / إخفاء الشريط الجانبي للتسميات
hتبديل الترويسات الكاملة
rتبديل مصدر الرسالة الخام
1 / 2 / 3التخطيط: القائمة فقط / تقسيم أفقي / تقسيم عمودي
?المساعدة
qالخروج

صيغة البحث

from:[email protected]              Search by sender
to:[email protected]         Search by recipient
cc:[email protected]              Search by Cc recipient
subject:invoice                  Search in subject line
body:important text              Search in message body (full-text)
filename:report.pdf              Search by attachment file name
id:<message-id@domain>           Search by Message-ID
has:attachment                   Only messages with attachments
has:no-attachment                Only messages without attachments
label:Inbox                      Filter by Gmail label
date:2024-01                     Messages from January 2024
date:2024-01-01..2024-06-30      Date range
before:2024-06-01                Before a date (that day excluded)
after:2024-01-01                 From a date on (that day included)
after:2024-01-01 before:2025-01-01   All of 2024
size:>1mb                        Messages larger than 1 MB
size:>1mb size:<5mb              Between 1 and 5 MB
-subject:spam                    Exclude messages with "spam" in subject
"exact phrase"                   Search for an exact phrase
from:john subject:budget         Implicit AND (both must match)
term1 OR term2                   Explicit OR
from:a OR from:b subject:budget  OR binds tighter: (a OR b) AND subject

صيغ الإدخال المدعومة

الصيغةالامتدادالوصف
MBOX (mboxrd/mboxo).mboxالصيغة القياسية. Google Takeout، Thunderbird، خوادم Unix
تصدير Google Groupstopics.mboxداخل أرشيف Takeout، في <group>@googlegroups.com/. اسم الملف مترجم (temas.mbox، …)، لذا يُسمى صندوق البريد باسم المجموعة — راجع docs/GOOGLE-GROUPS.md
حزمة Apple MailName.mbox/mboxالملف الداخلي هو ما يتم قراءته؛ يُسمى صندوق البريد باسم الحزمة

الأداء

تم اختباره بملفات MBOX حقيقية من Google Takeout:

حجم الملفالرسائلالفهرسةإعادة الفتح
500 MB~5,000~3 s< 1 s
5 GB~50,000~30 s< 1 s
50 GB~500,000~5 min< 1 s

التنقل في قائمة الرسائل فوري بفضل التمرير الافتراضي (يتم عرض الصفوف المرئية فقط).

الإعدادات

يقع ملف الإعدادات في ~/.config/mboxshell/config.toml:

[general]
default_sort = "date"
sort_order = "desc"
date_format = "%Y-%m-%d %H:%M"
log_level = "warn"

[display]
theme = "dark"
layout = "horizontal"
show_sidebar = false
max_cached_messages = 50

[export]
default_format = "eml"
csv_separator = ","

البنية المعمارية

src/
+-- main.rs              # CLI with clap
+-- lib.rs               # Module re-exports
+-- error.rs             # Error types with thiserror
+-- config.rs            # TOML configuration
+-- mailbox_naming.rs    # Human-facing mailbox names (Apple Mail packages)
+-- i18n/                # Internationalization (EN/ES)
+-- parser/
|   +-- mbox.rs          # Streaming parser (never loads the file into memory)
|   +-- eml.rs           # Individual EML file parser
|   +-- mime.rs          # MIME decoding, multipart, charsets
|   +-- header.rs        # RFC 5322 headers, RFC 2047 encoded-words
+-- index/
|   +-- builder.rs       # Binary index construction
|   +-- reader.rs        # Index queries
|   +-- format.rs        # Binary format with SHA-256 integrity check
+-- model/
|   +-- mail.rs          # MailEntry, MailBody
|   +-- attachment.rs    # Attachment metadata
|   +-- address.rs       # RFC 5322 address parsing
+-- store/
|   +-- reader.rs        # Offset-based reading with LRU cache
+-- search/
|   +-- query.rs         # Search query parser
|   +-- metadata.rs      # Fast index search (O(n), < 200ms for 1M messages)
|   +-- fulltext.rs      # Streaming full-text search
+-- export/
|   +-- eml.rs           # Export to .eml
|   +-- csv.rs           # Export summary to CSV (UTF-8 BOM)
|   +-- text.rs          # Export to plain text
|   +-- attachment.rs    # Attachment extraction
|   +-- mbox.rs          # MBOX merge with deduplication and source header
+-- tui/
    +-- app.rs           # Global state (Elm Architecture)
    +-- event.rs         # Keyboard event handling
    +-- ui.rs            # Layout and render dispatch
    +-- threading.rs     # JWZ algorithm for conversation threads
    +-- theme.rs         # Color theme
    +-- widgets/         # Visual components
        +-- mail_list.rs       # List with virtual scrolling
        +-- mail_view.rs       # Message viewer with scroll
        +-- sidebar.rs         # Labels/folders panel
        +-- header_bar.rs      # Top bar
        +-- status_bar.rs      # Status bar
        +-- search_bar.rs      # Search bar
        +-- search_popup.rs    # Search filter popup
        +-- help_popup.rs      # Help popup
        +-- attachment_popup.rs # Attachment popup
        +-- export_popup.rs     # Export popup

التبعيات الرئيسية

الحزمةالغرض
ratatui + crosstermالواجهة الطرفية
mail-parserتحليل MIME/RFC 5322
encoding_rsفك ترميز مجموعات المحارف
chronoالتواريخ والمناطق الزمنية
clapتحليل وسائط CLI
serde + bincodeتسلسل الفهرس
sha2التحقق من سلامة الفهرس
lruذاكرة تخزين مؤقت للرسائل المفكوكة الترميز
tracingتسجيل منظم

الرعاة

يتم تطوير mboxshell بشكل مفتوح ومدعوم من:

Colorvivo      Stackscale

  • Colorvivo — خبراء في WordPress والذكاء الاصطناعي والوسائط الرقمية.
  • Stackscale — خبراء في البنية التحتية للسحابة الخاصة.

إذا وجدت شركتك أن mboxshell مفيد وأرادت دعم تطويره المستمر، راجع .github/FUNDING.yml أو تواصل عبر carrero.es.

التوثيق

يغطي دليل المستخدم الكامل كل أمر واختصار لوحة مفاتيح ومعامل بحث وخيار تصدير ومفتاح إعدادات:

سجل التغييرات

راجع CHANGELOG.md للحصول على سجل الإصدارات الكامل.

الترخيص

MIT - Copyright (c) 2026 David Carrero Fernandez-Baillo - https://carrero.es

الكود المصدري: https://github.com/dcarrero/mboxshell

الفئات