العودة إلى التحديثات
New releaseAug 7, 2026

mboxshell v0.6.2

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

مشاركة

mboxShell

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

License: MIT Rust

Leer en Espanol / Spanish


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

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

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

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

  • تصفح نسخ 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 ميجابايت. ملف MBOX بحجم 100 جيجابايت يستخدم تقريبًا نفس ~500 ميجابايت من ذاكرة الوصول العشوائي مثل ملف بحجم 1 جيجابايت (فقط فهرس البيانات الوصفية يعيش في الذاكرة).
  • فهرسة دائمة. أول فتح ينشئ فهرسًا ثنائيًا (.mboxshell.idx) بحيث تستغرق عمليات الفتح اللاحقة أقل من ثانية.
  • دعم كامل لـ Gmail. يكتشف ويعرض X-Gmail-Labels كمجلدات افتراضية في لوحة جانبية، مما يتيح لك التصفية حسب الوارد، المرسل، المميز بنجمة، التسميات المخصصة، إلخ.
  • صناديق بريد 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 ميجابايت يعمل على 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

# أو ضعه في دليل محلي للمستخدم
mv mboxshell-* ~/.local/bin/mboxshell

على Windows، انقل mboxshell-windows-x86_64.exe إلى مجلد في PATH الخاص بك، أو شغّله مباشرة.

البناء من المصدر

المتطلبات: Rust 1.85 أو أحدث.

# استنساخ وبناء
git clone https://github.com/dcarrero/mboxshell.git
cd mboxshell
cargo build --release

# الملف الثنائي في target/release/mboxshell
# ثبّته على مستوى النظام:
sudo cp target/release/mboxshell /usr/local/bin/

# أو للمستخدم الحالي فقط:
cp target/release/mboxshell ~/.local/bin/

الترجمة المتقاطعة لمنصات أخرى

# أضف الهدف الذي تحتاجه
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

# البناء لهدف محدد
cargo build --release --target aarch64-apple-darwin

التثبيت عبر Cargo

cargo install --git https://github.com/dcarrero/mboxshell.git

بدء سريع

# افتح ملف MBOX في واجهة الطرفية
mboxshell mail.mbox

# فهرسة وعرض الإحصائيات
mboxshell index mail.mbox
mboxshell stats mail.mbox

# البحث من سطر الأوامر
mboxshell search mail.mbox "from:[email protected] date:2024"
mboxshell search mail.mbox "has:attachment subject:invoice" --json

# تصدير الرسائل
mboxshell export mail.mbox --format eml --output ./emails/
mboxshell export mail.mbox --format csv --output summary.csv

# تسليم جزء فقط من الأرشيف: صندوق بريد جديد يحتوي فقط على المطابقات
mboxshell export mail.mbox --format mbox --query "from:[email protected]" -o handover.mbox

# استخراج المرفقات
mboxshell attachments mail.mbox --output ./attachments/

# دمج ملفات MBOX متعددة (تتم إزالة التكرارات افتراضيًا)
mboxshell merge file1.mbox file2.mbox -o merged.mbox

# دمج مع وضع علامة على كل رسالة بصندوق البريد الذي جاءت منه
mboxshell merge Inbox.mbox Sent.mbox -o merged.mbox --source-header

# توليد إكمالات الصدفة
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توليد صفحة دليل

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

العلمالوصف
-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التنقل بين أعمدة الفرز (التاريخ، المرسل، الموضوع، الحجم)
Sتبديل اتجاه الفرز
eتصدير رسالة (EML، TXT، CSV، مرفقات)
aعرض المرفقات (j/k للتنقل، Enter للحفظ، A لحفظ الكل)
tتبديل عرض المحادثات (المجمعة)
lعرض / تركيز / إخفاء الشريط الجانبي للتسميات
hتبديل الترويسات الكاملة
rتبديل مصدر الرسالة الخام
1 / 2 / 3التخطيط: قائمة فقط / تقسيم أفقي / تقسيم عمودي
?المساعدة
qخروج

صيغة البحث

