Şimdi pop3 mail kontrolü veya rfc1725 protokolünü inceleyeceğiz. Normalde Outlook Express ve
benzeri programlarla mail aldığımızda arka planda 110.port standart olmak üzere
mail.sunucusuna bağlanarak karşıdan kullanııcı şifremizi gönderir ve ordan mailleri bizim
için getirir.
İşte bu şekilde mail alma işleminde arka planda rfc 1725 ile protokol çalışır. Aslında bu
bir standarttır. Evet post office protokol version 3. Bu protokol mail alınırken
kullanıcının bilgisayarı ile sunucu arasında gönderilen ve gelen komutların durumunu temsil
etmektedir. Normalde biz yapacağımız işlemleri bu protokolü okuyarak öğrenebiliriz. Mesela
birazdan değineceğimiz user komutu pass komutu,quit komutu,stat, list komutu işte bu gibi
tüm komutların nasıl yapıldığı bu protokol zaten bize anlatmaktadır.
Herhangi bir mail sunucuya bağlanırken normal bir TCP/IP ile bağlanabiliniriz.
Bilgisayarımızda telnetle aynı işlemi yapabiliriz.Telnet boşluk bağlanacağımız sunucunun
adresi şuan için kendi mail hesabımı kontrol edeceğim.Boşluk bağlanacağımız portu vermek
suretiyle sunucuya bağlanabiliriz
Pop3 hesaplarında standart olarak mail protokolü 110 dur. Yalnız bu port sunucunun
yapılandırılmasına göre farklı olabilir. Benim için şuan standart port geçerli olduğu için
telnet boşluk mail sunucum boşluk 110 şeklinde yazmış oldum.
# telnet mail.netbim.com 110
Evet sunucumuz bizi selamladı ve merhaba diyor.
+OK Hello there. <5191.1251347816@localhost.localdomain>
İşte bu ekranda henüz sunucuya giriş yapmış değiliz. İlk başta sunucuya giriş yapmamız yani
login olmamız gerekiyor.
Bunun için user komutunu kullanıyoruz. User boşluk kulanıcı adı diyerek ilk başta kullanıcı
adımızı tanımlıyoruz.
Kulanıcı adı mail adresimle aynı olduğu için kulanıcı adını yazdım Evet bizden parola
girmemizi istiyor. Şifre tanımlamak için ise pass boşluk şifremi yazıyorum ve enter a
basıyorum. Kullanıcı adı ve şifren doğru olduğu için Ok loged in mesajını aldım.Dikkat
ettiyseniz hep bana +Ok ile cevap gönderiyor. Şimdilik quiti yazmadığımızı farzedelim
görmemezlikten gelin ve yanlış bir kullanıcı adı şifre yazmayı deneyelim. Kullanıcı adımız
yazdım. şifreme yanlış bir ifade kullandim. Dikkat edersek +OK şeklinde cevap dönerken bu
sefer -ERR şeklinde cevap döndü. yani giriş yaptığımız kullanıcı adı ve şifremiz yanlış.
Tekrar kullanıcı adı ve şifremi yazıyorum. Bu sefer doğru şekilde. evet +Ok Logged in.
Sisteme giriş yaptık. Burdan anlaşılacağı üzere user ve pass komutlarıyla kullanıcı girişini
sağlamış oluyoruz. Bir sonraki adım olarak ne kadar mailimizin biriktiğini görmek için stat
komutunu kullanabiliriz. Stat komutunu kullandığımda bana yine +OK şeklinde İlk parametrede
kaç tane mailim biriktiğini İkinci parametrede ise bu biriken maillerin boyutunu söylemekte.
Bu şekilde telnetten bağlanma ihtiyacını bazende herhangi bir mailin mail programımızı
bozduğunda da kullanabiliriz veya sunucuda çok fazla mail birikmiş olup bunları bir mail
programı ile çekmek çok uğraşlı olabilir. bu gibi durumlarda sunucuya bağlanmadan yani direk
mail programını kullanmadan bazı mailleri silmemiz gerekebilir.
İşte bu şekilde bağlanarak bazı maillerimizi silebiliriz. Stat ile kaçtane mailim olduğunu
görmüştüm. Yine list komutunu verdigimde bana tek tek maillerimi sırasıylada boyutlarınıda
ayrı olarak söyler.
Burda herhangi bir maili okumak için bir sonraki adıma geçmemiz gerekiyor. Stat komutuyla
maillerin kaç adet olduğunu görmüştüm yine list komutunu verdiğimde bana tek tek maillerimi
sırasıyla ayrı ayrı söyler. Burda herhangi bir maili okumak için bir sonraki adıma geçmemiz
gerekiyor. Stat komutu ile maillerimin kaç adet olduğunu öğrenebilirim. list ile de bunların
sırasını ve tek tek boyutlarını öğrenebilirim kullanımdan sonra burdaki mesaj numaralarından
herhangi biri ile maili okuyabilirim. Mail okumak için ise retr komutunu kullanıyoruz. retr
boşluk herhangi bir mail numarası verdiğimde bana mailin tamamını döndercektir. 117
numaralı maili okumak için retr boşluk 117 dediğimde mailin içeriğini olduğu gibi görüyorum.
tabi burdaki içerik benim için anlamsız olabilir.
Çünkü bu içerik standart bilgisayarı açtığımızda ve herhangi bir mail programızı açtığımızda
gördüğümüz maile benzemiyor çünkü burda gördüğümüz bilgiler aslında direk header olarak
isimlendirdiğimiz mailin orjinal şeklidir. İşte mail programlarıda bu bilgileri alarak
gerekli yerleri parçalayarak bize anlamlı hale getiriyor. Zaten dikkat edersek aslında
hepsinin düzenli bir şekilde olduğunu görüyoruz.
Fromla mesala kimin gönderdiğini Subject ile mesajın başlığını To ile kime gönderildiğini
Message-id ile sunucudan hangi id ile geldiğini bu gibi bilgileri zaten burda görüyoruz.
İşte retr ile herhangi bir maili okuyabiliyorum. Bu ouduğum mail eğerki çok uzunsa veya
belirli bir kısmını okumam gerekiyorsa top komutunu kullanabilirim.
Top komutu yine mesaj numarasını verdikten sonra okumak istediğim satır sayısını vererek
yine aynı işlemi gerçekleştirebilir. dikkat ederseniz sadece 1 satır okumak istediğimi
söyledim.
Doğal olarak burda linkin devam ettiği birinci satır bana gelmedi.
Çok uzun maillerin yada içinde attach bulunan çok uzun maillerin sadece başlık bilgisini
okuyarak gerekli yada gereksiz olduğuna karar verip silme işlemini gerçekleştirmek için top
komutu gayet mantıklıdır. Farzedelim ki bu mailde attach bir dosya vardi ve retr dediğimde
direk aşağı doğru devam edecek ve sanki mail programı çekiyormuş gibi tüm bilgileri görecektim.
Sadece top komutu ile mailin başlık kısmını okuyup maili silebilirim.
İşte top yada retr ile mailin tamamını veya bir kısmını okuyarak temel işlemleri yaptık eğerki bu maili silmem gerekiyorsa dele komutunu kullanabilirim dele komutuna geçmeden önce çokta ihtiyacımız olmasada Noop yani sunucuya boş bir talep gönderme komutunu gönderebiliriz.
Noop komutu aslında no operation ifadesinin kısaltılmışıdır. ve herhangi bir işlem yapmaz sadece sunucuya bir istek gönderip boş bir cevap almış oluruz ve bağlantının devamlı açıkta kalmış olmasını sağlamış oluruz.
Daha sonra dele komutuyla boşluk silmek istediğimiz mesaj numarasını vererek silme işlemini gerçekleştirebiliriz. Sildikten sonra mesajı okuyamaya kalktığımızda bize invalid message number hatasını verir çünkü bu mail artık silinmiştir. İşte bu şekilde temel olarak mail işlemlerini gerçekleştirebilirim.
Bunun yanında çok lazım olmasada bu mailin sunucuda bu biraz ileri seviye bir durum hangi numara ile kaydedildiğini bilmem gerekiyorsa ki tüm sunucularda mailler unique bir numarayla kaydedilmek suretiyle arşivlenir. Sil dediğimizdede sunucudan dosya tamamen silinir. İşte ben ileri seviyede bir sistem yöneticisiysem ve maille sunucudaki bilgilere erişmek istiyorsam uidl komutunuda kullanabilirim
uidl 116
işte bu komutu verdiğimde sunucudaki bana numarasını verir. ileri seviye bir durum olduğu için çokta değinmemize gerek yok tüm işlemler bittiğinde maili okudum sildim ve mail sunucu ile bağlantıyı kesmem gerekiyorsa bu seferde quit komutunu kullanarak sunucu ile bağlantımı kesebilirim. Sunucudan çıkmak için quit komutunu kullanıyorum
quit
ve Ana bilgisayar ile bağlantımız kesildi sunucu bize güle güle dedi.
İşte sunucuda ki bu işlemleri yaparken bilmem gereken tüm komutlar ve bunların açıklamaları aslında rfc1725 dediğimiz pop3 protokolünün içinde yer almaktadir aynı komutların daha açıklamalı bilgilerine erişmek için bu dökümanı okuyabiliriz.