پروتکل افزونه‌های چندمنظوره ایمیل اینترنتی (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 استفاده شده است یا خیر. اگر استفاده شده باشد، نوع آن را بیان می‌کند. می‌توانیم در اینجا نوع کدگذاری ۷‑بیتی، ۸‑بیتی یا باینری را مشخص کنیم.

کلمه‌رمزگذاری‌شده

هدایل پیام‌های SMTP معمولاً از کاراکترهای ASCII استفاده می‌کنند. کاراکترهای غیر-ASCII باید از syntax کلمه رمزگذاری شده MIME به جای رشتهٔ متنی استفاده کنند. قالب به صورت زیر است:

"=? charset ? encoding ? encoded text ?=".

پیام‌های چندبخشی

یک پیام چندبخشی 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--

هر بخش شامل هدر محتوا و بدنه خودش است.

زیرنوع‌های چندبخشی

استاندارد MIME زیرنوع‌های مختلف پیام‌های چندبخشی را تعریف می‌کند. زیرنوع در هدر "Content-Type" پیام کلی مشخص می‌شود.

در زیر فهرستی از پرکاربردترین زیرنوع‌ها آمده است.

  • Mixed: multipart/mixed برای ارسال فایل‌هایی با هدرهای "Content-Type" متفاوت به‌صورت درون‌متنی استفاده می‌شود. اگر تصاویر یا فایل‌های دیگری که به‌راحتی قابل خواندن هستند ارسال شود، اکثر کلاینت‌های ایمیل آن‌ها را به‌صورت درون‌متنی نمایش می‌دهند.
  • Message: یک بخش پیام شامل یک ایمیل است.
  • Digest: digest روشی ساده برای ارسال چندین پیام متنی است. نوع محتوای پیش‌فرض برای هر بخش "message/rfc822" می‌باشد.
  • Alternative: زیرنوع alternative نشان می‌دهد که هر بخش یک نسخه "جایگزین" از همان محتوا (یا مشابه آن) است که هر کدام در قالب متفاوتی که توسط هدر "Content-Type" تعیین شده‌اند، قرار دارند.

معمولاً multipart/alternative برای ایمیل‌های دو بخشی استفاده می‌شود: یک بخش متن ساده (text/plain) و یک بخش HTML (text/html). بخش متن ساده سازگاری با نسخه‌های قبلی را فراهم می‌کند، در حالی که بخش HTML امکان استفاده از قالب‌بندی و پیوندهای فراونی را می‌دهد. بیشتر کلاینت‌های ایمیل گزینه‌ای برای ترجیح متن ساده نسبت به HTML دارند؛ این نمونه‌ای است از اینکه چگونه عوامل محلی می‌توانند بر انتخاب «بهترین» بخش پیام توسط برنامه تأثیر بگذارند.