Multipurpose Internet Mail Extensions
Multipurpose Internet Mail Extensions (או בקיצור MIME) הוא תקן להרחבת יכולות העברת המידע באמצעות דואר אלקטרוני. תקן MIME מוסיף לדואר אלקטרוני תמיכה ב:
- טקסט שאינו בקידוד ASCII פשוט. כלומר התקן מאפשר שליחת הודעות דואר אלקטרוני שמקודדות בצורות שונות, ובכך מאפשר למשל שליחת הודעות בעברית על ידי קידודן בתקן שתומך באלפבית העברי כמו UTF-8.
- צירוף קבצים (Attachments) שאינם טקסטואליים לדואר אלקטרוני. התקן מאפשר צירוף קבצים מסוגים שונים, כמו למשל קובצי תמונה או וידאו.
- הודעות שגוף ההודעה מורכב ממספר חלקים שונים. התקן מאפשר לשלוח הודעת דואר אלקטרוני אחת המורכבת ממספר חלקים, כך שלכל חלק ניתן להתאים קידוד משלו.
- פתיח (Header) שאינו מקודד ב- ASCII. פתיח הודעת דואר אלקטרוני מכיל מידע כמו כתובת השולח, כתובת המקבל, נושא ההודעה, תאריך, מידע על קבצים מצורפים וכו'. אפשרות זו מאפשרת לשלוח את נושא ההודעה ושמות השולח והמקבל בקידודים שונים.
לסוגי התוכן המוגדרים בתקני ה-MIME חשיבות גם מחוץ לדואר האלקטרוני. תקן ה-HTTP, לדוגמה, מעביר הודעות בפורמט MIME, למרות שהודעות אלו לא חייבות להיות הודעות דואר אלקטרוני.
תמיכה בתקן
[עריכת קוד מקור | עריכה]פרוטוקול הדואר האלקטרוני הבסיסי הוא SMTP. פרוטוקול זה תומך בהודעות המקודדות בתווי ASCII בני 7 סיביות, ולכן לא תומך ברוב השפות ובצירוף רוב הקבצים. MIME מגדיר מנגנון שמרחיב את עולם הדואר האלקטרוני לשפות שונות ומאפשר צירוף קבצים שונים. הודעות הדואר ממופות אל ומתוך פורמט MIME בשרתי הדואר האלקטרוני או בתוכנות הלקוח.
תקן MIME מגדיר שדות אופציונליים נוספים לפתיח של הודעת דואר אלקטרוני, ואת דרך הטיפול בהן. שדות אלו יקראו בשרת או בתוכנת הלקוח, ויתורגמו בהתאם.
אחד היעדים של מפתחי תקן MIME הייתה תמיכה לאחור על מנת למנוע צורך בשדרוג כל השרתים הקיימים. פיתוח התקן החדש חייב היה לאפשר לשרתים הישנים שלא תומכים בתקן להמשיך לשלוח ולקבל הודעות דואר אלקטרוני בפורמט טקסט רגיל ("plain-text") גם משרתים שתומכים בתקן החדש. מטרות אלו הושגו על ידי הוספת שדות ספציפיים ל- MIME לפתיח של הודעת דואר אלקטרוני. שדות אלו הם אופציונליים ובעלי ערכי ברירת מחדל. משמעות הדבר היא, שבמידה והם לא קיימים, משתמשים בערכי ברירת המחדל שמגדירים את ההודעה כהודעת טקסט רגיל. כך הובטח שהודעות המגיעות משרת ישן, ולכן לא מכילות שדות MIME בפתיח, ויתקבלו בשרת תומך MIME יתורגמו בהתאם כטקסט רגיל. במקביל, הודעת טקסט נקי משרת תומך MIME תתורגם כרגיל בשרת ישן שאינו תומך ב MIME, כיוון שזה יתעלם מהשדות הלא מוכרים לו בפתיח.
שימושים מרכזיים
[עריכת קוד מקור | עריכה]- מבנה ההודעה - הודעת דואר אלקטרוני מודרנית, כוללת מספר רב של פרמטרים המוצגים בצורה ידידותית על ידי תוכנת המייל של משתמש הקצה כגון נושא ההודעה, חשיבות ההודעה, שם השולח, זמן השליחה, זמן הקבלת ההודעה, ועוד. בעוד פרוטוקול ה SMTP מתייחס לכל המידע הזה כהודעה אחת (DATA) מאפשר פרוטוקול ה MIME לספק כותרת לחלקי מידע כך שתוכנת הקצה תוכל להתייחס עליהם ולהציג אותם בצורה נוחה.
- העברת קבצים - כאמור פרוטוקול ה SMTP לא מאפשר העברת מידע בינארי, פרוטוקול ה MIME מאפשר להעביר קובץ שהומר לפורמט Base64 תוך מתן אפשרות להתייחס אליו כפריט מידע שונה שאינו חלק מההודעה.
- Headers - במהלך חיי המייל הוא עובר מספר שרתים, בדיקות ושינויים. כל ההיסטוריה הטכנית של המייל מקוטלגת בצורת Headers שהם חלק בלתי נפרד מההודעה, אך "מוסתרים" מהמשתמשים.
קישורים חיצוניים
[עריכת קוד מקור | עריכה]- RFC 2045 - Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
- RFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
- RFC 2047 - MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text
- RFC 2048 - Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures
- RFC 2049 - Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples
סיווג פרוטוקולים על פי מודל ה־OSI | ||
---|---|---|
שכבת היישום | HTTP • SMTP • FTP • RTP • IRC • SNMP • SIP • DNS • DHCP | |
שכבת הייצוג | MIME • ASCII • Unicode • TLS | |
שכבת השיחה | ASP • PPTP • SSH • NFS • RPC • SOCKS | |
שכבת התעבורה | TCP • UDP • SCTP • DCCP | |
שכבת הרשת | IP (IPv4 • IPv6) • ICMP • IPX • ניתוב | |
שכבת הקו | אתרנט • Token ring • FDDI | |
השכבה הפיזית | E1 • 10Base-T • RS-232 • DSL • SONET |
פרוטוקולים במודל TCP/IP | ||
---|---|---|
שכבת יישום | HTTP • SMTP • FTP • DNS • DHCP • SSH • RTP • RTSP • IRC • SNMP • SIP • IMAP4 • MIME • Telnet • RPC • SOAP • LDAP | |
שכבת תעבורה | TCP • UDP • SCTP • DCCP | |
שכבת רשת | IP • IPv4 • IPv6 • ICMP • IPX • IGMP | |
שכבת קשר | אתרנט • 10BASE-T • 802.11 WiFi • Token ring • FDDI • ARP |