**Post Office Protocol version 3** (או בקיצור **POP3**) הוא פרוטוקול לשליפה של הודעות דואר אלקטרוני משרת דואר מרוחק. זהו פרוטוקול שרת–לקוח בשכבת היישום של רשתות TCP/IP. לפרוטוקול קדמו גרסאות POP ו-POP2, כאשר בשנים האחרונות כמעט כל ספקי שירותי הדואר האלקטרוני משתמשים בשרתי POP3, והמונח POP הפך שם נרדף ל-POP3. הפורט הסטנדרטי של פרוטוקול POP3 הוא 110.

תיאור הפרוטוקול
---------------

פרוטוקול POP3 וקודמיו תוכננו במטרה לאפשר למשתמשים שאין להם חיבור-קבוע לשרת הדואר, דוגמת משתמשי מודם חיוג או ADSL, גישה לדואר האלקטרוני שלהם. במרבית המקרים, צד הלקוח מתחבר אל השרת, מוריד ממנו את ההודעות במלואן בסדר שבו התקבלו, ושומר אותן על מחשבו. לאחר מכן ההודעות נמחקות מהשרת. הפרוטוקול תומך באפשרות (אם כי השימוש בה הוא לא-נפוץ) להשאיר עותק מן ההודעה המקורית על השרת. בצורה זו יכול המשתמש לקרוא את הדואר שלו מכמה מקומות וגם מכמה תוכנות לקוח שונות.

אחת מחולשותיו של POP3 המקורי היא שהוא לא איפשר אימות מוצפן מול השרת, וכל ההזדהות של הלקוח בוצעה בטקסט גלוי. כיום קיימות מספר הרחבות לפרוטוקול, המאפשרות שיטות שונות של הצפנת הקשר בין הלקוח והשרת, דוגמת APOP המשתמשת בהצפנת פונקציה חד כיוונית על מנת להסתיר את שם המשתמש והסיסמה. קיימת גם אפשרות להצפין את כל תעבורת הנתונים על ידי שימוש ב-POP3 מעל שכבת SSL.

מתכנני הפרוטוקול בנו אותו כך שיהיה דל יחסית בתכונות על מנת לפשט את המימוש שלו – וכך הם עודדו ליישם לוגיקה מורכבת בצד הלקוח ולא בצד השרת. ואכן, פונקציות מתקדמות, דוגמת ניהול תיקיות, חיפוש, ספרי כתובות וכו' ממומשות כולן על ידי תוכנת הדוא"ל ללא תמיכה מצד שרת ה-POP.

פרוטוקול נוסף להעברת דואר הוא פרוטוקול IMAP. זהו פרוטוקול חדש יותר ובעל מגוון פונקציות נוספות, כגון אימות מוצפן, הפרדת הדואר לתיקיות-משנה, הפרדה בין כותרי ההודעה לגוף, ועוד. מאחר שזהו פרוטוקול מורכב הרבה יותר, הוא נפוץ פחות ורוב ספקיות האינטרנט אינן מאפשרות גישת IMAP ללקוחותיהן.

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

תוכנות דוא"ל התומכות ב-POP3
---------------------------

ישנן עשרות ואולי מאות תוכנות לקוח לקריאת דוא"ל בפרוטוקול POP3. דוגמאות נפוצות הן:

* Mozilla ו-Mozilla Thunderbird מבית מוזילה
* Outlook ו-Outlook Express של חברת מיקרוסופט
* Netscape
* Eudora
* Apple Mail של חברת אפל
* IncrediMail

הדגמת עבודה ב־POP3
------------------

כאשר תוכנה או יישום מתחברים לשרת POP3 מצפה השרת לקבל שורת טקסט עם הביטוי **USER** ולאחריה את שם המשתמש של המנוי במערכת. 

USER myUserName

לאחר מכן השרת ישלח הודעה, שתיפתח ב-**OK+**. הודעה כזו מציינת כי המידע שנקלט תקף. הודעה שונה תישלח אם שם המשתמש אינו קיים במערכת, או שמבנה שם המשתמש אינו תואם למבנה המקובל בשרת. לאחר מכן, השרת יצפה לקבל PASS בצירוף סיסמה תקפה.

PASS myPassword

במידה וישנו כשל בסיסמה, תישלח הודעה הנפתחת במילים ERR-. במידה והסיסמה נכונה, תצא הודעה הנפתחת במילים OK+. בשלב זה, מרבית תוכנות הדואר יבקשו לבדוק כמה הודעות יש על השרת. ניתן לעשות זאת על ידי שליחת הודעת STAT.

STAT

תגובה מקובלת של השרת תהיה מספר ההודעות והנפח שהן תופסות בתיבה.

2 959859

הצגת הודעה מבוצעת על ידי הוראה TOP, ולאחריה מספר ההודעה, ואיזה חלק מן ההודעה ברצוננו לראות. כיוון שלרוב רצוננו לראות את כל ההודעה, נמסרת בקשה לראות הודעה בגודל גבוה מכפי שההודעה יכולה להיות.

TOP 1 9999999

עם קבלת הודעת הדואר, תוכנת הדואר תעתיק את תוכנה, תעבד אותה, ותציג אותה. לרוב היא תוסיף גם הוראת מחיקה לכל הודעת דואר שהתקבלה.

DELE 1

סיום ההתחברות ייעשה על ידי שליחת הודעת QUIT לשרת.

דוגמה לשיחה
-----------

דוגמה ישירה לשימוש ב- APOP

```
S: <wait for connection on TCP port 110>
C: <open connection>
S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
C:    APOP mrose c4c9334bac560ecc979e58001b3e22fb
S: +OK mrose's maildrop has 2 messages (320 octets)
C:    STAT
S: +OK 2 320
C:    LIST
S: +OK 2 messages (320 octets)
S: 1 120
S: 2 200
S: .
C:    RETR 1
S: +OK 120 octets
S: <the POP3 server sends message 1>
S: .
C:    DELE 1
S: +OK message 1 deleted
C:    RETR 2
S: +OK 200 octets
S: <the POP3 server sends message 2>
S: .
C:    DELE 2
S: +OK message 2 deleted
C:    QUIT
S: +OK dewey POP3 server signing off (maildrop empty)
C:  <close connection>
S: <wait for next connection>
```

שרת POP3 ללא אופציית APOP המאשר משתמש:

```
C:    USER mrose
S: +OK User accepted
C:    PASS tanstaaf
S: +OK Pass accepted
```

ראו גם
------

* דואר אלקטרוני
* SMTP
* IMAP
* מונחים ברשתות מחשבים

לקריאה נוספת
------------

* RFC 918 - הגדרת Post Office Protocol בגרסתו הראשונה
* RFC 937 - הגדרת POP2
* RFC 1939 - הגדרת POP3

קישורים חיצוניים
----------------

* תרשים זרימה של התקשרות POP3
* ספריית קוד פתוח OpenPop.NET למימוש הפרוטוקול בשפת #C, באתר sourceforge

הערות שוליים
------------

1. ↑  M. Rose, J. Myers, Post Office Protocol - Version 3, tools.ietf.org (באנגלית)

| פרוטוקולים במודל 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 |