تخطي إلى المحتوى

لا يمكن تحويل هذا النوع من الملفات في المتصفح.

┐─ تحليل الملف ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
المطور : IETF (فريق هندسة الإنترنت)
الفئة : أخرى
نوع MIME : message/rfc822
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

ما هو ملف EML؟

EML هي صيغة ملف قياسية لرسائل البريد الإلكتروني المُخزَّنة، مبنية على معيار RFC 5322 (سابقاً RFC 2822) من IETF. على عكس صيغة MSG الثنائية الخاصة بـ Microsoft Outlook، EML ملف نصي قابل للقراءة بأي محرر نصوص، وتدعمه عملياً جميع بيئات البريد الإلكتروني.

بنية الملف: قسم “الرؤوس” (Headers) يحتوي على From وTo وDate وSubject والمعلومات التقنية، ثم سطر فارغ يفصله عن “جسم الرسالة” (Body). المرفقات والمحتوى HTML تُرمَّز بمعيار MIME (Multipurpose Internet Mail Extensions — RFC 2045) عادةً بترميز Base64 أو Quoted-Printable. هذا المعيار المفتوح يضمن التوافق بين عملاء البريد المختلفة منذ الثمانينيات.

كيفية فتح ملفات EML

  • Mozilla Thunderbird (ويندوز، ماك، لينكس) — النقر المزدوج يفتح مباشرة
  • Microsoft Outlook (ويندوز، ماك) — يفتح EML مع المرفقات
  • Apple Mail (macOS، iOS) — النقر المزدوج يفتح في Mail
  • eM Client (ويندوز) — بيئة بريد تجارية تدعم EML كاملاً
  • أي محرر نصوص — قراءة الرؤوس والمحتوى النصي الخام
  • MHT/EML Viewer (ويب) — أدوات إلكترونية لقراءة EML بالمتصفح

المواصفات التقنية

الخاصيةالقيمة
نوع MIMEmessage/rfc822
المعيارRFC 5322 (رؤوس وجسم البريد)
معيار المرفقاتRFC 2045-2049 (MIME)
الترميزASCII 7-bit أساساً (UTF-8 مع MIME)
ترميز المرفقاتBase64، Quoted-Printable
البنيةرؤوس + سطر فارغ + جسم الرسالة
الصيغ المضمنةtext/plain، text/html، multipart/mixed

الاستخدامات الشائعة

  • النسخ الاحتياطي والأرشفة: تصدير الرسائل المهمة من Gmail أو Outlook كـ EML للحفظ طويل الأمد
  • ترحيل البريد الإلكتروني: نقل رسائل بين منصات مختلفة (من Yahoo Mail إلى Thunderbird مثلاً)
  • الأدلة القانونية والجنائية: EML يحافظ على الرؤوس التقنية الأصلية (توقيت الإرسال، مسار الخادم) كأدلة في التحقيقات
  • اختبار تطبيقات البريد: ملفات EML اختبارية لتطوير وأتمتة بيئات البريد
  • الامتثال المؤسسي (Compliance): القطاع المالي والصحي يحتفظ بأرشيف EML لمتطلبات التدقيق

بنية ملف EML

From: ahmed@example.com
To: sara@example.com
Subject: تقرير المشروع
Date: Wed, 22 Jan 2025 14:30:00 +0300
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="boundary_abc123"
Message-ID: <abc123@mail.example.com>

--boundary_abc123
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

مرحباً سارة،

يرجى الاطلاع على تقرير المشروع المرفق.

مع التحية،
أحمد

--boundary_abc123
Content-Type: application/pdf; name="report.pdf"
Content-Disposition: attachment; filename="report.pdf"
Content-Transfer-Encoding: base64

JVBERi0xLjQKJeLjz9MKNCAwIG9iago8PC9MZW5ndGggMTkzCi9G...
--boundary_abc123--

معالجة EML برمجياً

import email
from email import policy
from pathlib import Path

# قراءة ملف EML
def parse_eml(filepath):
    with open(filepath, 'rb') as f:
        msg = email.message_from_binary_file(f, policy=policy.default)

    print(f"المرسل: {msg['from']}")
    print(f"المستلم: {msg['to']}")
    print(f"الموضوع: {msg['subject']}")
    print(f"التاريخ: {msg['date']}")

    # استخراج المرفقات
    for part in msg.walk():
        if part.get_content_disposition() == 'attachment':
            filename = part.get_filename()
            data = part.get_payload(decode=True)
            Path(filename).write_bytes(data)
            print(f"تم حفظ المرفق: {filename}")

    return msg

parse_eml('email.eml')
# عرض رؤوس EML فقط
head -50 email.eml

# استخراج المرفقات باستخدام munpack
munpack email.eml