نظرة خلف الكواليس في جلب البريد عبر بروتوكول Post Office Protocol
بروتوكول Post Office (POP) المستخدم لاسترداد البريد من خادم بعيد هو بروتوكول بسيط للغاية. فهو يحدد الوظيفة الأساسية بطريقة مباشرة ويسهل تنفيذه. بالطبع ، من السهل أيضًا فهمه.
لنكتشف ما يحدث خلف الكواليس عندما يجلب برنامج البريد الإلكتروني الخاص بك البريد في حساب POP. أولا ، تحتاج إلى الاتصال بالخادم.
مرحبًا ، إنه أنا
عادة ، يستمع خادم POP إلى المنفذ 110 للاتصالات الواردة. عند الاتصال من عميل POP (برنامج البريد الإلكتروني الخاص بك) ، نأمل أن تستجيب بـ + OK pop.philo.org جاهز أو ما شابه. يشير + OK إلى أن كل شيء على ما يرام. مكافئه السلبي هو -RR ، مما يعني أن هناك خطأ ما قد حدث. ربما يكون برنامج البريد الإلكتروني قد أظهر لك بالفعل أحد ردود الخوادم السلبية هذه.
تسجيل الدخول
الآن بعد أن استقبلنا الخادم ، نحتاج إلى تسجيل الدخول باستخدام اسم المستخدم لدينا (لنفترض أن اسم المستخدم هو "فصيلة" ؛ ما يقوله الخادم مكتوب بحروف مائلة):
+ OK pop.philo.org جاهز
فصيلة المستخدم
نظرًا لوجود مستخدم بهذا الاسم ، فإن خادم POP يستجيب بـ + OK وربما بعض الهراء الذي لا نهتم به حقًا. لم يكن هناك مثل هذا المستخدم على الخادم ، فإنه ، بالطبع ، سوف يجعلنا نشعر بالذعر مع -RR المستخدم غير معروف .
لإكمال المصادقة ، نحتاج أيضًا إلى منح كلمة المرور الخاصة بنا. يتم ذلك باستخدام أمر "المرور":
+ OK أرسل كلمة المرور الخاصة بك
تمر noplato
إذا قمنا بكتابة كلمة المرور بشكل صحيح ، فإن الخادم يستجيب بـ + OK كلمة مرور رائعة أو أيًا كان مبرمج خادم POP الذي كان في ذهنه. الجزء المهم مرة أخرى هو + OK . لسوء الحظ ، يمكن أن تكون كلمات المرور خاطئة أيضًا. يلاحظ الخادم ذلك باستخدام اسم مستخدم وكلمة مرور جافة - لا تتطابق (كما لو كنت تستخدم اسم المستخدم الخاص بك ككلمة المرور الخاصة بك).
إذا كان كل شيء على ما يرام ، على الرغم من ذلك ، نحن على اتصال بالخادم ويعرف من نحن ، وبالتالي نحن مستعدون لمعاينة البريد الذي وصل حديثًا.
لقد تلقيت البريد!
بعد تسجيل الدخول بنجاح إلى حساب POP لدينا على الخادم ، قد نرغب أولاً في معرفة ما إذا كان هناك بريد جديد على الإطلاق ومن ثم ربما كم.
إن الأمر المستخدم لاسترداد إحصائيات صندوق البريد الأساسي هو STAT .
قد تكون استجابة الخادم الممكنة + OK 18 67042 . في هذه الحالة ، لا يهم ما يتبع علامة + OK . يلي مباشرةً عدد الرسائل في علبة البريد ، ثم ، مفصولة بمسافة بيضاء ، يأتي حجم علبة البريد في ثماني بتات (الثمانية بت 8).
STAT
+ OK 18 67042
إذا لم يكن هناك بريد ، فإن الخادم يستجيب بـ + OK 0 0 . نظرًا لوجود 18 رسالة جديدة على الخادم ، فيمكننا إدراجها باستخدام الأمر LIST . استجابةً ، يسرد الخادم الرسائل بالتنسيق التالي:
قائمة
+ OK 18 رسالة (67042 ثمانية)
1 2552
2 3297
...
18 3270
.
يتم سرد الرسائل واحدة في كل مرة ، يليها حجمها في الثمانيات. تنتهي القائمة بنقطة على سطر بحد ذاته.
يمكن أن يأخذ أمر LIST رقم الرسالة كوسيطة اختيارية ، LIST 2 على سبيل المثال. ستكون استجابة الخادم لهذا الطلب + OK 2 3297 ، ورقم الرسالة متبوعًا بحجم الرسالة. إذا حاولت سرد رسالة غير موجودة ، مثل LIST 23 ، لا يظهر الخادم خيالًا ويقول: -RR لا توجد مثل هذه الرسالة .
الاسترداد الكبير (وحذف)
الآن بعد أن عرفنا عدد الرسائل في حسابنا ومدى حجمها ، فقد حان الوقت لاستردادها حتى نتمكن من قراءتها أيضًا.
الآن ، بعد معرفة ما إذا كان لدينا بريد جديد ، يأتي الشيء الحقيقي. يتم استرداد الرسائل واحداً تلو الآخر برقم الرسالة الخاصة بهم كوسيطة للأمر RETR .
يستجيب الخادم مع + OK والرسالة كما هي ، في أسطر متعددة. يتم إنهاء الرسالة بواسطة فترة على سطر بنفسها. فمثلا:
RETR 1
+ OK 2552 ثماني
بلاه! <يرسل خادم POP رسالة هنا>
.
إذا حاولنا الحصول على رسالة غير موجودة ، فإننا لا نحصل على مثل هذه الرسالة .
الآن يمكننا حذف الرسالة باستخدام الأمر DELE . (يمكننا بالطبع حذف الرسالة دون استرجاعها إذا كانت واحدة من تلك الأيام).
من الجيد معرفة أن الخادم لن يقوم بتطهير الرسالة فورًا. هو مجرد علامة للحذف. يحدث الحذف الفعلي فقط إذا قمنا بإنهاء الاتصال بالخادم بشكل منتظم. لذلك لن يتم فقدان أي بريد في حالة انقطاع الاتصال فجأة ، على سبيل المثال.
استجابة الخادم لأمر DELE هي + تم حذف الرسالة OK :
DELE 1
+ تم حذف الرسالة 1 المحذوفة
إذا كان بالفعل أحد تلك الأيام وقمنا بتعليم رسالة للحذف أننا لا نريد أن يتم حذفها ، فمن الممكن إلغاء حذف جميع الرسائل عن طريق إعادة ضبط علامات الحذف. يقوم الأمر RSET بإرجاع صندوق البريد إلى الحالة التي كان عليها قبل تسجيل الدخول.
يستجيب الخادم بـ + OK وربما عدد الرسائل:
RSET
+ OK 18 رسالة
بعد استرداد جميع الرسائل وحذفها ، حان الوقت لنقول وداعًا باستخدام الأمر QUIT . سيؤدي هذا إلى تنقية الرسائل المحددة للحذف وإغلاق الاتصال. يستجيب الخادم بـ + OK ورسالة وداع:
استقال
+ حسنا وداعا ، وداعا
من الممكن أن الخادم لم يتمكن من حذف رسالة. ثم سوف يستجيب مع خطأ مثل رسالة -RER 2 لم يتم حذفه .