Postane Protokolü Çalışmaları ile Posta Nasıl Getirme

Sahnelerin Arkasında Postane Protokolü ile Posta Almayı Arıyor

Uzak bir sunucudan posta almak için kullanılan Postane Protokolü (POP) çok basit bir protokoldür. Temel işlevselliği basit bir şekilde tanımlar ve uygulanması kolaydır. Tabii ki, anlamak da kolaydır.

E-posta programınız bir POP hesabında posta getirdiğinde sahnelerin ardında neler olduğunu öğrenelim. İlk önce, sunucuya bağlanmak gerekiyor.

Merhaba, ben

Genellikle, POP sunucusu gelen bağlantılar için bağlantı noktası 110'u dinler. Bir POP istemcisinden (e-posta programınızdan) bağlantı üzerine, umarım + OK pop.philo.org hazır veya benzeri bir şeyle yanıt verir . + Tamam , her şeyin "Tamam" olduğunu gösterir. Negatif eşdeğeri -ERR'dir , bu da bir şeyin yanlış gittiği anlamına gelir. Belki de e-posta istemciniz size bu olumsuz sunucu yanıtlarından birini göstermiş olabilir.

Giriş yapılıyor

Artık sunucu bizi karşıladı, kullanıcı adımızı kullanarak giriş yapmamız gerekiyor (kullanıcı adının "müfreze" olduğunu varsayalım, sunucunun italik olarak yazdığı yazıyor):

+ Tamam pop.philo.org hazır
USER takımı

Bu ada sahip bir kullanıcı bulunduğundan, POP sunucusu + OK ile yanıt verir ve belki de umurunda değiliz. Sunucuda böyle bir kullanıcı yoktu, elbette bizi -ERR kullanıcısı bilinmeyen panik yapacaktır.

Doğrulama işlemini tamamlamak için şifremizi de vermeliyiz. Bu "geçiş" komutu ile yapılır:

+ Tamam şifrenizi gönder
noplato geçmek

Şifreyi doğru yazarsak, sunucu + OK şifresiyle veya POP sunucusunun programlayıcısı ne olursa olsun yanıt verir. Önemli kısım yine + OK . Maalesef, şifreler de yanlış olabilir. Sunucu bunu bir kuru -ERR kullanıcı adıyla ve şifreyle eşleştirmez (kullanıcı adınızı şifreniz olarak kullanıyormuşsunuz gibi).

Her şey yolunda gitse de, sunucuya bağlıyız ve kim olduğumuzu biliyor, bu yüzden yeni gelen postayı incelemeye hazırız.

Mail aldın!

Sunucudaki POP hesabımıza başarıyla giriş yaptıktan sonra, önce yeni posta olup olmadığını ve daha sonra ne kadar olacağını bilmek isteyebiliriz.

Bu temel posta kutusu istatistiklerini almak için kullanılan komut STAT'dir .

Olası bir sunucu yanıtı + OK 18 67042 olur . Bu durumda + OK işaretinin ne olduğu önemli değil. Hemen ardından, posta kutusundaki mesajların sayısı, daha sonra, bir boşluk ile ayrılan, posta kutusunun boyutu sekizli olarak gelir (sekizli 8 bittir).

STAT
+ OK 18 67042

Posta yoksa, sunucu + OK 0 0 ile yanıt verir. Ancak sunucuda 18 yeni mesaj olduğundan, bunları LIST komutunu kullanarak listeleyebiliriz. Yanıt olarak, sunucu iletileri aşağıdaki biçimde listeler:

LİSTE
+ OK 18 mesaj (67042 oktet)
1 2552
2 3297
...
18 3270
.

Mesajlar birer birer listelenir, her biri oktetlerde boyutuna göre takip edilir. Liste kendi başına bir satırda bir süre ile biter.

LIST komutu, bir mesajın numarasını isteğe bağlı bir argüman olarak alabilir, örneğin LIST 2 . Sunucunun bu talebe cevabı + OK 2 3297 , mesaj numarası ve ardından mesajın boyutu. Var olmayan bir mesajı listelemeyi denerseniz, LIST 23 gibi, sunucu hiçbir hayal gücü göstermez ve şöyle der: -ERR böyle bir mesaj yok .

Büyük Al (Ve Sil)

Artık hesabımızda kaç mesajın olduğunu ve ne kadar büyük olduklarını biliyoruz, sonunda onları okuyabiliyoruz, böylece onları da okuyabiliyoruz.

Şimdi, yeni postamız olup olmadığını öğrendikten sonra, gerçek olanı geliyor. Mesajlar, RETR komutuna bir argüman olarak mesaj numaraları ile tek tek alınır.

Sunucu, bir + OK ve iletiyi olduğu gibi birden çok satırda yanıtlar. Mesaj kendi başına bir satırdaki bir süre ile sonlandırılır. Örneğin:

DÖNÜŞ 1
+ OK 2552 sekizli
Vesaire!
.

Var olmayan bir mesaj almaya çalışırsak, -ERR diye bir mesaj almayız .

Şimdi mesajı DELE komutunu kullanarak silebiliriz. (Elbette, o günlerden biriyse, mesajı almadan da silebiliriz).

Sunucunun mesajı hemen temizlemeyeceğini bilmek güzel. Sadece silinmek için işaretlenmiştir. Gerçek silme, yalnızca sunucuya olan bağlantıyı düzenli olarak sonlandırırsak gerçekleşir. Böylece, bağlantı aniden ölürse, hiç bir posta kaybolmaz.

Sunucunun DELE komutuna cevabı + OK mesajı silindi :

DELE 1
+ Tamam mesajı 1 silindi

Bu günlerden biriyse ve silinmek istemediğimiz bir silme mesajı belirlediyse, silme işaretlerini sıfırlayarak tüm mesajları geri almak mümkündür. RSET komutu, posta kutusunu, giriş yapmadan önce bulunduğu duruma döndürür.

Sunucu bir + OK ve muhtemelen mesajların sayısı ile yanıt verir:

RSET
+ OK 18 mesaj

Tüm mesajları aldıktan ve sildikten sonra, QUIT komutunu kullanarak veda etme vakti gelmiştir. Bu, silme için işaretlenen mesajları temizler ve bağlantıyı kapatır. Sunucu, + Tamam ve bir veda mesajı ile yanıt verir:

QUIT
+ Güle güle, güle güle

Sunucunun bir mesajı silmesi mümkün değildi. Daha sonra silinmeyen -ERR mesaj 2 gibi bir hata ile cevap verecektir.