کاربرد MIME برای کاربران
MIME یک مدل توسعه یافته از نسخه اصلی پروتکل SMTP است. کاربران با استفاده از این پروتکل میتوانند انواع فایل از جمله فایلهای صوتی، ویدئویی، عکس و نرمافزار را از طریق ایمیل ارسال و دریافت کنند. برخلاف SMTP، پروتکل MIME هم متن اسکی (ASCII) و هم دادههای غیراسکی را از طریق ایمیل ارسال میکند. برای ارسال مجموعه کاراکترهای غیراسکی، باید از پروتکل MIME استفاده کنید.
معایب SMTP
SMTP یک پروتکل استاندارد برای ارسال پیام از طریق ایمیل است. این پروتکل فقط از ارتباطات متنی اسکی 7 بیتی که رمزنگاری و احراز هویت نشده بودند پشتیبانی میکرد. با توجه به اینکه فقط 94 کاراکتر قابل چاپ در مجموعه اسکی وجود دارد، این سیستم نمیتواند با دادههای باینری یا کاراکترهای زبانهای غیرانگلیسی با سیستم نوشتاری و حروف متفاوت کار کند. SMTP ساده همچنین امکان ارسال دادههای صوتی یا ویدئویی را ندارد.
در تنظیمات پیش فرض هر سرور SMTP، حالت بازپخش ایمیل باز وجود دارد و کاربران از طریق آن میتوانند ایمیل سرور دریافت کنند. این نقطه ضعف باعث شده که ارتباطات SMTP در معرض حملات جعل ایمیل، اسپم، کرمها و حملات مرد میانی قرار داشته باشند. در نهایت پروتکل MIME به عنوان راهکاری برای رفع این مشکلات معرفی شد.
منشأ MIME
در سال 1991، Nathaniel Borenstein که آن زمان یکی از اعضای فنی شرکت Bellcore بود، به کارگروه مهندسی اینترنت (IETF[1]) پیشنهاد توسعه پروتکل SMTP را داد. هدف او از ارائه چنین پیشنهادی این بود که وب و سایر کلاینتها و سرورهای اینترنتی بتوانند با همه انواع دادهها کار کنند (نه فقط متون اسکی لاتین) و امکان کدگذاری فایلهای باینری را برای انتقال از طریق پروتکل SMTP پیدا کنند.
در نتیجه، قابلیت پشتیبانی از انواع فایلهای جدید برای سرویسهای ایمیل فراهم شد. MIME فقط محدود به دادههای متنی نیست. اگرچه این پروتکل ابتدا فقط با هدف رفع محدودیتهای پروتکل SMTP و ایمیل ساخته شد ولی برای سایر پروتکلهای ارتباطی هم اهمیت دارد. حالا انواع دادههای جدید MIME در مرجع واگذاری اعداد در اینترنت (IANA[2]) ثبت شده است. استاندارد RFC 6838 از IETF، فرایندهای اطلاعرسانی و ثبت انواع دادهها برای استفاده در MIME را مشخص میکند.
مزایای MIME
تعدادی از مزایای MIME نسبت به SMTP عبارتند از:
- کاربران میتوانند انواع پیوستهای باینری را از طریق ایمیل ارسال کنند.
- امکان درج چندین نوع فایل پیوست به صورت همزمان در یک ایمیل وجود دارد.
- هیچ محدودیتی در طول پیام ارسالی وجود ندارد.
- از پیامهای چند بخشی هم پشتیبانی میشود.
MIME چهار نوع مختلف برای پیامهای چندبخشی تعریف کرده و ماهیت این اجزا و روابطشان با یکدیگر را مشخص میکند. به ویژه نوع «چندبخشی/جایگزین» به سیستمها امکان میدهد که بهترین روش نمایش را برای یک پیام انتخاب کنند: متن ساده یا HTML.
پروتکل MIME چگونه کار میکند؟
ممکن است ایمیلهایی با قالب MIME از طریق پروتکلهای استاندارد مثل SMTP ،POP یا IMAP ارسال شوند. احتمال دارد بدنه چنین پیامهایی شامل چند بخش باشد و هدر آنها با مجموعه کاراکترهای غیراسکی که MIME پشتیبانی میکند، مشخص شده باشد. استاندارد RFC 2045 از IETF، انواع هدرهایی که برای توصیف ساختار پیامهای MIME قابل استفاده هستند را مشخص میکند.
در آغاز فرایند ارسال ایمیل، سرورها هدر MIME را درج میکنند. کلاینتها از این هدر جهت انتخاب نرمافزار مناسب برای نوع داده مشخص شده در هدر استفاده میکنند. بعضی از این نرمافزارها یا پخشکنندههای فایل، در مرورگر یا کلاینتهای وب وجود دارند. برای مثال همه مرورگرها قابلیت پخش فایلهای گیف، عکسهای JPEG و فایلهای HTML را دارند. برای بعضی از فایلها ممکن است نیاز به دانلود نرمافزار یا پخشکننده مناسب وجود داشته باشد.
در سمت فرستنده، MIME دادههای غیراسکی را به دادههای ترمینال مجازی شبکه (NVT[3]) 7 بیتی تبدیل میکند. کد اسکی 7 بیتی میتواند 128 کاراکتر را نمایش دهد. سپس MIME این دادههای تبدیل شده را به SMTP کلاینت ارسال میکند. در سمت گیرنده، پیام دوباره به حالت اصلی برمیگردد تا محتوای آن از جمله متن، صدا، ویدئو و غیره قابل مشاهده باشد.

