من EML إلى نصّ
أخرِج النصّ المقروء من الرسالة، واترك خلفك HTML وبكسل التتبّع وهروب quoted-printable.
تتم المعالجة على جهازك — بلا رفع
كيف تستخرج نصّ رسالة
- الصق الرسالة، أو اختر ملف .eml.
- قرّر هل تُبقي الترويسات فوق النصّ.
- انسخ النتيجة أو نزّلها.
كيف يعمل
ملف .eml نصٌّ أصلًا، ولهذا يفتحه الناس في محرّر نصوص ثم يتساءلون لماذا نصفه رموز. وما ينظرون إليه رسالة مرّت بأربعة تحويلات في الطريق، وفكّها بالترتيب هو العمل كلّه.
المتن موجود مرّتين عادةً. فأكثر الرسائل multipart/alternative: جزء نصّي عادي وجزء منسّق يحملان الكلام نفسه. والجزء العادي مقدَّم هنا، لأنه ما كتبه المُرسِل قبل أن يزيّنه برنامج البريد. وحيث لا جزء عادي — وهذا يزداد — تُنزَع الوسوم ويبقى الكلام وبنود القوائم ونصّ الروابط.
وquoted-printable هو سبب ظهور الفاصلة العليا هكذا =E2=80=99. بُني البريد لينقل ASCII بسبعة بتّات، فكل ما عداها يسافر هروبًا. كل = يتلوها رقمان ستّ عشريّان بايتٌ واحد؛ وكل = في آخر السطر قطعٌ أدخله برنامج المُرسِل ليبقي السطر دون ستّة وسبعين حرفًا، ولهذا قد تصل الكلمة مشطورة. ويُفَكّ الاثنان، ثم تُفَكّ البايتات بالأبجدية التي يعلنها الجزء لا التي يفضّلها جهازك.
وformat=flowed هو سبب وصول الفقرة شرائط مبعثرة. فالسطر المنتهي بمسافة موصولٌ بالذي بعده، والسطر الذي لا ينتهي بها هو حيث ضغط الكاتب زرّ العودة. وقراءتها بلا هذه القاعدة تعطيك رسالة مقطوعة كل سبعين حرفًا. وتُطبَّق القاعدة فقط حين يعلنها الجزء فعلًا، لأن تطبيقها على رسالة عاديّة يصل أسطرًا أُريد لها أن تبقى منفصلة.
والصور لا تُحمَّل أبدًا، وهذا هو المقصود. تُخرَج كل صورة من الوسوم نصًّا قبل أن يحلّلها شيء، فلا يصل عنوان صورة التتبّع ذات البكسل الواحد إلى شفرة تستطيع طلبه. ويُعرَض عدد الصور ذات البكسل الواحد في سطر الحالة — لا حُكمًا، فالصورة ذات البكسل فاصلٌ حقيقي من ويب أقدم، بل لتعرف ما كان في الرسالة. ومعنى ذلك مشروح في حجّة ألّا ترفع رسالة أصلًا.
وإن خرج الكلام Café بدل Café، فالرسالة أعلنت أبجديّة وكُتبت بأخرى، وأداة إصلاح الترميز تعالج ذلك على حدة.
مثال عملي
اضغط حمّل عيّنة. هي فاتورة مزوّرة، مبنيّة كما تُبنى الحقيقيّة: اسم المُرسِل يقول بنكًا، والرسالة شجرة MIME من ثلاث طبقات، فيها موضوع مرمَّز، ومتن بـquoted-printable، وشعار داخل الملف، وصورة بكسل واحد على خادم في مكان آخر.
يقول سطر الحالة قُرئ بوصفه text/plain وبكسل تتبّع ١. الأوّل يعني أن للرسالة جزءًا عاديًّا وهو ما استُعمل. والثاني يعني أن النصف المنسّق من الرسالة نفسها كان سيطلب track.example-bank.test لحظة عرضه — وأن الشعار الذي بجانبه بمقاس ١٢٠ × ٣٢ لم يُحسَب، لأنه شعار.
وكتلة الترويسات في الأعلى تقول الآن Subject: Invoice 1042 — payment due Friday بدل =?UTF-8?Q?Invoice_1042_=E2=80=94...، وسطر From يعرض الاسم بالعربيّة بدل سطر من base64. والسطر الأخير يذكر ثلاثة مرفقات، أحدها وصل اسمه مقسومًا على معاملين.
ثم اقرأ الرسالة نفسها. تقول Pay now: https://example-bank.test.secure-billing.test/pay/1042. النطاق هو secure-billing.test، وكل ما قبله نطاق فرعي اختير ليشبه بنكًا. وفي النسخة المنسّقة تلك الكلمات زرٌّ مكتوب عليه ادفع الآن، والعنوان ليس على الشاشة أصلًا. فتحويل الرسالة إلى نصّ ليس تسهيلًا فحسب.
بدّل ضمّن إلى المتن وحده فتذهب سطور الترويسة وتبقى الرسالة وحدها — وهذا الشكل حين يذهب النصّ إلى تذكرة لا إلى سجلّ.
والروابط في HTML لا يفعل شيئًا في هذه العيّنة، لأن فيها جزءًا عاديًّا والخيار لا ينطبق إلا حين يُخرَج الكلام من الوسوم. أمّا في رسالة منسّقة فقط — وأكثر البريد الدعائي كذلك — فهو الفرق بين أن تقرأ ادفع الآن وأن تقرأ إلى أين يذهب ادفع الآن.
وإن كنت تريد نسخة محفوظة لا الكلام، الرسالة نفسها بصيغة PDF تُبقي الترويسات على الصفحة.
أسئلة
لماذا رسالتي مليئة بـ=20 و=E2=80=99؟
هذا quoted-printable، الترميز الذي ينقل به البريد كل ما ليس ASCII خالصًا. وكل = يتلوها رقمان ستّ عشريّان بايتٌ من النصّ الأصلي. وفكّه أوّل ما يجري هنا.
لماذا تخرج الرسالة مقطّعة أسطرًا قصيرة؟
لأنها أُرسلت بصيغة format=flowed وقُرئت بلا قاعدتها. فالسطر المنتهي بمسافة وصلٌ لا فاصل فقرة. وتُطبَّق القاعدة هنا، لكن حيث تعلنها الرسالة فقط — وتطبيقها في كل مكان يلصق أسطرًا أُريد لها الانفصال.
أي نسخة من المتن أحصل عليها، العاديّة أم المنسّقة؟
العاديّة حيث توجد، لأنها نصّ المُرسِل نفسه لا عرضٌ له. وحيث تكون الرسالة منسّقة فقط، تُنزَع الوسوم ويبقى الكلام ونصّ الروابط وبنود القوائم.
هل يعلم المُرسِل شيئًا حين أفتح الرسالة هنا؟
لا. تُزال الصور من الوسوم نصًّا قبل أن يراها أي محلّل، فلا تُطلَب صورة تتبّع أبدًا. ولا شيء في هذه الصفحة يجري اتصالًا بالشبكة من أي نوع.
هل أستطيع إبقاء العناوين التي تشير إليها الروابط؟
نعم، بالخيار الثاني. فيُكتَب كل رابط بكلماته ثم وجهته بين قوسين زاويّين، وهذه أسرع طريقة لترى أن زرًّا مكتوبًا عليه «اعرض الفاتورة» يقود إلى مكان آخر تمامًا.
هل يُرسَل ملف .eml إلى مكان ليُقرأ؟
لا. يقرؤه متصفّحك أنت ولا يُنقَل أبدًا. والرسالة كثيرًا ما تكون أخصّ ملفّ يحوّله المرء، وهي الصنف الذي تطلبه المحوّلات على الإنترنت بأكبر سهولة.
لماذا تبقى بعض الحروف خاطئة حتى بعد الفكّ؟
لأن الجزء الذي سافر نصًّا بثمانية بتّات، لا بـquoted-printable ولا بـbase64، يكون المتصفّح قد فكّه UTF-8 قبل لصقه. واختيار الملف بدل لصقه يتفادى ذلك، وأداة إصلاح الترميز تعالج ما بقي.
هل يسرد المرفقات؟
مع تشغيل الترويسات، نعم — سطر في الأعلى يذكر كل واحد. أمّا الملفّات نفسها فلا تُفَكّ هنا، لأن كتابتها عمل آخر بمخاطر أخرى.
هل ألصق رسالة نسخْتها من نافذة بريد على الويب؟
تستطيع، وسيعود إليك النصّ بلا عمل، لأنه نصّ أصلًا. أمّا هذه فللملف الخام: الذي في أعلاه From: وReceived: وContent-Type: وفي أسفله base64.
ماذا يحدث للردّ المقتبَس تحته؟
يبقى. فالأسطر التي تبدأ بـ> جزء من الرسالة كما أُرسلت، والحكم بأنها ليست كذلك تخمينٌ يحذف النصف الذي كان أحدهم يبحث عنه.
هل يقرأ رسالة مأخوذة من أرشيف mbox؟
نعم. يضع الأرشيف سطر «From » أمام كل رسالة، وهو ليس ترويسة ولا نقطتين فيه. ويُعرَف ويُسقَط بدل أن يُظنّ الترويسة الأولى.
هل من EML إلى نصّ مجاني على الإنترنت؟
نعم — مجاني، بلا حساب، وبلا حد يومي، وبلا علامة مائية. يعمل في متصفّحك عبر الإنترنت، ولأن المعالجة تجري على جهازك فإنه يستمر في العمل دون اتصال بعد تحميل الصفحة.
أدوات البريد ذات صلة
من MSG إلى EML
حوّل ملفّ .msg من Outlook إلى .eml قياسيّ يفتحه كلّ شيء. وبقيّة أدوات هذا القسم تقرأ .eml، فهذه هي بابها.
افتح$termiva mail read message.emlعارض ملفّات EML
اقرأ ملفّ .eml — المُرسِل والتاريخ والنصّ وقائمة المرفقات — بلا Outlook وبلا رفعه. والصور البعيدة لا تُجلب، فَفَتحُه هنا لا يخبر المُرسِل بشيء.
افتح$termiva mail headers message.emlمحلّل ترويسات البريد
اقرأ سلسلة Received بترتيبها، ونتائج SPF وDKIM وDMARC تحتها. سطر «من» هو الشيء الوحيد في الرسالة الذي يكتبه أيّ أحد؛ وهذه هي الأجزاء التي جرى التحقّق منها.
افتح$termiva mail attachments message.emlاستخراج مرفقات البريد
أخرِج المرفقات من ملفّ .eml واحفظها، مفكوكةً من ترميز base64 الذي تنتقل به. لا شيء يُفتح ولا يُصيَّر ولا يُرسَل إلى مكان.
افتح