intranet-telnette-imap-ile-e-posta-yonetimi

Telnet'te IMAP ile E-posta Yönetimi

 

IMAP Komutları Sözdizimi Kuralları

 

IMAP'te asıl komutu girmeden önce bir komut etiketi (tag'ı) girilmesi gerekebilir. Bu komut etiketi, boşluk içermeyen herhangi bir ifade olabilir. Örneğin "login" komutunu "abc login" şeklinde uygulamamız gerekir. Ben bu dökümanda komut etiketi olarak nokta "." kullanıyor olacağım. "." yerine herhangi bir ifade de yazılabilir. Her komut için farklı etiket de yazılabilir, aynı olmak zorunda değil.

 

Bu etiketlemenin asıl amacı, IMAP çoklu bağlantıları desteklediği için bir karışıklığın ortaya çıkmamasıdır. Böylece taglar yardımıyla sunucu tarafından hangi yanıtın hangi bağlantı için verildiğini anlayabiliriz. Biz bu dökümanda sadece 1 bağlantı ile işlem yapacağız.

 

IMAP komutları büyük/küçük harf duyarlı değildir. "LOGIN" ile "login" komutları aynı işlevi görür.

 

GİRİŞ

Telnet ile IMAP bağlantısını 143 numaralı port üzerinden sağlayabiliriz.

 

Bağlantı sağlandığında aşağıdaki gibi bir takım bilgiler çıkacaktır. Eğer * OK anahtar sözcüğünü görüyor isek artık şifremizle giriş yapıp e-postalarımızı yönetebiliriz demektir.

 

LOGIN

LOGIN komutuyla aralarda boşluk bırakarak kullanıcı adı (e-mail adresi) ve şifremizi girerek giriş yapabiliriz.

 

LIST

LIST komutu ile bütün mail dizinlerini listeleyebiliriz. Bu komut bütün dizinleri listelemek için LIST " " "*" şeklinde uygulanabilir.

 

STATUS

Mail kutusu hakkında basit bilgi almak için kullanılan komuttur. "messages", "recent" ve "unseen" olmak üzere 3 farklı parametresi vardır. "messages" toplam mesaj sayısını, "recent" yakın zamanda gelen mesaj sayısını, "unseen" ise okunmamış mesaj sayısını gösterir. Örneğin STATUS INBOX (MESSAGES) komutu ile toplam mesaj sayısını öğrenebiliriz.

 

EXAMINE ve SELECT

EXAMINE ve SELECT komutlarının işlevi hemen hemen aynıdır. Seçilen klasör hakkında bilgi gösterirler ve içerisindeki e-postalara ulaşabilmemizi sağlarlar. 2 Komutun farkı ise EXAMINE komutu sadece okuyabilmenizi (read only), SELECT ise okuyup yazabilmenizi (read-write) sağlar.

 

 

Burada "EXISTS" kısmı kaç tane e-posta olduğunu, "RECENT" kısmı ise yakın zamanda gelen kaç tane e-posta olduğunu gösterir.

SELECT komutu uygulandıktan sonra "yeni" olarak belirlenen tarih, komutun uygulandığı zamana kayar. Yani komutu bir daha uyguladığımızda "RECENT" kısmının sıfırlanmış olduğunu görürüz. EXAMINE komutu ise bunu etkilemez.

 

CREATE

CREATE komutu ile yeni bir klasör oluşturabiliriz. Örneğin CREATE INBOX.Yeni komutu "Yeni" ismiyle yeni bir klasör oluşturur.

Resimde klasör oluşturduktan sonra LIST komutuyla klasörleri listeliyoruz.

 

RENAME

RENAME komutu ile var olan bir klasörün ismini değiştirebiliriz. Örneğin RENAME INBOX.Yeni INBOX.Eski komutu "Yeni" klasörünün ismini "Eski" olarak değiştirir.

Resimde klasör ismini değiştirdikten sonra LIST komutuyla klasörleri listeliyoruz.

 

DELETE

DELETE komutunu kullanarak mevcut klasörleri silebiliriz. Örneğin DELETE INBOX.Eski komutu "Eski" klasörünü içeriğiyle beraber siler.

Resimde klasörlerden birini sildikten sonra LIST komutuyla klasörleri listeliyoruz.

 

FETCH

Bu komut e-postalara ulaşmak için kullandığımız ana komuttur. Tam olarak ne görüntülemek istediğinizi belirlemeniz için bir çok seçenek sunar. İleti bayrakları, ileti başlıkları, ana mesaj içeriği gibi. Örneğin:

-flags: sadece mail numaralarını listeler

-fast: mail numarası, boyutu, tarihi gibi "zarf" bilgilerini görüntüler.

-all: mail numarası, boyutu, tarihi, kimin tarafından gönderildiği, kime gönderildiği ve mail başlığı gibi bilgileri görüntüler.

