كيفية فك شفرة بريد إلكتروني بتنسيق MIME

تكون معظم رسائل البريد الإلكتروني المرسلة اليوم بتنسيق MIME (ملحقات بريد إنترنت متعددة الوظائف). يتيح ذلك إرسال رسائل البريد الإلكتروني مع نص عادي وإصدارات نصية / HTML وصور مضمنة ومرفقات. يمكن إضافة امتدادات MIME إلى رسالة بتنسيق قياسي RFC / 822 بحيث يتحقق التوافق مع الإصدارات السابقة مع أنظمة البريد الأقدم.

الخطوة 1

قم بتحميل محتويات رسالة البريد الإلكتروني.

فيديو اليوم

الخطوة 2

تحقق من رأس "نوع المحتوى". إذا كان نوع المحتوى متعدد الأجزاء (مثل "متعدد الأجزاء / مختلط" ، "متعدد الأجزاء / بديل" ، إلخ) ، فستتضمن الرسالة أقسامًا متعددة لتحليلها. إذا كان نوع المحتوى متعدد الأجزاء ، فتابع بالخطوات التالية.

الخطوه 3

يجب أن يحتوي رأس نوع المحتوى على سلسلة فريدة مستخدمة بواسطة الكود الذي أنشأ رسالة MIME لتعيين حدود جزء MIME. مثال:

نوع المحتوى: متعدد الأجزاء / مختلط ؛ الحدود = "part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

سلسلة الحدود في هذه الحالة هي "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".

الخطوة 4

سيتم فصل كل جزء من أجزاء MIME بسلسلة الحدود مسبوقة بشرطتين ("-") على سطر فارغ. ستحتاج إلى مسح سطر الرسالة بسطر للبحث عن حدود الجزء. كل النص بين الحدود

باستثناء CR / LF النهائي وهو جزء من جزء MIME هذا.

هام: سينتهي جزء MIME الأخير بسلسلة الحدود متبوعة بشرطتين إضافيتين.

مثال:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 الجزء الأول MIME.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 جزء MIME الثاني

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 آخر جزء MIME.

- part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

الخطوة الخامسة

كل جزء MIME يحتاج بعد ذلك إلى التحليل. تنسيق كل جزء MIME مشابه للرسالة الأصلية المنسقة RFC / 822. سيحتوي على سلسلة من الرؤوس ، متبوعة بسطر فارغ ، ثم بيانات الجسم.

الخطوة 6

يمكن أن يكون جزء MIME نفسه متعدد الأجزاء ، مع رأس "نوع المحتوى" وسلسلة الحدود الخاصة به. يجب أن تقوم التعليمات البرمجية الخاصة بك بتحليل أجزاء MIME بشكل متكرر حتى تصل إلى العقد الفرعية.

الخطوة 7

يمكن أن يكون جزء MIME مجرد مرفق ثنائي. في هذه الحالة ، عادةً ما يتم توفير رأس اسم الملف ، جنبًا إلى جنب مع تشفير النقل. BASE64 هو نوع ترميز شائع. في هذه الحالة ، يجب فك شفرة BASE64 لكامل جزء MIME. كمثال فيما يلي الأسطر القليلة الأولى من صورة JPG مرفقة:

=NextPart_003_01C755EF.43F2628D نوع المحتوى: image / jpeg؛ name = "testimage.jpg" ترميز نقل المحتوى: base64 وصف المحتوى: testimage.jpg Content-Disposition: attachment؛ اسم الملف = "testimage.jpg"

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL / 2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIjIMyQIMyMjIjIjIMyQIMjI AhEBAxEB / 8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL / 8QAtRAAgEDAwIEAwUFBAQA

الخطوة 8

يجب أن يكون نص HTML للرسالة في قسم MIME مع ContentType: Text / Html ، داخل ContentType: Multipart / Alternative MIME section.

الخطوة 9

يجب أن يكون نص الرسالة العادي في قسم MIME مع نوع المحتوى: نص / عادي ، داخل ContentType: قسم MIME متعدد الأجزاء / البديل.

الأشياء ستحتاج

  • معرفة لغة الكمبيوتر (مثل C ++ ، C # ، VB ، إلخ).

  • المعرفة الأساسية بتنسيق رسالة بريد إلكتروني منسقة RFC / 822.

نصيحة

استشر RFC 822 http://www.ietf.org/rfc/rfc0822.txt? العدد = 822 و RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? العدد = 1341 للمزيد من المعلومات. إذا كنت تقوم بالتشفير في C # ، فستتوفر مكتبة مجانية ممتازة على http://www.codeproject.com/csharp/mime_project.asp.