بروتوكول امتدادات البريد المتعدد الأغراض (MIME)
امتدادات البريد المتعدد الأغراض (MIME) هي معيار إنترنت يوسع تنسيق البريد لدعم:
- نص في مجموعات أحرف غير US-ASCII؛
- مرفقات غير نصية؛
- أجسام رسائل متعددة الأجزاء؛ و
- معلومات الرأس في مجموعات أحرف غير ASCII.
يدعم SMTP فقط أحرف ASCII ذات 7 بت، مما يعني فعليًا أنه يدعم عددًا قليلًا من اللغات. اللغات القائمة على الأبجدية اللاتينية مناسبة في SMTP؛ اللغات الأخرى لا تُعرض بشكل صحيح عند تسليم البريد. ومع ذلك، يوسّع MIME دعم أحرف ASCII في SMTP بحيث يمكن إرسال وعرض رسائل البريد التي تستخدم مجموعات أحرف أخرى، وصور، وصوتيات. عمومًا، جميع عملاء البريد وخوادم SMTP تقوم بخريطة صحيحة للرسائل بتنسيق MIME.
فهم رؤوس MIME
تحتوي رؤوس MIME على معلومات حول البروتوكول.
MIME-Version
هذا يشير إلى أن الرسالة مُنسقة بتنسيق MIME. تظهر كالتالي:
MIME-Version: 1.0
Content-Type
هذا يشير إلى نوع محتوى الرسالة، المُمَثل كزوج من النوع والنوع الفرعي: text/plain، text/html، على سبيل المثال. يمكن لأنواع multipart احتواء نص، HTML، مرفقات، صور، صوت، فيديو، وما إلى ذلك.
Content-Type: multipart
Content-Transfer-Encoding
يشير إلى ما إذا تم استخدام مخطط ترميز من ثنائي إلى نص فوق الترميز المحدد في content-type. إذا كان كذلك، يذكر أي منه. يمكننا تحديد نوع الترميز 7-bit أو 8-bit أو binary هنا.
Encoded-Word
عادةً ما تستخدم رؤوس رسائل SMTP أحرف ASCII. يجب أن تستخدم الأحرف غير ASCII صيغة كلمة مُشفرة MIME بدلاً من السلسلة الحرفية. الصيغة هي:
"=? charset ? encoding ? encoded text ?=".
رسائل Multipart
تحتوي رسالة MIME متعددة الأجزاء على حد (boundary) في رأس content-type. هذا الحد، الذي يجب ألا يظهر في أي من الأجزاء، يُوضع بين الأجزاء، وفي بداية ونهاية جسم الرسالة، كما يلي:
MIME-version: 1.0
Content-type: multipart/mixed; boundary="frontier"
This is a multi-part message in MIME format.
--frontier
Content-type: text/plain
This is the body of the message.
--frontier
Content-type: application/octet-stream
Content-transfer-encoding: base64
PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
--frontier--
كل جزء يتكون من رأس محتوى خاص به وجسم.
أنواع Multipart الفرعية
يحدد معيار MIME أنواعًا فرعية مختلفة للرسائل المتعددة الأجزاء. يتم تحديد النوع الفرعي في رأس "Content-Type" للرسالة العامة.
فيما يلي قائمة بأكثر الأنواع الفرعية استخدامًا.
- Mixed: يُستخدم Multipart/mixed لإرسال ملفات ذات رؤوس "Content-Type" مختلفة ضمن الرسالة. إذا تم إرسال صور أو ملفات قابلة للقراءة بسهولة، فإن معظم عملاء البريد سيعرضونها ضمن الرسالة.
- Message: جزء الرسالة يحتوي على رسالة بريد إلكتروني.
- Digest: الـ digest هو طريقة بسيطة لإرسال رسائل نصية متعددة. النوع الافتراضي للجزء هو "message/rfc822".
- Alternative: النوع البديل يُشير إلى أن كل جزء هو نسخة "بديلة" من نفس المحتوى (أو مشابه)، كلٌ بتنسيق مختلف يُحدد بواسطة رأس "Content-Type".
غالبًا ما يُستخدم multipart/alternative للبريد الذي يحتوي على جزأين، جزء نص عادي (text/plain) وآخر HTML (text/html). يوفر الجزء النصي توافقًا رجعيًا بينما يسمح جزء HTML باستخدام التنسيق والروابط التشعبية. معظم عملاء البريد يقدمون خيارًا للمستخدم لتفضيل النص العادي على HTML؛ هذا مثال على كيف يمكن لعوامل محلية أن تؤثر على اختيار التطبيق للجزء "الأفضل" من الرسالة للعرض.