-full: mail numarası, boyutu, tarihi, kimin tarafından gönderildiği, kime gönderildiği, mail başlığı ve mail formatı gibi bilgileri görüntüler.

-rfc822.header: mail başlığı, tarihi, eklentileri, kimin tarafından gönderildiği, kimlere gönderildiği, mail formatı gibi bilgileri görüntüler.

-rfc822.text: mail içeriğini görüntüler.

 

Biz ilk önce Inbox'ımızı seçelim.

Daha sonra FETCH komutu ile mail kutumuzdaki mesajları alalım.

FETCH komutunu kullanırken istersek FETCH 15 flags şeklinde mesaj numarası belirtebiliriz, ister isek mesaj aralığı belirtebiliriz. Örneğin FETCH 3:8 flags komuut 3 ile 8 arasındali mesajları alacaktır. Biz mail kutumuzda sadece 2 e-posta gördüğümüz için FETCH 1:2 flags komutunu uyguladık ve 2 e-postamıza da erişim sağladık.

FETCH 1:* flags komutu mail kutumuzdaki bütün e-postalarımıza erişim sağlar.

 

* flags dışındaki diğer parametrelere de göz atalım.

 

FETCH 2 fast

 

FETCH 1 all

 

FETCH 1 full

 

FETCH 2 rfc822.header

 

FETCH 1 rfc822.text komutu 1 numaralı e-postanın içeriğini görüntüler.

 

STORE

STORE komutu ile maillerimize etiketler ekleyip kaldırabiliriz. Örneğin STORE 1 +flags \Seen komutu 1 numaralı e-postanızı "Seen" şeklinde etiketler. Bu "Okundu" anlamına gelir. Yani mail kutunuzda o e-posta artık okunmuş olarak gözükür. Çıkış yaptığınızda bu bilgi mail sunucunuza da gider.

Bu şekilde birden fazla birbirinden bağımsız not ekleyip kaldırabilirsiniz. Varsayılan etiketler şunlardır: \Answered \Flagged \Draft \Deleted \Seen

\Answered : Cevaplandı

\Flagged : İşaretlendi

\Draft : Taslak

\Deleted : Silindi

\Seen : Okundu.

* Örneğin \Answered seçildiğinde mail kutunuzda cevaplanmış olarak gözükür, veya \Deleted etiketi seçildiğinde işlemler kaydedildiği zaman mail çöp kutusuna taşınır.

* STORE komutu uygulandığında etiketleri otomatik olarak görüntüler. Yeni FETCH ile kontrol etmemize gerek kalmaz.

Resimdeki örnekte "flags" parametresini kullanarak "okundu" etiketi verdik. Bu şekilde önceki etiketler silinecektir. Bunun yerine "+flags" yazsaydık daha önceki etiketler aynen kalacak ve "okundu" etiketi eklenecekti. Yine bu şekilde "-flags" kullanarak da önceki bir etiketi silebiliriz.

 

CLOSE ve EXPUNGE

CLOSE ve EXPUNGE komutları aynı işlevi görür. Etiket ile belirtilen işlemin gerçekleşmesini sağlar. Örneğin "\Deleted" etiketiyle işaretlenmiş bir mail var ise bu mailin sistemden çıkılmadan silinmesini sağlar. Aralarındaki fark ise EXPENGE komutu sadece etiket ile belirtilen görevi yerine getirir. CLOSE komutu daha önce yapılan seçimleri de iptal eder. Örneğin "INBOX.Onemli Mesajlar" klasörü seçilmiş ise bunun da seçimini iptal eder ve kullanım için tekrar seçmek gerekir.

1'inci e-postanın "\Answered" etiketi seçildiği için aşağıdaki resimde olduğu gibi yanıtlanmış olarak gözükür.

COPY

COPY kopyalama komutudur. IMAP'te e-posta taşımak için bir komut olmadığı için kopyalama işlemi uygulanıp eski e-posta silinebilir. COPY 1 INBOX.HedefKlasor komutuyla 1 numaralı e-postayı kopyalama işlemi gerçekleştirebiliriz. Veya COPY 1:8 INBOX.HedefKlasor komutu ile 1'le 8 arasındaki e-postaları kopyalayabiliriz.

 

IDLE

IDLE komutu uygulandığında yeni bir mesaj gelince güncel bir şekilde uyarır. IDLE komutu herhangi bir parametre olmadan kullanılır.

Yeni bir e-posta geldiğinde aşağıdaki gibi bir uyarı görüntülenir. "EXISTS" kısmı toplam e-posta sayısını, "RECENT" kısmı ise yeni gelen e-posta sayısını temsil eder.

IDLE komutunu sonlandırmak için herhangi bir etiket olmadan DONE komutu uygulanır.

 

LOGOUT

LOGOUT komutuyla IMAP bağlantısını sonlandırabilirsiniz.