POP3 — elektron xatlarni pochta serveridan foydalanuvchi qurilmasiga yuklab olish uchun ishlatiladigan protokol. Uning to‘liq nomi Post Office Protocol version 3 hisoblanadi.
POP3 sodda modelga ega: client serverga ulanadi, foydalanuvchini tasdiqlaydi, xatlar ro‘yxatini oladi va kerakli xatlarni yuklab oladi. Klassik ishlash tartibida xatlar lokal qurilmaga ko‘chirilgach serverdan o‘chiriladi.
Zamonaviy clientlar serverda nusxa qoldirishi mumkin, lekin POP3 papka, flag va ko‘p qurilmali sinxronizatsiya bo‘yicha IMAPga qaraganda cheklangan.
POP3 vazifasi
POP3 qabul qilingan xatlarni oddiy tarzda olib ketishga mo‘ljallangan.
Asosiy imkoniyatlar:
- mailboxdagi xatlar sonini olish;
- xatlar hajmini ko‘rish;
- ma’lum xatni yuklash;
- xatning bir qismini ko‘rish;
- xatni o‘chirish uchun belgilash;
- serverda nusxa qoldirish;
- har xat uchun barqaror identifikator olish.
POP3 xat yubormaydi. Jo‘natish uchun SMTP ishlatiladi.
POP3 sessiya holatlari
POP3 sessiyasi uchta asosiy holatdan o‘tadi.
Authorization
Client serverga ulanadi va foydalanuvchini tasdiqlaydi.
Autentifikatsiya muvaffaqiyatli bo‘lsa, mailbox lock qilinishi va transaction holatiga o‘tilishi mumkin.
Transaction
Client xatlar ro‘yxatini ko‘radi, xatlarni yuklaydi va o‘chirish uchun belgilaydi.
Update
Client QUIT buyrug‘i bilan sessiyani to‘g‘ri yakunlaganda server o‘chirishga belgilangan xatlarni olib tashlaydi.
Aloqa kutilmaganda uzilsa, server DELE bilan belgilangan xatlarni o‘chirmasligi mumkin. Bu xatning tasodifan yo‘qolishidan himoya qiladi.
Server javoblari
POP3 javoblari sodda.
+OK— amal muvaffaqiyatli;-ERR— xato.
Misol:
S: +OK POP3 server ready
C: USER [email protected]
S: +OK
C: PASS password
S: +OK mailbox locked and ready
C: STAT
S: +OK 12 456789
C: QUIT
S: +OK goodbye
Server greeting ichida challenge yoki boshqa ma’lumot bo‘lishi mumkin.
Asosiy buyruqlar
| Buyruq | Vazifasi |
|---|---|
| USER | Foydalanuvchi nomini yuborish |
| PASS | Parolni yuborish |
| STAT | Xatlar soni va umumiy hajm |
| LIST | Xatlar raqami va hajmi |
| RETR | Xatni to‘liq yuklash |
| DELE | Xatni o‘chirish uchun belgilash |
| NOOP | Sessiyani faol saqlash yoki tekshirish |
| RSET | DELE belgilarini bekor qilish |
| QUIT | Sessiyani yakunlash |
| UIDL | Xatlarning unique ID qiymatini olish |
| TOP | Header va bodyning dastlabki qatorlarini olish |
Barcha serverlar ixtiyoriy buyruqlarni bir xil darajada qo‘llamasligi mumkin.
STAT
STAT mailbox haqida ikki qiymat qaytaradi:
- xatlar soni;
- umumiy hajm.
Misol:
C: STAT
S: +OK 12 456789
Bu mailboxda 12 ta xat va taxminan 456789 octet ma’lumot borligini bildiradi.
STAT alohida xatlar tafsilotini bermaydi.
LIST
LIST xatlarning sessiyadagi tartib raqami va hajmini ko‘rsatadi.
C: LIST
S: +OK 3 messages
S: 1 1200
S: 2 4300
S: 3 980
S: .
POP3 message number sessiya ichida ishlatiladi. Xatlar o‘chirilgach yoki mailbox o‘zgargach, keyingi sessiyada raqamlar o‘zgarishi mumkin.
RETR
RETR xatni to‘liq yuklaydi.
C: RETR 2
S: +OK 4300 octets
S: From: [email protected]
S: To: [email protected]
S: Subject: Test
S:
S: Xat matni
S: .
Xat header, body va MIME attachmentlar bilan birga uzatiladi.
POP3 qisman yuklash imkoniyatida IMAPga qaraganda cheklangan. Katta attachmentli xatni RETR bilan olish butun xatni yuklashga olib keladi.
TOP
TOP ixtiyoriy buyruq bo‘lib, xat headerlari va bodyning ma’lum qatorlarini olishga imkon beradi.
Masalan:
TOP 5 0
5-xatning headerlarini body qatorlarisiz qaytarishi mumkin.
Client xat mavzusi, jo‘natuvchi va sanani oldindan ko‘rish uchun TOPdan foydalanadi. Server bu buyruqni qo‘llamasligi mumkin.
DELE va RSET
DELE xatni darhol o‘chirmaydi. U transaction davomida o‘chirish uchun belgilaydi.
C: DELE 3
S: +OK message 3 marked for deletion
RSET shu sessiyadagi o‘chirish belgilarini bekor qiladi.
Client QUIT bilan to‘g‘ri chiqsa, server update holatida belgilangan xatlarni o‘chiradi. Ulanish kutilmaganda uzilsa, xatlar saqlanib qolishi mumkin.
UIDL
POP3da xatning tartib raqami keyingi sessiyada o‘zgarishi mumkin. UIDL har xat uchun server tomonidan berilgan unique IDni qaytaradi.
Misol:
C: UIDL
S: +OK
S: 1 whqtswO00Q834
S: 2 QhdPYR:00WBw1
S: .
Client UIDL qiymatini lokal bazada saqlab, qaysi xat avval yuklanganini aniqlaydi. Shu orqali serverda nusxa qoldirilgan xat qayta-qayta yuklanmaydi.
UIDL qiymati mailbox ichida xat saqlanib turgan davrda barqaror bo‘lishi kerak. U global standart message ID bilan bir xil emas.
Serverda nusxa qoldirish
Klassik POP3 modeli xatni yuklab, keyin serverdan o‘chirishga qaratilgan. Zamonaviy clientlarda quyidagi sozlamalar mavjud:
- serverda doim nusxa qoldirish;
- ma’lum kundan keyin o‘chirish;
- lokal clientdan o‘chirilganda serverdan ham o‘chirish;
- faqat yangi xatlarni olish.
Bu imkoniyat POP3 protokolidagi UIDL va DELE amallari orqali client tomonidan boshqariladi.
Bir nechta qurilma bir mailboxdan POP3 ishlatsa, har biri xatni alohida yuklashi mumkin. Bir qurilma serverdan xatni o‘chirsa, boshqasi uni ololmay qolishi mumkin.
POP3 portlari
| Port | Vazifasi |
|---|---|
| 110 | Oddiy POP3; STARTTLS ishlatilishi mumkin |
| 995 | TLS boshidan yoqilgan POP3S |
Parol va xat mazmuni TLSsiz ochiq ko‘rinishi mumkin. Zamonaviy serverlar himoyalangan ulanishni talab qiladi.
Autentifikatsiya
POP3 quyidagi usullardan foydalanishi mumkin:
USER va PASS parolni protokol darajasida shifrlamaydi. Ular faqat TLS kanal ichida xavfsiz uzatiladi.
APOP
APOP server greetingdagi challenge va foydalanuvchi siri asosida digest yuboradi. Parol bevosita uzatilmaydi.
Biroq APOP zamonaviy kuchli autentifikatsiya o‘rnini bosmaydi. Eski hash algoritmlari va serverda sirni saqlash talabi sabab kam qo‘llanadi. TLS va zamonaviy token autentifikatsiyasi afzal.
Maildrop lock
POP3 server transaction vaqtida mailboxni lock qilishi mumkin. Maqsad bir nechta client bir vaqtda xatlarni o‘chirib, tartib raqamlarini chalkashtirmasligi.
Lock siyosati serverga bog‘liq:
- ikkinchi client vaqtincha rad etiladi;
- read-only sessiyaga ruxsat beriladi;
- mailbox formatiga mos parallel access boshqariladi.
Maildir kabi storage modeli va zamonaviy server implementatsiyasi parallel ulanishni boshqacha hal qilishi mumkin.
POP3 va MIME
POP3 xat mazmunini talqin qilmaydi. U RFC formatidagi xatni to‘liq clientga uzatadi.
MIME parsingni client bajaradi:
- text/plain;
- text/html;
- multipart;
- attachment;
- character encoding;
- base64;
- inline image.
Shu sababli xatni ko‘rsatish sifati POP3 protokolidan ko‘ra mail client imkoniyatiga bog‘liq.
POP3 va IMAP
| Jihat | POP3 | IMAP |
|---|---|---|
| Asosiy model | Xatni qurilmaga yuklash | Serverdagi mailboxni boshqarish |
| Papkalar | Standart protokolda yo‘q | To‘liq qo‘llanadi |
| Read/unread sinxronizatsiya | Cheklangan | Serverda saqlanadi |
| Bir nechta qurilma | Noqulayroq | Mos |
| Server qidiruvi | Yo‘q | Bor |
| Qisman yuklash | Cheklangan | Keng |
| Oflayn arxiv | Juda qulay | Lokal cache bilan |
| Server storage talabi | Kamaytirilishi mumkin | Xatlar serverda qoladi |
POP3 bir kompyuterga xatlarni yig‘ib, lokal arxiv saqlaydigan sodda tizimga mos. Telefon, noutbuk va webmail bir xil holatni ko‘rishi kerak bo‘lsa, IMAP qulayroq.
Xat yuborish
POP3 orqali xat yuborib bo‘lmaydi. Mail client odatda ikki alohida sozlamaga ega:
Masalan:
Incoming: pop.example.uz:995
Outgoing: smtp.example.uz:587
Ikkala xizmat bir domen yoki serverda bo‘lishi mumkin, lekin protokol va vazifalari alohida.
Xavfsizlik
POP3 xizmatida quyidagilar nazorat qilinadi:
- TLSni majburiy qilish;
- eski SSL va cipherlarni o‘chirish;
- kuchli autentifikatsiya;
- login urinishlarini rate limit qilish;
- IP va foydalanuvchi bo‘yicha monitoring;
- credential stuffingga qarshi himoya;
- serverda xat o‘chirish siyosati;
- mailbox quota;
- audit log.
POP3 internetga ochiq bo‘lsa, brute-force urinishlari ko‘p uchrashi mumkin.
Diagnostika
POP3 client xat olmasa, quyidagilar tekshiriladi:
- port 110 yoki 995;
- DNS manzil;
- TLS sertifikat;
- login va token;
- mailbox lock;
- serverda yangi xat mavjudligi;
- UIDL cache;
- “leave on server” sozlamasi;
- quota;
- antivirus yoki mail filter;
- clientning local storage hajmi;
- server loglari.
Bir xil xatlar qayta yuklansa, UIDL qiymati, client lokal bazasi va server migratsiyasidan keyingi identifikatorlar tekshiriladi.
Xatlar kutilmaganda serverdan yo‘qolsa, qaysi POP3 client DELE yuborgani va sessiya QUIT bilan yakunlanganini logdan aniqlash mumkin.
Bog‘liq tushunchalar
Email, Mailbox, SMTP, IMAP, USER, PASS, STAT, LIST, RETR, DELE, UIDL, TOP, POP3S, TLS, Mail client