Post Office Protocol

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

פרוטוקול POP3 וקודמיו תוכננו במטרה לאפשר למשתמשים שאין להם חיבור-קבוע לשרת הדואר, דוגמת משתמשי מודם חיוג או ADSL, גישה לדואר האלקטרוני שלהם. במרבית המקרים, צד הלקוח מתחבר אל השרת, מוריד ממנו את ההודעות במלואן בסדר שבו התקבלו, ושומר אותן על מחשבו. לאחר מכן ההודעות נמחקות מהשרת. הפרוטוקול תומך באפשרות (אם כי השימוש בה הוא לא-נפוץ) להשאיר עותק מן ההודעה המקורית על השרת. בצורה זו יכול המשתמש לקרוא את הדואר שלו מכמה מקומות וגם מכמה תוכנות לקוח שונות.
אחת מחולשותיו של POP3 המקורי היא שהוא לא איפשר אימות מוצפן מול השרת, וכל ההזדהות של הלקוח בוצעה בטקסט גלוי. כיום קיימות מספר הרחבות לפרוטוקול, המאפשרות שיטות שונות של הצפנת הקשר בין הלקוח והשרת, דוגמת APOP המשתמשת בהצפנת פונקציה חד כיוונית על מנת להסתיר את שם המשתמש והסיסמה. קיימת גם אפשרות להצפין את כל תעבורת הנתונים על ידי שימוש ב-POP3 מעל שכבת SSL.
מתכנני הפרוטוקול בנו אותו כך שיהיה דל יחסית בתכונות על מנת לפשט את המימוש שלו – וכך הם עודדו ליישם לוגיקה מורכבת בצד הלקוח ולא בצד השרת. ואכן, פונקציות מתקדמות, דוגמת ניהול תיקיות, חיפוש, ספרי כתובות וכו' ממומשות כולן על ידי תוכנת הדוא"ל ללא תמיכה מצד שרת ה-POP.
פרוטוקול נוסף להעברת דואר הוא פרוטוקול IMAP. זהו פרוטוקול חדש יותר ובעל מגוון פונקציות נוספות, כגון אימות מוצפן, הפרדת הדואר לתיקיות-משנה, הפרדה בין כותרי ההודעה לגוף, ועוד. מאחר שזהו פרוטוקול מורכב הרבה יותר, הוא נפוץ פחות ורוב ספקיות האינטרנט אינן מאפשרות גישת IMAP ללקוחותיהן.
בעוד שליחה של דואר אלקטרוני או העברת דואר בין שרתים מתבצעת באמצעות פרוטוקול SMTP והרחבותיו, קריאת דואר על ידי הלקוח תתבצע באמצעות פרוטוקול POP3 או IMAP.

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

כאשר תוכנה או יישום מתחברים לשרת POP3 מצפה השרת לקבל שורת טקסט עם הביטוי USER ולאחריה את שם המשתמש של המנוי במערכת. 
USER myUserName
לאחר מכן השרת ישלח הודעה, שתיפתח ב-OK+. הודעה כזו מציינת כי המידע שנקלט תקף. הודעה שונה תישלח אם שם המשתמש אינו קיים במערכת, או שמבנה שם המשתמש אינו תואם למבנה המקובל בשרת. לאחר מכן, השרת יצפה לקבל PASS בצירוף סיסמה תקפה.
PASS myPassword
במידה וישנו כשל בסיסמה, תישלח הודעה הנפתחת במילים ERR-. במידה והסיסמה נכונה, תצא הודעה הנפתחת במילים OK+. בשלב זה, מרבית תוכנות הדואר יבקשו לבדוק כמה הודעות יש על השרת. ניתן לעשות זאת על ידי שליחת הודעת STAT.
STAT
תגובה מקובלת של השרת תהיה מספר ההודעות והנפח שהן תופסות בתיבה.
2 959859
הצגת הודעה מבוצעת על ידי הוראה TOP, ולאחריה מספר ההודעה, ואיזה חלק מן ההודעה ברצוננו לראות. כיוון שלרוב רצוננו לראות את כל ההודעה, נמסרת בקשה לראות הודעה בגודל גבוה מכפי שההודעה יכולה להיות.
TOP 1 9999999
עם קבלת הודעת הדואר, תוכנת הדואר תעתיק את תוכנה, תעבד אותה, ותציג אותה. לרוב היא תוסיף גם הוראת מחיקה לכל הודעת דואר שהתקבלה.
DELE 1
סיום ההתחברות ייעשה על ידי שליחת הודעת QUIT לשרת.

דוגמה לשיחה

דוגמה ישירה לשימוש ב-RFC 1939 page 16 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 120S:    2 200S:    .
C:    RETR 1
S:    +OK 120 octetsS:    <the POP3 server sends message 1>S:    .
C:    DELE 1
S:    +OK message 1 deleted
C:    RETR 2
S:    +OK 200 octetsS:    <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