from:[email protected]              البحث حسب المرسل
to:[email protected]         البحث حسب المستلم
cc:[email protected]              البحث حسب مستلم Cc
subject:invoice                  البحث في سطر الموضوع
body:important text              البحث في نص الرسالة (نص كامل)
filename:report.pdf              البحث حسب اسم ملف المرفق
id:<message-id@domain>           البحث حسب Message-ID
has:attachment                   فقط الرسائل التي تحتوي على مرفقات
has:no-attachment                فقط الرسائل التي لا تحتوي على مرفقات
label:Inbox                      التصفية حسب تسمية Gmail
date:2024-01                     رسائل من يناير 2024
date:2024-01-01..2024-06-30      نطاق تواريخ
before:2024-06-01                قبل تاريخ (ذلك اليوم مستبعد)
after:2024-01-01                 من تاريخ فصاعدًا (ذلك اليوم مشمول)
after:2024-01-01 before:2025-01-01   كل عام 2024
size:>1mb                        رسائل أكبر من 1 ميجابايت
size:>1mb size:<5mb              بين 1 و5 ميجابايت
-subject:spam                    استبعاد الرسائل التي تحتوي على "spam" في الموضوع
"exact phrase"                   البحث عن عبارة دقيقة
from:john subject:budget         AND ضمني (يجب أن يطابق كلاهما)
term1 OR term2                   OR صريح
from:a OR from:b subject:budget  OR يربط بشكل أقوى: (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 ميجابايت~5,000~3 ثوانٍ< 1 ثانية
5 جيجابايت~50,000~30 ثانية< 1 ثانية
50 جيجابايت~500,000~5 دقائق< 1 ثانية

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

الإعدادات

يقع ملف الإعدادات في ~/.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 مع clap
+-- lib.rs               # إعادة تصدير الوحدات
+-- error.rs             # أنواع الأخطاء مع thiserror
+-- config.rs            # إعدادات TOML
+-- mailbox_naming.rs    # أسماء صناديق البريد المقروءة (حزم Apple Mail)
+-- i18n/                # التدويل (EN/ES)
+-- parser/
|   +-- mbox.rs          # محلل تدفقي (لا يحمّل الملف في الذاكرة أبدًا)
|   +-- eml.rs           # محلل ملفات EML الفردية
|   +-- mime.rs          # فك ترميز MIME، multipart، مجموعات الأحرف
|   +-- header.rs        # ترويسات RFC 5322، كلمات مشفرة RFC 2047
+-- index/
|   +-- builder.rs       # بناء الفهرس الثنائي
|   +-- reader.rs        # استعلامات الفهرس
|   +-- format.rs        # صيغة ثنائية مع فحص سلامة SHA-256
+-- model/
|   +-- mail.rs          # MailEntry، MailBody
|   +-- attachment.rs    # بيانات وصفية للمرفقات
|   +-- address.rs       # تحليل عناوين RFC 5322
+-- store/
|   +-- reader.rs        # قراءة قائمة على الإزاحة مع ذاكرة تخزين مؤقت LRU
+-- search/
|   +-- query.rs         # محلل استعلامات البحث
|   +-- metadata.rs      # بحث سريع في الفهرس (O(n)، < 200ms لـ 1M رسالة)
|   +-- fulltext.rs      # بحث نص كامل تدفقي
+-- export/
|   +-- eml.rs           # تصدير إلى .eml
|   +-- csv.rs           # تصدير ملخص إلى CSV (UTF-8 BOM)
|   +-- text.rs          # تصدير إلى نص عادي
|   +-- attachment.rs    # استخراج المرفقات
|   +-- mbox.rs          # دمج MBOX مع إزالة التكرار وترويسة المصدر
+-- tui/
    +-- app.rs           # الحالة العامة (Elm Architecture)
    +-- event.rs         # معالجة أحداث لوحة المفاتيح
    +-- ui.rs            # تخطيط وتوزيع العرض
    +-- threading.rs     # خوارزمية JWZ لسلاسل المحادثات
    +-- theme.rs         # سمة الألوان
    +-- widgets/         # المكونات المرئية
        +-- mail_list.rs       # قائمة مع تمرير افتراضي
        +-- mail_view.rs       # عارض رسائل مع تمرير
        +-- sidebar.rs         # لوحة التسميات/المجلدات
        +-- header_bar.rs      # الشريط العلوي
        +-- status_bar.rs      # شريط الحالة
        +-- search_bar.rs      # شريط البحث
        +-- search_popup.rs    # نافذة فلاتر البحث المنبثقة
        +-- help_popup.rs      # نافذة المساعدة المنبثقة
        +-- attachment_popup.rs # نافذة المرفقات المنبثقة
        +-- export_popup.rs     # نافذة التصدير المنبثقة

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

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

الرعاة

يُطوَّر mboxshell في العلن ومدعوم من:

Colorvivo      Stackscale

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

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

التوثيق

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

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

انظر CHANGELOG.md لسجل الإصدارات الكامل.

الترخيص

MIT - حقوق النشر (c) 2026 David Carrero Fernandez-Baillo - https://carrero.es

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

الفئات