فیلدهای هدر MIME
هدر MIME شامل چند بخش میشود که عبارتند از:
- نسخه MIME
این فیلد نشان میدهد که پیام با قالب MIME تنظیم شده است. مقدار آن معمولاً «1.0» است.
- نوع محتوا
این هدر نوع محتوای درون پیام را مشخص میکند و شامل نوع اصلی و نوع فرعی است که هر دو رشته هستند. وقتی یک علامت اسلش (/) بین این دو نوع قرار بگیرد، نوع اصلی و نوع فرعی، با هم نوع MIME را تشکیل میدهند.
-
- نوع اصلی: دستهبندی کلی نوع داده (برای مثال ویدئو یا متن)
- نوع فرعی: انواع دادههایی که MIME نمایش میدهد.
انواع دادههای MIME به حروف بزرگ و کوچک حساس نیستند. میتوان یک پارامتر اختیاری به نوع MIME اضافه کرد تا جزئیات بیشتری را مشخص کند. اگر این پارامتر «charset» باشد، مجموعه کاراکتر مورد استفاده برای کاراکترهای داده را مشخص میکند و اگر مشخص نشده باشد، MIME از مجموعه کاراکتر اسکی پیش فرض استفاده میکند.
با استفاده از نوع multipart، پروتکل MIME این امکان را فراهم میکند که پیامهای ایمیل چند بخش مختلف با یک سازماندهی درختی داشته باشند تا از انواع دادههای زیر پشتیبانی کنند:
-
- پیامهای متنی ساده؛
- متن و پیوست؛
- پاسخ با پیوست پیام اصلی؛
- جایگزینهای مختلف در HTML؛
- عکس، صدا و ویدئو؛
- برنامههای کاربردی.
- نمایش محتوا
این هدر سبک نمایش پیامها را مشخص میکند و شامل انواع زیر است:
-
- درون خطی: به صورت خودکار همراه پیام نمایش داده میشود.
- پیوست: به صورت خودکار نمایش داده نمیشود و نمایش آن نیاز به انجام اقدامی توسط کاربر دارد (مثل دانلود).
RFC 2183 انواع این هدر را مشخص میکند.
- کدگذاری انتقال محتوا
این هدر مشخص میکند که آیا علاوه بر کدگذاری اصلی مشخص شده در هدر نوع محتوا، از طرح کدگذاری «تبدیل باینری به متن» هم استفاده شده یا خیر.
[1] Internet Engineering Task Force
[2] Internet Assigned Numbers Authority
[3] Network Virtual Terminal
منبع: techtarget