כיצד מאחזר דואר באמצעות הדואר עובד פרוטוקול

מאחורי הקלעים מבט על הבאת דואר באמצעות פרוטוקול הדואר

ה- Post Office Protocol (POP) המשמש לאחזור דואר משרת מרוחק הוא פרוטוקול פשוט מאוד. הוא מגדיר את הפונקציונליות הבסיסית באופן פשוט וקל ליישום. כמובן, זה גם קל להבין.

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

היי, זה אני

בדרך כלל, שרת ה- POP מקשיב ליציאה 110 לחיבורים נכנסים. עם חיבור של לקוח POP (תוכנית הדוא"ל שלך), זה יהיה בתקווה להגיב עם + אישור pop.philo.org מוכן או משהו דומה. + אישור מציין שהכל בסדר. המקבילה השלילית שלה היא -ERR , שמשמעותו שמשהו השתבש. אולי לקוח הדוא"ל שלך כבר הראו לך את אחת התשובות השליליות של השרת.

מתחבר

עכשיו שהשרת בירך אותנו, אנחנו צריכים להיכנס באמצעות שם המשתמש שלנו (נניח ששם המשתמש הוא "מחלקה", מה שהשרת אומר מודפס באותיות):

+ אישור pop.philo.org מוכן
מחלקת משתמשים

מאז משתמש עם שם זה קיים, שרת ה- POP מגיב עם + אישור ואולי קצת gibberish שאנחנו לא ממש אכפת. האם לא היה משתמש כזה בשרת, זה היה, כמובן, לגרום לנו פאניקה עם -המשתמש לא ידוע .

כדי להשלים את האימות אנחנו גם צריכים לתת את הסיסמה שלנו. זה נעשה עם הפקודה "לעבור":

+ אישור שלח את הסיסמה שלך
לעבור noplato

אם אנחנו מקלידים את הסיסמה כראוי, השרת מגיב עם + אישור סיסמה גדולה או מה את המתכנת של שרת POP היה בראש. החלק החשוב שוב הוא + אישור . למרבה הצער, גם סיסמאות יכולות להיות שגויות. השרת מציין זאת באמצעות שם משתמש וסיסמה יבשים שאינם תואמים (כאילו היית משתמש בשם המשתמש שלך כסיסמה).

אבל אם הכל הלך בסדר, אנחנו מחוברים לשרת והוא יודע מי אנחנו, ולכן אנחנו מוכנים להציץ בדואר החדש.

יש לך דואר!

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

הפקודה המשמשת לאחזור נתונים סטטיסטיים בסיסיים של תיבת הדואר היא STAT .

תגובה אפשרית של השרת תהיה + אישור 18 67042 . במקרה זה, זה משנה מה אחרי סימן אישור . מיד לאחר מכן הוא מספר ההודעות בתיבת הדואר, ולאחר מכן, מופרדים על ידי שטח לבן, מגיע בגודל של תיבת הדואר octets (אוקטט הם 8 סיביות).

STAT
+ אישור 18 67042

אם אין דואר, השרת מגיב עם + אישור 0 0 . מאחר שיש 18 הודעות חדשות בשרת, עם זאת, אנו יכולים רשימה אלה באמצעות הפקודה LIST . בתגובה, השרת מפרט את ההודעות בפורמט הבא:

רשימה
+ אישור 18 הודעות (67042 octets)
1 2552
2 3297
...
18 3270
.

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

הפקודה LIST יכולה לקחת את מספר ההודעה כארגומנט אופציונלי, LIST 2 לדוגמה. תגובת השרת לבקשה זו תהיה + אישור 2 3297 , מספר ההודעה ואחריו את גודל ההודעה. אם תנסה לרשום הודעה שאינה קיימת, כמו LIST 23 , השרת לא מציג דמיון ואומר: -הר לא מופיע הודעה כזו .

ביג אחזור (ומחק)

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

עכשיו, אחרי לברר אם יש לנו דואר חדש, מגיע הדבר האמיתי. ההודעות מאוחזנות אחת אחת עם מספר ההודעה כארגומנט לפקודת RETR .

השרת מגיב עם + אישור ואת ההודעה כפי שהיא, שורות מרובות. ההודעה מסתיימת על ידי שורה על שורה בפני עצמה. לדוגמה:

RETR 1
+ אישור 2552 octets
בלה! <שרת POP שולח הודעה כאן>
.

אם ננסה לקבל מסר שאינו קיים, נקבל - אין שום מסר כזה .

עכשיו אנחנו יכולים למחוק את ההודעה באמצעות הפקודה DELE . (אנחנו יכולים, כמובן, גם למחוק את ההודעה מבלי לאחזר אותו אם זה אחד מאותם ימים).

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

תגובת השרת לפקודת DELE היא + אישור ההודעה נמחקה :

DELE 1
+ אישור הודעה 1 נמחק

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

השרת מגיב עם + אישור ואולי מספר ההודעות:

RSET
+ אישור 18 הודעות

אחרי שיש לנו לאחזר ומחק את כל ההודעות הגיע הזמן להיפרד באמצעות הפקודה QUIT . פעולה זו תנקה את ההודעות המסומנות למחיקה וסגור את החיבור. השרת מגיב עם + אישור והודעת פרידה:

לְהַפְסִיק
+ אישור ביי, ביי

ייתכן שהשרת לא הצליח למחוק הודעה. לאחר מכן הוא יגיב עם שגיאה כמו -הודעה 2 לא נמחק .