Internet Message Access Protocol

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
Gnome-colors-edit-find-replace.svg יש לשכתב ערך זה. הסיבה לכך היא: הערך כתוב כמדריך ולא כערך אנציקלופדי.
אתם מוזמנים לסייע ולתקן את הבעיות, אך אנא אל תורידו את ההודעה כל עוד לא תוקן הדף. אם אתם סבורים כי אין בדף בעיה, ניתן לציין זאת בדף השיחה.
פרוטוקולים במודל TCP/IP
שכבת יישום
HTTP, SMTP, FTP, DNS, DHCP, SSH, RTP, RTSP, IRC, SNMP, SIP, IMAP4, MIME, TELNET, RPC, SOAP ...
שכבת תעבורה
TCP, UDP, SCTP, DCCP ...
שכבת רשת
IP, IPv4, IPv6, ICMP, ARP, IPX, IGMP ...
שכבת קשר
Ethernet, 10BASE-T, 802.11 WiFi, Token ring, FDDI ...

Internet Message Access Protocolראשי תיבות: IMAP) הוא פרוטוקול אינטרנט לגישה לדואר אלקטרוני שנמצא על שרת מרוחק ממחשב מקומי.

IMAP הוא אחד משני הפרוטוקולים הנפוצים לקבלת דואר אלקטרוני, ומהווה אלטרנטיבה מתקדמת לפרוטוקול POP3. בעוד פרוטוקול POP3 מאפשר למשתמש לעבוד עם תיבת דואר אחת בלבד, היתרון בפרוטוקול IMAP הוא באפשרות עבודה עם מספר תיבות דואר. בנוסף לכך, IMAP מאפשר עבודה יעילה יותר על ידי קריאת חלקים בודדים מתקן ה-MIME.

חסרונו הבולט של הפרוטוקול הוא הקושי לעבוד איתו, ולכן הרבה מהשרתים והלקוחות מממשים אותו בצורה חלקית. מסיבה זו IMAP לא הפך פופולרי כמו POP3‏[1].

היסטוריה[עריכת קוד מקור | עריכה]

IMAP פותח על ידי מארק קריספין בשנת 1986. נודע גם בעבר כ-Internet Mail Access Protocol, ו-Interactive Mail Access Protocol.

תיבות דואר ב־IMAP[עריכת קוד מקור | עריכה]

הפרוטוקול מניח שהתיבות מסודרות במבנה היררכי ושישנה תיבת דואר אחת ראשית. לתיבת הדואר הראשית קוראים INBOX. בנוסף לה יכולות להיות עוד תיבות דואר (mail boxes). תיבת דואר יכולה להכיל גם הודעות וגם תיבות דואר אחרות (אם כי לא כל השרתים תומכים באפשרות האחרונה). עובד בפרוטוקול TCP ובפורט 143.

תמיכה בלקוחות[עריכת קוד מקור | עריכה]

רוב לקוחות הדואר תומכים בעבודה מול שרתי IMAP, ביניהם ניתן למנות את Microsoft Outlook, Mozilla Thunderbird, pine ועוד.

הדגמת עבודה ב־IMAP[עריכת קוד מקור | עריכה]

כמו POP3 ו־SMTP, גם IMAP הוא פרוטוקול טקסטואלי פשוט. אולם בניגוד להם, הלקוח צריך לכתוב תווית ייחודית כלשהי לכל פקודה. הדבר מאפשר לזהות בקלות רבה יותר קצרים בתקשורת. בדוגמה שכאן נעשה שימוש במספרים סידוריים.


נתחבר לשרת. דבר ראשון צריך להזדהות:

‎1 login myusername mypassword
1 OK Logged in.‎

יופי, הצלחתי להתחבר. עכשיו נבדוק אילו תיבות דואר יש לי על השרת:

לפקודה list יש שני פרמטרים. הראשון: "reference" והשני "mailbox" המשמעות של "reference" היא "איפה בעץ אנחנו נמצאים". אפשר לחשוב עליו כעל "שם תיקיה". אני מניח שההסבר הזה לא ברור, אבל אולי דוגמה תועיל:

‎2 ‎list "" "*"
* LIST (\HasNoChildren) "." INBOX
* LIST (\HasNoChildren) "." "Drafts"
* LIST (\HasNoChildren) "." "Trash"
* LIST (\HasNoChildren) "." "Sent"
* LIST (\HasNoChildren) "." "spam"
* LIST (\HasChildren) "." "info"
2 OK List completed.
3 list "INFO" "*"
* LIST (\HasNoChildren) "." "info.Drafts"
* LIST (\HasNoChildren) "." "info.Trash"
* LIST (\HasNoChildren) "." "info.Sent"
3 OK List completed.‎

הפקודה select בוחרת תיבת דואר ופותחת אותה.

‎4 select INBOX
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent \*)] Flags permitted.
* 165 EXISTS
* 0 RECENT
* OK [UNSEEN 56] First unseen.
* OK [UIDVALIDITY 1098339532] UIDs valid
* OK [UIDNEXT 676] Predicted next UID
4 OK [READ-WRITE] Select completed.‎

הפקודה fetch מאפשרת לקרוא הודעות מתיבת הדואר הפתוחה. לא חייבים לקרוא את כל ההודעה. בדוגמה שכאן קוראים רק שני שדות מהכותרת:

‎5 FETCH 5:6 (FLAGS BODY[HEADER.FIELDS (DATE FROM)])
* 5 FETCH (FLAGS (\Seen) BODY[HEADER.FIELDS (DATE FROM)] {89}
From: Holger Wansing <h.wansing@onlinehome.de>
Date: Tue, 30 Nov 2004 23:07:15 +0100

)
* 6 FETCH (FLAGS (\Seen) BODY[HEADER.FIELDS (DATE FROM)] {77}
Date: Tue, 30 Nov 2004 21:19:15 -0500
From: Joey Hess <joeyh@debian.org>

)
5 OK Fetch completed.‎

לסיום נסגור את תיבת הדואר ונתנתק:

‎6 close
6 OK Close completed.
7 logout
* BYE Logging out
7 OK Logout completed.‎

דבר דומה מול שרת ה־IMAP של Microsoft Exchange

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]